summaryrefslogtreecommitdiff
path: root/sd/source/ui/inc
diff options
context:
space:
mode:
Diffstat (limited to 'sd/source/ui/inc')
-rwxr-xr-xsd/source/ui/inc/3dchld.hxx50
-rw-r--r--sd/source/ui/inc/AccessibleDocumentViewBase.hxx372
-rw-r--r--sd/source/ui/inc/AccessibleDrawDocumentView.hxx173
-rwxr-xr-xsd/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
-rwxr-xr-xsd/source/ui/inc/AccessibleSlideView.hxx280
-rwxr-xr-xsd/source/ui/inc/AccessibleTreeNode.hxx294
-rwxr-xr-xsd/source/ui/inc/AccessibleViewForwarder.hxx136
-rwxr-xr-xsd/source/ui/inc/AnimationChildWindow.hxx55
-rw-r--r--sd/source/ui/inc/BezierObjectBar.hxx60
-rwxr-xr-xsd/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
-rwxr-xr-xsd/source/ui/inc/DrawController.hxx339
-rwxr-xr-xsd/source/ui/inc/DrawDocShell.hxx243
-rwxr-xr-xsd/source/ui/inc/DrawSubController.hxx57
-rwxr-xr-xsd/source/ui/inc/DrawViewShell.hxx499
-rw-r--r--sd/source/ui/inc/EventMultiplexer.hxx222
-rw-r--r--sd/source/ui/inc/FormShellManager.hxx143
-rwxr-xr-xsd/source/ui/inc/FrameView.hxx237
-rwxr-xr-xsd/source/ui/inc/GraphicDocShell.hxx79
-rwxr-xr-xsd/source/ui/inc/GraphicObjectBar.hxx66
-rwxr-xr-xsd/source/ui/inc/GraphicViewShell.hxx85
-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
-rwxr-xr-xsd/source/ui/inc/LayerDialogChildWindow.hxx54
-rwxr-xr-xsd/source/ui/inc/LayerDialogContent.hxx64
-rw-r--r--sd/source/ui/inc/LayerTabBar.hxx93
-rwxr-xr-xsd/source/ui/inc/MasterPageObserver.hxx134
-rw-r--r--sd/source/ui/inc/MediaObjectBar.hxx61
-rw-r--r--sd/source/ui/inc/MutexOwner.hxx47
-rwxr-xr-xsd/source/ui/inc/NavigatorChildWindow.hxx59
-rw-r--r--sd/source/ui/inc/NotesChildWindow.hrc30
-rwxr-xr-xsd/source/ui/inc/NotesChildWindow.hxx55
-rwxr-xr-xsd/source/ui/inc/OutlineBulletDlg.hxx71
-rwxr-xr-xsd/source/ui/inc/OutlineView.hxx264
-rwxr-xr-xsd/source/ui/inc/OutlineViewShell.hxx179
-rw-r--r--sd/source/ui/inc/OutlineViewShellBase.hxx55
-rwxr-xr-xsd/source/ui/inc/OutlinerIteratorImpl.hxx272
-rwxr-xr-xsd/source/ui/inc/PaneChildWindows.hxx100
-rwxr-xr-xsd/source/ui/inc/PaneDockingWindow.hrc30
-rw-r--r--sd/source/ui/inc/PaneDockingWindow.hxx90
-rwxr-xr-xsd/source/ui/inc/PaneShells.hxx90
-rwxr-xr-xsd/source/ui/inc/PresentationViewShell.hxx75
-rw-r--r--sd/source/ui/inc/PresentationViewShellBase.hxx58
-rwxr-xr-xsd/source/ui/inc/PreviewRenderer.hxx178
-rwxr-xr-xsd/source/ui/inc/Ruler.hxx82
-rwxr-xr-xsd/source/ui/inc/SdUnoDrawView.hxx153
-rwxr-xr-xsd/source/ui/inc/SdUnoOutlineView.hxx127
-rwxr-xr-xsd/source/ui/inc/SdUnoSlideView.hxx142
-rw-r--r--sd/source/ui/inc/ShellFactory.hxx73
-rwxr-xr-xsd/source/ui/inc/SlideSorter.hxx287
-rw-r--r--sd/source/ui/inc/SlideSorterChildWindow.hrc30
-rwxr-xr-xsd/source/ui/inc/SlideSorterChildWindow.hxx58
-rwxr-xr-xsd/source/ui/inc/SlideSorterViewShell.hxx219
-rw-r--r--sd/source/ui/inc/SlideSorterViewShellBase.hxx55
-rwxr-xr-xsd/source/ui/inc/SlideView.hxx144
-rwxr-xr-xsd/source/ui/inc/SlideViewShell.hxx175
-rwxr-xr-xsd/source/ui/inc/SpellDialogChildWindow.hxx95
-rwxr-xr-xsd/source/ui/inc/TabControl.hxx122
-rwxr-xr-xsd/source/ui/inc/TemplateScanner.hxx220
-rw-r--r--sd/source/ui/inc/TextLogger.hxx62
-rw-r--r--sd/source/ui/inc/TextObjectBar.hxx69
-rwxr-xr-xsd/source/ui/inc/ToolBarManager.hxx283
-rwxr-xr-xsd/source/ui/inc/UpdateLockManager.hxx92
-rwxr-xr-xsd/source/ui/inc/View.hxx261
-rwxr-xr-xsd/source/ui/inc/ViewClipboard.hxx93
-rwxr-xr-xsd/source/ui/inc/ViewShell.hxx606
-rwxr-xr-xsd/source/ui/inc/ViewShellBase.hxx273
-rw-r--r--sd/source/ui/inc/ViewShellHint.hxx68
-rwxr-xr-xsd/source/ui/inc/ViewShellImplementation.hxx166
-rwxr-xr-xsd/source/ui/inc/ViewShellManager.hxx212
-rw-r--r--sd/source/ui/inc/ViewTabBar.hxx210
-rwxr-xr-xsd/source/ui/inc/ViewTabControl.hxx120
-rwxr-xr-xsd/source/ui/inc/Window.hxx216
-rw-r--r--sd/source/ui/inc/WindowUpdater.hxx152
-rwxr-xr-xsd/source/ui/inc/animobjs.hrc52
-rwxr-xr-xsd/source/ui/inc/animobjs.hxx201
-rwxr-xr-xsd/source/ui/inc/annotationmanager.hxx59
-rw-r--r--sd/source/ui/inc/assclass.hxx86
-rwxr-xr-xsd/source/ui/inc/bmcache.hxx52
-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
-rwxr-xr-xsd/source/ui/inc/celltempl.hxx59
-rw-r--r--sd/source/ui/inc/cfgids.hxx75
-rw-r--r--sd/source/ui/inc/copydlg.hrc51
-rwxr-xr-xsd/source/ui/inc/copydlg.hxx105
-rw-r--r--sd/source/ui/inc/custsdlg.hrc47
-rwxr-xr-xsd/source/ui/inc/custsdlg.hxx116
-rwxr-xr-xsd/source/ui/inc/diactrl.hxx80
-rw-r--r--sd/source/ui/inc/dialogs.hrc36
-rw-r--r--sd/source/ui/inc/dlg_char.hrc28
-rwxr-xr-xsd/source/ui/inc/dlg_char.hxx61
-rw-r--r--sd/source/ui/inc/dlgass.hrc88
-rwxr-xr-xsd/source/ui/inc/dlgass.hxx77
-rwxr-xr-xsd/source/ui/inc/dlgctrls.hxx62
-rw-r--r--sd/source/ui/inc/dlgfield.hrc37
-rwxr-xr-xsd/source/ui/inc/dlgfield.hxx89
-rw-r--r--sd/source/ui/inc/dlgolbul.hrc27
-rw-r--r--sd/source/ui/inc/dlgpage.hrc27
-rwxr-xr-xsd/source/ui/inc/dlgpage.hxx68
-rw-r--r--sd/source/ui/inc/dlgsnap.hrc44
-rwxr-xr-xsd/source/ui/inc/dlgsnap.hxx101
-rwxr-xr-xsd/source/ui/inc/docprev.hxx88
-rwxr-xr-xsd/source/ui/inc/drawview.hxx93
-rw-r--r--sd/source/ui/inc/enumdlg.hrc42
-rwxr-xr-xsd/source/ui/inc/filedlg.hxx72
-rw-r--r--sd/source/ui/inc/fontwork.hrc45
-rwxr-xr-xsd/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
-rwxr-xr-xsd/source/ui/inc/framework/FrameworkHelper.hxx430
-rw-r--r--sd/source/ui/inc/framework/ImpressModule.hxx47
-rw-r--r--sd/source/ui/inc/framework/ModuleController.hxx148
-rwxr-xr-xsd/source/ui/inc/framework/Pane.hxx175
-rwxr-xr-xsd/source/ui/inc/framework/PresentationFactory.hxx116
-rw-r--r--sd/source/ui/inc/framework/PresentationModule.hxx47
-rwxr-xr-xsd/source/ui/inc/framework/ResourceId.hxx244
-rwxr-xr-xsd/source/ui/inc/framework/ViewShellWrapper.hxx148
-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
-rwxr-xr-xsd/source/ui/inc/fucon3d.hxx77
-rwxr-xr-xsd/source/ui/inc/fuconarc.hxx70
-rwxr-xr-xsd/source/ui/inc/fuconbez.hxx85
-rwxr-xr-xsd/source/ui/inc/fuconcs.hxx87
-rw-r--r--sd/source/ui/inc/fuconnct.hxx57
-rwxr-xr-xsd/source/ui/inc/fuconrec.hxx84
-rwxr-xr-xsd/source/ui/inc/fuconstr.hxx87
-rwxr-xr-xsd/source/ui/inc/fuconuno.hxx81
-rw-r--r--sd/source/ui/inc/fucopy.hxx58
-rw-r--r--sd/source/ui/inc/fucushow.hxx55
-rwxr-xr-xsd/source/ui/inc/fudraw.hxx102
-rwxr-xr-xsd/source/ui/inc/fudspord.hxx82
-rwxr-xr-xsd/source/ui/inc/fuediglu.hxx74
-rw-r--r--sd/source/ui/inc/fuexpand.hxx56
-rwxr-xr-xsd/source/ui/inc/fuformatpaintbrush.hxx76
-rw-r--r--sd/source/ui/inc/fugrid.hxx59
-rwxr-xr-xsd/source/ui/inc/fuhhconv.hxx75
-rw-r--r--sd/source/ui/inc/fuinsert.hxx119
-rwxr-xr-xsd/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
-rwxr-xr-xsd/source/ui/inc/fumorph.hxx80
-rw-r--r--sd/source/ui/inc/fuoaprms.hxx60
-rw-r--r--sd/source/ui/inc/fuolbull.hxx68
-rwxr-xr-xsd/source/ui/inc/fuoltext.hxx85
-rwxr-xr-xsd/source/ui/inc/fuoutl.hxx76
-rwxr-xr-xsd/source/ui/inc/fupage.hxx81
-rw-r--r--sd/source/ui/inc/fuparagr.hxx59
-rwxr-xr-xsd/source/ui/inc/fupoor.hxx212
-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
-rwxr-xr-xsd/source/ui/inc/fusearch.hxx72
-rwxr-xr-xsd/source/ui/inc/fusel.hxx112
-rw-r--r--sd/source/ui/inc/fusldlg.hxx55
-rw-r--r--sd/source/ui/inc/fuslhide.hxx63
-rwxr-xr-xsd/source/ui/inc/fuslid.hxx77
-rwxr-xr-xsd/source/ui/inc/fuslsel.hxx120
-rw-r--r--sd/source/ui/inc/fusnapln.hxx58
-rw-r--r--sd/source/ui/inc/fusumry.hxx56
-rw-r--r--sd/source/ui/inc/futempl.hxx59
-rwxr-xr-xsd/source/ui/inc/futext.hxx116
-rw-r--r--sd/source/ui/inc/futhes.hxx57
-rwxr-xr-xsd/source/ui/inc/futransf.hxx59
-rw-r--r--sd/source/ui/inc/futxtatt.hxx56
-rw-r--r--sd/source/ui/inc/fuvect.hxx57
-rwxr-xr-xsd/source/ui/inc/fuzoom.hxx79
-rwxr-xr-xsd/source/ui/inc/gluectrl.hxx76
-rw-r--r--sd/source/ui/inc/headerfooterdlg.hrc55
-rwxr-xr-xsd/source/ui/inc/headerfooterdlg.hxx85
-rw-r--r--sd/source/ui/inc/ins_paste.hrc36
-rwxr-xr-xsd/source/ui/inc/ins_paste.hxx59
-rw-r--r--sd/source/ui/inc/inspagob.hrc33
-rwxr-xr-xsd/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
-rwxr-xr-xsd/source/ui/inc/masterlayoutdlg.hxx78
-rw-r--r--sd/source/ui/inc/morphdlg.hrc35
-rwxr-xr-xsd/source/ui/inc/morphdlg.hxx81
-rwxr-xr-xsd/source/ui/inc/navigatr.hrc50
-rwxr-xr-xsd/source/ui/inc/navigatr.hxx207
-rw-r--r--sd/source/ui/inc/optdlg.hrc34
-rwxr-xr-xsd/source/ui/inc/optdlg.hxx57
-rwxr-xr-xsd/source/ui/inc/optsitem.hxx688
-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/prltempl.hrc31
-rwxr-xr-xsd/source/ui/inc/prltempl.hxx101
-rw-r--r--sd/source/ui/inc/prntopts.hrc56
-rwxr-xr-xsd/source/ui/inc/prntopts.hxx109
-rw-r--r--sd/source/ui/inc/pubdlg.hrc153
-rwxr-xr-xsd/source/ui/inc/pubdlg.hxx235
-rwxr-xr-xsd/source/ui/inc/res_bmp.hrc341
-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
-rwxr-xr-xsd/source/ui/inc/sdtreelb.hxx272
-rwxr-xr-xsd/source/ui/inc/sdundogr.hxx55
-rwxr-xr-xsd/source/ui/inc/sdxfer.hxx138
-rwxr-xr-xsd/source/ui/inc/slideshow.hxx232
-rwxr-xr-xsd/source/ui/inc/smarttag.hxx188
-rwxr-xr-xsd/source/ui/inc/sprite.hxx88
-rwxr-xr-xsd/source/ui/inc/strings.hrc515
-rw-r--r--sd/source/ui/inc/tabtempl.hrc30
-rwxr-xr-xsd/source/ui/inc/tabtempl.hxx86
-rwxr-xr-xsd/source/ui/inc/taskpane/ControlContainer.hxx197
-rwxr-xr-xsd/source/ui/inc/taskpane/ILayoutableWindow.hxx102
-rw-r--r--sd/source/ui/inc/taskpane/PanelId.hxx62
-rwxr-xr-xsd/source/ui/inc/taskpane/ScrollPanel.hxx185
-rwxr-xr-xsd/source/ui/inc/taskpane/SlideSorterCacheDisplay.hxx201
-rwxr-xr-xsd/source/ui/inc/taskpane/SubToolPanel.hxx134
-rwxr-xr-xsd/source/ui/inc/taskpane/TaskPaneControlFactory.hxx98
-rwxr-xr-xsd/source/ui/inc/taskpane/TaskPaneTreeNode.hxx214
-rwxr-xr-xsd/source/ui/inc/taskpane/TitleBar.hxx169
-rwxr-xr-xsd/source/ui/inc/taskpane/TitledControl.hxx181
-rw-r--r--sd/source/ui/inc/taskpane/ToolPanelViewShell.hxx172
-rw-r--r--sd/source/ui/inc/tbx_ww.hrc29
-rwxr-xr-xsd/source/ui/inc/tbx_ww.hxx89
-rwxr-xr-xsd/source/ui/inc/tmplctrl.hxx53
-rw-r--r--sd/source/ui/inc/tools/AsynchronousCall.hxx92
-rwxr-xr-xsd/source/ui/inc/tools/AsynchronousTask.hxx55
-rw-r--r--sd/source/ui/inc/tools/ConfigurationAccess.hxx152
-rwxr-xr-xsd/source/ui/inc/tools/IconCache.hxx79
-rw-r--r--sd/source/ui/inc/tools/IdleDetection.hxx91
-rwxr-xr-xsd/source/ui/inc/tools/PropertySet.hxx150
-rwxr-xr-xsd/source/ui/inc/tools/SdGlobalResourceContainer.hxx108
-rwxr-xr-xsd/source/ui/inc/tools/SlotStateListener.hxx160
-rwxr-xr-xsd/source/ui/inc/tools/TimerBasedTaskExecution.hxx99
-rwxr-xr-xsd/source/ui/inc/tpaction.hrc54
-rwxr-xr-xsd/source/ui/inc/tpaction.hxx141
-rw-r--r--sd/source/ui/inc/tpoption.hrc95
-rwxr-xr-xsd/source/ui/inc/tpoption.hxx201
-rw-r--r--sd/source/ui/inc/unchss.hxx59
-rw-r--r--sd/source/ui/inc/undoback.hxx66
-rw-r--r--sd/source/ui/inc/undoheaderfooter.hxx57
-rw-r--r--sd/source/ui/inc/undolayer.hxx67
-rwxr-xr-xsd/source/ui/inc/undopage.hxx180
-rwxr-xr-xsd/source/ui/inc/unmodpg.hxx87
-rw-r--r--sd/source/ui/inc/unmovss.hxx54
-rwxr-xr-xsd/source/ui/inc/unoaprms.hxx149
-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
-rwxr-xr-xsd/source/ui/inc/unosrch.hxx149
-rwxr-xr-xsd/source/ui/inc/unprlout.hxx65
-rw-r--r--sd/source/ui/inc/unslsel.hxx50
-rw-r--r--sd/source/ui/inc/vectdlg.hrc53
-rwxr-xr-xsd/source/ui/inc/vectdlg.hxx107
-rwxr-xr-xsd/source/ui/inc/view/viewoverlaymanager.hxx71
-rwxr-xr-xsd/source/ui/inc/zoomlist.hxx61
273 files changed, 30454 insertions, 0 deletions
diff --git a/sd/source/ui/inc/3dchld.hxx b/sd/source/ui/inc/3dchld.hxx
new file mode 100755
index 000000000000..b5258f06eba6
--- /dev/null
+++ b/sd/source/ui/inc/3dchld.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 _SD_3DCHLD_HXX
+#define _SD_3DCHLD_HXX
+
+
+#include <sfx2/childwin.hxx>
+
+/*************************************************************************
+|*
+|* Ableitung vom SfxChildWindow als "Behaelter" fuer 3D Window
+|*
+\************************************************************************/
+
+class Sd3DChildWindow : public SfxChildWindow
+{
+ public:
+ Sd3DChildWindow( Window*, sal_uInt16, SfxBindings*, SfxChildWinInfo* );
+
+ SFX_DECL_CHILDWINDOW(Sd3DChildWindow);
+};
+
+#endif // _SD_3DCHLD_HXX
+
diff --git a/sd/source/ui/inc/AccessibleDocumentViewBase.hxx b/sd/source/ui/inc/AccessibleDocumentViewBase.hxx
new file mode 100644
index 000000000000..b070db968959
--- /dev/null
+++ b/sd/source/ui/inc/AccessibleDocumentViewBase.hxx
@@ -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.
+ *
+ ************************************************************************/
+
+#ifndef SD_ACCESSIBILITY_ACCESSIBLE_DOCUMENT_VIEW_BASE_HXX
+#define SD_ACCESSIBILITY_ACCESSIBLE_DOCUMENT_VIEW_BASE_HXX
+
+#include <editeng/AccessibleContextBase.hxx>
+#include <editeng/AccessibleComponentBase.hxx>
+#include <editeng/AccessibleSelectionBase.hxx>
+#include "AccessibleViewForwarder.hxx"
+#include "AccessiblePageShape.hxx"
+#include <svx/ChildrenManager.hxx>
+#include <com/sun/star/frame/XModel.hpp>
+#include <com/sun/star/awt/XWindowListener.hpp>
+#include <com/sun/star/awt/XFocusListener.hpp>
+#include <com/sun/star/beans/XPropertyChangeListener.hpp>
+#include <com/sun/star/accessibility/XAccessible.hpp>
+#include <com/sun/star/lang/IndexOutOfBoundsException.hpp>
+#include <tools/link.hxx>
+
+namespace sd {
+class ViewShell;
+class Window;
+}
+
+class VclSimpleEvent;
+
+namespace accessibility {
+
+
+/** Base class for the various document views of the Draw and
+ Impress applications.
+
+ <p>The different view modes of the Draw and Impress applications
+ are made accessible by derived classes. When the view mode is
+ changed than the object representing the document view is
+ disposed and replaced by a new instance of the then appropriate
+ derived class.</p>
+
+ <p>This base class also manages an optionally active accessible OLE
+ object. If you overwrite the <member>getAccessibleChildCount</member>
+ and <member>getAccessibleChild</member> methods then make sure to first
+ call the corresponding method of this class and adapt your child count
+ and indices accordingly. Only one active OLE object is allowed at a
+ time. This class does not listen for disposing calls at the moment
+ because it does not use the accessible OLE object directly and trusts on
+ getting informed through VCL window events.</p>
+
+ <p>This class implements three kinds of listeners:
+ <ol><li>The property change listener is not used directly but exists as
+ convenience for derived classes. May be moved to those classes
+ instead.</li>
+ <li>As window listener it waits for changes of the window geometry and
+ forwards those as view forwarder changes.</li>
+ <li>As focus listener it keeps track of the focus to give this class and
+ derived classes the oportunity to set and remove the focus to/from
+ shapes.</li>
+ </ol>
+ </p>
+*/
+class AccessibleDocumentViewBase
+ : public AccessibleContextBase,
+ public AccessibleComponentBase,
+ public AccessibleSelectionBase,
+ public IAccessibleViewForwarderListener,
+ public ::com::sun::star::beans::XPropertyChangeListener,
+ public ::com::sun::star::awt::XWindowListener,
+ public ::com::sun::star::awt::XFocusListener
+{
+public:
+ //===== internal ========================================================
+
+ /** Create a new object. Note that the caller has to call the
+ Init method directly after this constructor has finished.
+ @param pSdWindow
+ The window whose content is to be made accessible.
+ @param pViewShell
+ The view shell associated with the given window.
+ @param rxController
+ The controller from which to get the model.
+ @param rxParent
+ The accessible parent of the new object. Note that this parent does
+ not necessarily correspond with the parent of the given window.
+ */
+ AccessibleDocumentViewBase (
+ ::sd::Window* pSdWindow,
+ ::sd::ViewShell* pViewShell,
+ const ::com::sun::star::uno::Reference<
+ ::com::sun::star::frame::XController>& rxController,
+ const ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible>& rxParent);
+
+ virtual ~AccessibleDocumentViewBase (void);
+
+ /** Initialize a new object. Call this method directly after creating a
+ new object. It finished the initialization begun in the constructor
+ but which needs a fully created object.
+ */
+ virtual void Init (void);
+
+ /** Define callback for listening to window child events of VCL.
+ Listen for creation or destruction of OLE objects.
+ */
+ DECL_LINK (WindowChildEventListener, VclSimpleEvent*);
+
+ //===== IAccessibleViewForwarderListener ================================
+
+ /** A view forwarder change is signalled for instance when any of the
+ window events is recieved. Thus, instead of overloading the four
+ windowResized... methods it will be sufficient in most cases just to
+ overload this method.
+ */
+ virtual void ViewForwarderChanged (ChangeType aChangeType,
+ const IAccessibleViewForwarder* pViewForwarder);
+
+ //===== XAccessibleContext ==============================================
+
+ virtual ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible> SAL_CALL
+ getAccessibleParent (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ /** This implementation returns either 1 or 0 depending on whether there
+ is an active accessible OLE object or not.
+ */
+ virtual sal_Int32 SAL_CALL
+ getAccessibleChildCount (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ /** This implementation either returns the active accessible OLE object
+ if it exists and the given index is 0 or throws an exception.
+ */
+ virtual ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible> SAL_CALL
+ getAccessibleChild (sal_Int32 nIndex)
+ throw (::com::sun::star::uno::RuntimeException,
+ ::com::sun::star::lang::IndexOutOfBoundsException);
+
+
+ //===== 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::Rectangle SAL_CALL getBounds (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ virtual ::com::sun::star::awt::Point SAL_CALL getLocation (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ virtual ::com::sun::star::awt::Point SAL_CALL getLocationOnScreen (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ virtual ::com::sun::star::awt::Size SAL_CALL getSize (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+
+ //===== XInterface ======================================================
+
+ virtual com::sun::star::uno::Any SAL_CALL
+ queryInterface (const com::sun::star::uno::Type & rType)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ virtual void SAL_CALL
+ acquire (void)
+ throw ();
+
+ virtual void SAL_CALL
+ release (void)
+ throw ();
+
+
+ //===== XServiceInfo ====================================================
+
+ /** Returns an identifier for the implementation of this object.
+ */
+ virtual ::rtl::OUString SAL_CALL
+ getImplementationName (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString> SAL_CALL
+ getSupportedServiceNames (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+
+ //===== XTypeProvider ===================================================
+
+ virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type> SAL_CALL
+ getTypes (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+
+ //===== lang::XEventListener ============================================
+
+ virtual void SAL_CALL
+ disposing (const ::com::sun::star::lang::EventObject& rEventObject)
+ throw (::com::sun::star::uno::RuntimeException);
+
+
+ //===== XPropertyChangeListener =========================================
+
+ virtual void SAL_CALL
+ propertyChange (const ::com::sun::star::beans::PropertyChangeEvent& rEventObject)
+ throw (::com::sun::star::uno::RuntimeException);
+
+
+ //===== XWindowListener =================================================
+
+ virtual void SAL_CALL
+ windowResized (const ::com::sun::star::awt::WindowEvent& e)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ virtual void SAL_CALL
+ windowMoved (const ::com::sun::star::awt::WindowEvent& e)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ virtual void SAL_CALL
+ windowShown (const ::com::sun::star::lang::EventObject& e)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ virtual void SAL_CALL
+ windowHidden (const ::com::sun::star::lang::EventObject& e)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ //===== XFocusListener =================================================
+
+ 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);
+
+private:
+
+ // return the member maMutex;
+ virtual ::osl::Mutex&
+ implGetMutex();
+
+ // return ourself as context in default case
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext >
+ implGetAccessibleContext()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ // return sal_False in default case
+ virtual sal_Bool
+ implIsSelected( sal_Int32 nAccessibleChildIndex )
+ throw (::com::sun::star::uno::RuntimeException);
+
+ // return nothing in default case
+ virtual void
+ implSelect( sal_Int32 nAccessibleChildIndex, sal_Bool bSelect )
+ throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+
+protected:
+ /// The core window that is made accessible.
+ ::sd::Window* mpWindow;
+
+ /// The API window that is made accessible.
+ ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow>
+ mxWindow;
+
+ /// The controller of the window in which this view is displayed.
+ ::com::sun::star::uno::Reference< ::com::sun::star::frame::XController>
+ mxController;
+
+ /// Model of the document.
+ ::com::sun::star::uno::Reference < ::com::sun::star::frame::XModel>
+ mxModel;
+
+ // Bundle of information that is passed down the shape tree.
+ AccessibleShapeTreeInfo maShapeTreeInfo;
+
+ /// The view forwarder passed to the children manager.
+ AccessibleViewForwarder maViewForwarder;
+
+ /** Accessible OLE object. Set or removed by the
+ <member>SetAccessibleOLEObject</member> method.
+ */
+ ::com::sun::star::uno::Reference <
+ ::com::sun::star::accessibility::XAccessible>
+ mxAccessibleOLEObject;
+
+ Link maWindowLink;
+
+ // This method is called from the component helper base class while
+ // disposing.
+ virtual void SAL_CALL disposing (void);
+
+ /** Create a name string. The current name is not modified and,
+ therefore, no events are send. This method is usually called once
+ by the <member>getAccessibleName</member> method of the base class.
+ @return
+ A name string.
+ */
+ virtual ::rtl::OUString
+ CreateAccessibleName ()
+ throw (::com::sun::star::uno::RuntimeException);
+
+ /** Create a description string. The current description is not
+ modified and, therefore, no events are send. This method is usually
+ called once by the <member>getAccessibleDescription</member> method
+ of the base class.
+ @return
+ A description string.
+ */
+ virtual ::rtl::OUString
+ CreateAccessibleDescription ()
+ throw (::com::sun::star::uno::RuntimeException);
+
+ /** This method is called when (after) the frame containing this
+ document has been activated. Can be used to send FOCUSED state
+ changes for the currently selected element.
+
+ Note: Currently used as a substitute for FocusGained. Should be
+ renamed in the future.
+ */
+ virtual void Activated (void);
+
+ /** This method is called when (before or after?) the frame containing
+ this document has been deactivated. Can be used to send FOCUSED
+ state changes for the currently selected element.
+
+ Note: Currently used as a substitute for FocusLost. Should be
+ renamed in the future.
+ */
+ virtual void Deactivated (void);
+
+ /** Set or remove the currently active accessible OLE object.
+ @param xOLEObject
+ If this is a valid reference then a child event is send that
+ informs the listeners of a new child. If there has already been
+ an active accessible OLE object then this is removed first and
+ appropriate events are send.
+
+ If this is an empty reference then the currently active
+ accessible OLE object (if there is one) is removed.
+ */
+ virtual void SetAccessibleOLEObject (
+ const ::com::sun::star::uno::Reference <
+ ::com::sun::star::accessibility::XAccessible>& xOLEObject);
+
+ virtual void impl_dispose (void);
+};
+
+} // end of namespace accessibility
+
+#endif
diff --git a/sd/source/ui/inc/AccessibleDrawDocumentView.hxx b/sd/source/ui/inc/AccessibleDrawDocumentView.hxx
new file mode 100644
index 000000000000..512520266ef2
--- /dev/null
+++ b/sd/source/ui/inc/AccessibleDrawDocumentView.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 _SD_ACCESSIBILITY_ACCESSIBLE_DRAW_DOCUMENT_VIEW_HXX
+#define _SD_ACCESSIBILITY_ACCESSIBLE_DRAW_DOCUMENT_VIEW_HXX
+
+#include "AccessibleDocumentViewBase.hxx"
+
+namespace accessibility {
+
+
+/** This class makes draw documents in the general view modes
+ accessible. It passes all shapes on the current draw page to a
+ children manager and additionally creates a new shape that
+ represents the actual draw page.
+
+ Please see the documentation of the base class for further
+ explanations of the individual methods.
+*/
+class AccessibleDrawDocumentView :
+ public AccessibleDocumentViewBase
+{
+public:
+ //===== internal ========================================================
+
+ AccessibleDrawDocumentView (::sd::Window* pSdWindow,
+ ::sd::ViewShell* pViewShell,
+ const ::com::sun::star::uno::Reference<
+ ::com::sun::star::frame::XController>& rxController,
+ const ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible>& rxParent);
+
+ virtual ~AccessibleDrawDocumentView (void);
+
+ /** Complete the initialization begun in the constructor.
+ */
+ virtual void Init (void);
+
+
+ //===== IAccessibleViewForwarderListener ================================
+
+ virtual void ViewForwarderChanged (ChangeType aChangeType,
+ const IAccessibleViewForwarder* pViewForwarder);
+
+ //===== XAccessibleContext ==============================================
+
+ virtual sal_Int32 SAL_CALL
+ getAccessibleChildCount (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible> SAL_CALL
+ getAccessibleChild (sal_Int32 nIndex)
+ throw (::com::sun::star::uno::RuntimeException,
+ ::com::sun::star::lang::IndexOutOfBoundsException);
+
+
+ //===== lang::XEventListener ============================================
+
+ virtual void SAL_CALL
+ disposing (const ::com::sun::star::lang::EventObject& rEventObject)
+ throw (::com::sun::star::uno::RuntimeException);
+
+
+ //===== XPropertyChangeListener =========================================
+
+ virtual void SAL_CALL
+ propertyChange (const ::com::sun::star::beans::PropertyChangeEvent& rEventObject)
+ throw (::com::sun::star::uno::RuntimeException);
+
+protected:
+
+ //===== XServiceInfo ====================================================
+
+ virtual ::rtl::OUString SAL_CALL
+ getImplementationName (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString> SAL_CALL
+ getSupportedServiceNames (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+
+ virtual sal_Bool
+ implIsSelected( sal_Int32 nAccessibleChildIndex )
+ throw (::com::sun::star::uno::RuntimeException);
+
+ /** Select or deselect the specified child or all children if the given
+ index has the special value ACCESSIBLE_SELECTION_CHILD_ALL.
+ Selecting or deselecting a child sets or resets the
+ <const>SELECTED</const> state and selects or deslects the UNO shape
+ beeing made accessible by the child.
+ @param nAccessibleChildIndex
+ Index of the child to select or deselect. If the parameter has
+ the value ACCESSIBLE_SELECTION_CHILD_ALL then all children are
+ selected or deslected.
+ @param bSelect
+ Indicates whether to select or deselect the specified child
+ reps. children.
+ */
+ virtual void
+ implSelect( sal_Int32 nAccessibleChildIndex, sal_Bool bSelect )
+ throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+
+protected:
+ /** This object manages the shapes of the represented draw page. It is
+ responsible to determine the visible shapes and create on demand the
+ accessible objects representing them.
+ */
+ ChildrenManager* mpChildrenManager;
+
+ // This method is called from the component helper base class while
+ // disposing.
+ virtual void SAL_CALL disposing (void);
+
+ /** Create a shape the represents the page as seen on the screen.
+ */
+ AccessiblePageShape* CreateDrawPageShape (void);
+
+ /// Create an accessible name that contains the current view mode.
+ virtual ::rtl::OUString
+ CreateAccessibleName ()
+ throw (::com::sun::star::uno::RuntimeException);
+
+ /** Create an accessible description that contains the current
+ view mode.
+ */
+ virtual ::rtl::OUString
+ CreateAccessibleDescription ()
+ throw (::com::sun::star::uno::RuntimeException);
+
+ /** Make sure that the currently focused shape sends a FOCUSED state
+ change event indicating that it has (regained) the focus.
+ */
+ virtual void Activated (void);
+
+ /** Make sure that the currently focused shape sends a FOCUSED state
+ change event indicating that it has lost the focus.
+ */
+ virtual void Deactivated (void);
+
+ virtual void impl_dispose (void);
+
+private:
+ void UpdateAccessibleName (void);
+};
+
+} // end of namespace accessibility
+
+#endif
diff --git a/sd/source/ui/inc/AccessibleOutlineEditSource.hxx b/sd/source/ui/inc/AccessibleOutlineEditSource.hxx
new file mode 100755
index 000000000000..f40d735c5e64
--- /dev/null
+++ b/sd/source/ui/inc/AccessibleOutlineEditSource.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 SD_ACCESSIBILITY_ACCESSIBLE_OUTLINE_EDITSOURCE_HXX
+#define SD_ACCESSIBILITY_ACCESSIBLE_OUTLINE_EDITSOURCE_HXX
+
+#include <memory>
+#include <vcl/svapp.hxx>
+#include <svl/brdcst.hxx>
+#include <svl/lstner.hxx>
+#include <editeng/unoedsrc.hxx>
+#include <editeng/editdata.hxx>
+#include <editeng/unoforou.hxx>
+#include <editeng/unoviwou.hxx>
+
+class OutlinerView;
+class SdrOutliner;
+class SdrView;
+class Window;
+
+namespace accessibility
+{
+ /** Implementation of the SvxEditSource interface in the SdOutlineView
+
+ This class connects the SdOutlineView and its EditEngine
+ outliner with the AccessibleTextHelper, which provides all
+ necessary functionality to make the outliner text accessible
+
+ @see SvxEditSource
+ @see SvxViewForwarder
+ */
+ class AccessibleOutlineEditSource : public SvxEditSource, public SvxViewForwarder, public SfxBroadcaster, public SfxListener
+ {
+ public:
+ /// Create an SvxEditSource interface for the given Outliner
+ AccessibleOutlineEditSource(
+ SdrOutliner& rOutliner,
+ SdrView& rView,
+ OutlinerView& rOutlView,
+ const ::Window& rViewWindow );
+ virtual ~AccessibleOutlineEditSource();
+
+ /// This method is disabled and always returns NULL
+ virtual SvxEditSource* Clone() const;
+ virtual SvxTextForwarder* GetTextForwarder();
+ virtual SvxViewForwarder* GetViewForwarder();
+ virtual SvxEditViewForwarder* GetEditViewForwarder( sal_Bool bCreate = sal_False );
+ virtual void UpdateData();
+ virtual SfxBroadcaster& GetBroadcaster() const;
+
+ // the view forwarder
+ virtual sal_Bool IsValid() const;
+ virtual Rectangle GetVisArea() const;
+ virtual Point LogicToPixel( const Point& rPoint, const MapMode& rMapMode ) const;
+ virtual Point PixelToLogic( const Point& rPoint, const MapMode& rMapMode ) const;
+
+ // SfxListener
+ virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
+
+ private:
+
+ // declared, but not defined
+ AccessibleOutlineEditSource( const AccessibleOutlineEditSource& );
+ AccessibleOutlineEditSource& operator=( const AccessibleOutlineEditSource& );
+
+ DECL_LINK( NotifyHdl, EENotify* );
+
+ SdrView& mrView;
+ const ::Window& mrWindow;
+ SdrOutliner* mpOutliner;
+ OutlinerView* mpOutlinerView;
+
+ SvxOutlinerForwarder mTextForwarder;
+ SvxDrawOutlinerViewForwarder mViewForwarder;
+
+ };
+
+} // end of namespace accessibility
+
+#endif
diff --git a/sd/source/ui/inc/AccessibleOutlineView.hxx b/sd/source/ui/inc/AccessibleOutlineView.hxx
new file mode 100644
index 000000000000..44e705f6dce5
--- /dev/null
+++ b/sd/source/ui/inc/AccessibleOutlineView.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 SD_ACCESSIBILITY_ACCESSIBLE_OUTLINE_VIEW_HXX
+#define SD_ACCESSIBILITY_ACCESSIBLE_OUTLINE_VIEW_HXX
+
+#include "AccessibleDocumentViewBase.hxx"
+#include <svx/AccessibleTextHelper.hxx>
+
+namespace sd {
+class OutlineViewShell;
+class Window;
+}
+
+namespace accessibility {
+
+
+/** This class makes the Impress outline view accessible.
+
+ Please see the documentation of the base class for further
+ explanations of the individual methods. This class is a mere
+ wrapper around the AccessibleTextHelper class; as basically the
+ Outline View is a big Outliner.
+*/
+class AccessibleOutlineView
+ : public AccessibleDocumentViewBase
+{
+public:
+ AccessibleOutlineView (
+ ::sd::Window* pSdWindow,
+ ::sd::OutlineViewShell* pViewShell,
+ const ::com::sun::star::uno::Reference<
+ ::com::sun::star::frame::XController>& rxController,
+ const ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible>& rxParent);
+
+ virtual ~AccessibleOutlineView (void);
+
+ /** Complete the initialization begun in the constructor.
+ */
+ virtual void Init (void);
+
+
+ //===== IAccessibleViewForwarderListener ================================
+
+ virtual void ViewForwarderChanged (ChangeType aChangeType,
+ const IAccessibleViewForwarder* pViewForwarder);
+
+ //===== XAccessibleContext ==============================================
+
+ virtual sal_Int32 SAL_CALL
+ getAccessibleChildCount (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible> SAL_CALL
+ getAccessibleChild (sal_Int32 nIndex)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ //===== XAccessibleEventBroadcaster ========================================
+
+ 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);
+
+ using cppu::WeakComponentImplHelperBase::addEventListener;
+ using cppu::WeakComponentImplHelperBase::removeEventListener;
+
+ //===== XServiceInfo ====================================================
+
+ /** Returns an identifier for the implementation of this object.
+ */
+ virtual ::rtl::OUString SAL_CALL
+ getImplementationName (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ //===== lang::XEventListener ============================================
+
+ virtual void SAL_CALL
+ disposing (const ::com::sun::star::lang::EventObject& rEventObject)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ //===== XPropertyChangeListener =========================================
+
+ virtual void SAL_CALL
+ propertyChange (const ::com::sun::star::beans::PropertyChangeEvent& rEventObject)
+ throw (::com::sun::star::uno::RuntimeException);
+
+
+protected:
+
+ // overridden, as we hold the listeners ourselves
+ virtual void FireEvent (const ::com::sun::star::accessibility::AccessibleEventObject& aEvent);
+
+ // overridden to detect focus changes
+ virtual void Activated (void);
+
+ // overridden to detect focus changes
+ virtual void Deactivated (void);
+
+ // declared, but not defined
+ AccessibleOutlineView( const AccessibleOutlineView& );
+ AccessibleOutlineView& operator= ( const AccessibleOutlineView& );
+
+ // This method is called from the component helper base class while disposing.
+ virtual void SAL_CALL disposing (void);
+
+ /// Create an accessible name that contains the current view mode.
+ virtual ::rtl::OUString
+ CreateAccessibleName ()
+ throw (::com::sun::star::uno::RuntimeException);
+
+ /// Create an accessible description that contains the current
+ /// view mode.
+ virtual ::rtl::OUString
+ CreateAccessibleDescription ()
+ throw (::com::sun::star::uno::RuntimeException);
+
+private:
+
+ /// Invalidate text helper, updates visible children
+ void UpdateChildren();
+
+ AccessibleTextHelper maTextHelper;
+
+};
+
+} // end of namespace accessibility
+
+#endif
diff --git a/sd/source/ui/inc/AccessiblePageShape.hxx b/sd/source/ui/inc/AccessiblePageShape.hxx
new file mode 100644
index 000000000000..e92bbfb91f41
--- /dev/null
+++ b/sd/source/ui/inc/AccessiblePageShape.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 _SD_ACCESSIBILITY_ACCESSIBLE_PAGE_SHAPE_HXX
+#define _SD_ACCESSIBILITY_ACCESSIBLE_PAGE_SHAPE_HXX
+
+#include <svx/AccessibleShape.hxx>
+#include <svx/AccessibleShapeTreeInfo.hxx>
+#include <svx/IAccessibleViewForwarderListener.hxx>
+#include <com/sun/star/accessibility/XAccessible.hpp>
+#include <com/sun/star/accessibility/XAccessibleExtendedComponent.hpp>
+#include <com/sun/star/accessibility/AccessibleRole.hpp>
+#include <com/sun/star/drawing/XDrawPage.hpp>
+#include <com/sun/star/lang/XEventListener.hpp>
+
+#include <svx/AccessibleTextHelper.hxx>
+
+namespace accessibility {
+
+/** A page shape represents the actual page as seen on the screen.
+*/
+class AccessiblePageShape
+ : public AccessibleShape
+{
+public:
+ //===== internal ========================================================
+
+ /** Create a new accessible object that makes the given shape accessible.
+ @param rxParent
+ The accessible parent object. It will be used, for example when
+ the <member>getIndexInParent</member> method is called.
+ @param rShapeTreeInfo
+ Bundel of information passed to this shape and all of its desendants.
+ @param nIndex
+ Index used to disambiguate between objects that have the same
+ name. Passing a value of -1 leads to the use of the object's
+ z-order instead. Because that is not a good substitute, better
+ pass an ever increasing counter.
+ @attention
+ Always call the <member>init</member> method after creating a
+ new accessible shape. This is one way to overcome the potential
+ problem of registering the new object with e.g. event
+ broadcasters. That would delete the new object if a broadcaster
+ would not keep a strong reference to the new object.
+ */
+ AccessiblePageShape (
+ const ::com::sun::star::uno::Reference<
+ ::com::sun::star::drawing::XDrawPage>& rxPage,
+ const ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible>& rxParent,
+ const AccessibleShapeTreeInfo& rShapeTreeInfo,
+ long nIndex = -1);
+
+ virtual ~AccessiblePageShape (void);
+
+ /** Initialize a new shape. See the documentation of the constructor
+ for the reason of this method's existence.
+ */
+ virtual void Init (void);
+
+ //===== XAccessibleContext ==============================================
+
+ /// Returns always 0 because there can be no children.
+ virtual sal_Int32 SAL_CALL
+ getAccessibleChildCount (void)
+ throw ();
+
+ /** Return the specified child.
+ @param nIndex
+ Index of the requested child.
+ @return
+ Reference of the requested child which is the accessible object
+ of a visible shape.
+ @raises IndexOutOfBoundsException
+ Throws always an exception because there are no children.
+ */
+ virtual ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible> SAL_CALL
+ getAccessibleChild (sal_Int32 nIndex)
+ throw (::com::sun::star::uno::RuntimeException);
+
+
+ //===== XAccessibleComponent ============================================
+
+ virtual ::com::sun::star::awt::Rectangle SAL_CALL getBounds (void)
+ 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);
+
+ //===== XComponent ======================================================
+
+ virtual void SAL_CALL
+ dispose (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+
+ //===== XServiceInfo ====================================================
+
+ virtual ::rtl::OUString SAL_CALL
+ getImplementationName (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString> SAL_CALL
+ getSupportedServiceNames (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+
+ //===== lang::XEventListener ============================================
+
+ virtual void SAL_CALL
+ disposing (const ::com::sun::star::lang::EventObject& Source)
+ throw (::com::sun::star::uno::RuntimeException);
+
+
+ using AccessibleShape::disposing;
+
+protected:
+ /** Create a base name string that contains the accessible name.
+ */
+ virtual ::rtl::OUString
+ CreateAccessibleBaseName (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ virtual ::rtl::OUString
+ CreateAccessibleName (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ /// Create a description string that contains the accessible description.
+ virtual ::rtl::OUString
+ CreateAccessibleDescription (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+private:
+ ::com::sun::star::uno::Reference<
+ ::com::sun::star::drawing::XDrawPage> mxPage;
+
+ /** Don't use the default constructor. Use the public constructor that
+ takes the original shape and the parent as arguments instead.
+ */
+ explicit AccessiblePageShape (void);
+ /// Don't use the copy constructor. Is there any use for it?
+ explicit AccessiblePageShape (const AccessiblePageShape&);
+ /// Don't use the assignment operator. Do we need this?
+ AccessibleShape& operator= (const AccessiblePageShape&);
+};
+
+} // end of namespace accessibility
+
+#endif
diff --git a/sd/source/ui/inc/AccessiblePresentationGraphicShape.hxx b/sd/source/ui/inc/AccessiblePresentationGraphicShape.hxx
new file mode 100644
index 000000000000..93c8f33444f2
--- /dev/null
+++ b/sd/source/ui/inc/AccessiblePresentationGraphicShape.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 _SD_ACCESSIBILITY_ACCESSIBLE_PRESENTATION_GRAPHIC_SHAPE_HXX
+#define _SD_ACCESSIBILITY_ACCESSIBLE_PRESENTATION_GRAPHIC_SHAPE_HXX
+
+#include <svx/AccessibleGraphicShape.hxx>
+
+namespace accessibility {
+
+/** This class makes Impress shapes accessible.
+*/
+class AccessiblePresentationGraphicShape
+ : public AccessibleGraphicShape
+{
+public:
+ //===== internal ========================================================
+ AccessiblePresentationGraphicShape (
+ const AccessibleShapeInfo& rShapeInfo,
+ const AccessibleShapeTreeInfo& rShapeTreeInfo);
+ virtual ~AccessiblePresentationGraphicShape (void);
+
+ //===== XServiceInfo ====================================================
+
+ /** Returns an identifier for the implementation of this object.
+ */
+ virtual ::rtl::OUString SAL_CALL
+ getImplementationName (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ //===== internal ========================================================
+
+ /// Create a name string that contains the accessible name.
+ virtual ::rtl::OUString
+ CreateAccessibleBaseName ()
+ throw (::com::sun::star::uno::RuntimeException);
+
+ /// Create a description string that contains the accessible description.
+ virtual ::rtl::OUString
+ CreateAccessibleDescription ()
+ throw (::com::sun::star::uno::RuntimeException);
+};
+
+} // end of namespace accessibility
+
+#endif
diff --git a/sd/source/ui/inc/AccessiblePresentationOLEShape.hxx b/sd/source/ui/inc/AccessiblePresentationOLEShape.hxx
new file mode 100644
index 000000000000..e03ed7ef4374
--- /dev/null
+++ b/sd/source/ui/inc/AccessiblePresentationOLEShape.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 _SD_ACCESSIBILITY_ACCESSIBLE_PRESENTATION_OLE_SHAPE_HXX
+#define _SD_ACCESSIBILITY_ACCESSIBLE_PRESENTATION_OLE_SHAPE_HXX
+
+#include <svx/AccessibleOLEShape.hxx>
+
+namespace accessibility {
+
+/** This class makes Impress shapes accessible.
+*/
+class AccessiblePresentationOLEShape
+ : public AccessibleOLEShape
+{
+public:
+ //===== internal ========================================================
+ AccessiblePresentationOLEShape (
+ const AccessibleShapeInfo& rShapeInfo,
+ const AccessibleShapeTreeInfo& rShapeTreeInfo);
+ virtual ~AccessiblePresentationOLEShape (void);
+
+ //===== XServiceInfo ====================================================
+
+ /** Returns an identifier for the implementation of this object.
+ */
+ virtual ::rtl::OUString SAL_CALL
+ getImplementationName (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ //===== internal ========================================================
+
+ /// Create a name string that contains the accessible name.
+ virtual ::rtl::OUString
+ CreateAccessibleBaseName ()
+ throw (::com::sun::star::uno::RuntimeException);
+
+ /// Create a description string that contains the accessible description.
+ virtual ::rtl::OUString
+ CreateAccessibleDescription ()
+ throw (::com::sun::star::uno::RuntimeException);
+};
+
+} // end of namespace accessibility
+
+#endif
diff --git a/sd/source/ui/inc/AccessiblePresentationShape.hxx b/sd/source/ui/inc/AccessiblePresentationShape.hxx
new file mode 100644
index 000000000000..7d716e657b1f
--- /dev/null
+++ b/sd/source/ui/inc/AccessiblePresentationShape.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 _SD_ACCESSIBILITY_ACCESSIBLE_PRESENTATION_SHAPE_HXX
+#define _SD_ACCESSIBILITY_ACCESSIBLE_PRESENTATION_SHAPE_HXX
+
+#include <svx/AccessibleShape.hxx>
+
+namespace accessibility {
+
+/** This class makes Impress shapes accessible.
+*/
+class AccessiblePresentationShape
+ : public AccessibleShape
+{
+public:
+ //===== internal ========================================================
+ AccessiblePresentationShape (
+ const AccessibleShapeInfo& rShapeInfo,
+ const AccessibleShapeTreeInfo& rShapeTreeInfo);
+ virtual ~AccessiblePresentationShape (void);
+
+ //===== XServiceInfo ====================================================
+
+ /** Returns an identifier for the implementation of this object.
+ */
+ virtual ::rtl::OUString SAL_CALL
+ getImplementationName (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ //===== internal ========================================================
+
+ /// Create a name string that contains the accessible name.
+ virtual ::rtl::OUString
+ CreateAccessibleBaseName ()
+ throw (::com::sun::star::uno::RuntimeException);
+
+ /// Create a description string that contains the accessible description.
+ virtual ::rtl::OUString
+ CreateAccessibleDescription ()
+ throw (::com::sun::star::uno::RuntimeException);
+
+private:
+ /** Don't use the default constructor. Use the public constructor that
+ takes the original shape and the parent as arguments instead.
+ */
+ AccessiblePresentationShape (void);
+
+ /// Don't use the constructor. Not yet implemented.
+ AccessiblePresentationShape (const AccessiblePresentationShape&);
+
+ /// Don't use the assignment operator. Not yet implemented.
+ AccessiblePresentationShape& operator= (const AccessiblePresentationShape&);
+};
+
+} // end of namespace accessibility
+
+#endif
diff --git a/sd/source/ui/inc/AccessibleScrollPanel.hxx b/sd/source/ui/inc/AccessibleScrollPanel.hxx
new file mode 100644
index 000000000000..ff77be75885a
--- /dev/null
+++ b/sd/source/ui/inc/AccessibleScrollPanel.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 SD_ACCESSIBILITY_ACCESSIBLE_SCROLL_PANEL_HXX
+#define SD_ACCESSIBILITY_ACCESSIBLE_SCROLL_PANEL_HXX
+
+#include "AccessibleTreeNode.hxx"
+
+namespace sd { namespace toolpanel {
+class ScrollPanel;
+} }
+
+
+namespace accessibility {
+
+/** This derived class handles the accessible children different from its
+ base class. It adds the scroll bars as children when they are visible.
+*/
+class AccessibleScrollPanel
+ : public AccessibleTreeNode
+{
+public:
+ AccessibleScrollPanel (
+ ::sd::toolpanel::ScrollPanel& rScrollPanel,
+ const ::rtl::OUString& rsName,
+ const ::rtl::OUString& rsDescription);
+ ~AccessibleScrollPanel (void);
+
+ //===== XAccessibleContext ==============================================
+
+ /// Return the number of currently visible children.
+ virtual sal_Int32 SAL_CALL
+ getAccessibleChildCount (void) throw (::com::sun::star::uno::RuntimeException);
+
+ /// Return the specified child or throw exception.
+ virtual ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible> SAL_CALL
+ getAccessibleChild (sal_Int32 nIndex)
+ throw (::com::sun::star::lang::IndexOutOfBoundsException,
+ ::com::sun::star::uno::RuntimeException);
+
+ //===== XServiceInfo ====================================================
+
+ /** Returns an identifier for the implementation of this object.
+ */
+ virtual ::rtl::OUString SAL_CALL
+ getImplementationName (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+private:
+ ::sd::toolpanel::ScrollPanel& GetScrollPanel (void) const;
+};
+
+} // end of namespace accessibility
+
+#endif
diff --git a/sd/source/ui/inc/AccessibleSlideSorterObject.hxx b/sd/source/ui/inc/AccessibleSlideSorterObject.hxx
new file mode 100644
index 000000000000..7049aff02094
--- /dev/null
+++ b/sd/source/ui/inc/AccessibleSlideSorterObject.hxx
@@ -0,0 +1,249 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef SD_ACCESSIBILITY_ACCESSIBLE_SLIDE_SORTER_OBJECT_HXX
+#define SD_ACCESSIBILITY_ACCESSIBLE_SLIDE_SORTER_OBJECT_HXX
+
+#include "MutexOwner.hxx"
+#include <cppuhelper/compbase5.hxx>
+#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/XAccessibleSelection.hpp>
+#include <com/sun/star/accessibility/XAccessibleEventBroadcaster.hpp>
+#include <com/sun/star/awt/XFocusListener.hpp>
+#include <com/sun/star/lang/XServiceInfo.hpp>
+#include <com/sun/star/lang/DisposedException.hpp>
+
+class SdPage;
+
+namespace sd { namespace slidesorter {
+class SlideSorter;
+} }
+
+namespace accessibility {
+
+
+typedef ::cppu::WeakComponentImplHelper5<
+ ::com::sun::star::accessibility::XAccessible,
+ ::com::sun::star::accessibility::XAccessibleEventBroadcaster,
+ ::com::sun::star::accessibility::XAccessibleContext,
+ ::com::sun::star::accessibility::XAccessibleComponent,
+ ::com::sun::star::lang::XServiceInfo > AccessibleSlideSorterObjectBase;
+
+
+/** This class makes page objects of the slide sorter accessible.
+*/
+class AccessibleSlideSorterObject
+ : public ::sd::MutexOwner,
+ public AccessibleSlideSorterObjectBase
+{
+public:
+ /** Create a new object that represents a page object in the slide
+ sorter.
+ @param rxParent
+ The accessible parent.
+ @param rSlideSorter
+ The slide sorter whose model manages the page.
+ @param nPageNumber
+ The number of the page in the range [0,nPageCount).
+ */
+ AccessibleSlideSorterObject(
+ const ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible >& rxParent,
+ ::sd::slidesorter::SlideSorter& rSlideSorter,
+ sal_uInt16 nPageNumber);
+ ~AccessibleSlideSorterObject (void);
+
+ /** Return the page that is made accessible by the called object.
+ */
+ SdPage* GetPage (void) const;
+
+ /** The page number as given to the constructor.
+ */
+ sal_uInt16 GetPageNumber (void) const;
+
+ void FireAccessibleEvent (
+ short nEventId,
+ const ::com::sun::star::uno::Any& rOldValue,
+ const ::com::sun::star::uno::Any& rNewValue);
+
+ virtual void SAL_CALL disposing (void);
+
+
+
+ //===== XAccessible =======================================================
+
+ virtual ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessibleContext > SAL_CALL
+ getAccessibleContext (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+
+ //===== XAccessibleEventBroadcaster =======================================
+ virtual void SAL_CALL
+ addEventListener(
+ const ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessibleEventListener >& rxListener)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ virtual void SAL_CALL
+ removeEventListener(
+ const ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessibleEventListener >& rxListener )
+ throw (::com::sun::star::uno::RuntimeException);
+
+ using cppu::WeakComponentImplHelperBase::addEventListener;
+ using cppu::WeakComponentImplHelperBase::removeEventListener;
+
+ //===== XAccessibleContext ==============================================
+
+ virtual sal_Int32 SAL_CALL
+ getAccessibleChildCount (void) throw (::com::sun::star::uno::RuntimeException);
+
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible> SAL_CALL
+ getAccessibleChild (sal_Int32 nIndex)
+ 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 (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ 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);
+
+ virtual ::rtl::OUString SAL_CALL
+ getAccessibleDescription (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ virtual ::rtl::OUString SAL_CALL
+ getAccessibleName (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleRelationSet> SAL_CALL
+ getAccessibleRelationSet (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleStateSet> SAL_CALL
+ getAccessibleStateSet (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ virtual ::com::sun::star::lang::Locale SAL_CALL
+ getLocale (void)
+ throw (::com::sun::star::uno::RuntimeException,
+ ::com::sun::star::accessibility::IllegalAccessibleComponentStateException);
+
+
+ //===== 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 (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ virtual ::com::sun::star::awt::Point SAL_CALL getLocation (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ virtual ::com::sun::star::awt::Point SAL_CALL getLocationOnScreen (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ virtual ::com::sun::star::awt::Size SAL_CALL getSize (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ virtual void SAL_CALL grabFocus (void)
+ 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);
+
+
+
+ //===== XServiceInfo ====================================================
+
+ /** Returns an identifier for the implementation of this object.
+ */
+ virtual ::rtl::OUString SAL_CALL
+ getImplementationName (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ /** Return whether the specified service is supported by this class.
+ */
+ virtual sal_Bool SAL_CALL
+ supportsService (const ::rtl::OUString& sServiceName)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ /** Returns a list of all supported services.
+ */
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString> SAL_CALL
+ getSupportedServiceNames (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+
+private:
+ ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible> mxParent;
+ sal_uInt16 mnPageNumber;
+ ::sd::slidesorter::SlideSorter& mrSlideSorter;
+ sal_uInt32 mnClientId;
+
+ /** Check whether or not the object has been disposed (or is in the
+ state of beeing disposed). If that is the case then
+ DisposedException is thrown to inform the (indirect) caller of the
+ foul deed.
+ */
+ void ThrowIfDisposed (void)
+ throw (::com::sun::star::lang::DisposedException);
+
+ /** Check whether or not the object has been disposed (or is in the
+ state of beeing disposed).
+
+ @return sal_True, if the object is disposed or in the course
+ of being disposed. Otherwise, sal_False is returned.
+ */
+ sal_Bool IsDisposed (void);
+};
+
+
+
+} // end of namespace ::accessibility
+
+#endif
diff --git a/sd/source/ui/inc/AccessibleSlideSorterView.hxx b/sd/source/ui/inc/AccessibleSlideSorterView.hxx
new file mode 100644
index 000000000000..16804e79cb8f
--- /dev/null
+++ b/sd/source/ui/inc/AccessibleSlideSorterView.hxx
@@ -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.
+ *
+ ************************************************************************/
+
+#ifndef SD_ACCESSIBILITY_ACCESSIBLE_SLIDE_SORTER_VIEW_HXX
+#define SD_ACCESSIBILITY_ACCESSIBLE_SLIDE_SORTER_VIEW_HXX
+
+#include "MutexOwner.hxx"
+#include <cppuhelper/compbase6.hxx>
+#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/XAccessibleSelection.hpp>
+#include <com/sun/star/accessibility/XAccessibleEventBroadcaster.hpp>
+#include <com/sun/star/lang/XServiceInfo.hpp>
+#include <com/sun/star/lang/DisposedException.hpp>
+#include <com/sun/star/awt/XFocusListener.hpp>
+#include <com/sun/star/document/XEventListener.hpp>
+
+
+#include <memory>
+
+class Window;
+
+namespace sd { namespace slidesorter {
+class SlideSorter;
+} }
+
+namespace accessibility {
+
+
+class AccessibleSlideSorterObject;
+
+typedef ::cppu::WeakComponentImplHelper6<
+ ::com::sun::star::accessibility::XAccessible,
+ ::com::sun::star::accessibility::XAccessibleEventBroadcaster,
+ ::com::sun::star::accessibility::XAccessibleContext,
+ ::com::sun::star::accessibility::XAccessibleComponent,
+ ::com::sun::star::accessibility::XAccessibleSelection,
+ ::com::sun::star::lang::XServiceInfo
+ > AccessibleSlideSorterViewBase;
+
+/** This class makes the SlideSorterViewShell accessible. It uses objects
+ of the AccessibleSlideSorterObject class to the make the page objects
+ accessible.
+*/
+class AccessibleSlideSorterView
+ : public ::sd::MutexOwner,
+ public AccessibleSlideSorterViewBase
+{
+public:
+ AccessibleSlideSorterView(
+ ::sd::slidesorter::SlideSorter& rSlideSorter,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible> & rxParent,
+ ::Window* pParentWindow);
+
+ virtual ~AccessibleSlideSorterView (void);
+
+ /** This method acts like a dispose call. It sends a disposing to all
+ of its listeners. It may be called twice.
+ */
+ void Destroyed (void);
+
+ void FireAccessibleEvent (
+ short nEventId,
+ const ::com::sun::star::uno::Any& rOldValue,
+ const ::com::sun::star::uno::Any& rNewValue);
+
+ virtual void SAL_CALL disposing (void);
+
+ /** Return the implementation object of the specified child.
+ @param nIndex
+ Index of the child for which to return the implementation object.
+ */
+ AccessibleSlideSorterObject* GetAccessibleChildImplementation (sal_Int32 nIndex);
+
+ //===== XAccessible =======================================================
+
+ virtual ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessibleContext > SAL_CALL
+ getAccessibleContext (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+
+ //===== XAccessibleEventBroadcaster =======================================
+ virtual void SAL_CALL
+ addEventListener(
+ const ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessibleEventListener >& rxListener)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ virtual void SAL_CALL
+ removeEventListener(
+ const ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessibleEventListener >& rxListener )
+ throw (::com::sun::star::uno::RuntimeException);
+
+ using cppu::WeakComponentImplHelperBase::addEventListener;
+ using cppu::WeakComponentImplHelperBase::removeEventListener;
+
+ //===== XAccessibleContext ==============================================
+
+ /// Return the number of currently visible children.
+ virtual sal_Int32 SAL_CALL
+ getAccessibleChildCount (void) throw (::com::sun::star::uno::RuntimeException);
+
+ /// Return the specified child or throw exception.
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible> SAL_CALL
+ getAccessibleChild (sal_Int32 nIndex)
+ throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+
+ /// Return a reference to the parent.
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible> SAL_CALL
+ getAccessibleParent (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ /// Return this objects index among the parents children.
+ virtual sal_Int32 SAL_CALL
+ getAccessibleIndexInParent (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ /// Return this object's role.
+ virtual sal_Int16 SAL_CALL
+ getAccessibleRole (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ /// Return this object's description.
+ virtual ::rtl::OUString SAL_CALL
+ getAccessibleDescription (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ /// Return the object's current name.
+ virtual ::rtl::OUString SAL_CALL
+ getAccessibleName (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ /// Return NULL to indicate that an empty relation set.
+ virtual ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessibleRelationSet> SAL_CALL
+ getAccessibleRelationSet (void)
+ 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 (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ /** Return the parents locale or throw exception if this object has no
+ parent yet/anymore.
+ */
+ virtual ::com::sun::star::lang::Locale SAL_CALL
+ getLocale (void)
+ throw (::com::sun::star::uno::RuntimeException,
+ ::com::sun::star::accessibility::IllegalAccessibleComponentStateException);
+
+ //===== XAccessibleComponent ================================================
+
+ /** The default implementation uses the result of
+ <member>getBounds</member> to determine whether the given point lies
+ inside this object.
+ */
+ virtual sal_Bool SAL_CALL containsPoint (
+ const ::com::sun::star::awt::Point& aPoint)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ /** The default implementation returns an empty reference.
+ */
+ 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);
+
+ /** The default implementation returns an empty rectangle.
+ */
+ virtual ::com::sun::star::awt::Rectangle SAL_CALL getBounds (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ /** The default implementation uses the result of
+ <member>getBounds</member> to determine the location.
+ */
+ virtual ::com::sun::star::awt::Point SAL_CALL getLocation (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ /** The default implementation returns an empty position, i.e. the
+ * result of the default constructor of <type>com::sun::star::awt::Point</type>.
+ */
+ virtual ::com::sun::star::awt::Point SAL_CALL getLocationOnScreen (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ /** The default implementation uses the result of
+ <member>getBounds</member> to determine the size.
+ */
+ virtual ::com::sun::star::awt::Size SAL_CALL getSize (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ /** The default implementation does nothing.
+ */
+ virtual void SAL_CALL grabFocus (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ /** Returns black as the default foreground color.
+ */
+ virtual sal_Int32 SAL_CALL getForeground (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ /** Returns white as the default background color.
+ */
+ virtual sal_Int32 SAL_CALL getBackground (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);
+
+
+ //===== XServiceInfo ====================================================
+
+ /** Returns an identifier for the implementation of this object.
+ */
+ virtual ::rtl::OUString SAL_CALL
+ getImplementationName (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ /** Return whether the specified service is supported by this class.
+ */
+ virtual sal_Bool SAL_CALL
+ supportsService (const ::rtl::OUString& sServiceName)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ /** Returns a list of all supported services.
+ */
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString> SAL_CALL
+ getSupportedServiceNames (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+
+private:
+ class Implementation;
+ ::std::auto_ptr<Implementation> mpImpl;
+
+ ::sd::slidesorter::SlideSorter& mrSlideSorter;
+
+ ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible> mxParent;
+
+ sal_uInt32 mnClientId;
+
+ ::Window* mpContentWindow;
+
+ /** Check whether or not the object has been disposed (or is in the
+ state of beeing disposed). If that is the case then
+ DisposedException is thrown to inform the (indirect) caller of the
+ foul deed.
+ */
+ void ThrowIfDisposed (void)
+ throw (::com::sun::star::lang::DisposedException);
+
+ /** Check whether or not the object has been disposed (or is in the
+ state of beeing disposed).
+
+ @return sal_True, if the object is disposed or in the course
+ of being disposed. Otherwise, sal_False is returned.
+ */
+ sal_Bool IsDisposed (void);
+};
+
+} // end of namespace ::accessibility
+
+#endif
diff --git a/sd/source/ui/inc/AccessibleSlideView.hxx b/sd/source/ui/inc/AccessibleSlideView.hxx
new file mode 100755
index 000000000000..3ac193b05d20
--- /dev/null
+++ b/sd/source/ui/inc/AccessibleSlideView.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 SD_ACCESSIBILITY_ACCESSIBLE_SLIDE_VIEW_HXX
+#define SD_ACCESSIBILITY_ACCESSIBLE_SLIDE_VIEW_HXX
+
+#include <cppuhelper/implbase6.hxx>
+#include <cppuhelper/implbase7.hxx>
+#include "SlideView.hxx"
+#include <com/sun/star/lang/XUnoTunnel.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/XAccessibleSelection.hpp>
+#include <com/sun/star/accessibility/XAccessibleEventBroadcaster.hpp>
+#include <com/sun/star/lang/XServiceInfo.hpp>
+
+#include <vector>
+
+class SdDrawDocument;
+class AccessibleSlideView;
+
+namespace sd {
+class SlideView;
+class Window;
+}
+
+// -----------------------------
+// - AccessibleSlideViewObject -
+// -----------------------------
+
+class AccessibleSlideViewObject : public ::cppu::WeakImplHelper6<
+ ::com::sun::star::lang::XUnoTunnel,
+ ::com::sun::star::accessibility::XAccessible,
+ ::com::sun::star::accessibility::XAccessibleEventBroadcaster,
+ ::com::sun::star::accessibility::XAccessibleContext,
+ ::com::sun::star::accessibility::XAccessibleComponent,
+ ::com::sun::star::lang::XServiceInfo >
+{
+private:
+
+ ::osl::Mutex maMutex;
+ ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > mxParent;
+ AccessibleSlideView* mpManager;
+ /// client id in the AccessibleEventNotifier queue
+ sal_uInt32 mnClientId;
+ sal_uInt16 mnPage;
+ sal_Bool mbVisible;
+ sal_Bool mbValid;
+
+private:
+
+ // Misc
+ static const ::com::sun::star::uno::Sequence< sal_Int8 >& getUnoTunnelId();
+
+ // XUnoTunnel
+ virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< sal_Int8 >& rId ) 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);
+
+ // XAccessibleEventBroadcaster
+ 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);
+
+ // 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 (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ virtual sal_Int32 SAL_CALL getBackground (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ //===== XServiceInfo ====================================================
+
+ /** Returns an identifier for the implementation of this object.
+ */
+ virtual ::rtl::OUString SAL_CALL
+ getImplementationName (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ /** Return whether the specified service is supported by this class.
+ */
+ virtual sal_Bool SAL_CALL
+ supportsService (const ::rtl::OUString& sServiceName)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ /** Returns a list of all supported services.
+ */
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString> SAL_CALL
+ getSupportedServiceNames (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+public:
+
+ static AccessibleSlideViewObject* getImplementation( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& rxData ) throw();
+
+public:
+
+ AccessibleSlideViewObject( const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& rxParent, sal_uInt16 nPage, sal_Bool bVisible );
+ ~AccessibleSlideViewObject();
+
+ void FireAccessibleEvent( short nEventId, const ::com::sun::star::uno::Any& rOldValue, const ::com::sun::star::uno::Any& rNewValue );
+
+ /** This method acts like a dispose call. It sends a disposing to all
+ of its listeners. It may be called twice.
+ */
+ void Destroyed (void);
+
+ sal_uInt16 GetPageNum() const { return mnPage; }
+
+ void SetVisible( sal_Bool bVisible );
+ sal_Bool IsVisible() const;
+};
+
+// -----------------------
+// - AccessibleSlideView -
+// -----------------------
+
+class AccessibleSlideView : public ::cppu::WeakImplHelper7<
+ ::com::sun::star::lang::XUnoTunnel,
+ ::com::sun::star::accessibility::XAccessible,
+ ::com::sun::star::accessibility::XAccessibleEventBroadcaster,
+ ::com::sun::star::accessibility::XAccessibleContext,
+ ::com::sun::star::accessibility::XAccessibleComponent,
+ ::com::sun::star::accessibility::XAccessibleSelection,
+ ::com::sun::star::lang::XServiceInfo >
+{
+public:
+
+ static AccessibleSlideView* getImplementation( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& rxData ) throw();
+
+ AccessibleSlideView(
+ SdDrawDocument& rDoc,
+ ::sd::SlideView& rView,
+ ::sd::Window& rParentWindow);
+ virtual ~AccessibleSlideView (void);
+
+ void FireAccessibleEvent( short nEventId, const ::com::sun::star::uno::Any& rOldValue, const ::com::sun::star::uno::Any& rNewValue );
+
+ /** This method acts like a dispose call. It sends a disposing to all
+ of its listeners. It may be called twice.
+ */
+ void Destroyed (void);
+
+ SdDrawDocument* GetDrawDocument() const { return mpDoc; }
+ ::sd::SlideView* GetSlideView() const { return mpView; }
+ ::sd::Window* GetParentWindow() const { return mpParentWindow; }
+
+ void SetPageVisible( sal_uInt16 nPage, sal_Bool bVisible );
+ void Reset();
+ void FocusHasChanged( sal_uInt16 nOldFocusPage, sal_uInt16 nNewFocusPage );
+
+
+private:
+ ::osl::Mutex maMutex;
+ ::std::vector< ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > > maSlidePageObjects;
+ SdDrawDocument* mpDoc;
+ ::sd::SlideView* mpView;
+ ::sd::Window* mpParentWindow;
+ /// client id in the AccessibleEventNotifier queue
+ sal_uInt32 mnClientId;
+
+ // internal
+ static const ::com::sun::star::uno::Sequence< sal_Int8 >& getUnoTunnelId();
+ sal_Int32 ImplGetVisibleChildCount() const;
+ ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > ImplGetVisibleChild( sal_Int32 nVisibleChild ) const;
+
+ // XUnoTunnel
+ virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< sal_Int8 >& rId ) 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);
+
+ // XAccessibleEventBroadcaster
+ 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);
+
+ // 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 (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ virtual sal_Int32 SAL_CALL getBackground (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);
+
+ //===== XServiceInfo ====================================================
+
+ /** Returns an identifier for the implementation of this object.
+ */
+ virtual ::rtl::OUString SAL_CALL
+ getImplementationName (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ /** Return whether the specified service is supported by this class.
+ */
+ virtual sal_Bool SAL_CALL
+ supportsService (const ::rtl::OUString& sServiceName)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ /** Returns a list of all supported services.
+ */
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString> SAL_CALL
+ getSupportedServiceNames (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+};
+
+#endif
diff --git a/sd/source/ui/inc/AccessibleTreeNode.hxx b/sd/source/ui/inc/AccessibleTreeNode.hxx
new file mode 100755
index 000000000000..ce9730936659
--- /dev/null
+++ b/sd/source/ui/inc/AccessibleTreeNode.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 SD_ACCESSIBILITY_ACCESSIBLE_BASE_HXX
+#define SD_ACCESSIBILITY_ACCESSIBLE_BASE_HXX
+
+#include "MutexOwner.hxx"
+#include <cppuhelper/compbase5.hxx>
+#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/lang/XServiceInfo.hpp>
+#include <com/sun/star/lang/DisposedException.hpp>
+#include <com/sun/star/awt/XFocusListener.hpp>
+#include <com/sun/star/document/XEventListener.hpp>
+#include <unotools/accessiblestatesethelper.hxx>
+#include <tools/link.hxx>
+#include <rtl/ref.hxx>
+
+class VclWindowEvent;
+
+namespace sd { namespace toolpanel {
+class TreeNode;
+class TreeNodeStateChangeEvent;
+} }
+
+
+namespace utl {
+class AccessibleStateSetHelper;
+}
+
+namespace accessibility {
+
+
+class AccessibleSlideSorterObject;
+
+typedef ::cppu::WeakComponentImplHelper5<
+ ::com::sun::star::accessibility::XAccessible,
+ ::com::sun::star::accessibility::XAccessibleEventBroadcaster,
+ ::com::sun::star::accessibility::XAccessibleContext,
+ ::com::sun::star::accessibility::XAccessibleComponent,
+ ::com::sun::star::lang::XServiceInfo
+ > AccessibleTreeNodeBase;
+
+/** This class makes objects based on the sd::toolpanel::TreeNode
+ accessible.
+*/
+class AccessibleTreeNode
+ : public ::sd::MutexOwner,
+ public AccessibleTreeNodeBase
+{
+public:
+ /** Create a new object for the given tree node. The accessible parent
+ is taken from the window returned by GetAccessibleParent() when
+ called at the window of the node.
+ @param rNode
+ The TreeNode to make accessible.
+ @param rsName
+ The accessible name that will be returned by getAccessibleName().
+ @param rsDescription
+ The accessible description that will be returned by
+ getAccessibleDescription().
+ @param eRole
+ The role that will be returned by getAccessibleRole().
+ */
+ AccessibleTreeNode(
+ ::sd::toolpanel::TreeNode& rNode,
+ const ::rtl::OUString& rsName,
+ const ::rtl::OUString& rsDescription,
+ sal_Int16 eRole);
+
+ void FireAccessibleEvent (
+ short nEventId,
+ const ::com::sun::star::uno::Any& rOldValue,
+ const ::com::sun::star::uno::Any& rNewValue);
+
+ virtual void SAL_CALL disposing (void);
+
+ //===== XAccessible =======================================================
+
+ virtual ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessibleContext > SAL_CALL
+ getAccessibleContext (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+
+ //===== XAccessibleEventBroadcaster =======================================
+
+ virtual void SAL_CALL
+ addEventListener(
+ const ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessibleEventListener >& rxListener)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ virtual void SAL_CALL
+ removeEventListener(
+ const ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessibleEventListener >& rxListener )
+ throw (::com::sun::star::uno::RuntimeException);
+
+ using cppu::WeakComponentImplHelperBase::addEventListener;
+ using cppu::WeakComponentImplHelperBase::removeEventListener;
+
+ //===== XAccessibleContext ==============================================
+
+ /// Return the number of currently visible children.
+ virtual sal_Int32 SAL_CALL
+ getAccessibleChildCount (void) throw (::com::sun::star::uno::RuntimeException);
+
+ /// Return the specified child or throw exception.
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible> SAL_CALL
+ getAccessibleChild (sal_Int32 nIndex)
+ throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+
+ /// Return a reference to the parent.
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible> SAL_CALL
+ getAccessibleParent (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ /// Return this objects index among the parents children.
+ virtual sal_Int32 SAL_CALL
+ getAccessibleIndexInParent (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ /// Return this object's role.
+ virtual sal_Int16 SAL_CALL
+ getAccessibleRole (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ /// Return this object's description.
+ virtual ::rtl::OUString SAL_CALL
+ getAccessibleDescription (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ /// Return the object's current name.
+ virtual ::rtl::OUString SAL_CALL
+ getAccessibleName (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ /// Return NULL to indicate that an empty relation set.
+ virtual ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessibleRelationSet> SAL_CALL
+ getAccessibleRelationSet (void)
+ 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 (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ /** Return the parents locale or throw exception if this object has no
+ parent yet/anymore.
+ */
+ virtual ::com::sun::star::lang::Locale SAL_CALL
+ getLocale (void)
+ throw (::com::sun::star::uno::RuntimeException,
+ ::com::sun::star::accessibility::IllegalAccessibleComponentStateException);
+
+ //===== 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 (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ virtual ::com::sun::star::awt::Point SAL_CALL getLocation (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ virtual ::com::sun::star::awt::Point SAL_CALL getLocationOnScreen (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ virtual ::com::sun::star::awt::Size SAL_CALL getSize (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ virtual void SAL_CALL grabFocus (void)
+ 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);
+
+
+ //===== XServiceInfo ====================================================
+
+ /** Returns an identifier for the implementation of this object.
+ */
+ virtual ::rtl::OUString SAL_CALL
+ getImplementationName (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ /** Return whether the specified service is supported by this class.
+ */
+ virtual sal_Bool SAL_CALL
+ supportsService (const ::rtl::OUString& sServiceName)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ /** Returns a list of all supported services.
+ */
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString> SAL_CALL
+ getSupportedServiceNames (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+
+protected:
+ ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible> mxParent;
+ ::sd::toolpanel::TreeNode& mrTreeNode;
+ ::rtl::Reference< ::utl::AccessibleStateSetHelper> mrStateSet;
+
+ const ::rtl::OUString msName;
+ const ::rtl::OUString msDescription;
+ const sal_Int16 meRole;
+
+ virtual ~AccessibleTreeNode (void);
+
+ /** Check whether or not the object has been disposed (or is in the
+ state of beeing disposed). If that is the case then
+ DisposedException is thrown to inform the (indirect) caller of the
+ foul deed.
+ */
+ void ThrowIfDisposed (void)
+ throw (::com::sun::star::lang::DisposedException);
+
+ /** Check whether or not the object has been disposed (or is in the
+ state of beeing disposed).
+
+ @return sal_True, if the object is disposed or in the course
+ of being disposed. Otherwise, sal_False is returned.
+ */
+ sal_Bool IsDisposed (void);
+
+ /** Update the mpStateSet member to reflect the current state of the
+ TreeNode. When one of the states has changed since the last call
+ then an appropriate event is sent.
+ */
+ virtual void UpdateStateSet (void);
+
+ /** Update a single state and sent an event if its value changes.
+ */
+ void UpdateState(
+ sal_Int16 aState,
+ bool bValue);
+
+ DECL_LINK(StateChangeListener, ::sd::toolpanel::TreeNodeStateChangeEvent*);
+ DECL_LINK(WindowEventListener, VclWindowEvent*);
+
+private:
+ sal_uInt32 mnClientId;
+
+ /// The common part of the constructor.
+ void CommonConstructor (void);
+};
+
+} // end of namespace ::accessibility
+
+#endif
diff --git a/sd/source/ui/inc/AccessibleViewForwarder.hxx b/sd/source/ui/inc/AccessibleViewForwarder.hxx
new file mode 100755
index 000000000000..7817f2d0c4d9
--- /dev/null
+++ b/sd/source/ui/inc/AccessibleViewForwarder.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 _SD_ACCESSIBILITY_ACCESSIBLE_VIEW_FORWARDER_HXX
+#define _SD_ACCESSIBILITY_ACCESSIBLE_VIEW_FORWARDER_HXX
+
+#include <svx/IAccessibleViewForwarder.hxx>
+
+class SdrPaintView;
+class OutputDevice;
+
+namespace accessibility {
+
+
+/** <p>This class provides the means to transform between internal coordinates
+ and screen coordinates without giving direct access to the underlying
+ view. It represents a certain window. A call to
+ <method>GetVisArea</method> returns the corresponding visible
+ rectangle.</p>
+
+ @attention
+ Note, that modifications of the underlying view that lead to
+ different transformations between internal and screen coordinates or
+ change the validity of the forwarder have to be signaled seperately.
+*/
+class AccessibleViewForwarder
+ : public IAccessibleViewForwarder
+{
+public:
+ //===== internal ========================================================
+
+ AccessibleViewForwarder (SdrPaintView* pView, OutputDevice& rDevice);
+
+ virtual ~AccessibleViewForwarder (void);
+
+ //===== IAccessibleViewforwarder ========================================
+
+ /** This method informs you about the state of the forwarder. Do not
+ use it when the returned value is <false/>.
+
+ @return
+ Return <true/> if the view forwarder is valid and <false/> else.
+ */
+ virtual sal_Bool IsValid (void) const;
+
+ /** Returns the area of the underlying document that is visible in the
+ * corresponding window.
+
+ @return
+ The rectangle of the visible part of the document.
+ */
+ virtual Rectangle GetVisibleArea() const;
+
+ /** Transform the specified point from internal coordinates to an
+ absolute screen position.
+
+ @param rPoint
+ Point in internal coordinates.
+
+ @return
+ The same point but in screen coordinates relative to the upper
+ left corner of the (current) screen.
+ */
+ virtual Point LogicToPixel (const Point& rPoint) const;
+
+ /** Transform the specified size from internal coordinates to a screen
+ * position.
+
+ @param rSize
+ Size in internal coordinates.
+
+ @return
+ The same size but in screen coordinates.
+ */
+ virtual Size LogicToPixel (const Size& rSize) const;
+
+ /** Transform the specified point from absolute screen coordinates to
+ internal coordinates.
+
+ @param rPoint
+ Point in screen coordinates relative to the upper left corner of
+ the (current) screen.
+
+ @return
+ The same point but in internal coordinates.
+ */
+ virtual Point PixelToLogic (const Point& rPoint) const;
+
+ /** Transform the specified Size from screen coordinates to internal
+ coordinates.
+
+ @param rSize
+ Size in screen coordinates.
+
+ @return
+ The same size but in internal coordinates.
+ */
+ virtual Size PixelToLogic (const Size& rSize) const;
+
+protected:
+ SdrPaintView* mpView;
+ sal_uInt16 mnWindowId;
+ OutputDevice& mrDevice;
+
+private:
+ AccessibleViewForwarder (AccessibleViewForwarder&);
+ AccessibleViewForwarder& operator= (AccessibleViewForwarder&);
+};
+
+} // end of namespace accessibility
+
+#endif
diff --git a/sd/source/ui/inc/AnimationChildWindow.hxx b/sd/source/ui/inc/AnimationChildWindow.hxx
new file mode 100755
index 000000000000..dedb54d10365
--- /dev/null
+++ b/sd/source/ui/inc/AnimationChildWindow.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 SD_ANIMATION_CHILD_WINDOW_HXX
+#define SD_ANIMATION_CHILD_WINDOW_HXX
+
+#include <tools/solar.h>
+#include <sfx2/childwin.hxx>
+
+class Window;
+class SfxBindings;
+
+namespace sd {
+
+class AnimationChildWindow
+ : public SfxChildWindow
+{
+public:
+ AnimationChildWindow(
+ ::Window*,
+ sal_uInt16,
+ SfxBindings*,
+ SfxChildWinInfo*);
+
+ SFX_DECL_CHILDWINDOW(AnimationChildWindow);
+};
+
+} // end of namespace sd
+
+#endif
+
diff --git a/sd/source/ui/inc/BezierObjectBar.hxx b/sd/source/ui/inc/BezierObjectBar.hxx
new file mode 100644
index 000000000000..ae54243a58e2
--- /dev/null
+++ b/sd/source/ui/inc/BezierObjectBar.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 SD_BEZIER_OBJECT_BAR_HXX
+#define SD_BEZIER_OBJECT_BAR_HXX
+
+#include <sfx2/module.hxx>
+#include <sfx2/shell.hxx>
+#include "glob.hxx"
+
+namespace sd {
+
+class View;
+class ViewShell;
+
+class BezierObjectBar
+ : public SfxShell
+{
+public:
+ TYPEINFO();
+ SFX_DECL_INTERFACE(SD_IF_SDDRAWBEZIEROBJECTBAR)
+
+ BezierObjectBar (ViewShell* pSdViewShell, View* pSdView);
+ virtual ~BezierObjectBar (void);
+
+ void GetAttrState(SfxItemSet& rSet);
+ void Execute(SfxRequest &rReq);
+
+protected:
+ View* mpView;
+ ViewShell* mpViewSh;
+};
+
+} // end of namespace sd
+
+#endif
diff --git a/sd/source/ui/inc/BreakDlg.hxx b/sd/source/ui/inc/BreakDlg.hxx
new file mode 100755
index 000000000000..7a7ff35ac721
--- /dev/null
+++ b/sd/source/ui/inc/BreakDlg.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 SD_BREAK_DLG_HXX
+#define SD_BREAK_DLG_HXX
+
+#include <vcl/group.hxx>
+#ifndef _SV_BUTTON_HXX //autogen
+#include <vcl/button.hxx>
+#endif
+#include <svx/dlgctrl.hxx>
+#include <vcl/field.hxx>
+#include <vcl/fixed.hxx>
+#include <svtools/prgsbar.hxx>
+#include <vcl/edit.hxx>
+#include <svtools/stdctrl.hxx>
+#include <sfx2/basedlgs.hxx>
+
+class SvdProgressInfo;
+class SfxProgress;
+
+namespace sd {
+
+class DrawDocShell;
+class DrawView;
+
+/*************************************************************************
+|*
+|* Dialog zum aufbrechen von Metafiles
+|*
+\************************************************************************/
+class BreakDlg
+ : public SfxModalDialog
+{
+public:
+ BreakDlg (
+ ::Window* pWindow,
+ DrawView* pDrView,
+ DrawDocShell* pShell,
+ sal_uLong nSumActionCount,
+ sal_uLong nObjCount);
+ virtual ~BreakDlg();
+
+ short Execute();
+
+private:
+ FixedText aFtObjInfo;
+ FixedText aFtActInfo;
+ FixedText aFtInsInfo;
+
+ FixedInfo aFiObjInfo;
+ FixedInfo aFiActInfo;
+ FixedInfo aFiInsInfo;
+
+ CancelButton aBtnCancel;
+ DrawView* pDrView;
+
+ sal_Bool bCancel;
+
+ Timer aTimer;
+ SvdProgressInfo *pProgrInfo;
+ Link aLink;
+ SfxProgress *mpProgress;
+
+ DECL_LINK( CancelButtonHdl, void* );
+ DECL_LINK( UpDate, void* );
+ DECL_LINK( InitialUpdate, Timer* );
+};
+
+} // end of namespace sd
+
+#endif
diff --git a/sd/source/ui/inc/Client.hxx b/sd/source/ui/inc/Client.hxx
new file mode 100644
index 000000000000..8370b31435c3
--- /dev/null
+++ b/sd/source/ui/inc/Client.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 SD_CLIENT_HXX
+#define SD_CLIENT_HXX
+
+
+#ifndef _SFX_CLIENTSH_HXX //autogen
+#include <sfx2/ipclient.hxx>
+#endif
+class SdrGrafObj;
+class SdrOle2Obj;
+class OutlinerParaObject;
+
+namespace sd {
+
+class ViewShell;
+
+/*************************************************************************
+|*
+|* Client
+|*
+\************************************************************************/
+
+class Client : public SfxInPlaceClient
+{
+ ViewShell* mpViewShell;
+ SdrOle2Obj* pSdrOle2Obj;
+ SdrGrafObj* pSdrGrafObj;
+ OutlinerParaObject* pOutlinerParaObj;
+
+ virtual void ObjectAreaChanged();
+ virtual void RequestNewObjectArea( Rectangle& );
+ virtual void ViewChanged();
+ virtual void MakeVisible();
+
+public:
+ Client (SdrOle2Obj* pObj, ViewShell* pSdViewShell, ::Window* pWindow);
+ virtual ~Client (void);
+
+ SdrOle2Obj* GetSdrOle2Obj() const { return pSdrOle2Obj; }
+ void SetSdrGrafObj(SdrGrafObj* pObj) { pSdrGrafObj = pObj; }
+ SdrGrafObj* GetSdrGrafObj() const { return pSdrGrafObj; }
+ void SetOutlinerParaObj (OutlinerParaObject* pObj) { pOutlinerParaObj = pObj; }
+ OutlinerParaObject* GetOutlinerParaObject () const { return pOutlinerParaObj; }
+};
+
+} // end of namespace sd
+
+#endif
+
diff --git a/sd/source/ui/inc/ClientView.hxx b/sd/source/ui/inc/ClientView.hxx
new file mode 100644
index 000000000000..dd4b5e37f38e
--- /dev/null
+++ b/sd/source/ui/inc/ClientView.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 SD_CLIENT_VIEW_HXX
+#define SD_CLIENT_VIEW_HXX
+
+#include "drawview.hxx"
+
+namespace sd {
+
+class DrawViewShell;
+
+/************************************************************************
+|*
+|* Die SdClientView wird fuer DrawDocShell::Draw() verwendet
+|*
+\************************************************************************/
+
+class ClientView
+ : public DrawView
+{
+public:
+ ClientView (
+ DrawDocShell* pDocSh,
+ OutputDevice* pOutDev,
+ DrawViewShell* pShell);
+ virtual ~ClientView (void);
+
+ virtual void CompleteRedraw(OutputDevice* pOutDev, const Region& rReg, sdr::contact::ViewObjectContactRedirector* pRedirector = 0L);
+
+ // Wenn die View kein Invalidate() an den Fenstern durchfuehren soll, muss
+ // man diese beiden folgenden Methoden ueberladen und entsprechend anders
+ // reagieren.
+ virtual void InvalidateOneWin(::Window& rWin);
+ virtual void InvalidateOneWin(::Window& rWin, const Rectangle& rRect);
+};
+
+} // end of namespace sd
+
+#endif
+
diff --git a/sd/source/ui/inc/CustomAnimation.hxx b/sd/source/ui/inc/CustomAnimation.hxx
new file mode 100644
index 000000000000..84a9f848f612
--- /dev/null
+++ b/sd/source/ui/inc/CustomAnimation.hxx
@@ -0,0 +1,43 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef _SD_CUSTOMANIMATION_HXX_
+#define _SD_CUSTOMANIMATION_HXX_
+
+#ifndef _COM_SUN_STAR_FRAME_XModel_HPP_
+#include <com/sun/star/frame/XModel.hpp>
+#endif
+
+class Window;
+
+namespace sd {
+
+// extern void showCustomAnimationPane( const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XDrawView >& xView );
+ extern ::Window* createCustomAnimationPane( ::Window* pParent, const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel >& xModel );
+}
+
+#endif // _SD_CUSTOMANIMATION_HXX_
diff --git a/sd/source/ui/inc/DialogListBox.hxx b/sd/source/ui/inc/DialogListBox.hxx
new file mode 100644
index 000000000000..f04f431a4b55
--- /dev/null
+++ b/sd/source/ui/inc/DialogListBox.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 SD_DIALOGLISTBOX_HXX
+#define SD_DIALOGLISTBOX_HXX
+
+#include <vcl/ctrl.hxx>
+#include <vcl/scrbar.hxx>
+
+namespace sd
+{
+
+class DialogListBox : public Control
+{
+private:
+ ScrollBar* mpHScrollBar;
+ ScrollBar* mpVScrollBar;
+ ScrollBarBox* mpScrollBarBox;
+ ::Window* mpChild;
+ bool mbVScroll;
+ bool mbHScroll;
+ bool mbAutoHScroll;
+ Size maMinSize, maInnerSize;
+
+protected:
+ virtual void GetFocus();
+ virtual void StateChanged( StateChangedType nType );
+
+ long Notify( NotifyEvent& rNEvt );
+
+ void ImplResizeControls();
+ void ImplCheckScrollBars();
+ void ImplInitScrollBars();
+ void ImplResizeChild();
+
+ DECL_LINK( ScrollBarHdl, ScrollBar* );
+
+public:
+ DialogListBox( ::Window* pParent, WinBits nWinStyle );
+ ~DialogListBox();
+
+ void SetChildWindow( ::Window* pChild, const Size& rMinSize );
+
+ ::Window* GetPreferredKeyInputWindow();
+ void Resize();
+
+};
+
+} // namespace sd
+
+// SD_DIALOGLISTBOX_HXX
+#endif
diff --git a/sd/source/ui/inc/DocumentRenderer.hxx b/sd/source/ui/inc/DocumentRenderer.hxx
new file mode 100644
index 000000000000..0bc7db676401
--- /dev/null
+++ b/sd/source/ui/inc/DocumentRenderer.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 SD_DOCUMENT_RENDERER_HXX
+#define SD_DOCUMENT_RENDERER_HXX
+
+#include "ViewShellBase.hxx"
+
+#include <com/sun/star/view/XRenderable.hpp>
+#include <cppuhelper/compbase1.hxx>
+#include <cppuhelper/basemutex.hxx>
+#include <boost/scoped_ptr.hpp>
+
+namespace css = ::com::sun::star;
+
+namespace sd {
+
+namespace {
+ typedef ::cppu::WeakComponentImplHelper1 <
+ ::com::sun::star::view::XRenderable
+ > DocumentRendererInterfaceBase;
+}
+
+
+class DocumentRenderer
+ : protected ::cppu::BaseMutex,
+ public DocumentRendererInterfaceBase
+{
+public:
+ DocumentRenderer (ViewShellBase& rBase);
+ virtual ~DocumentRenderer (void);
+
+ // XRenderable
+ virtual sal_Int32 SAL_CALL getRendererCount (
+ const css::uno::Any& aSelection,
+ const css::uno::Sequence<css::beans::PropertyValue >& xOptions)
+ throw (css::lang::IllegalArgumentException, css::uno::RuntimeException);
+
+ virtual css::uno::Sequence<css::beans::PropertyValue> SAL_CALL getRenderer (
+ sal_Int32 nRenderer,
+ const css::uno::Any& rSelection,
+ const css::uno::Sequence<css::beans::PropertyValue>& rxOptions)
+ throw (css::lang::IllegalArgumentException, css::uno::RuntimeException);
+
+ virtual void SAL_CALL render (
+ sal_Int32 nRenderer,
+ const css::uno::Any& rSelection,
+ const css::uno::Sequence<css::beans::PropertyValue>& rxOptions)
+ throw (css::lang::IllegalArgumentException, css::uno::RuntimeException);
+
+private:
+ class Implementation;
+ ::boost::scoped_ptr<Implementation> mpImpl;
+};
+
+} // end of namespace sd
+
+#endif
diff --git a/sd/source/ui/inc/DrawController.hxx b/sd/source/ui/inc/DrawController.hxx
new file mode 100755
index 000000000000..da0b6ade7327
--- /dev/null
+++ b/sd/source/ui/inc/DrawController.hxx
@@ -0,0 +1,339 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef SD_DRAW_CONTROLLER_HXX
+#define SD_DRAW_CONTROLLER_HXX
+
+#include "ViewShell.hxx"
+
+#include <osl/mutex.hxx>
+#include <cppuhelper/propshlp.hxx>
+#include <sfx2/sfxbasecontroller.hxx>
+#include <com/sun/star/view/XSelectionSupplier.hpp>
+#include <com/sun/star/view/XFormLayerAccess.hpp>
+#include <com/sun/star/drawing/XDrawSubController.hpp>
+#include <com/sun/star/drawing/XDrawView.hpp>
+#include <com/sun/star/drawing/framework/XConfigurationController.hpp>
+#include <com/sun/star/drawing/framework/XControllerManager.hpp>
+#include <com/sun/star/drawing/framework/ModuleController.hpp>
+#include <com/sun/star/lang/XServiceInfo.hpp>
+#include <com/sun/star/lang/DisposedException.hpp>
+#include <comphelper/uno3.hxx>
+#include <cppuhelper/implbase7.hxx>
+#include <tools/weakbase.hxx>
+#include <memory>
+#include <vector>
+#include <boost/scoped_ptr.hpp>
+
+class SfxViewShell;
+class SdXImpressDocument;
+
+namespace css = ::com::sun::star;
+
+namespace sd {
+
+typedef ::cppu::ImplInheritanceHelper7 <
+ SfxBaseController,
+ ::com::sun::star::view::XSelectionSupplier,
+ ::com::sun::star::lang::XServiceInfo,
+ ::com::sun::star::drawing::XDrawView,
+ ::com::sun::star::view::XSelectionChangeListener,
+ ::com::sun::star::view::XFormLayerAccess,
+ ::com::sun::star::drawing::framework::XControllerManager,
+ ::com::sun::star::lang::XUnoTunnel
+ > DrawControllerInterfaceBase;
+
+class BroadcastHelperOwner
+{
+public:
+ BroadcastHelperOwner (::osl::Mutex& rMutex) : maBroadcastHelper(rMutex) {};
+ ::cppu::OBroadcastHelper maBroadcastHelper;
+};
+
+class DrawSubController;
+class ViewShellBase;
+class ViewShell;
+class View;
+
+
+/** The DrawController is the UNO controller for Impress and Draw. It
+ relies objects that implement the DrawSubController interface for view
+ specific behaviour. The life time of the DrawController is roughly that
+ of ViewShellBase but note that the DrawController can (in the case of a
+ reload) outlive the ViewShellBase.
+
+ The implementation of the XControllerManager interface is not yet in its
+ final form.
+*/
+class DrawController
+ : public DrawControllerInterfaceBase,
+ private BroadcastHelperOwner,
+ public ::cppu::OPropertySetHelper
+{
+public:
+ enum PropertyHandle {
+ PROPERTY_WORKAREA = 0,
+ PROPERTY_SUB_CONTROLLER = 1,
+ PROPERTY_CURRENTPAGE = 2,
+ PROPERTY_MASTERPAGEMODE = 3,
+ PROPERTY_LAYERMODE = 4,
+ PROPERTY_ACTIVE_LAYER = 5,
+ PROPERTY_ZOOMTYPE = 6,
+ PROPERTY_ZOOMVALUE = 7,
+ PROPERTY_VIEWOFFSET = 8,
+ PROPERTY_DRAWVIEWMODE = 9
+ };
+
+ /** Create a new DrawController object for the given ViewShellBase.
+ */
+ DrawController (ViewShellBase& rBase) throw();
+
+ virtual ~DrawController (void) throw();
+
+ /** Replace the currently used sub controller with the given one. This
+ new sub controller is used from now on for the view (that is the
+ main view shell to be precise) specific tasks. Call this method
+ with a suitable sub controller whenever the view shell in the center
+ pane is exchanged.
+ @param pSubController
+ The ViewShell specific sub controller or NULL when (temporarily
+ while switching to another one) there is no ViewShell displayed
+ in the center pane.
+ */
+ void SetSubController (
+ const css::uno::Reference<css::drawing::XDrawSubController>& rxSubController);
+
+ /** Call this method when the VisArea has changed.
+ */
+ void FireVisAreaChanged (const Rectangle& rVisArea) throw();
+
+ /** Call this method when the selection has changed.
+ */
+ void FireSelectionChangeListener (void) throw();
+
+ /** Call this method when the edit mode has changed.
+ */
+ void FireChangeEditMode (bool bMasterPageMode) throw();
+
+ /** Call this method when the layer mode has changed.
+ */
+ void FireChangeLayerMode (bool bLayerMode) throw();
+
+ /** Call this method when there is a new current page.
+ */
+ void FireSwitchCurrentPage (SdPage* pCurrentPage) throw();
+
+ /** Return a pointer to the ViewShellBase object that the DrawController
+ is connected to.
+ @return
+ The returned pointer is <NULL/> after a call to
+ ReleaseViewShellBase().
+ */
+ ViewShellBase* GetViewShellBase (void);
+
+ /** This method is typically called from the destructor of ViewShellBase
+ to tell the DrawController that it and its members must not access
+ the ViewShellBase anymore.
+ After this call the DrawController is semi-disposed.
+ */
+ void ReleaseViewShellBase (void);
+
+ static const ::com::sun::star::uno::Sequence<sal_Int8>& getUnoTunnelId (void);
+
+ DECLARE_XINTERFACE()
+ DECLARE_XTYPEPROVIDER()
+
+ // XComponent
+ virtual void SAL_CALL dispose() throw( ::com::sun::star::uno::RuntimeException );
+ virtual void SAL_CALL addEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL removeEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& aListener ) throw (::com::sun::star::uno::RuntimeException);
+
+ // XController
+ virtual ::sal_Bool SAL_CALL suspend( ::sal_Bool Suspend ) 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);
+
+ // XSelectionSupplier
+ virtual sal_Bool SAL_CALL select( const ::com::sun::star::uno::Any& aSelection ) throw(::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Any SAL_CALL getSelection( ) throw(::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL addSelectionChangeListener( const ::com::sun::star::uno::Reference< ::com::sun::star::view::XSelectionChangeListener >& xListener ) throw(::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL removeSelectionChangeListener( const ::com::sun::star::uno::Reference< ::com::sun::star::view::XSelectionChangeListener >& xListener ) throw(::com::sun::star::uno::RuntimeException);
+
+ // XPropertySet
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo( ) throw(::com::sun::star::uno::RuntimeException);
+
+ // XFormLayerAccess
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::form::runtime::XFormController > SAL_CALL getFormController( const ::com::sun::star::uno::Reference< ::com::sun::star::form::XForm >& Form ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::sal_Bool SAL_CALL isFormDesignMode( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL setFormDesignMode( ::sal_Bool DesignMode ) throw (::com::sun::star::uno::RuntimeException);
+
+ // XControlAccess
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl > SAL_CALL getControl( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlModel >& xModel ) throw (::com::sun::star::container::NoSuchElementException, ::com::sun::star::uno::RuntimeException);
+
+ // XDrawView
+ virtual void SAL_CALL
+ setCurrentPage (
+ const ::com::sun::star::uno::Reference<
+ ::com::sun::star::drawing::XDrawPage >& xPage)
+ throw(::com::sun::star::uno::RuntimeException);
+
+ virtual ::com::sun::star::uno::Reference<
+ ::com::sun::star::drawing::XDrawPage > SAL_CALL
+ getCurrentPage (void)
+ throw(::com::sun::star::uno::RuntimeException);
+
+
+ // lang::XEventListener
+ virtual void SAL_CALL
+ disposing (const ::com::sun::star::lang::EventObject& rEventObject)
+ throw (::com::sun::star::uno::RuntimeException);
+
+
+ // view::XSelectionChangeListener
+ virtual void SAL_CALL
+ selectionChanged (const ::com::sun::star::lang::EventObject& rEvent)
+ throw (::com::sun::star::uno::RuntimeException);
+
+
+ // XControllerManager
+
+ virtual css::uno::Reference<css::drawing::framework::XConfigurationController> SAL_CALL
+ getConfigurationController (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ virtual css::uno::Reference<css::drawing::framework::XModuleController> SAL_CALL
+ getModuleController (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+
+ // XUnoTunnel
+
+ virtual sal_Int64 SAL_CALL getSomething (const com::sun::star::uno::Sequence<sal_Int8>& rId)
+ throw (com::sun::star::uno::RuntimeException);
+
+protected:
+ /** This method must return the name to index table. This table
+ contains all property names and types of this object.
+ */
+ virtual ::cppu::IPropertyArrayHelper & SAL_CALL getInfoHelper();
+
+ virtual void FillPropertyTable (
+ ::std::vector< ::com::sun::star::beans::Property>& rProperties);
+
+ /**
+ * The same as getFastProperyValue, but return the value through
+ * rValue and nHandle is always valid.
+ */
+ virtual void SAL_CALL getFastPropertyValue(
+ ::com::sun::star::uno::Any& rValue,
+ sal_Int32 nHandle ) const;
+
+ /** Convert the value rValue and return the result in rConvertedValue and the
+ old value in rOldValue.
+ After this call the vetoable listeners are notified.
+
+ @param rConvertedValue
+ The converted value. Only set if return is true.
+ @param rOldValue
+ The old value. Only set if return is true.
+ @param nHandle
+ The handle of the proberty.
+ @return
+ <TRUE/> if the value is converted successfully.
+ @throws IllegalArgumentException
+ */
+ virtual sal_Bool SAL_CALL convertFastPropertyValue(
+ ::com::sun::star::uno::Any & rConvertedValue,
+ ::com::sun::star::uno::Any & rOldValue,
+ sal_Int32 nHandle,
+ const ::com::sun::star::uno::Any& rValue )
+ throw (::com::sun::star::lang::IllegalArgumentException);
+
+ /** The same as setFastProperyValue, but no exception is thrown and nHandle
+ is always valid. You must not broadcast the changes in this method.
+ */
+ virtual void SAL_CALL setFastPropertyValue_NoBroadcast(
+ sal_Int32 nHandle,
+ const ::com::sun::star::uno::Any& rValue )
+ throw (::com::sun::star::uno::Exception);
+
+ /** When the called object has been disposed already this method throws
+ a Disposed exception and does not return.
+ */
+ void ThrowIfDisposed (void) const
+ throw (::com::sun::star::lang::DisposedException);
+
+ using cppu::OPropertySetHelper::disposing;
+ using cppu::OPropertySetHelper::getFastPropertyValue;
+
+private:
+ /** This pointer to the ViewShellBase can be NULL (after a call to
+ ReleaseViewShellBase()).
+ */
+ ViewShellBase* mpBase;
+
+ Rectangle maLastVisArea;
+ ::tools::WeakReference<SdrPage> mpCurrentPage;
+ bool mbMasterPageMode;
+ bool mbLayerMode;
+
+ /** This flag indicates whether the called DrawController is being
+ disposed or already has been disposed.
+ */
+ bool mbDisposing;
+
+ ::std::auto_ptr< ::cppu::IPropertyArrayHelper> mpPropertyArrayHelper;
+
+ /** The current sub controller. May be NULL.
+ */
+ css::uno::Reference<css::drawing::XDrawSubController> mxSubController;
+
+ css::uno::Reference<
+ css::drawing::framework::XConfigurationController> mxConfigurationController;
+ css::uno::Reference<
+ css::drawing::framework::XModuleController> mxModuleController;
+
+ /** Send an event to all relevant property listeners that a
+ property has changed its value. The fire() method of the
+ OPropertySetHelper is wrapped by this method to handle
+ exceptions thrown by called listeners.
+ */
+ void FirePropertyChange (
+ sal_Int32 nHandle,
+ const ::com::sun::star::uno::Any& rNewValue,
+ const ::com::sun::star::uno::Any& rOldValue);
+
+ void ProvideFrameworkControllers (void);
+ void DisposeFrameworkControllers (void);
+};
+
+} // end of namespace sd
+
+#endif
diff --git a/sd/source/ui/inc/DrawDocShell.hxx b/sd/source/ui/inc/DrawDocShell.hxx
new file mode 100755
index 000000000000..65b4c1e89ffd
--- /dev/null
+++ b/sd/source/ui/inc/DrawDocShell.hxx
@@ -0,0 +1,243 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef SD_DRAW_DOC_SHELL_HXX
+#define SD_DRAW_DOC_SHELL_HXX
+
+#include <sfx2/docfac.hxx>
+#include <sfx2/objsh.hxx>
+
+#include <vcl/jobset.hxx>
+#include "glob.hxx"
+#include "sdmod.hxx"
+#include "pres.hxx"
+#include "sddllapi.h"
+#include "fupoor.hxx"
+
+class SfxStyleSheetBasePool;
+class SfxStatusBarManager;
+class SdStyleSheetPool;
+class FontList;
+class SdDrawDocument;
+class SvxItemFactory;
+class SdPage;
+class SfxPrinter;
+struct SdrDocumentStreamInfo;
+struct SpellCallbackInfo;
+class AbstractSvxNameDialog;
+class SfxUndoManager;
+
+namespace sd {
+
+class FrameView;
+class View;
+class ViewShell;
+
+// ------------------
+// - DrawDocShell -
+// ------------------
+
+class SD_DLLPUBLIC DrawDocShell : public SfxObjectShell
+{
+public:
+ TYPEINFO();
+ SFX_DECL_INTERFACE(SD_IF_SDDRAWDOCSHELL)
+ SFX_DECL_OBJECTFACTORY();
+
+ DrawDocShell (
+ SfxObjectCreateMode eMode = SFX_CREATE_MODE_EMBEDDED,
+ sal_Bool bSdDataObj=sal_False,
+ DocumentType=DOCUMENT_TYPE_IMPRESS);
+
+ DrawDocShell (
+ const sal_uInt64 nModelCreationFlags,
+ sal_Bool bSdDataObj=sal_False,
+ DocumentType=DOCUMENT_TYPE_IMPRESS);
+
+ DrawDocShell (
+ SdDrawDocument* pDoc,
+ SfxObjectCreateMode eMode = SFX_CREATE_MODE_EMBEDDED,
+ sal_Bool bSdDataObj=sal_False,
+ DocumentType=DOCUMENT_TYPE_IMPRESS);
+ virtual ~DrawDocShell();
+
+ void UpdateRefDevice();
+ virtual void Activate( sal_Bool bMDI );
+ virtual void Deactivate( sal_Bool bMDI );
+ virtual sal_Bool InitNew( const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xStorage );
+ virtual sal_Bool ConvertFrom( SfxMedium &rMedium );
+ virtual sal_Bool Save();
+ virtual sal_Bool SaveAsOwnFormat( SfxMedium& rMedium );
+ virtual sal_Bool ConvertTo( SfxMedium &rMedium );
+ virtual sal_Bool SaveCompleted( const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xStorage );
+
+ virtual sal_Bool Load( SfxMedium &rMedium );
+ virtual sal_Bool LoadFrom( SfxMedium& rMedium );
+ virtual sal_Bool SaveAs( SfxMedium &rMedium );
+
+ virtual Rectangle GetVisArea(sal_uInt16 nAspect) const;
+ virtual void Draw(OutputDevice*, const JobSetup& rSetup, sal_uInt16 nAspect = ASPECT_CONTENT);
+ virtual ::svl::IUndoManager*
+ GetUndoManager();
+ virtual Printer* GetDocumentPrinter();
+ virtual void OnDocumentPrinterChanged(Printer* pNewPrinter);
+ virtual SfxStyleSheetBasePool* GetStyleSheetPool();
+ virtual void SetOrganizerSearchMask(SfxStyleSheetBasePool* pBasePool) const;
+ virtual Size GetFirstPageSize();
+ virtual void FillClass(SvGlobalName* pClassName, sal_uInt32* pFormat, String* pAppName, String* pFullTypeName, String* pShortTypeName, sal_Int32 nFileFormat, sal_Bool bTemplate = sal_False ) const;
+ virtual void SetModified( sal_Bool = sal_True );
+
+ using SotObject::GetInterface;
+ using SfxObjectShell::GetVisArea;
+ using SfxShell::GetViewShell;
+
+ sd::ViewShell* GetViewShell() { return mpViewShell; }
+ ::sd::FrameView* GetFrameView();
+ ::sd::FunctionReference GetDocShellFunction() const { return mxDocShellFunction; }
+ void SetDocShellFunction( const ::sd::FunctionReference& xFunction );
+
+ SdDrawDocument* GetDoc();
+ DocumentType GetDocumentType() const { return meDocType; }
+
+ SfxPrinter* GetPrinter(sal_Bool bCreate);
+ void SetPrinter(SfxPrinter *pNewPrinter);
+ void UpdateFontList();
+
+ sal_Bool IsInDestruction() const { return mbInDestruction; }
+
+ void CancelSearching();
+
+ void Execute( SfxRequest& rReq );
+ void GetState(SfxItemSet&);
+
+ void Connect(sd::ViewShell* pViewSh);
+ void Disconnect(sd::ViewShell* pViewSh);
+ void UpdateTablePointers();
+
+ sal_Bool GotoBookmark(const String& rBookmark);
+
+ Bitmap GetPagePreviewBitmap(SdPage* pPage, sal_uInt16 nMaxEdgePixel);
+
+ /** checks, if the given name is a valid new name for a slide
+
+ <p>If the name is invalid, an <type>SvxNameDialog</type> pops up that
+ queries again for a new name until it is ok or the user chose
+ Cancel.</p>
+
+ @param pWin is necessary to pass to the <type>SvxNameDialog</type> in
+ case an invalid name was entered.
+ @param rName the new name that is to be set for a slide. This string
+ may be set to an empty string (see below).
+
+ @return sal_True, if the new name is unique. Note that if the user entered
+ a default name of a not-yet-existing slide (e.g. 'Slide 17'),
+ sal_True is returned, but rName is set to an empty string.
+ */
+ sal_Bool CheckPageName(::Window* pWin, String& rName );
+
+ void SetSlotFilter(sal_Bool bEnable = sal_False, sal_uInt16 nCount = 0, const sal_uInt16* pSIDs = NULL) { mbFilterEnable = bEnable; mnFilterCount = nCount; mpFilterSIDs = pSIDs; }
+ void ApplySlotFilter() const;
+
+ sal_uInt16 GetStyleFamily() const { return mnStyleFamily; }
+ void SetStyleFamily( sal_uInt16 nSF ) { mnStyleFamily = nSF; }
+
+ /** executes the SID_OPENDOC slot to let the framework open a document
+ with the given URL and this document as a referer */
+ void OpenBookmark( const String& rBookmarkURL );
+
+ /** checks, if the given name is a valid new name for a slide
+
+ <p>This method does not pop up any dialog (like CheckPageName).</p>
+
+ @param rInOutPageName the new name for a slide that is to be renamed.
+ This string will be set to an empty string if
+ bResetStringIfStandardName is true and the name is of the
+ form of any, possibly not-yet existing, standard slide
+ (e.g. 'Slide 17')
+
+ @param bResetStringIfStandardName if true allows setting rInOutPageName
+ to an empty string, which returns true and implies that the
+ slide will later on get a new standard name (with a free
+ slide number).
+
+ @return true, if the new name is unique. If bResetStringIfStandardName
+ is true, the return value is also true, if the slide name is
+ a standard name (see above)
+ */
+ bool IsNewPageNameValid( String & rInOutPageName, bool bResetStringIfStandardName = false );
+
+
+ /** Return the reference device for the current document. When the
+ inherited implementation returns a device then this is passed to the
+ caller. Otherwise the returned value depends on the printer
+ independent layout mode and will usually be either a printer or a
+ virtual device used for screen rendering.
+ @return
+ Returns NULL when the current document has no reference device.
+ */
+ virtual OutputDevice* GetDocumentRefDev (void);
+
+ DECL_LINK( RenameSlideHdl, AbstractSvxNameDialog* );
+
+ // #91457# ExecuteSpellPopup now handled by DrawDocShell
+ DECL_LINK( OnlineSpellCallback, SpellCallbackInfo* );
+
+ void ClearUndoBuffer();
+
+protected:
+
+ SdDrawDocument* mpDoc;
+ SfxUndoManager* mpUndoManager;
+ SfxPrinter* mpPrinter;
+ ::sd::ViewShell* mpViewShell;
+ FontList* mpFontList;
+ ::sd::FunctionReference mxDocShellFunction;
+ DocumentType meDocType;
+ sal_uInt16 mnStyleFamily;
+ const sal_uInt16* mpFilterSIDs;
+ sal_uInt16 mnFilterCount;
+ sal_Bool mbFilterEnable;
+ sal_Bool mbSdDataObj;
+ sal_Bool mbInDestruction;
+ sal_Bool mbOwnPrinter;
+ sal_Bool mbNewDocument;
+
+ bool mbOwnDocument; // if true, we own mpDoc and will delete it in our d'tor
+ void Construct(bool bClipboard);
+ virtual void InPlaceActivate( sal_Bool bActive );
+};
+
+#ifndef SV_DECL_DRAW_DOC_SHELL_DEFINED
+#define SV_DECL_DRAW_DOC_SHELL_DEFINED
+SV_DECL_REF(DrawDocShell)
+#endif
+
+SV_IMPL_REF (DrawDocShell)
+
+} // end of namespace sd
+
+#endif
diff --git a/sd/source/ui/inc/DrawSubController.hxx b/sd/source/ui/inc/DrawSubController.hxx
new file mode 100755
index 000000000000..22d3afb5dd4a
--- /dev/null
+++ b/sd/source/ui/inc/DrawSubController.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 SD_DRAW_SUB_CONTROLLER_HXX
+#define SD_DRAW_SUB_CONTROLLER_HXX
+
+#include <com/sun/star/drawing/XDrawSubController.hpp>
+#include <com/sun/star/lang/XServiceInfo.hpp>
+#include <cppuhelper/compbase2.hxx>
+
+namespace sd {
+
+ class DrawSubControllerInterfaceBase : public ::cppu::WeakComponentImplHelper2<
+ ::com::sun::star::drawing::XDrawSubController,
+ ::com::sun::star::lang::XServiceInfo >
+ {
+ public:
+ DrawSubControllerInterfaceBase( ::osl::Mutex& aMutex )
+ : ::cppu::WeakComponentImplHelper2<
+ ::com::sun::star::drawing::XDrawSubController,
+ ::com::sun::star::lang::XServiceInfo >( aMutex ) {}
+
+ // XServiceInfo
+ virtual ::rtl::OUString SAL_CALL getImplementationName( ) throw (::com::sun::star::uno::RuntimeException) = 0;
+ virtual ::sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw (::com::sun::star::uno::RuntimeException) = 0;
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames( ) throw (::com::sun::star::uno::RuntimeException) = 0;
+ };
+
+}
+
+
+#endif
+
diff --git a/sd/source/ui/inc/DrawViewShell.hxx b/sd/source/ui/inc/DrawViewShell.hxx
new file mode 100755
index 000000000000..f6a94bb1f1d4
--- /dev/null
+++ b/sd/source/ui/inc/DrawViewShell.hxx
@@ -0,0 +1,499 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef SD_DRAW_VIEW_SHELL_HXX
+#define SD_DRAW_VIEW_SHELL_HXX
+
+#include "ViewShell.hxx"
+#include "tools/AsynchronousCall.hxx"
+#include <sfx2/viewfac.hxx>
+#include <sfx2/viewsh.hxx>
+#include "TabControl.hxx"
+#include "pres.hxx"
+#include <com/sun/star/lang/XEventListener.hpp>
+#include <com/sun/star/scanner/XScannerManager.hpp>
+
+class SdPage;
+class DrawDocShell;
+class SdAnimationWin;
+class SdRuler;
+class TabBar;
+class SdrObject;
+class SdrPageView;
+class TransferableDataHelper;
+class TransferableClipboardListener;
+class AbstractSvxNameDialog;
+class SdrLayer;
+class SvxClipboardFmtItem;
+
+namespace sd {
+
+class DrawView;
+class LayerTabBar;
+class Ruler;
+class SdUnoDrawView;
+class AnnotationManager;
+class ViewOverlayManager;
+
+#define CHECK_RANGE(nMin, nValue, nMax) ((nValue >= nMin) && (nValue <= nMax))
+
+/** Base class of the stacked shells that provide graphical views to
+ Draw and Impress documents and editing functionality. In contrast
+ to this other stacked shells are responsible for showing an
+ overview over several slides (SlideViewShell) or a textual
+ overview over the text in an Impress document (OutlineViewShell).
+*/
+class DrawViewShell
+ : public ViewShell,
+ public SfxListener
+{
+public:
+ static const int SLOTARRAY_COUNT = 24;
+
+ TYPEINFO();
+
+ SFX_DECL_INTERFACE(SD_IF_SDDRAWVIEWSHELL)
+
+ /** Create a new stackable shell that may take some information
+ (e.g. the frame view) from the given previous shell.
+ @param ePageKind
+ This parameter gives the initial page kind that the new shell
+ will show.
+ @param pFrameView
+ The frame view that makes it possible to pass information from
+ one view shell to the next.
+ */
+ DrawViewShell (
+ SfxViewFrame* pFrame,
+ ViewShellBase& rViewShellBase,
+ ::Window* pParentWindow,
+ PageKind ePageKind = PK_STANDARD,
+ FrameView* pFrameView = NULL);
+
+ virtual ~DrawViewShell (void);
+
+ virtual void Init (bool bIsMainViewShell);
+
+ virtual void Shutdown (void);
+
+ void PrePaint();
+ virtual void Paint(const Rectangle& rRect, ::sd::Window* pWin);
+
+ /** Set the position and size of the area which contains the GUI
+ elements like rulers, sliders, and buttons as well as the document
+ view. Both size and position are expected to be in pixel
+ coordinates. The positions and sizes of the mentioned GUI elements
+ are updated as well.
+
+ <p> This method is implemented by first setting copying the given
+ values to internal variables and then calling the
+ <type>ArrangeGUIElements</type> method which performs the actual
+ work of sizeing and arranging the UI elements accordingly.</p>
+ @param rPos
+ The position of the enclosing window relative to the document
+ window. This is only interesting if a Draw/Impress document
+ view is embedded as OLE object into another document view. For
+ normal documents this position is (0,0).
+ @param rSize
+ The new size in pixel.
+ */
+ // virtual void AdjustPosSizePixel(const Point &rPos, const Size &rSize);
+
+ /** Arrange and resize the GUI elements like rulers, sliders, and
+ buttons as well as the actual document view according to the size of
+ the enclosing window and current sizes of buttons, rulers, and
+ sliders.
+ */
+ virtual void ArrangeGUIElements (void);
+
+ void HidePage();
+
+ virtual sal_Bool KeyInput(const KeyEvent& rKEvt, ::sd::Window* pWin);
+ virtual void MouseMove(const MouseEvent& rMEvt, ::sd::Window* pWin);
+ virtual void MouseButtonUp(const MouseEvent& rMEvt, ::sd::Window* pWin);
+ virtual void MouseButtonDown(const MouseEvent& rMEvt, ::sd::Window* pWin);
+ virtual void Command(const CommandEvent& rCEvt, ::sd::Window* pWin);
+
+ virtual void Resize (void);
+
+ void ShowMousePosInfo(const Rectangle& rRect, ::sd::Window* pWin);
+
+ virtual void AddWindow(::sd::Window* pWin);
+ virtual void RemoveWindow(::sd::Window* pWin);
+
+ virtual void ChangeEditMode (EditMode eMode, bool bIsLayerModeActive);
+
+ virtual void SetZoom( long nZoom );
+ virtual void SetZoomRect( const Rectangle& rZoomRect );
+
+ void InsertURLField(const String& rURL, const String& rText, const String& rTarget,
+ const Point* pPos);
+ void InsertURLButton(const String& rURL, const String& rText, const String& rTarget,
+ const Point* pPos);
+
+ virtual void SetUIUnit(FieldUnit eUnit);
+
+ void SelectionHasChanged();
+ void ModelHasChanged();
+ virtual void Activate(sal_Bool bIsMDIActivate);
+ virtual void Deactivate(sal_Bool IsMDIActivate);
+ virtual void UIActivating( SfxInPlaceClient* );
+ virtual void UIDeactivated( SfxInPlaceClient* );
+ virtual String GetSelectionText( sal_Bool bCompleteWords = sal_False );
+ virtual sal_Bool HasSelection( sal_Bool bText = sal_True ) const;
+
+ void ExecCtrl(SfxRequest& rReq);
+ void GetCtrlState(SfxItemSet& rSet);
+ void GetMenuState(SfxItemSet& rSet);
+ void GetTableMenuState(SfxItemSet& rSet);
+ /** Set the items of the given item set that are related to
+ switching the editing mode to the correct values.
+ <p>This function also sets the states of the mode buttons
+ (those at the upper right corner) accordingly.</p>
+ */
+ void GetModeSwitchingMenuState (SfxItemSet &rSet);
+ void GetAttrState(SfxItemSet& rSet);
+ void GetSnapItemState(SfxItemSet& rSet);
+
+ void GetState (SfxItemSet& rSet);
+ void Execute (SfxRequest& rReq);
+
+ void ExecStatusBar(SfxRequest& rReq);
+ void GetStatusBarState(SfxItemSet& rSet);
+
+ void ExecOptionsBar(SfxRequest& rReq);
+ void GetOptionsBarState(SfxItemSet& rSet);
+
+ void ExecRuler(SfxRequest& rReq);
+ void GetRulerState(SfxItemSet& rSet);
+
+ void ExecFormText(SfxRequest& rReq);
+ void GetFormTextState(SfxItemSet& rSet);
+
+ void ExecAnimationWin(SfxRequest& rReq);
+ void GetAnimationWinState(SfxItemSet& rSet);
+
+ void ExecNavigatorWin(SfxRequest& rReq);
+ void GetNavigatorWinState(SfxItemSet& rSet);
+
+ void ExecEffectWin(SfxRequest& rReq);
+
+ void Update3DWindow();
+ void AssignFrom3DWindow();
+
+ void ExecGallery(SfxRequest& rReq);
+ void GetGalleryState(SfxItemSet& rSet);
+
+ void ExecBmpMask( SfxRequest& rReq );
+ void GetBmpMaskState( SfxItemSet& rSet );
+
+ void ExecIMap( SfxRequest& rReq );
+ void GetIMapState( SfxItemSet& rSet );
+
+ void FuTemporary(SfxRequest& rReq);
+ void FuPermanent(SfxRequest& rReq);
+ void FuSupport(SfxRequest& rReq);
+ void FuTable(SfxRequest& rReq);
+
+ void AttrExec (SfxRequest& rReq);
+ void AttrState (SfxItemSet& rSet);
+
+ void ExecuteAnnotation (SfxRequest& rRequest);
+ void GetAnnotationState (SfxItemSet& rItemSet);
+
+ void StartRulerDrag (
+ const Ruler& rRuler,
+ const MouseEvent& rMEvt);
+
+ virtual sal_uInt16 PrepareClose( sal_Bool bUI = sal_True, sal_Bool bForBrowsing = sal_False );
+
+ PageKind GetPageKind() { return mePageKind; }
+
+ Point GetMousePos() { return maMousePos; }
+ sal_Bool IsMousePosFreezed() { return mbMousePosFreezed; }
+ void SetMousePosFreezed( sal_Bool bIn ) { mbMousePosFreezed = bIn; }
+
+ EditMode GetEditMode() const { return meEditMode; }
+ virtual SdPage* GetActualPage() { return mpActualPage; }
+
+ /// inherited from sd::ViewShell
+ virtual SdPage* getCurrentPage() const;
+
+ void ResetActualPage();
+ void ResetActualLayer();
+ sal_Bool SwitchPage(sal_uInt16 nPage);
+ sal_Bool IsSwitchPageAllowed() const;
+
+ sal_Bool GotoBookmark(const String& rBookmark);
+ void MakeVisible(const Rectangle& rRect, ::Window& rWin);
+
+ virtual void ReadFrameViewData(FrameView* pView);
+ virtual void WriteFrameViewData();
+
+ virtual ErrCode DoVerb(long nVerb);
+ virtual sal_Bool ActivateObject(SdrOle2Obj* pObj, long nVerb);
+
+ void SetZoomOnPage( sal_Bool bZoom = sal_True ) { mbZoomOnPage = bZoom; }
+ sal_Bool IsZoomOnPage() { return mbZoomOnPage; }
+ void CheckLineTo (SfxRequest& rReq);
+ void FuTemp01(SfxRequest& rReq);
+ void FuTemp02(SfxRequest& rReq);
+ void FuTemp03(SfxRequest& rReq);
+ void FuTemp04(SfxRequest& rReq);
+ void SetChildWindowState( SfxItemSet& rSet );
+
+ void UpdateIMapDlg( SdrObject* pObj );
+
+ void LockInput();
+ void UnlockInput();
+ sal_Bool IsInputLocked() const { return mnLockCount > 0UL; }
+
+ sal_uInt16 GetCurPageId() { return( maTabControl.GetCurPageId() ); }
+
+ /** Show controls of the UI or hide them, depending on the given flag.
+ Do not call this method directly. Call the method at ViewShellBase
+ instead.
+ */
+ virtual void ShowUIControls (bool bVisible = true);
+
+ void ScannerEvent( const ::com::sun::star::lang::EventObject& rEventObject );
+
+ bool IsLayerModeActive (void) const;
+
+ sal_uInt16* GetSlotArray() const { return mpSlotArray; }
+
+ virtual sal_Int8 AcceptDrop( const AcceptDropEvent& rEvt, DropTargetHelper& rTargetHelper,
+ ::sd::Window* pTargetWindow, sal_uInt16 nPage, sal_uInt16 nLayer );
+ virtual sal_Int8 ExecuteDrop( const ExecuteDropEvent& rEvt, DropTargetHelper& rTargetHelper,
+ ::sd::Window* pTargetWindow, sal_uInt16 nPage, sal_uInt16 nLayer );
+
+ virtual void WriteUserDataSequence ( ::com::sun::star::uno::Sequence < ::com::sun::star::beans::PropertyValue >&, sal_Bool bBrowse = sal_False );
+ virtual void ReadUserDataSequence ( const ::com::sun::star::uno::Sequence < ::com::sun::star::beans::PropertyValue >&, sal_Bool bBrowse = sal_False );
+
+ virtual void VisAreaChanged(const Rectangle& rRect);
+
+ /** Create an accessible object representing the specified window.
+ @param pWindow
+ The returned object makes the document displayed in this window
+ accessible.
+ @return
+ Returns an <type>AccessibleDrawDocumentView</type> object.
+ */
+ virtual ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible>
+ CreateAccessibleDocumentView (::sd::Window* pWindow);
+
+ /** Return the number of layers managed by the layer tab control. This
+ will usually differ from the number of layers managed by the layer
+ administrator.
+ @return
+ The number of layers managed by the layer tab control. The
+ returned value is independent of whether the layer modus is
+ currently active and the tab control is visible.
+ */
+ virtual int GetTabLayerCount (void) const;
+
+ /** Return the numerical id of the currently active layer as seen by the
+ layer tab control.
+ @return
+ The returned id is a number between zero (inclusive) and the
+ number of layers as returned by the
+ <member>GetTabLayerCount</member> method (exclusive).
+ */
+ virtual int GetActiveTabLayerIndex (void) const;
+
+ /** Set the active layer at the layer tab control and update the control
+ accordingly to reflect the change on screen.
+ @param nId
+ The id is expected to be a number between zero (inclusive) and
+ the number of layers as returned by the
+ <member>GetTabLayerCount</member> method (exclusive). Note that
+ Invalid values are ignored. No excpetion is thrown in that case.
+ */
+ virtual void SetActiveTabLayerIndex (int nId);
+
+ /** Return a pointer to the tab control for pages.
+ */
+ TabControl* GetPageTabControl (void);
+
+ /** Return a pointer to the tab control for layers.
+ */
+ LayerTabBar* GetLayerTabControl (void);
+
+ /** Renames the given slide using an SvxNameDialog
+
+ @param nPageId the index of the page in the SdTabControl.
+ @param rName the new name of the slide.
+
+ @return false, if the new name is invalid for some reason.
+
+ <p>Implemented in <code>drviews8.cxx</code>.</p>
+ */
+ bool RenameSlide( sal_uInt16 nPageId, const String & rName );
+
+ /** modifies the given layer with the given values */
+ void ModifyLayer( SdrLayer* pLayer, const String& rLayerName, const String& rLayerTitle, const String& rLayerDesc, bool bIsVisible, bool bIsLocked, bool bIsPrintable );
+
+ virtual css::uno::Reference<css::drawing::XDrawSubController> CreateSubController (void);
+
+ DrawView* GetDrawView() const { return mpDrawView; }
+
+ /** Relocation to a new parent window is not supported for DrawViewShell
+ objects so this method always returns <FALSE/>.
+ */
+ virtual bool RelocateToParentWindow (::Window* pParentWindow);
+
+protected:
+ DrawView* mpDrawView;
+ SdPage* mpActualPage;
+ Rectangle maMarkRect;
+ Point maMousePos;
+ sal_Bool mbMousePosFreezed;
+ TabControl maTabControl;
+ EditMode meEditMode;
+ PageKind mePageKind;
+ sal_Bool mbZoomOnPage;
+ sal_Bool mbIsRulerDrag;
+ sal_uLong mnLockCount;
+ Timer maCloseTimer;
+ sal_Bool mbReadOnly;
+ sal_uInt16* mpSlotArray;
+
+ static sal_Bool mbPipette;
+
+ DECL_LINK( ClipboardChanged, TransferableDataHelper* );
+ DECL_LINK( CloseHdl, Timer* pTimer );
+ DECL_LINK( TabSplitHdl, TabBar * );
+ DECL_LINK( NameObjectHdl, AbstractSvxNameDialog* );
+ DECL_LINK( RenameSlideHdl, AbstractSvxNameDialog* );
+
+ void DeleteActualPage();
+ void DeleteActualLayer();
+
+ virtual SvxRuler* CreateHRuler(::sd::Window* pWin, sal_Bool bIsFirst);
+ virtual SvxRuler* CreateVRuler(::sd::Window* pWin);
+ virtual void UpdateHRuler();
+ virtual void UpdateVRuler();
+ virtual long GetHCtrlWidth();
+ virtual void SetZoomFactor(const Fraction& rZoomX, const Fraction& rZoomY);
+ virtual Size GetOptimalSizePixel() const;
+
+ void SetupPage( Size &rSize, long nLeft, long nRight, long nUpper, long nLower,
+ sal_Bool bSize, sal_Bool bMargin, sal_Bool bScaleAll );
+
+ sal_uInt16 GetIdBySubId( sal_uInt16 nSId );
+ void MapSlot( sal_uInt16 nSId );
+ void UpdateToolboxImages( SfxItemSet &rSet, sal_Bool bPermanent = sal_True );
+ sal_uInt16 GetMappedSlot( sal_uInt16 nSId );
+ sal_uInt16 GetArrayId( sal_uInt16 nSId );
+
+ void GetMenuStateSel(SfxItemSet& rSet);
+
+private:
+ /** This flag controls whether the layer mode is active, i.e. the layer
+ dialog is visible.
+ */
+ bool mbIsLayerModeActive;
+
+ /** This item contains the clipboard formats of the current clipboard
+ content that are supported both by that content and by the
+ DrawViewShell.
+ */
+ ::std::auto_ptr<SvxClipboardFmtItem> mpCurrentClipboardFormats;
+
+ /** On some occasions it is necessary to make SwitchPage calls
+ asynchronously.
+ */
+ tools::AsynchronousCall maAsynchronousSwitchPageCall;
+
+ /** This flag is used to prevent nested calls to SwitchPage().
+ */
+ bool mbIsInSwitchPage;
+
+ void Construct (DrawDocShell* pDocSh, PageKind ePageKind);
+
+ /** Depending on the given request create a new page or duplicate an
+ existing one. See ViewShell::CreateOrDuplicatePage() for more
+ information.
+ */
+ virtual SdPage* CreateOrDuplicatePage (
+ SfxRequest& rRequest,
+ PageKind ePageKind,
+ SdPage* pPage,
+ const sal_Int32 nInsertPosition = -1);
+
+ ::com::sun::star::uno::Reference< ::com::sun::star::scanner::XScannerManager > mxScannerManager;
+ ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener > mxScannerListener;
+ TransferableClipboardListener* mpClipEvtLstnr;
+ sal_Bool mbPastePossible;
+
+ virtual void Notify (SfxBroadcaster& rBC, const SfxHint& rHint);
+
+ /** Stop a running slide show. The frame the show is running in is
+ destroyed if
+ a) it is running in its own frame, i.e. is a full screen show and
+ b) the given flag bCloseFrame is true.
+ @param bCloseFrame
+ Be carefull with this flag when stopping a full screen show.
+ When called from the destructor the flag has to be <FALSE/> or
+ otherwise we run into a loop of calls to destructors of the view
+ and the frame.
+ When called from other places the flag should be <TRUE/> so that
+ not an empty frame remains. When called with <TRUE/> it is the
+ responsibility of the caller to avoid an illegal reentrant
+ call.
+ */
+ void StopSlideShow (bool bCloseFrame);
+
+ /** Show the context menu for snap lines and points. Because snap lines
+ can not be selected the index of the snap line/point for which the
+ popup menu is opened has to be passed to the processing slot
+ handlers. This can be done only by manually showing the popup menu.
+ @param rPageView
+ The page view is used to access the help lines.
+ @param nSnapLineIndex
+ Index of the snap line or snap point for which to show the
+ context menu.
+ @param rMouseLocation
+ The mouse location defines the location at which to display the
+ context menu.
+ */
+ void ShowSnapLineContextMenu (
+ SdrPageView& rPageView,
+ const sal_uInt16 nSnapLineIndex,
+ const Point& rMouseLocation);
+
+ using ViewShell::Notify;
+
+ ::std::auto_ptr< AnnotationManager > mpAnnotationManager;
+ ::std::auto_ptr< ViewOverlayManager > mpViewOverlayManager;
+};
+
+
+} // end of namespace sd
+
+#endif
diff --git a/sd/source/ui/inc/EventMultiplexer.hxx b/sd/source/ui/inc/EventMultiplexer.hxx
new file mode 100644
index 000000000000..8c177191c31f
--- /dev/null
+++ b/sd/source/ui/inc/EventMultiplexer.hxx
@@ -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.
+ *
+ ************************************************************************/
+
+#ifndef SD_TOOLS_EVENT_MULTIPLEXER_HXX
+#define SD_TOOLS_EVENT_MULTIPLEXER_HXX
+
+#include <svl/lstner.hxx>
+
+#include <set>
+#include <memory>
+
+class Link;
+
+namespace sd {
+class ViewShellBase;
+}
+
+namespace sd { namespace tools {
+
+class EventMultiplexerEvent
+{
+public:
+ typedef sal_uInt32 EventId;
+ /** The EventMultiplexer itself is being disposed. Called for a live
+ EventMultiplexer. Removing a listener as response is not necessary,
+ though.
+ */
+ static const EventId EID_DISPOSING = 0x00000001;
+
+ /** The selection in the center pane has changed.
+ */
+ static const EventId EID_EDIT_VIEW_SELECTION = 0x00000002;
+
+ /** The selection in the slide sorter has changed, regardless of whether
+ the slide sorter is displayed in the left pane or the center pane.
+ */
+ static const EventId EID_SLIDE_SORTER_SELECTION = 0x00000004;
+
+ /** The current page has changed.
+ */
+ static const EventId EID_CURRENT_PAGE = 0x00000008;
+
+ /** The current MainViewShell (the ViewShell displayed in the center
+ pane) has been removed.
+ */
+ static const EventId EID_MAIN_VIEW_REMOVED = 0x00000010;
+
+ /** A new ViewShell has been made the MainViewShell.
+ */
+ static const EventId EID_MAIN_VIEW_ADDED = 0x00000020;
+
+ /** A ViewShell has been removed from one of the panes. Note that for
+ the ViewShell in the center pane bth this event type and
+ EID_MAIN_VIEW_REMOVED is broadcasted.
+ */
+ static const EventId EID_VIEW_REMOVED = 0x00000040;
+
+ /** A new ViewShell is being displayed in one of the panes. Note that
+ for the ViewShell in the center pane both this event type and
+ EID_MAIN_VIEW_ADDED is broadcasted.
+ */
+ static const EventId EID_VIEW_ADDED = 0x00000080;
+
+ /** The PaneManager is being destroyed.
+ */
+ static const EventId EID_PANE_MANAGER_DYING = 0x00000100;
+
+ /** Edit mode was (or is being) switched to normal mode. Find
+ EID_EDIT_MODE_MASTER below.
+ */
+ static const EventId EID_EDIT_MODE_NORMAL = 0x00000200;
+
+ /** One or more pages have been inserted into or deleted from the model.
+ */
+ static const EventId EID_PAGE_ORDER = 0x00000400;
+
+ /** Text editing in one of the shapes in the MainViewShell has started.
+ */
+ static const EventId EID_BEGIN_TEXT_EDIT = 0x00000800;
+
+ /** Text editing in one of the shapes in the MainViewShell has ended.
+ */
+ static const EventId EID_END_TEXT_EDIT = 0x00001000;
+
+ /** A UNO controller has been attached to the UNO frame.
+ */
+ static const EventId EID_CONTROLLER_ATTACHED = 0x00002000;
+
+ /** A UNO controller has been detached to the UNO frame.
+ */
+ static const EventId EID_CONTROLLER_DETACHED = 0x00004000;
+
+ /** The state of a shape has changed. The page is available in the user data.
+ */
+ static const EventId EID_SHAPE_CHANGED = 0x00008000;
+
+ /** A shape has been inserted to a page. The page is available in the
+ user data.
+ */
+ static const EventId EID_SHAPE_INSERTED = 0x00010000;
+
+ /** A shape has been removed from a page. The page is available in the
+ user data.
+ */
+ static const EventId EID_SHAPE_REMOVED = 0x00020000;
+
+ /** A configuration update has been completed.
+ */
+ static const EventId EID_CONFIGURATION_UPDATED = 0x00040000;
+
+ /** Edit mode was (or is being) switched to master mode.
+ */
+ static const EventId EID_EDIT_MODE_MASTER = 0x00080000;
+
+ const ViewShellBase& mrBase;
+ EventId meEventId;
+ const void* mpUserData;
+
+ EventMultiplexerEvent (
+ const ViewShellBase& rBase,
+ EventId eEventId,
+ const void* pUserData);
+};
+
+
+/** This convenience class makes it easy to listen to various events that
+ originally are broadcasted via different channels.
+
+ There is usually one EventMultiplexer instance per ViewShellBase().
+ Call the laters GetEventMultiplexer() method to get access to that
+ instance.
+
+ When a listener is registered it can specify the events it
+ wants to be informed of. This can be done with code like the following:
+
+ mrViewShellBase.GetEventMultiplexer().AddEventListener (
+ LINK(this,MasterPagesSelector,EventMultiplexerListener),
+ tools::EventMultiplexerEvent::EID_MAIN_VIEW_ADDED
+ | tools::EventMultiplexerEvent::EID_MAIN_VIEW_REMOVED);
+*/
+class EventMultiplexer
+{
+public:
+ /** Create new EventMultiplexer for the given ViewShellBase object.
+ */
+ EventMultiplexer (ViewShellBase& rBase);
+ ~EventMultiplexer (void);
+
+ /** Some constants that make it easier to remove a listener for all
+ event types at once.
+ */
+ static const EventMultiplexerEvent::EventId EID_FULL_SET = 0xffffffff;
+ static const EventMultiplexerEvent::EventId EID_EMPTY_SET = 0x00000000;
+
+ /** Add an event listener that will be informed about the specified
+ event types.
+ @param rCallback
+ The callback to call as soon as one of the event specified by
+ aEventTypeSet is received by the EventMultiplexer.
+ @param aEventTypeSet
+ A, possibly empty, set of event types that the listener wants to
+ be informed about.
+ */
+ void AddEventListener (
+ Link& rCallback,
+ EventMultiplexerEvent::EventId aEventTypeSet);
+
+ /** Remove an event listener for the specified event types.
+ @param aEventTypeSet
+ The listener will not be called anymore for any of the event
+ types in this set. Use EID_FULL_SET, the default value, to
+ remove the listener for all event types it has been registered
+ for.
+ */
+ void RemoveEventListener (
+ Link& rCallback,
+ EventMultiplexerEvent::EventId aEventTypeSet = EID_FULL_SET);
+
+ /** This method is used for out-of-line events. An event of the
+ specified type will be sent to all listeners that are registered for
+ that type.
+ @param eEventId
+ The type of the event.
+ @param pUserData
+ Some data sent to the listeners along with the event.
+ */
+ void MultiplexEvent(
+ EventMultiplexerEvent::EventId eEventId,
+ void* pUserData = 0);
+
+private:
+ class Implementation;
+ ::std::auto_ptr<Implementation> mpImpl;
+};
+
+} } // end of namespace ::sd::tools
+
+#endif
diff --git a/sd/source/ui/inc/FormShellManager.hxx b/sd/source/ui/inc/FormShellManager.hxx
new file mode 100644
index 000000000000..261095642a51
--- /dev/null
+++ b/sd/source/ui/inc/FormShellManager.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 SD_FORM_SHELL_MANAGER_HXX
+#define SD_FORM_SHELL_MANAGER_HXX
+
+#include <ViewShellManager.hxx>
+
+#include <tools/link.hxx>
+#include <svl/lstner.hxx>
+
+class VclWindowEvent;
+class FmFormShell;
+
+namespace sd { namespace tools { class EventMultiplexerEvent; } }
+
+namespace sd {
+
+class PaneManagerEvent;
+class ViewShell;
+class ViewShellBase;
+
+/** This simple class is responsible for putting the form shell above or
+ below the main view shell on the shell stack maintained by the ObjectBarManager.
+
+ The form shell is moved above the view shell when the form shell is
+ activated, i.e. the FormControlActivated handler is called.
+
+ It is moved below the view shell when the main window of the
+ main view shell is focused.
+
+ The form shell is created and destroyed by the ViewShellManager by using
+ a factory object provided by the FormShellManager.
+*/
+class FormShellManager
+ : public SfxListener
+{
+public:
+ FormShellManager (ViewShellBase& rBase);
+ virtual ~FormShellManager (void);
+
+ /** Typically called by a ShellFactory. It tells the
+ FormShellManager which form shell to manage.
+ @param pFormShell
+ This may be <NULL/> to disconnect the ViewShellManager from the
+ form shell.
+ */
+ void SetFormShell (FmFormShell* pFormShell);
+
+ /** Return the form shell last set with SetFormShell().
+ @return
+ The result may be <NULL/> when the SetFormShell() method has not
+ yet been called or was last called with <NULL/>.
+ */
+ FmFormShell* GetFormShell (void);
+
+private:
+ ViewShellBase& mrBase;
+
+ /** Ownership of the form shell lies with the ViewShellManager. This
+ reference is kept so that the FormShellManager can detect when a new
+ form shell is passed to SetFormShell().
+ */
+ FmFormShell* mpFormShell;
+
+ /** Remember whether the form shell is currently above or below the main
+ view shell.
+ */
+ bool mbFormShellAboveViewShell;
+
+ /** The factory is remembered so that it removed from the
+ ViewShellManager when the FormShellManager is destroyed.
+ */
+ ViewShellManager::SharedShellFactory mpSubShellFactory;
+
+ bool mbIsMainViewChangePending;
+
+ ::Window* mpMainViewShellWindow;
+
+ /** Register at window of center pane and at the form shell that
+ represents the form tool bar. The former informs this manager about
+ the deselection of the form shell. The later informs about its
+ selection.
+ */
+ void RegisterAtCenterPane (void);
+
+ /** Unregister the listeners that were registered in
+ RegisterAtCenterPane().
+ */
+ void UnregisterAtCenterPane (void);
+
+ /** This call back is called by the application window (among others)
+ when the window gets the focus. In this case the form shell is
+ moved to the bottom of the shell stack.
+ */
+ DECL_LINK(WindowEventHandler, VclWindowEvent*);
+
+ /** This call back is called when view in the center pane is replaced.
+ When this happens then we unregister at the window of the old and
+ register at the window of the new shell.
+ */
+ DECL_LINK(ConfigurationUpdateHandler, ::sd::tools::EventMultiplexerEvent*);
+
+ /** This call back is called by the form shell when it gets the focus.
+ In this case the form shell is moved to the top of the shell stack.
+ */
+ DECL_LINK(FormControlActivated, FmFormShell*);
+
+ /** This method is called by the form shell when that is destroyed. It
+ acts as a last resort against referencing a dead form shell. With
+ the factory working properly this method should not be necessary
+ (and may be removed in the future.)
+ */
+ virtual void Notify(SfxBroadcaster& rBC, const SfxHint& rHint);
+};
+
+} // end of namespace sd
+
+#endif
diff --git a/sd/source/ui/inc/FrameView.hxx b/sd/source/ui/inc/FrameView.hxx
new file mode 100755
index 000000000000..913f7532008d
--- /dev/null
+++ b/sd/source/ui/inc/FrameView.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 SD_FRAME_VIEW_HXX
+#define SD_FRAME_VIEW_HXX
+
+#include "ViewShell.hxx"
+#include <svx/svdview.hxx>
+#include "pres.hxx"
+
+class SdDrawDocument;
+class SdOptions;
+
+namespace sd {
+
+/*************************************************************************
+|*
+|* View fuer den MDIFrame
+|*
+\************************************************************************/
+class FrameView
+ : public SdrView
+{
+public:
+ SD_DLLPUBLIC FrameView(SdDrawDocument* pDrawDoc, FrameView* pFrameView = NULL );
+ FrameView(const FrameView& rFrameView);
+ virtual ~FrameView();
+
+ void Connect();
+ void Disconnect();
+
+ void Update(SdOptions* pOptions);
+
+ void SetStandardHelpLines(const SdrHelpLineList& rHelpLines)
+ { maStandardHelpLines = rHelpLines; }
+ const SdrHelpLineList& GetStandardHelpLines() { return maStandardHelpLines; }
+ void SetNotesHelpLines(const SdrHelpLineList& rHelpLines)
+ { maNotesHelpLines = rHelpLines; }
+ const SdrHelpLineList& GetNotesHelpLines() { return maNotesHelpLines; }
+ void SetHandoutHelpLines(const SdrHelpLineList& rHelpLines)
+ { maHandoutHelpLines = rHelpLines; }
+ const SdrHelpLineList& GetHandoutHelpLines() { return maHandoutHelpLines; }
+
+ void SetVisibleLayers(const SetOfByte& rVisibleLayers)
+ { maVisibleLayers = rVisibleLayers; }
+ const SetOfByte& GetVisibleLayers() { return maVisibleLayers; }
+
+ void SetLockedLayers(const SetOfByte& rLockedLayers)
+ { maLockedLayers = rLockedLayers; }
+ const SetOfByte& GetLockedLayers() { return maLockedLayers; }
+
+ void SetPrintableLayers(const SetOfByte& rPrintableLayers)
+ { maPrintableLayers = rPrintableLayers; }
+ const SetOfByte& GetPrintableLayers() { return maPrintableLayers; }
+
+ void SetRuler(const sal_Bool bRulerOn)
+ { mbRuler = bRulerOn; }
+ sal_Bool HasRuler() const { return mbRuler; }
+
+ void SetNoColors(const sal_Bool bNoCol)
+ { mbNoColors = bNoCol; }
+ sal_Bool IsNoColors() const { return mbNoColors; }
+
+ void SetNoAttribs(const sal_Bool bNoAttr)
+ { mbNoAttribs = bNoAttr; }
+ sal_Bool IsNoAttribs() const { return mbNoAttribs; }
+
+ void SetVisArea(const Rectangle& rVisArea)
+ { maVisArea = rVisArea; }
+ const Rectangle GetVisArea() { return maVisArea; }
+
+ void SetPageKind(PageKind eKind) { mePageKind = eKind; }
+ PageKind GetPageKind() const { return mePageKind; }
+
+ /** is used in FrameView::ReadUserDataSequence() only to store the
+ page kind that was selected while last saving this document */
+ void SetPageKindOnLoad(PageKind eKind) { mePageKindOnLoad = eKind; }
+
+ /** can be used to get the page kind that was selected on last save of this document */
+ PageKind GetPageKindOnLoad() const { return mePageKindOnLoad; }
+
+ SD_DLLPUBLIC void SetSelectedPage (sal_uInt16 nPage);
+ sal_uInt16 GetSelectedPage () const;
+
+ /** is used in FrameView::ReadUserDataSequence() only to store the
+ page that was selected while last saving this document */
+ void SetSelectedPageOnLoad (sal_uInt16 nPage) { mnSelectedPageOnLoad = nPage; }
+
+ /** can be used to get the page that was selected on last save of this document */
+ sal_uInt16 GetSelectedPageOnLoad () const { return mnSelectedPageOnLoad; }
+
+ SD_DLLPUBLIC void SetViewShEditMode(EditMode eMode, PageKind eKind);
+ EditMode GetViewShEditMode (PageKind eKind);
+
+ /** Remember the edit mode of the main view shell at the time when the
+ document is loaded.
+ */
+ void SetViewShEditModeOnLoad (const EditMode eMode);
+
+ /** Return the value of the edit mode as it was when the document was
+ loaded.
+ */
+ EditMode GetViewShEditModeOnLoad (void) const;
+
+ void SetLayerMode(sal_Bool bMode)
+ { mbLayerMode = bMode; }
+ sal_Bool IsLayerMode() const { return mbLayerMode; }
+
+ void SetQuickEdit(sal_Bool bQEdit)
+ { mbQuickEdit = bQEdit; }
+ sal_Bool IsQuickEdit() const { return mbQuickEdit; }
+
+ void SetBigHandles( sal_Bool bOn = sal_True ) { mbBigHandles = bOn; }
+ sal_Bool IsBigHandles() const { return mbBigHandles; }
+
+ void SetDoubleClickTextEdit( sal_Bool bOn = sal_True ) { mbDoubleClickTextEdit = bOn; }
+ sal_Bool IsDoubleClickTextEdit() const { return mbDoubleClickTextEdit; }
+
+ void SetClickChangeRotation( sal_Bool bOn = sal_True ) { mbClickChangeRotation = bOn; }
+ sal_Bool IsClickChangeRotation() const { return mbClickChangeRotation; }
+
+ /** Remember the type of the view shell that was (or soon will be)
+ previously associated with this frame view.
+ @param eType
+ The type of the previous view shell or ViewShell::ST_NONE to
+ indicate that there is no previous view shell.
+ */
+ void SetPreviousViewShellType (ViewShell::ShellType eType);
+
+ /** Return the type of the view shell previously associated with this
+ frame view.
+ */
+ ViewShell::ShellType GetPreviousViewShellType (void) const;
+
+ /** Remember the type of the view shell at the time when the document is
+ loaded or, rather, when the ViewShellBase is constructed.
+ */
+ void SetViewShellTypeOnLoad (ViewShell::ShellType eType);
+
+ ViewShell::ShellType GetViewShellTypeOnLoad (void) const;
+
+ void SetPresentationViewShellId(sal_uInt16 nId)
+ { mnPresViewShellId = nId; }
+ sal_uInt16 GetPresentationViewShellId() const { return mnPresViewShellId; }
+
+ void SetSlotId(sal_uInt16 nId) { mnSlotId = nId; }
+ sal_uInt16 GetSlotId() const { return mnSlotId; }
+
+ void SetSlidesPerRow(sal_uInt16 nSlides) { mnSlidesPerRow = nSlides; }
+ sal_uInt16 GetSlidesPerRow() const { return mnSlidesPerRow; }
+
+ void SetDrawMode(sal_uLong nNewDrawMode) { mnDrawMode = nNewDrawMode; };
+ sal_uLong GetDrawMode() const { return mnDrawMode; };
+
+ void SetTabCtrlPercent( double nPercent ) { mnTabCtrlPercent = nPercent; }
+ double GetTabCtrlPercent() const { return mnTabCtrlPercent; }
+
+ void SetIsNavigatorShowingAllShapes (const bool bIsNavigatorShowingAllShapes);
+ bool IsNavigatorShowingAllShapes (void) const;
+
+ virtual void WriteUserDataSequence ( ::com::sun::star::uno::Sequence < ::com::sun::star::beans::PropertyValue >&, sal_Bool bBrowse = sal_False );
+ virtual void ReadUserDataSequence ( const ::com::sun::star::uno::Sequence < ::com::sun::star::beans::PropertyValue >&, sal_Bool bBrowse = sal_False );
+
+private:
+ sal_uInt16 mnRefCount;
+ VirtualDevice* mpVDev;
+ sal_Bool mbRuler;
+ SetOfByte maVisibleLayers;
+ SetOfByte maLockedLayers;
+ SetOfByte maPrintableLayers;
+ SdrHelpLineList maStandardHelpLines;
+ SdrHelpLineList maNotesHelpLines;
+ SdrHelpLineList maHandoutHelpLines;
+ sal_Bool mbNoColors; // Gliederungsmodus
+ sal_Bool mbNoAttribs; // Gliederungsmodus
+ Rectangle maVisArea; // Sichtbarer Bereich
+ PageKind mePageKind; // Seitentyp (Standard, Notizen, Handzettel)
+ sal_uInt16 mnSelectedPage; // Selektierte Seite
+ PageKind mePageKindOnLoad;
+ sal_uInt16 mnSelectedPageOnLoad;
+ EditMode meStandardEditMode; // Editmode im Zeichenmodus (Page/MasterPage)
+ EditMode meNotesEditMode; // Editmode im Notizen-Modus (Page/MasterPage)
+ EditMode meHandoutEditMode; // Editmode im Handzettel-Modus (Page/MasterPage)
+ EditMode meEditModeOnLoad;
+ sal_Bool mbLayerMode; // Layer an/aus
+ sal_Bool mbQuickEdit; // QuickEdit an/aus
+ sal_Bool mbBigHandles; // Grosse Handles
+ sal_Bool mbDoubleClickTextEdit; // Textmodus nach Doppelklick
+ sal_Bool mbClickChangeRotation; // Einfachklick wechselt Selektions-/Rotationsmodus
+ sal_uInt16 mnPresViewShellId; // ViewShell aus der die Pres. gestartet wurde
+ sal_uInt16 mnSlotId; // SlotId, welche initial ausgefuehrt wird
+ sal_uInt16 mnSlidesPerRow; // Dias pro Reihe auf dem Diatisch
+ sal_uLong mnDrawMode; // Drawmode fuer das normale Fenster
+ double mnTabCtrlPercent;
+ /** Remember whether the navigator shows all shapes (<TRUE/>) or only
+ the names ones (<FALSE/>). Not persistent.
+ */
+ bool mbIsNavigatorShowingAllShapes;
+
+ /** The type of the previous view shell. The (default) value
+ ViewShell::ST_NONE indicates that there was no previous view shell.
+ Note that this value is used only temporarily and is not saved or
+ restored.
+ */
+ ViewShell::ShellType mePreviousViewShellType;
+
+ ViewShell::ShellType meViewShellTypeOnLoad;
+};
+
+} // end of namespace sd
+
+#endif
+
diff --git a/sd/source/ui/inc/GraphicDocShell.hxx b/sd/source/ui/inc/GraphicDocShell.hxx
new file mode 100755
index 000000000000..a95f020cd85b
--- /dev/null
+++ b/sd/source/ui/inc/GraphicDocShell.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 SD_GRAPHIC_DOC_SHELL_HXX
+#define SD_GRAPHIC_DOC_SHELL_HXX
+
+#include <sfx2/docfac.hxx>
+#include <sfx2/objsh.hxx>
+#include "DrawDocShell.hxx"
+#include "glob.hxx"
+#include "sdmod.hxx"
+#include "pres.hxx"
+
+namespace sd {
+
+/*************************************************************************
+|*
+|* Document-Shell fuer Draw-Dokumente
+|*
+\************************************************************************/
+
+class GraphicDocShell
+ : public DrawDocShell
+{
+public:
+ TYPEINFO();
+
+ SFX_DECL_INTERFACE(SD_IF_SDGRAPHICDOCSHELL)
+ SFX_DECL_OBJECTFACTORY();
+
+ using SotObject::GetInterface;
+
+ GraphicDocShell (
+ SfxObjectCreateMode eMode = SFX_CREATE_MODE_EMBEDDED,
+ sal_Bool bSdDataObj=sal_False,
+ DocumentType=DOCUMENT_TYPE_DRAW);
+
+ GraphicDocShell (
+ const sal_uInt64 nModelCreationFlags,
+ sal_Bool bSdDataObj=sal_False,
+ DocumentType=DOCUMENT_TYPE_DRAW);
+
+ virtual ~GraphicDocShell (void);
+};
+
+#ifndef SV_DECL_SD_GRAPHIC_DOC_SHELL_DEFINED
+#define SV_DECL_SD_GRAPHIC_DOC_SHELL_DEFINED
+SV_DECL_REF(GraphicDocShell)
+#endif
+
+SV_IMPL_REF (GraphicDocShell)
+
+} // end of namespace sd
+
+#endif
diff --git a/sd/source/ui/inc/GraphicObjectBar.hxx b/sd/source/ui/inc/GraphicObjectBar.hxx
new file mode 100755
index 000000000000..14c6a45801a6
--- /dev/null
+++ b/sd/source/ui/inc/GraphicObjectBar.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 SD_GRAPHIC_OBJECT_BAR_HXX
+#define SD_GRAPHIC_OBJECT_BAR_HXX
+
+#include <sfx2/module.hxx>
+#include <sfx2/shell.hxx>
+#include "glob.hxx"
+
+namespace sd {
+
+class View;
+class ViewShell;
+
+
+class GraphicObjectBar
+ : public SfxShell
+{
+public:
+ TYPEINFO();
+ SFX_DECL_INTERFACE( SD_IF_SDDRAWGRAFOBJECTBAR )
+
+ GraphicObjectBar (ViewShell* pSdViewShell, ::sd::View* pSdView);
+ virtual ~GraphicObjectBar (void);
+
+ void GetAttrState( SfxItemSet& rSet );
+ void Execute( SfxRequest& rReq );
+
+ void GetFilterState( SfxItemSet& rSet );
+ void ExecuteFilter( SfxRequest& rReq );
+
+protected:
+ ::sd::View* mpView;
+ ViewShell* mpViewSh;
+ sal_uInt16 nMappedSlotFilter;
+
+};
+
+} // end of namespace sd
+
+#endif
diff --git a/sd/source/ui/inc/GraphicViewShell.hxx b/sd/source/ui/inc/GraphicViewShell.hxx
new file mode 100755
index 000000000000..6b5d96be95c6
--- /dev/null
+++ b/sd/source/ui/inc/GraphicViewShell.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 SD_GRAPHIC_VIEW_SHELL_HXX
+#define SD_GRAPHIC_VIEW_SHELL_HXX
+
+#include "DrawViewShell.hxx"
+
+class Window;
+
+namespace sd {
+
+/** View shell of the Draw application.
+
+ <p>This class is an example of how not to do it: specialization by
+ inheritance. A graphic view shell is similar to a draw view shell
+ but lacks some of its features. Thus is should be at most a base
+ class of DrawViewShell. There even is special case code in
+ ViewShell that turns off some of the features for GraphicViewShell
+ instances.</p>
+*/
+class GraphicViewShell
+ : public DrawViewShell
+{
+public:
+ TYPEINFO();
+
+ SFX_DECL_VIEWFACTORY(GraphicViewShell);
+ SFX_DECL_INTERFACE(SD_IF_SDGRAPHICVIEWSHELL)
+
+ /** Create a new view shell for the Draw application.
+ @param rViewShellBase
+ The new object will be stacked on this view shell base.
+ @param pFrameView
+ The frame view that makes it possible to pass information from
+ one view shell to the next.
+ */
+ GraphicViewShell (
+ SfxViewFrame* pFrame,
+ ViewShellBase& rViewShellBase,
+ ::Window* pParentWindow,
+ FrameView* pFrameView = NULL);
+
+ virtual ~GraphicViewShell (void);
+
+ /** This method is overloaded in order to have the layer mode allways
+ active.
+ */
+ virtual void ChangeEditMode (EditMode eMode, bool bIsLayerModeActive);
+
+protected:
+ void ConstructGraphicViewShell (void);
+ virtual void ArrangeGUIElements (void);
+
+private:
+ DECL_LINK(TabBarSplitHandler, TabBar*);
+};
+
+} // end of namespace sd
+
+#endif
diff --git a/sd/source/ui/inc/GraphicViewShellBase.hxx b/sd/source/ui/inc/GraphicViewShellBase.hxx
new file mode 100644
index 000000000000..294f5e1620c2
--- /dev/null
+++ b/sd/source/ui/inc/GraphicViewShellBase.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 SD_GRAPHIC_VIEW_SHELL_BASE_HXX
+#define SD_GRAPHIC_VIEW_SHELL_BASE_HXX
+
+#include "ViewShellBase.hxx"
+
+
+namespace sd {
+
+/** This class exists to be able to register another factory that
+ creates the view shell for the Draw application.
+*/
+class GraphicViewShellBase
+ : public ViewShellBase
+{
+public:
+ TYPEINFO();
+ SFX_DECL_VIEWFACTORY(GraphicViewShellBase);
+
+ /** This constructor is used by the view factory of the SFX
+ macros.
+ */
+ GraphicViewShellBase (SfxViewFrame *pFrame, SfxViewShell* pOldShell);
+ virtual ~GraphicViewShellBase (void);
+
+ /** Callback function for general slot calls.
+ */
+ virtual void Execute (SfxRequest& rRequest);
+
+protected:
+ virtual void InitializeFramework (void);
+};
+
+} // end of namespace sd
+
+#endif
diff --git a/sd/source/ui/inc/ImpressViewShellBase.hxx b/sd/source/ui/inc/ImpressViewShellBase.hxx
new file mode 100644
index 000000000000..a3b187fe45bb
--- /dev/null
+++ b/sd/source/ui/inc/ImpressViewShellBase.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 SD_IMPRESS_VIEW_SHELL_BASE_HXX
+#define SD_IMPRESS_VIEW_SHELL_BASE_HXX
+
+#include "ViewShellBase.hxx"
+
+
+namespace sd {
+
+/** This class implements a few features that exist only for the Impress
+ application.
+*/
+class ImpressViewShellBase
+ : public ViewShellBase
+{
+public:
+ TYPEINFO();
+ SFX_DECL_VIEWFACTORY(ImpressViewShellBase);
+
+ /** This constructor is used by the view factory of the SFX
+ macros.
+ */
+ ImpressViewShellBase (SfxViewFrame *pFrame, SfxViewShell* pOldShell);
+ virtual ~ImpressViewShellBase (void);
+
+ /** Callback function for general slot calls.
+ */
+ virtual void Execute (SfxRequest& rRequest);
+
+protected:
+ virtual void InitializeFramework (void);
+};
+
+} // end of namespace sd
+
+#endif
diff --git a/sd/source/ui/inc/LayerDialog.hrc b/sd/source/ui/inc/LayerDialog.hrc
new file mode 100644
index 000000000000..88323539fb99
--- /dev/null
+++ b/sd/source/ui/inc/LayerDialog.hrc
@@ -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.
+ *
+ ************************************************************************/
+#define FLT_WIN_LAYER_DIALOG 791
+
+#define TB_LAYERS 1
diff --git a/sd/source/ui/inc/LayerDialogChildWindow.hxx b/sd/source/ui/inc/LayerDialogChildWindow.hxx
new file mode 100755
index 000000000000..945630ee37d1
--- /dev/null
+++ b/sd/source/ui/inc/LayerDialogChildWindow.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 SD_LAYER_DIALOG_CHILD_WINDOW_HXX
+#define SD_LAYER_DIALOG_CHILD_WINDOW_HXX
+
+#include <sfx2/childwin.hxx>
+
+namespace sd {
+
+/** Floating container for the layout dialog.
+ What is missing is a way to inform the layer dialog of changing views.
+*/
+class LayerDialogChildWindow
+ : public SfxChildWindow
+{
+public:
+ LayerDialogChildWindow (
+ ::Window*,
+ sal_uInt16,
+ SfxBindings*,
+ SfxChildWinInfo*);
+ virtual ~LayerDialogChildWindow (void);
+
+ SFX_DECL_CHILDWINDOW(LayerDialogChildWindow);
+};
+
+} // end of namespace sd
+
+#endif
diff --git a/sd/source/ui/inc/LayerDialogContent.hxx b/sd/source/ui/inc/LayerDialogContent.hxx
new file mode 100755
index 000000000000..b1233b7249bc
--- /dev/null
+++ b/sd/source/ui/inc/LayerDialogContent.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 SD_LAYER_DIALOG_CONTENT_HXX
+#define SD_LAYER_DIALOG_CONTENT_HXX
+
+#include <sfx2/dockwin.hxx>
+#include "LayerTabBar.hxx"
+#ifndef _SD_SDRESID_HXX
+#include "sdresid.hxx"
+#endif
+
+namespace sd {
+
+class ViewShellBase;
+
+class LayerDialogContent
+ : public SfxDockingWindow
+{
+public:
+ LayerDialogContent (
+ SfxBindings* pBindings,
+ SfxChildWindow *pCW,
+ ::Window* pParent,
+ const SdResId& rSdResId,
+ ViewShellBase& rBase);
+ virtual ~LayerDialogContent (void);
+
+protected:
+ virtual sal_Bool Close (void);
+ virtual void Resize (void);
+
+private:
+ LayerTabBar maLayerTabBar;
+};
+
+} // end of namespace sd
+
+#endif
+
diff --git a/sd/source/ui/inc/LayerTabBar.hxx b/sd/source/ui/inc/LayerTabBar.hxx
new file mode 100644
index 000000000000..4653fcd17bfe
--- /dev/null
+++ b/sd/source/ui/inc/LayerTabBar.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 SD_LAYER_TAB_BAR_HXX
+#define SD_LAYER_TAB_BAR_HXX
+
+#include <svtools/tabbar.hxx>
+#include <svtools/transfer.hxx>
+
+namespace sd {
+
+/*************************************************************************
+|*
+|* TabBar fuer die Layerverwaltung
+|*
+\************************************************************************/
+
+class DrawViewShell;
+
+class LayerTabBar
+ : public TabBar,
+ public DropTargetHelper
+{
+public:
+ LayerTabBar (
+ DrawViewShell* pDrViewSh,
+ ::Window* pParent);
+ LayerTabBar (
+ DrawViewShell* pDrViewSh,
+ ::Window* pParent,
+ const ResId& rResId);
+ virtual ~LayerTabBar (void);
+
+ /** Inform all listeners of this control that the current layer has been
+ activated. Call this method after switching the current layer and is
+ not done elsewhere (like when using ctrl + page up/down keys).
+ */
+ void SendActivatePageEvent (void);
+
+ /** Inform all listeners of this control that the current layer has been
+ deactivated. Call this method before switching the current layer
+ and is not done elsewhere (like when using ctrl page up/down keys).
+ */
+ void SendDeactivatePageEvent (void);
+
+protected:
+ DrawViewShell* pDrViewSh;
+
+ // TabBar
+ virtual void Select();
+ virtual void DoubleClick();
+ virtual void MouseButtonDown(const MouseEvent& rMEvt);
+
+ virtual void Command(const CommandEvent& rCEvt);
+
+ virtual long StartRenaming();
+ virtual long AllowRenaming();
+ virtual void EndRenaming();
+
+ virtual void ActivatePage();
+
+ // DropTargetHelper
+ virtual sal_Int8 AcceptDrop( const AcceptDropEvent& rEvt );
+ virtual sal_Int8 ExecuteDrop( const ExecuteDropEvent& rEvt );
+};
+
+} // end of namespace sd
+
+#endif
diff --git a/sd/source/ui/inc/MasterPageObserver.hxx b/sd/source/ui/inc/MasterPageObserver.hxx
new file mode 100755
index 000000000000..caaa8c175f68
--- /dev/null
+++ b/sd/source/ui/inc/MasterPageObserver.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 SD_VIEW_MASTER_PAGE_OBSERVER_HXX
+#define SD_VIEW_MASTER_PAGE_OBSERVER_HXX
+
+#include "tools/SdGlobalResourceContainer.hxx"
+#include <osl/mutex.hxx>
+#include <tools/link.hxx>
+#include <memory>
+#include <set>
+
+class SdDrawDocument;
+class String;
+
+namespace sd {
+
+/** This singleton observes all registered documents for changes in the used
+ master pages and in turn informs its listeners about it. One such
+ listener is the master page selector control in the tool panel that
+ shows the recently used master pages.
+*/
+class MasterPageObserver
+ : public SdGlobalResource
+{
+public:
+ typedef ::std::set<String> MasterPageNameSet;
+
+ /** Return the single instance of this class.
+ */
+ static MasterPageObserver& Instance (void);
+
+ /** The master page observer will listen to events of this document and
+ detect changes of the use of master pages.
+ */
+ void RegisterDocument (SdDrawDocument& rDocument);
+
+ /** The master page observer will stop to listen to events of this
+ document.
+ */
+ void UnregisterDocument (SdDrawDocument& rDocument);
+
+ /** Add a listener that is informed of master pages that are newly
+ assigned to slides or become unassigned.
+ @param rEventListener
+ The event listener to call for future events. Call
+ RemoveEventListener() before the listener is destroyed.
+ */
+ void AddEventListener (const Link& rEventListener);
+
+ /** Remove the given listener from the list of listeners.
+ @param rEventListener
+ After this method returns the given listener is not called back
+ from this object. Passing a listener that has not
+ been registered before is safe and is silently ignored.
+ */
+ void RemoveEventListener (const Link& rEventListener);
+
+private:
+ static ::osl::Mutex maMutex;
+
+ class Implementation;
+ ::std::auto_ptr<Implementation> mpImpl;
+
+ MasterPageObserver (void);
+ virtual ~MasterPageObserver (void);
+
+ /// The copy constructor is not implemented. Do not use!
+ MasterPageObserver (const MasterPageObserver&);
+
+ /// The assignment operator is not implemented. Do not use!
+ MasterPageObserver& operator= (const MasterPageObserver&);
+};
+
+
+
+
+/** Objects of this class are sent to listeners of the MasterPageObserver
+ singleton when the list of master pages of one document has changed.
+*/
+class MasterPageObserverEvent
+{
+public:
+ enum EventType {
+ /// Master page already exists when document is registered.
+ ET_MASTER_PAGE_EXISTS,
+ /// Master page has been added to a document.
+ ET_MASTER_PAGE_ADDED,
+ /// Master page has been removed from to a document.
+ ET_MASTER_PAGE_REMOVED
+ };
+
+ EventType meType;
+ SdDrawDocument& mrDocument;
+ const String& mrMasterPageName;
+
+ MasterPageObserverEvent (
+ EventType eType,
+ SdDrawDocument& rDocument,
+ const String& rMasterPageName)
+ : meType(eType),
+ mrDocument(rDocument),
+ mrMasterPageName(rMasterPageName)
+ {}
+
+};
+
+} // end of namespace sd
+
+#endif
diff --git a/sd/source/ui/inc/MediaObjectBar.hxx b/sd/source/ui/inc/MediaObjectBar.hxx
new file mode 100644
index 000000000000..2ad60e22182a
--- /dev/null
+++ b/sd/source/ui/inc/MediaObjectBar.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 SD_MEDIA_OBJECT_BAR_HXX
+#define SD_MEDIA_OBJECT_BAR_HXX
+
+#include <sfx2/module.hxx>
+#include <sfx2/shell.hxx>
+#include "glob.hxx"
+
+namespace sd {
+
+class View;
+class ViewShell;
+
+
+class MediaObjectBar
+ : public SfxShell
+{
+public:
+ TYPEINFO();
+ SFX_DECL_INTERFACE( SD_IF_SDDRAWMEDIAOBJECTBAR )
+
+ MediaObjectBar (ViewShell* pSdViewShell, ::sd::View* pSdView);
+ virtual ~MediaObjectBar (void);
+
+ void GetState( SfxItemSet& rSet );
+ void Execute( SfxRequest& rReq );
+
+protected:
+ ::sd::View* mpView;
+ ViewShell* mpViewSh;
+};
+
+} // end of namespace sd
+
+#endif
diff --git a/sd/source/ui/inc/MutexOwner.hxx b/sd/source/ui/inc/MutexOwner.hxx
new file mode 100644
index 000000000000..4ed23b31fa08
--- /dev/null
+++ b/sd/source/ui/inc/MutexOwner.hxx
@@ -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.
+ *
+ ************************************************************************/
+
+#ifndef SD_MUTEX_OWNER
+#define SD_MUTEX_OWNER
+
+#include <osl/mutex.hxx>
+
+namespace sd {
+
+/** This class provides a mutex to derived classes. It exists to
+ satisfy some helper classes from cppuhelper who expect a mutex as
+ argument to their constructor.
+*/
+class MutexOwner
+{
+protected:
+ mutable ::osl::Mutex maMutex;
+};
+
+} // end of namespace ::sd
+
+#endif
diff --git a/sd/source/ui/inc/NavigatorChildWindow.hxx b/sd/source/ui/inc/NavigatorChildWindow.hxx
new file mode 100755
index 000000000000..8a8c0bd0f534
--- /dev/null
+++ b/sd/source/ui/inc/NavigatorChildWindow.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 SD_NAVIGATOR_CHILD_WINDOW_HXX
+#define SD_NAVIGATOR_CHILD_WINDOW_HXX
+
+#include <sfx2/childwin.hxx>
+
+class Window;
+class SfxBindings;
+
+namespace sd {
+
+/*************************************************************************
+|*
+|* Ableitung vom SfxChildWindowContext als "Behaelter" fuer Navigator
+|*
+\************************************************************************/
+
+class NavigatorChildWindow
+ : public SfxChildWindowContext
+{
+public:
+ NavigatorChildWindow (
+ ::Window*,
+ sal_uInt16,
+ SfxBindings*,
+ SfxChildWinInfo*);
+
+ SFX_DECL_CHILDWINDOWCONTEXT(NavigatorChildWindow)
+};
+
+} // end of namespace sd
+
+#endif
diff --git a/sd/source/ui/inc/NotesChildWindow.hrc b/sd/source/ui/inc/NotesChildWindow.hrc
new file mode 100644
index 000000000000..c25109d81a22
--- /dev/null
+++ b/sd/source/ui/inc/NotesChildWindow.hrc
@@ -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.
+ *
+ ************************************************************************/
+
+#define FLT_WIN_NOTES 790
+
+#define NOTES 1
diff --git a/sd/source/ui/inc/NotesChildWindow.hxx b/sd/source/ui/inc/NotesChildWindow.hxx
new file mode 100755
index 000000000000..b69f67eee7e1
--- /dev/null
+++ b/sd/source/ui/inc/NotesChildWindow.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 SD_NOTES_CHILD_WINDOW_HXX
+#define SD_NOTES_CHILD_WINDOW_HXX
+
+#include <sfx2/childwin.hxx>
+
+#define NOTES_CHILD_WINDOW() ( \
+ static_cast< ::sd::toolpanel::NotesChildWindow*>( \
+ SfxViewFrame::Current()->GetChildWindow( \
+ ::sd::toolpanel::NotesChildWindow::GetChildWindowId() \
+ )->GetWindow()))
+
+
+namespace sd { namespace notes {
+
+class NotesChildWindow
+ : public SfxChildWindow
+{
+public:
+ NotesChildWindow (::Window*, sal_uInt16, SfxBindings*, SfxChildWinInfo*);
+ virtual ~NotesChildWindow (void);
+
+ SFX_DECL_CHILDWINDOW (NotesChildWindow);
+};
+
+
+} } // end of namespaces ::sd::notes
+
+#endif
diff --git a/sd/source/ui/inc/OutlineBulletDlg.hxx b/sd/source/ui/inc/OutlineBulletDlg.hxx
new file mode 100755
index 000000000000..253bd796c9ff
--- /dev/null
+++ b/sd/source/ui/inc/OutlineBulletDlg.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 SD_OUTLINE_BULLET_DLG_HXX
+#define SD_OUTLINE_BULLET_DLG_HXX
+
+#include <sfx2/tabdlg.hxx>
+
+#include "dlgolbul.hrc"
+
+namespace sd {
+
+class View;
+
+/*************************************************************************
+|*
+|* Bullet-Tab-Dialog
+|*
+\************************************************************************/
+class OutlineBulletDlg
+ : public SfxTabDialog
+{
+public:
+ OutlineBulletDlg (
+ ::Window* pParent,
+ const SfxItemSet* pAttr,
+ ::sd::View* pView );
+ virtual ~OutlineBulletDlg (void);
+
+ const SfxItemSet* GetOutputItemSet() const;
+
+protected:
+ virtual void PageCreated( sal_uInt16 nId, SfxTabPage &rPage );
+
+private:
+ using SfxTabDialog::GetOutputItemSet;
+
+ SfxItemSet aInputSet;
+ SfxItemSet *pOutputSet;
+ sal_Bool bTitle;
+ ::sd::View *pSdView;
+};
+
+} // end of namespace sd
+
+#endif
+
diff --git a/sd/source/ui/inc/OutlineView.hxx b/sd/source/ui/inc/OutlineView.hxx
new file mode 100755
index 000000000000..704bc1d125d9
--- /dev/null
+++ b/sd/source/ui/inc/OutlineView.hxx
@@ -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.
+ *
+ ************************************************************************/
+
+#ifndef SD_OUTLINE_VIEW_HXX
+#define SD_OUTLINE_VIEW_HXX
+
+#include <vcl/image.hxx>
+#include <editeng/lrspitem.hxx>
+#include "View.hxx"
+
+class SdPage;
+class SdrPage;
+class EditStatus;
+class Paragraph;
+class SdrTextObj;
+class Outliner;
+class SfxProgress;
+struct PaintFirstLineInfo;
+struct PasteOrDropInfos;
+
+namespace sd { namespace tools {
+class EventMultiplexerEvent;
+} }
+
+namespace sd {
+
+class DrawDocShell;
+class OutlineViewShell;
+class OutlineViewModelChangeGuard;
+class DrawDocShell;
+
+static const int MAX_OUTLINERVIEWS = 4;
+
+/*************************************************************************
+|*
+|* Ableitung von ::sd::View fuer den Outline-Modus
+|*
+\************************************************************************/
+
+class OutlineView
+ : public ::sd::View
+{
+ friend class OutlineViewModelChangeGuard;
+public:
+ OutlineView (DrawDocShell* pDocSh,
+ ::Window* pWindow,
+ OutlineViewShell* pOutlineViewSh);
+ ~OutlineView (void);
+
+ /** This method is called by the view shell that owns the view to tell
+ the view that it can safely connect to the application.
+ This method must not be called before the view shell is on the shell
+ stack.
+ */
+ void ConnectToApplication (void);
+ void DisconnectFromApplication (void);
+
+ TYPEINFO();
+
+ SdrTextObj* GetTitleTextObject(SdrPage* pPage);
+ SdrTextObj* GetOutlineTextObject(SdrPage* pPage);
+
+ SdrTextObj* CreateTitleTextObject(SdPage* pPage);
+ SdrTextObj* CreateOutlineTextObject(SdPage* pPage);
+
+ virtual void AddWindowToPaintView(OutputDevice* pWin);
+ virtual void DeleteWindowFromPaintView(OutputDevice* pWin);
+
+ OutlinerView* GetViewByWindow (::Window* pWin) const;
+ SdrOutliner* GetOutliner() { return(mpOutliner) ; }
+
+ Paragraph* GetPrevTitle(const Paragraph* pPara);
+ Paragraph* GetNextTitle(const Paragraph* pPara);
+ SdPage* GetActualPage();
+ SdPage* GetPageForParagraph( Paragraph* pPara );
+ Paragraph* GetParagraphForPage( ::Outliner* pOutl, SdPage* pPage );
+
+ /** selects the paragraph for the given page at the outliner view*/
+ void SetActualPage( SdPage* pActual );
+
+ virtual void Paint (const Rectangle& rRect, ::sd::Window* pWin);
+ virtual void AdjustPosSizePixel(
+ const Point &rPos,
+ const Size &rSize,
+ ::sd::Window* pWindow);
+
+ // Callbacks fuer LINKs
+ DECL_LINK( ParagraphInsertedHdl, Outliner * );
+ DECL_LINK( ParagraphRemovingHdl, Outliner * );
+ DECL_LINK( DepthChangedHdl, Outliner * );
+ DECL_LINK( StatusEventHdl, EditStatus * );
+ DECL_LINK( BeginMovingHdl, Outliner * );
+ DECL_LINK( EndMovingHdl, Outliner * );
+ DECL_LINK( RemovingPagesHdl, OutlinerView * );
+ DECL_LINK( IndentingPagesHdl, OutlinerView * );
+ DECL_LINK( BeginDropHdl, void * );
+ DECL_LINK( EndDropHdl, void * );
+ DECL_LINK( PaintingFirstLineHdl, PaintFirstLineInfo* );
+
+ sal_uLong GetPaperWidth() const { return 2*21000; } // DIN A4 Breite
+
+ sal_Bool PrepareClose(sal_Bool bUI = sal_True);
+
+ virtual sal_Bool GetAttributes( SfxItemSet& rTargetSet, sal_Bool bOnlyHardAttr=sal_False ) const;
+ virtual sal_Bool SetAttributes(const SfxItemSet& rSet, sal_Bool bReplaceAll = sal_False);
+
+// virtual sal_Bool HasMarkedObjUnused() const;
+ void FillOutliner();
+ void SetLinks();
+ void ResetLinks() const;
+
+ SfxStyleSheet* GetStyleSheet() const;
+
+ void SetSelectedPages();
+
+ virtual sal_Int8 AcceptDrop (
+ const AcceptDropEvent& rEvt,
+ DropTargetHelper& rTargetHelper,
+ ::sd::Window* pTargetWindow = NULL,
+ sal_uInt16 nPage = SDRPAGE_NOTFOUND,
+ sal_uInt16 nLayer = SDRPAGE_NOTFOUND);
+ virtual sal_Int8 ExecuteDrop (
+ const ExecuteDropEvent& rEvt,
+ DropTargetHelper& rTargetHelper,
+ ::sd::Window* pTargetWindow = NULL,
+ sal_uInt16 nPage = SDRPAGE_NOTFOUND,
+ sal_uInt16 nLayer = SDRPAGE_NOTFOUND);
+
+
+ // #97766# Re-implement GetScriptType for this view to get correct results
+ virtual sal_uInt16 GetScriptType() const;
+
+ /** After this method has been called with <TRUE/> following changes of
+ the current page are ignored in that the corresponding text is not
+ selected.
+ This is used to supress unwanted side effects between selection and
+ cursor position.
+ */
+ void IgnoreCurrentPageChanges (bool bIgnore);
+
+#if 0
+ sal_Int32 GetPageNumberWidthPixel();
+#endif
+
+ void InvalidateSlideNumberArea();
+
+ /** creates and inserts an empty slide for the given paragraph. */
+ SdPage* InsertSlideForParagraph( Paragraph* pPara );
+
+ void UpdateParagraph( sal_uInt16 nPara );
+
+protected:
+ virtual void OnBeginPasteOrDrop( PasteOrDropInfos* pInfos );
+ virtual void OnEndPasteOrDrop( PasteOrDropInfos* pInfos );
+
+private:
+ /** call this method before you do anything that can modify the outliner
+ and or the drawing document model. It will create needed undo actions */
+ void BeginModelChange();
+
+ /** call this method after BeginModelChange(), when all possible model
+ changes are done. */
+ void EndModelChange();
+
+ /** merge edit engine undo actions if possible */
+ void TryToMergeUndoActions();
+
+ /** updates all changes in the outliner model to the draw model */
+ void UpdateDocument();
+
+ OutlineViewShell* mpOutlineViewShell;
+ SdrOutliner* mpOutliner;
+ OutlinerView* mpOutlinerView[MAX_OUTLINERVIEWS];
+
+ List* mpOldParaOrder;
+ List* mpSelectedParas;
+
+ sal_uInt16 mnPagesToProcess; // fuer die Fortschrittsanzeige
+ sal_uInt16 mnPagesProcessed;
+
+ sal_Bool mbFirstPaint;
+
+ SfxProgress* mpProgress;
+
+ /** stores the last used high contrast mode.
+ this is changed in onUpdateStyleSettings()
+ */
+ bool mbHighContrastMode;
+
+ /** stores the last used document color.
+ this is changed in onUpdateStyleSettings()
+ */
+ Color maDocColor;
+
+ /** updates the high contrast settings and document color if they changed.
+ @param bForceUpdate forces the method to set all style settings
+ */
+ void onUpdateStyleSettings( bool bForceUpdate = false );
+
+ /** this link is called from the vcl applicaten when the stylesettings
+ change. Its only purpose is to call onUpdateStyleSettings() then.
+ */
+ DECL_LINK( AppEventListenerHdl, void * );
+
+ DECL_LINK(EventMultiplexerListener, sd::tools::EventMultiplexerEvent*);
+
+ /** holds a model guard during drag and drop between BeginMovingHdl and EndMovingHdl */
+ std::auto_ptr< OutlineViewModelChangeGuard > maDragAndDropModelGuard;
+
+ Font maPageNumberFont;
+ sal_Int32 mnPageNumberWidthPixel;
+ Font maBulletFont;
+
+ SvxLRSpaceItem maLRSpaceItem;
+ Image maSlideImage;
+};
+
+// calls IgnoreCurrentPageChangesLevel with true in ctor and with false in dtor
+class OutlineViewPageChangesGuard
+{
+public:
+ OutlineViewPageChangesGuard( OutlineView* pView );
+ ~OutlineViewPageChangesGuard();
+private:
+ OutlineView* mpView;
+};
+
+// calls BeginModelChange() on c'tor and EndModelChange() on d'tor
+class OutlineViewModelChangeGuard
+{
+public:
+ OutlineViewModelChangeGuard( OutlineView& rView );
+ ~OutlineViewModelChangeGuard();
+private:
+ OutlineView& mrView;
+};
+
+} // end of namespace sd
+
+#endif
diff --git a/sd/source/ui/inc/OutlineViewShell.hxx b/sd/source/ui/inc/OutlineViewShell.hxx
new file mode 100755
index 000000000000..d411771b5e56
--- /dev/null
+++ b/sd/source/ui/inc/OutlineViewShell.hxx
@@ -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.
+ *
+ ************************************************************************/
+
+#ifndef SD_OUTLINE_VIEW_SHELL_HXX
+#define SD_OUTLINE_VIEW_SHELL_HXX
+
+#include "DrawDocShell.hxx"
+#include "ViewShell.hxx"
+#include "OutlineView.hxx"
+
+class SdPage;
+class TransferableDataHelper;
+class TransferableClipboardListener;
+
+namespace sd {
+
+class SdUnoOutlineView;
+
+/** Show a textual overview of the text contents of all slides.
+*/
+class OutlineViewShell
+ : public ViewShell
+{
+public:
+ TYPEINFO();
+
+ SFX_DECL_VIEWFACTORY(OutlineViewShell);
+ SFX_DECL_INTERFACE(SD_IF_SDOUTLINEVIEWSHELL)
+
+ // The previous macros change access mode. To be sure switch back
+ // to public access.
+public:
+ /** Create a new view shell for the outline mode.
+ @param rViewShellBase
+ The new object will be stacked on this view shell base.
+ @param pFrameView
+ The frame view that makes it possible to pass information from
+ one view shell to the next.
+ */
+ OutlineViewShell (
+ SfxViewFrame* pFrame,
+ ViewShellBase& rViewShellBase,
+ ::Window* pParentWindow,
+ FrameView* pFrameView = NULL);
+
+ virtual ~OutlineViewShell (void);
+
+ virtual void Shutdown (void);
+
+ virtual void Paint(const Rectangle& rRect, ::sd::Window* pWin);
+
+ /** Arrange and resize the GUI elements like rulers, sliders, and
+ buttons as well as the actual document view according to the size of
+ the enclosing window and current sizes of buttons, rulers, and
+ sliders.
+ */
+ virtual void ArrangeGUIElements (void);
+
+ virtual sal_uInt16 PrepareClose( sal_Bool bUI = sal_True, sal_Bool bForBrowsing = sal_False );
+
+ virtual long VirtHScrollHdl(ScrollBar* pHScroll);
+ virtual long VirtVScrollHdl(ScrollBar* pVHScroll);
+
+ virtual void AddWindow(::sd::Window* pWin);
+ virtual void RemoveWindow(::sd::Window* pWin);
+
+ virtual void Activate( sal_Bool IsMDIActivate );
+ virtual void Deactivate( sal_Bool IsMDIActivate );
+
+ virtual SdPage* GetActualPage();
+
+ /// inherited from sd::ViewShell
+ virtual SdPage* getCurrentPage() const;
+
+ void ExecCtrl(SfxRequest &rReq);
+ void GetCtrlState(SfxItemSet &rSet);
+ void GetMenuState(SfxItemSet &rSet);
+ void GetAttrState(SfxItemSet &rSet);
+ void GetState (SfxItemSet& rSet);
+
+ void ExecStatusBar(SfxRequest& rReq);
+ void GetStatusBarState(SfxItemSet& rSet);
+
+ void FuTemporary(SfxRequest &rReq);
+ void FuTemporaryModify(SfxRequest &rReq);
+ void FuPermanent(SfxRequest &rReq);
+ void FuSupport(SfxRequest &rReq);
+
+ virtual void SetZoom(long nZoom);
+ virtual void SetZoomRect(const Rectangle& rZoomRect);
+ virtual String GetSelectionText( sal_Bool bCompleteWords = sal_False );
+ virtual sal_Bool HasSelection( sal_Bool bText = sal_True ) const;
+
+ void Execute(SfxRequest& rReq);
+
+ virtual void ReadFrameViewData(FrameView* pView);
+ virtual void WriteFrameViewData();
+
+ virtual void Command( const CommandEvent& rCEvt, ::sd::Window* pWin );
+ virtual sal_Bool KeyInput(const KeyEvent& rKEvt, ::sd::Window* pWin);
+ virtual void MouseButtonUp(const MouseEvent& rMEvt, ::sd::Window* pWin);
+
+ sal_uLong Read(SvStream& rInput, const String& rBaseURL, sal_uInt16 eFormat);
+
+ virtual void WriteUserDataSequence ( ::com::sun::star::uno::Sequence < ::com::sun::star::beans::PropertyValue >&, sal_Bool bBrowse = sal_False );
+ virtual void ReadUserDataSequence ( const ::com::sun::star::uno::Sequence < ::com::sun::star::beans::PropertyValue >&, sal_Bool bBrowse = sal_False );
+
+ /** this method is called when the visible area of the view from this viewshell is changed */
+ virtual void VisAreaChanged(const Rectangle& rRect);
+
+ /** Create an accessible object representing the specified window.
+ @param pWindow
+ The returned object makes the document displayed in this window
+ accessible.
+ @return
+ Returns an <type>AccessibleDrawDocumentView</type> object.
+ */
+ virtual ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible>
+ CreateAccessibleDocumentView (::sd::Window* pWindow);
+
+ /** Update the preview to show the specified page.
+ */
+ virtual void UpdatePreview (SdPage* pPage, sal_Bool bInit = sal_False);
+
+ virtual css::uno::Reference<css::drawing::XDrawSubController> CreateSubController (void);
+
+ /** Make the given page the new current page. This method
+ notifies the controller and adapts the selection of the
+ model.
+ @param pPage
+ The new current page. Pass NULL when there is no current page.
+ */
+ void SetCurrentPage (SdPage* pPage);
+
+ bool UpdateTitleObject( SdPage* pPage, Paragraph* pPara );
+ bool UpdateOutlineObject( SdPage* pPage, Paragraph* pPara );
+
+protected:
+ virtual Size GetOptimalSizePixel() const;
+
+private:
+ OutlineView* pOlView;
+ SdPage* pLastPage; // Zur performanten Aufbereitung der Preview
+ TransferableClipboardListener* pClipEvtLstnr;
+ sal_Bool bPastePossible;
+ bool mbInitialized;
+
+ void Construct (DrawDocShell* pDocSh);
+ DECL_LINK( ClipboardChanged, TransferableDataHelper* );
+};
+
+} // end of namespace sd
+
+#endif
diff --git a/sd/source/ui/inc/OutlineViewShellBase.hxx b/sd/source/ui/inc/OutlineViewShellBase.hxx
new file mode 100644
index 000000000000..2486eb80254c
--- /dev/null
+++ b/sd/source/ui/inc/OutlineViewShellBase.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 SD_OUTLINE_VIEW_SHELL_BASE_HXX
+#define SD_OUTLINE_VIEW_SHELL_BASE_HXX
+
+#include "ImpressViewShellBase.hxx"
+
+
+namespace sd {
+
+/** This class exists to be able to register a factory that
+ creates an outline view shell as default.
+*/
+class OutlineViewShellBase
+ : public ImpressViewShellBase
+{
+public:
+ TYPEINFO();
+ SFX_DECL_VIEWFACTORY(OutlineViewShellBase);
+
+ /** This constructor is used by the view factory of the SFX
+ macros.
+ */
+ OutlineViewShellBase (SfxViewFrame *pFrame, SfxViewShell* pOldShell);
+ virtual ~OutlineViewShellBase (void);
+};
+
+} // end of namespace sd
+
+#endif
diff --git a/sd/source/ui/inc/OutlinerIteratorImpl.hxx b/sd/source/ui/inc/OutlinerIteratorImpl.hxx
new file mode 100755
index 000000000000..320f5c6878d9
--- /dev/null
+++ b/sd/source/ui/inc/OutlinerIteratorImpl.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 SD_OUTLINER_ITERATOR_IMPL_HXX
+#define SD_OUTLINER_ITERATOR_IMPL_HXX
+
+#include <svx/svdobj.hxx>
+#include "OutlinerIterator.hxx"
+#include <boost/weak_ptr.hpp>
+
+class SdDrawDocument;
+class SdPage;
+class SdrObjListIter;
+
+namespace sd {
+
+class ViewShell;
+
+namespace outliner {
+
+class IteratorImplBase;
+
+/** Base class for the polymorphic implementation class of the
+ <type>Iterator</type> class. The iterators based on this class are
+ basically uni directional iterators. Their direction can, however, be
+ reversed at any point of their life time.
+*/
+class IteratorImplBase
+{
+public:
+ /** The constructor stores the given arguments to be used by the derived
+ classes.
+ @param pDocument
+ The document provides the information to be iterated on.
+ @param pViewShellWeak
+ Some information has to be taken from the view shell.
+ @param bDirectionIsForward
+ This flag defines the iteration direction. When <TRUE/> then
+ the direction is forwards otherwise it is backwards.
+ */
+ IteratorImplBase (SdDrawDocument* pDocument,
+ const ::boost::weak_ptr<ViewShell>& rpViewShellWeak,
+ bool bDirectionIsForward);
+ IteratorImplBase (SdDrawDocument* pDocument,
+ const ::boost::weak_ptr<ViewShell>& rpViewShellWeak,
+ bool bDirectionIsForward, PageKind ePageKind, EditMode eEditMode);
+ virtual ~IteratorImplBase (void);
+
+ /** Advance to the next text of the current object or to the next object.
+ This takes the iteration direction into
+ account. The new object pointed to can be retrieved (among other
+ information) by calling the <member>GetPosition</member> method.
+ */
+ virtual void GotoNextText (void) = 0;
+ /** Return an object that describes the current object.
+ @return
+ The returned object describes the current object pointed to by
+ the iterator. See the description of
+ <type>IteratorPosition</type> for details on the available
+ information.
+ */
+ virtual const IteratorPosition& GetPosition (void);
+ /** Create an exact copy of this object. No argument should be
+ specified when called from the outside. It then creates an object
+ first and passes that to the inherited <member>Clone()</member>
+ methods to fill in class specific information.
+ @return
+ Returns a copy of this object. When this method is called with
+ an argument then this value will be returned.
+ */
+ virtual IteratorImplBase* Clone (IteratorImplBase* pObject=NULL) const;
+ /** Test the equality of the this object and the given iterator. Two
+ iterators are taken to be equal when they point to the same object.
+ Iteration direction is not taken into account.
+ @param rIterator
+ The iterator to compare to.
+ @return
+ When both iterators ar equal <TRUE/> is returned, <FALSE/> otherwise.
+ */
+ virtual bool operator== (const IteratorImplBase& rIterator) const;
+ /** This method is used by the equality operator. Additionaly to the
+ iterator it takes a type information which is taken into account on
+ comparison. It is part of a "multimethod" pattern.
+ @param rIterator
+ The iterator to compare to.
+ @param aType
+ The type of the iterator.
+ @return
+ Returns <TRUE/> when both iterators point to the same object.
+ */
+ virtual bool IsEqual (const IteratorImplBase& rIterator, IteratorType aType) const;
+ /** Reverse the direction of iteration. The current object stays the same.
+ */
+ virtual void Reverse (void);
+
+protected:
+ /// The current position as returned by <member>GetPosition()</member>.
+ IteratorPosition maPosition;
+ /// The document on whose data the iterator operates.
+ SdDrawDocument* mpDocument;
+ /// Necessary secondary source of information.
+ ::boost::weak_ptr<ViewShell> mpViewShellWeak;
+ /// Specifies the search direction.
+ bool mbDirectionIsForward;
+};
+
+
+
+
+/** Iterator all objects that belong to the current mark list
+ a.k.a. selection. It is assumed that all marked objects belong to the
+ same page. It is further assumed that the mark list does not change
+ while an iterator is alive. It is therefore the responsibility of an
+ iterator's owner to handle the case of a changed mark list.
+
+ <p>For documentation of the methods please refere to the base class
+ <type>IteratorImplBase</type>.</p>
+*/
+class SelectionIteratorImpl
+ : public IteratorImplBase
+{
+public:
+ SelectionIteratorImpl (
+ const ::std::vector< SdrObjectWeakRef >& rObjectList,
+ sal_Int32 nObjectIndex,
+ SdDrawDocument* pDocument,
+ const ::boost::weak_ptr<ViewShell>& rpViewShellWeak,
+ bool bDirectionIsForward);
+ SelectionIteratorImpl (const SelectionIteratorImpl& rObject);
+ virtual ~SelectionIteratorImpl (void);
+
+ virtual void GotoNextText (void);
+ virtual const IteratorPosition& GetPosition (void);
+ virtual IteratorImplBase* Clone (IteratorImplBase* pObject) const;
+ virtual bool operator== (const IteratorImplBase& rIterator) const;
+
+private:
+ const ::std::vector<SdrObjectWeakRef>& mrObjectList;
+ sal_Int32 mnObjectIndex;
+
+ /** Compare the given iterator with this object. This method handles
+ only the case that the given iterator is an instance of this class.
+ @param rIterator
+ The iterator to compare to.
+ @param aType
+ The type of the iterator.
+ @return
+ Returns <TRUE/> when both iterators point to the same object.
+ */
+ virtual bool IsEqual (const IteratorImplBase& rIterator, IteratorType aType) const;
+
+ IteratorImplBase& operator= (const IteratorImplBase& rIterator);
+};
+
+
+/** Iterator for iteration over all objects in a single view. On reaching
+ the last object on the last page (or the first object on the first page)
+ the view is *not* switched. Further calls to the
+ <member>GotoNextObject()</member> method will be ignored.
+
+ <p>For documentation of the methods please refere to the base class
+ <type>IteratorImplBase</type>.</p>
+*/
+class ViewIteratorImpl : public IteratorImplBase
+{
+public:
+ ViewIteratorImpl (
+ sal_Int32 nPageIndex,
+ SdDrawDocument* pDocument,
+ const ::boost::weak_ptr<ViewShell>& rpViewShellWeak,
+ bool bDirectionIsForward);
+ ViewIteratorImpl (
+ sal_Int32 nPageIndex,
+ SdDrawDocument* pDocument,
+ const ::boost::weak_ptr<ViewShell>& rpViewShellWeak,
+ bool bDirectionIsForward,
+ PageKind ePageKind,
+ EditMode eEditMode);
+ virtual ~ViewIteratorImpl (void);
+
+ virtual void GotoNextText (void);
+ virtual IteratorImplBase* Clone (IteratorImplBase* pObject) const;
+ virtual void Reverse (void);
+
+protected:
+ /// Number of pages in the view that is specified by <member>maPosition</member>.
+ sal_Int32 mnPageCount;
+
+ /** Initialize this iterator with respect to the given location. After
+ this call the object looks like newly constructed.
+ */
+ void Init (IteratorLocation aLocation);
+
+ /** Set up page pointer and object list iterator for the specified
+ page.
+ @param nPageIndex
+ Index of the new page. It may lie outside the valid range for
+ page indices.
+ */
+ void SetPage (sal_Int32 nPageIndex);
+
+private:
+ /// Indicates whether a page changed occured on switching to current page.
+ bool mbPageChangeOccured;
+ /// Pointer to the page associated with the current page index. May be NULL.
+ SdPage* mpPage;
+ /// Iterator of all objects on the current page.
+ SdrObjListIter* mpObjectIterator;
+
+ // Don't use this operator.
+ ViewIteratorImpl& operator= (const ViewIteratorImpl&){return *this;};
+};
+
+
+
+
+/** Iterator for iteration over all objects in all views. It automatically
+ switches views when reaching the end/beginning of a view.
+
+ <p>For documentation of the methods please refere to the base class
+ <type>IteratorImplBase</type>.</p>
+*/
+class DocumentIteratorImpl : public ViewIteratorImpl
+{
+public:
+ DocumentIteratorImpl (
+ sal_Int32 nPageIndex,
+ PageKind ePageKind,
+ EditMode eEditMode,
+ SdDrawDocument* pDocument,
+ const ::boost::weak_ptr<ViewShell>& rpViewShellWeak,
+ bool bDirectionIsForward);
+ virtual ~DocumentIteratorImpl (void);
+
+ virtual void GotoNextText (void);
+ virtual IteratorImplBase* Clone (IteratorImplBase* pObject) const;
+
+private:
+ sal_Int32 mnPageCount;
+
+ // Don't use this operator.
+ DocumentIteratorImpl& operator= (const DocumentIteratorImpl& ){return *this;};
+};
+
+
+} } // end of namespace ::sd::outliner
+
+#endif
diff --git a/sd/source/ui/inc/PaneChildWindows.hxx b/sd/source/ui/inc/PaneChildWindows.hxx
new file mode 100755
index 000000000000..6324a0256e12
--- /dev/null
+++ b/sd/source/ui/inc/PaneChildWindows.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 SD_PANE_CHILD_WINDOWS_HXX
+#define SD_PANE_CHILD_WINDOWS_HXX
+
+#include <sfx2/childwin.hxx>
+#include <sfx2/taskpane.hxx>
+
+namespace sd {
+
+class PaneChildWindow
+ : public SfxChildWindow
+{
+public:
+ PaneChildWindow (
+ ::Window* pParentWindow,
+ sal_uInt16 nId,
+ SfxBindings* pBindings,
+ SfxChildWinInfo* pInfo,
+ const sal_uInt16 nDockWinTitleResId,
+ const sal_uInt16 nTitleBarResId,
+ SfxChildAlignment eAlignment);
+ virtual ~PaneChildWindow (void);
+};
+
+
+
+
+class LeftPaneImpressChildWindow
+ : public PaneChildWindow
+{
+public:
+ LeftPaneImpressChildWindow (::Window*, sal_uInt16, SfxBindings*, SfxChildWinInfo*);
+
+ SFX_DECL_CHILDWINDOW(LeftPaneImpressChildWindow);
+};
+
+
+
+
+class LeftPaneDrawChildWindow
+ : public PaneChildWindow
+{
+public:
+ LeftPaneDrawChildWindow (::Window*, sal_uInt16, SfxBindings*, SfxChildWinInfo*);
+
+ SFX_DECL_CHILDWINDOW(LeftPaneDrawChildWindow);
+};
+
+
+
+
+//======================================================================================================================
+//= ToolPanelChildWindow
+//======================================================================================================================
+class ToolPanelChildWindow :public PaneChildWindow
+ ,public ::sfx2::ITaskPaneToolPanelAccess
+{
+public:
+ ToolPanelChildWindow(
+ ::Window* i_pParentWindow,
+ sal_uInt16 i_nId,
+ SfxBindings* i_pBindings,
+ SfxChildWinInfo* i_pChildWindowInfo );
+
+ SFX_DECL_CHILDWINDOW( ToolPanelChildWindow );
+
+ // ::sfx2::ITaskPaneToolPanelAccess
+ virtual void ActivateToolPanel( const ::rtl::OUString& i_rPanelURL );
+};
+
+
+} // end of namespace ::sd
+
+#endif
diff --git a/sd/source/ui/inc/PaneDockingWindow.hrc b/sd/source/ui/inc/PaneDockingWindow.hrc
new file mode 100755
index 000000000000..eb7c23c075ec
--- /dev/null
+++ b/sd/source/ui/inc/PaneDockingWindow.hrc
@@ -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.
+ *
+ ************************************************************************/
+
+#define FLT_LEFT_PANE_IMPRESS_DOCKING_WINDOW 792
+#define FLT_LEFT_PANE_DRAW_DOCKING_WINDOW 793
+#define FLT_TOOL_PANEL_DOCKING_WINDOW 794
diff --git a/sd/source/ui/inc/PaneDockingWindow.hxx b/sd/source/ui/inc/PaneDockingWindow.hxx
new file mode 100644
index 000000000000..2f30f1554aed
--- /dev/null
+++ b/sd/source/ui/inc/PaneDockingWindow.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 SD_PANE_DOCKING_WINDOW_HXX
+#define SD_PANE_DOCKING_WINDOW_HXX
+
+#include <sfx2/titledockwin.hxx>
+#include <sfx2/viewfrm.hxx>
+
+#include <boost/scoped_ptr.hpp>
+#include <boost/shared_ptr.hpp>
+
+class ToolBox;
+class SplitWindow;
+
+namespace sd {
+
+ class PaneDockingWindow : public ::sfx2::TitledDockingWindow
+{
+public:
+ /** Create a new docking window.
+ @param pBindings
+ Used, among others, to determine the ViewShellBase and
+ PaneManager that manage the new docking window.
+ @param pChildWindow
+ This child window is the logical container for the new docking
+ window.
+ @param pParent
+ The parent window of the new docking window.
+ @param rResId
+ The resource is used to determine initial size and attributes.
+ @param rsTitle
+ the initial title
+ */
+ PaneDockingWindow (
+ SfxBindings *pBindings,
+ SfxChildWindow *pChildWindow,
+ ::Window* pParent,
+ const ResId& rResId,
+ const ::rtl::OUString& rsTitle);
+
+ virtual ~PaneDockingWindow (void);
+ virtual void StateChanged( StateChangedType nType );
+ virtual void MouseButtonDown (const MouseEvent& rEvent);
+ /** When docked the given range is passed to the parent SplitWindow.
+ */
+ void SetValidSizeRange (const Range aValidSizeRange);
+
+ enum Orientation { HorizontalOrientation, VerticalOrientation, UnknownOrientation };
+ /** When the PaneDockingWindow is docked and managed by a split window
+ it can derive its orientation from the orientation of the split
+ window and return either HorizontalOrientation or
+ VerticalOrientation.
+ Otherwise UnknownOrientation is returned.
+ */
+ Orientation GetOrientation (void) const;
+
+ /** The current height of the title bar.
+ */
+ sal_Int32 mnTitleBarHeight;
+
+};
+
+} // end of namespace ::sd
+
+#endif
diff --git a/sd/source/ui/inc/PaneShells.hxx b/sd/source/ui/inc/PaneShells.hxx
new file mode 100755
index 000000000000..de410c2565bf
--- /dev/null
+++ b/sd/source/ui/inc/PaneShells.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 SD_PANE_SHELLS_HXX
+#define SD_PANE_SHELLS_HXX
+
+
+#include <sfx2/module.hxx>
+#include <sfx2/shell.hxx>
+#include "glob.hxx"
+
+class CommandEvent;
+
+namespace sd {
+
+
+/** Shell that displays the left pane for Impress. The shell does not do
+ anything else and has especially no slots.
+*/
+class LeftImpressPaneShell
+ : public SfxShell
+{
+public:
+ TYPEINFO();
+ SFX_DECL_INTERFACE(SD_IF_SDLEFTIMPRESSPANESHELL)
+
+ LeftImpressPaneShell (void);
+ virtual ~LeftImpressPaneShell (void);
+};
+
+
+
+
+/** Shell that displays the left pane for Draw. The shell does not do
+ anything else and has especially no slots.
+*/
+class LeftDrawPaneShell
+ : public SfxShell
+{
+public:
+ TYPEINFO();
+ SFX_DECL_INTERFACE(SD_IF_SDLEFTDRAWPANESHELL)
+
+ LeftDrawPaneShell (void);
+ virtual ~LeftDrawPaneShell (void);
+};
+
+
+
+
+/** Shell that displays the right pane for both Impress and Draw. The shell
+ does not do anything else and has especially no slots.
+*/
+class ToolPanelPaneShell : public SfxShell
+{
+public:
+ TYPEINFO();
+ SFX_DECL_INTERFACE( SD_IF_SDTOOLPANELPANESHELL )
+
+ ToolPanelPaneShell();
+ virtual ~ToolPanelPaneShell();
+};
+
+} // end of namespace sd
+
+#endif
diff --git a/sd/source/ui/inc/PresentationViewShell.hxx b/sd/source/ui/inc/PresentationViewShell.hxx
new file mode 100755
index 000000000000..75687665593f
--- /dev/null
+++ b/sd/source/ui/inc/PresentationViewShell.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 SD_PRESENTATION_VIEW_SHELL_HXX
+#define SD_PRESENTATION_VIEW_SHELL_HXX
+
+#ifndef SD_DRAW_VIEW_SHELL
+#include "DrawViewShell.hxx"
+#endif
+
+namespace sd {
+
+/** This view shell is responsible for showing the presentation of an
+ Impress document.
+*/
+class PresentationViewShell : public DrawViewShell
+{
+public:
+ TYPEINFO();
+
+ SFX_DECL_VIEWFACTORY(PresViewShell);
+ SFX_DECL_INTERFACE( SD_IF_SDPRESVIEWSHELL )
+
+ PresentationViewShell( SfxViewFrame* pFrame, ViewShellBase& rViewShellBase, ::Window* pParentWindow, FrameView* pFrameView = NULL);
+ virtual ~PresentationViewShell (void);
+
+ /** This method is used by a simple class that passes some
+ arguments from the creator of the new view shell to the new view
+ shell object by waiting for its asynchronous creation.
+ @param pFrameView
+ The frame view that is typically used by the creating object and
+ that shall be shared by the created view shell.
+ */
+ void FinishInitialization( FrameView* pFrameView );
+
+ virtual void Resize (void);
+
+protected:
+ virtual SvxRuler* CreateHRuler(::sd::Window* pWin, sal_Bool bIsFirst);
+ virtual SvxRuler* CreateVRuler(::sd::Window* pWin);
+
+private:
+ Rectangle maOldVisArea;
+
+ virtual void Activate (sal_Bool bIsMDIActivate);
+ virtual void Paint (const Rectangle& rRect, ::sd::Window* pWin);
+};
+
+} // end of namespace sd
+
+#endif
diff --git a/sd/source/ui/inc/PresentationViewShellBase.hxx b/sd/source/ui/inc/PresentationViewShellBase.hxx
new file mode 100644
index 000000000000..26b31e2bfd65
--- /dev/null
+++ b/sd/source/ui/inc/PresentationViewShellBase.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 SD_PRESENTATION_VIEW_SHELL_BASE_HXX
+#define SD_PRESENTATION_VIEW_SHELL_BASE_HXX
+
+#include "ViewShellBase.hxx"
+
+
+namespace sd {
+
+/** This class exists to be able to register another factory that
+ creates the view shell for the presentation.
+*/
+class PresentationViewShellBase
+ : public ViewShellBase
+{
+public:
+ TYPEINFO();
+ SFX_DECL_VIEWFACTORY(PresentationViewShellBase);
+
+ /** This constructor is used by the view factory of the SFX
+ macros.
+ */
+ PresentationViewShellBase (SfxViewFrame *pFrame, SfxViewShell* pOldShell);
+ virtual ~PresentationViewShellBase (void);
+
+protected:
+ virtual void InitializeFramework (void);
+};
+
+} // end of namespace sd
+
+#endif
diff --git a/sd/source/ui/inc/PreviewRenderer.hxx b/sd/source/ui/inc/PreviewRenderer.hxx
new file mode 100755
index 000000000000..b157d686b044
--- /dev/null
+++ b/sd/source/ui/inc/PreviewRenderer.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 SD_PREVIEW_RENDERER_HXX
+#define SD_PREVIEW_RENDERER_HXX
+
+#include "drawview.hxx"
+#include <vcl/image.hxx>
+#include <vcl/virdev.hxx>
+#include <svl/listener.hxx>
+#include <memory>
+
+
+class OutputDevice;
+class SdPage;
+class VirtualDevice;
+
+namespace sd {
+
+class DrawDocShell;
+class DrawView;
+
+
+class PreviewRenderer
+ : public SfxListener
+{
+public:
+ /** Create a new preview renderer that takes some of its inital values
+ from the given output device.
+ @param pTemplate
+ May be NULL.
+ @param bPaintFrame
+ When <TRUE/> (the default) then a frame is painted around the
+ preview. This makes the actual preview smaller.
+ */
+ PreviewRenderer (
+ OutputDevice* pTemplate = NULL,
+ const bool bPaintFrame = true);
+
+ ~PreviewRenderer (void);
+
+ /** Render a page with the given pixel size.
+ Use this version when only the width of the preview is known to the
+ caller. The height is then calculated according to the aspect
+ ration of the given page.
+ @param pPage
+ The page to render.
+ @param nWidth
+ The width of the preview in device coordinates.
+ @param sSubstitutionText
+ When the actual preview can not be created for some reason, then
+ this text is painted in an empty rectangle of the requested size
+ instead.
+ @param bObeyHighContrastMode
+ When <FALSE/> then the high contrast mode of the application is
+ ignored and the preview is rendered in normal mode. When
+ <TRUE/> and high contrast mode is active then the preview is
+ rendered in high contrast mode.
+ @param bDisplayPresentationObjects
+ When <FALSE/> then the PresObj place holders are not displayed
+ in the returned preview.
+ */
+ Image RenderPage (
+ const SdPage* pPage,
+ const sal_Int32 nWidth,
+ const String& sSubstitutionText,
+ const bool bObeyHighContrastMode = true,
+ const bool bDisplayPresentationObjects = true);
+
+ /** Render a page with the given pixel size.
+ @param pPage
+ The page to render.
+ @param aPreviewPixelSize
+ The size in device coordinates of the preview.
+ @param sSubstitutionText
+ When the actual preview can not be created for some reason, then
+ this text is painted in an empty rectangle of the requested size
+ instead.
+ @param bObeyHighContrastMode
+ When <FALSE/> then the high contrast mode of the application is
+ ignored and the preview is rendered in normal mode. When
+ <TRUE/> and high contrast mode is active then the preview is
+ rendered in high contrast mode.
+ @param bDisplayPresentationObjects
+ When <FALSE/> then the PresObj place holders are not displayed
+ in the returned preview.
+ */
+ Image RenderPage (
+ const SdPage* pPage,
+ const Size aPreviewPixelSize,
+ const String& sSubstitutionText,
+ const bool bObeyHighContrastMode = true,
+ const bool bDisplayPresentationObjects = true);
+
+ /** Render an image that contains the given substitution text instead of a
+ slide preview.
+ @param aPreviewPixelSize
+ The size in device coordinates of the image.
+ */
+ Image RenderSubstitution (
+ const Size& rPreviewPixelSize,
+ const String& sSubstitutionText);
+
+ /** Scale the given bitmap by keeping its aspect ratio to the desired
+ width. Add a frame to it afterwards.
+ */
+ Image ScaleBitmap (
+ const BitmapEx& rBitmap,
+ int nWidth);
+
+protected:
+ virtual void Notify(SfxBroadcaster& rBC, const SfxHint& rHint);
+
+private:
+ ::std::auto_ptr<VirtualDevice> mpPreviewDevice;
+ ::std::auto_ptr<DrawView> mpView;
+ DrawDocShell* mpDocShellOfView;
+ int mnWidthOfView;
+ const Color maFrameColor;
+ const bool mbHasFrame;
+ static const int snSubstitutionTextSize;
+ // Width of the frame that is painted arround the preview.
+ static const int snFrameWidth;
+
+ bool Initialize (
+ const SdPage* pPage,
+ const Size& rPixelSize,
+ const bool bObeyHighContrastMode);
+ void Cleanup (void);
+ void PaintPage (
+ const SdPage* pPage,
+ const bool bDisplayPresentationObjects);
+ void PaintSubstitutionText (const String& rSubstitutionText);
+ void PaintFrame (void);
+
+ /** Set up the map mode so that the given page is renderer into a bitmap
+ with the specified width.
+ @param rPage
+ The page for which the preview is created.
+ @param rPixelSize
+ The size of the resulting preview bitmap. Note that this size
+ includes the frame. The actual preview is smaller accordingly.
+ */
+ void SetupOutputSize (const SdPage& rPage, const Size& rPixelSize);
+
+ /** When mpView is empty then create a new view and initialize it.
+ Otherwise just initialize it.
+ */
+ void ProvideView (DrawDocShell* pDocShell);
+};
+
+} // end of namespace ::sd
+
+#endif
diff --git a/sd/source/ui/inc/Ruler.hxx b/sd/source/ui/inc/Ruler.hxx
new file mode 100755
index 000000000000..8b319ca7f16f
--- /dev/null
+++ b/sd/source/ui/inc/Ruler.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 SD_RULER_HXX
+#define SD_RULER_HXX
+
+
+#include <svx/ruler.hxx>
+
+
+namespace sd {
+
+class DrawViewShell;
+class RulerCtrlItem;
+class View;
+class Window;
+
+/*************************************************************************
+|*
+|* das Fenster der Diashow leitet Mouse- und Key-Events an die SlideViewShell
+|*
+\************************************************************************/
+
+class Ruler
+ : public SvxRuler
+{
+public:
+ Ruler (
+ DrawViewShell& rViewSh,
+ ::Window* pParent,
+ ::sd::Window* pWin,
+ sal_uInt16 nRulerFlags,
+ SfxBindings& rBindings,
+ WinBits nWinStyle);
+ virtual ~Ruler (void);
+
+ void SetNullOffset(const Point& rOffset);
+
+ sal_Bool IsHorizontal() const { return bHorz; }
+
+ using ::Ruler::SetNullOffset;
+protected:
+ ::sd::View* pSdView;
+ ::sd::Window* pSdWin;
+ DrawViewShell* pDrViewShell;
+ RulerCtrlItem* pCtrlItem;
+ sal_Bool bHorz;
+
+ virtual void MouseButtonDown(const MouseEvent& rMEvt);
+ virtual void MouseButtonUp(const MouseEvent& rMEvt);
+ virtual void MouseMove(const MouseEvent& rMEvt);
+ virtual void Command(const CommandEvent& rCEvt);
+ virtual void ExtraDown();
+};
+
+} // end of namespace sd
+
+#endif
diff --git a/sd/source/ui/inc/SdUnoDrawView.hxx b/sd/source/ui/inc/SdUnoDrawView.hxx
new file mode 100755
index 000000000000..d29ca3b09d32
--- /dev/null
+++ b/sd/source/ui/inc/SdUnoDrawView.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 SD_UNO_DRAW_VIEW_HXX
+#define SD_UNO_DRAW_VIEW_HXX
+
+#include "DrawSubController.hxx"
+#include "DrawController.hxx"
+#include "DrawViewShell.hxx"
+#include <cppuhelper/basemutex.hxx>
+
+class SdXImpressDocument;
+class SdPage;
+
+namespace css = ::com::sun::star;
+
+namespace com { namespace sun { namespace star { namespace drawing {
+class XLayer;
+} } } }
+
+namespace sd {
+
+class DrawController;
+class DrawViewShell;
+
+/** This class implements the DrawViewShell specific part of the controller.
+*/
+class SdUnoDrawView
+ : private cppu::BaseMutex,
+ public DrawSubControllerInterfaceBase
+{
+public:
+ SdUnoDrawView (
+ DrawController& rController,
+ DrawViewShell& rViewShell,
+ View& rView) throw();
+ virtual ~SdUnoDrawView (void) throw();
+
+ // XSelectionSupplier
+
+ virtual sal_Bool SAL_CALL select (
+ const css::uno::Any& aSelection)
+ throw(css::lang::IllegalArgumentException,
+ css::uno::RuntimeException);
+
+ virtual css::uno::Any SAL_CALL getSelection (void)
+ throw(css::uno::RuntimeException);
+
+ virtual void SAL_CALL addSelectionChangeListener (
+ const css::uno::Reference<css::view::XSelectionChangeListener>& rxListener)
+ throw(css::uno::RuntimeException);
+
+ virtual void SAL_CALL removeSelectionChangeListener (
+ const css::uno::Reference<css::view::XSelectionChangeListener>& rxListener)
+ throw(css::uno::RuntimeException);
+
+
+ // XDrawView
+
+ virtual void SAL_CALL setCurrentPage (
+ const css::uno::Reference<css::drawing::XDrawPage >& xPage)
+ throw(css::uno::RuntimeException);
+
+ virtual css::uno::Reference<css::drawing::XDrawPage> SAL_CALL getCurrentPage (void)
+ throw(css::uno::RuntimeException);
+
+
+ // XFastPropertySet
+
+ virtual void SAL_CALL setFastPropertyValue (
+ sal_Int32 nHandle,
+ const css::uno::Any& rValue)
+ throw(css::beans::UnknownPropertyException,
+ css::beans::PropertyVetoException,
+ css::lang::IllegalArgumentException,
+ css::lang::WrappedTargetException,
+ css::uno::RuntimeException);
+
+ virtual css::uno::Any SAL_CALL getFastPropertyValue (
+ sal_Int32 nHandle)
+ throw(css::beans::UnknownPropertyException,
+ css::lang::WrappedTargetException,
+ css::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);
+
+protected:
+ sal_Bool getMasterPageMode(void) const throw();
+ void setMasterPageMode(sal_Bool MasterPageMode_) throw();
+ sal_Bool getLayerMode(void) const throw();
+ void setLayerMode(sal_Bool LayerMode_) throw();
+
+ /** Return a reference to the active layer object.
+ @return
+ The returned value may be empty when the internal state of this
+ view is not valid (like during destruction.)
+ */
+ ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XLayer> getActiveLayer (void) throw ();
+
+ /** Make the specified object the active layer.
+ @param rxLayer
+ The new layer object.
+ */
+ void setActiveLayer (const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XLayer>& rxLayer) throw ();
+
+ void SetZoom( sal_Int16 nZoom );
+ sal_Int16 GetZoom(void) const;
+
+ void SetViewOffset(const com::sun::star::awt::Point& rWinPos );
+ com::sun::star::awt::Point GetViewOffset() const;
+
+ void SetZoomType( sal_Int16 nType );
+
+ ::com::sun::star::uno::Any getDrawViewMode() const;
+
+private:
+ DrawController& mrController;
+ DrawViewShell& mrDrawViewShell;
+ sd::View& mrView;
+
+ SdXImpressDocument* GetModel (void) const throw();
+};
+
+} // end of namespace sd
+
+#endif
diff --git a/sd/source/ui/inc/SdUnoOutlineView.hxx b/sd/source/ui/inc/SdUnoOutlineView.hxx
new file mode 100755
index 000000000000..d2a4d4bfd39d
--- /dev/null
+++ b/sd/source/ui/inc/SdUnoOutlineView.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 SD_UNO_OUTLINE_VIEW_HXX
+#define SD_UNO_OUTLINE_VIEW_HXX
+
+#include "DrawSubController.hxx"
+#include <cppuhelper/basemutex.hxx>
+#include <com/sun/star/lang/EventObject.hpp>
+
+
+class SdPage;
+
+namespace css = ::com::sun::star;
+
+namespace sd {
+
+class DrawController;
+class OutlineViewShell;
+class View;
+
+
+/** This class implements the OutlineViewShell specific part of the controller.
+*/
+class SdUnoOutlineView
+ : private cppu::BaseMutex,
+ public DrawSubControllerInterfaceBase
+{
+public:
+ SdUnoOutlineView (
+ DrawController& rController,
+ OutlineViewShell& rViewShell,
+ View& rView) throw();
+ virtual ~SdUnoOutlineView (void) throw();
+
+ virtual void SAL_CALL disposing (void);
+
+
+ // XSelectionSupplier
+
+ virtual sal_Bool SAL_CALL select (
+ const css::uno::Any& aSelection)
+ throw(css::lang::IllegalArgumentException,
+ css::uno::RuntimeException);
+
+ virtual css::uno::Any SAL_CALL getSelection (void)
+ throw(css::uno::RuntimeException);
+
+ virtual void SAL_CALL addSelectionChangeListener (
+ const css::uno::Reference<css::view::XSelectionChangeListener>& rxListener)
+ throw(css::uno::RuntimeException);
+
+ virtual void SAL_CALL removeSelectionChangeListener (
+ const css::uno::Reference<css::view::XSelectionChangeListener>& rxListener)
+ throw(css::uno::RuntimeException);
+
+
+ // XDrawView
+
+ virtual void SAL_CALL setCurrentPage (
+ const css::uno::Reference<css::drawing::XDrawPage >& xPage)
+ throw(css::uno::RuntimeException);
+
+ virtual css::uno::Reference<css::drawing::XDrawPage> SAL_CALL getCurrentPage (void)
+ throw(css::uno::RuntimeException);
+
+
+ // XFastPropertySet
+
+ virtual void SAL_CALL setFastPropertyValue (
+ sal_Int32 nHandle,
+ const css::uno::Any& rValue)
+ throw(css::beans::UnknownPropertyException,
+ css::beans::PropertyVetoException,
+ css::lang::IllegalArgumentException,
+ css::lang::WrappedTargetException,
+ css::uno::RuntimeException);
+
+ virtual css::uno::Any SAL_CALL getFastPropertyValue (
+ sal_Int32 nHandle)
+ throw(css::beans::UnknownPropertyException,
+ css::lang::WrappedTargetException,
+ css::uno::RuntimeException);
+
+ // lang::XEventListener
+ virtual void SAL_CALL
+ disposing (const ::com::sun::star::lang::EventObject& rEventObject)
+ 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);
+
+private:
+ DrawController& mrController;
+ OutlineViewShell& mrOutlineViewShell;
+ sd::View& mrView;
+};
+
+} // end of namespace sd
+
+#endif
diff --git a/sd/source/ui/inc/SdUnoSlideView.hxx b/sd/source/ui/inc/SdUnoSlideView.hxx
new file mode 100755
index 000000000000..6005704ec895
--- /dev/null
+++ b/sd/source/ui/inc/SdUnoSlideView.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 SD_UNO_SLIDE_VIEW_HXX
+#define SD_UNO_SLIDE_VIEW_HXX
+
+#include "DrawSubController.hxx"
+#include <cppuhelper/basemutex.hxx>
+#include <com/sun/star/drawing/XDrawPage.hpp>
+
+namespace css = ::com::sun::star;
+
+namespace sd { namespace slidesorter {
+class SlideSorter;
+} }
+
+namespace sd { namespace slidesorter { namespace controller {
+class PageSelector;
+} } }
+
+namespace sd {
+
+class DrawController;
+class SlideViewShell;
+class View;
+
+
+/** This class implements the SlideSorter specific part of the
+ controller.
+ */
+class SdUnoSlideView
+ : private cppu::BaseMutex,
+ public DrawSubControllerInterfaceBase
+{
+public:
+ SdUnoSlideView (
+ DrawController& rController,
+ slidesorter::SlideSorter& rSlideSorter,
+ View& rView) throw();
+ virtual ~SdUnoSlideView (void) throw();
+
+ // XSelectionSupplier
+
+ virtual sal_Bool SAL_CALL select (const ::com::sun::star::uno::Any& aSelection)
+ throw(::com::sun::star::lang::IllegalArgumentException,
+ ::com::sun::star::uno::RuntimeException);
+
+ virtual ::com::sun::star::uno::Any SAL_CALL getSelection (void)
+ throw(::com::sun::star::uno::RuntimeException);
+
+ virtual void SAL_CALL addSelectionChangeListener (
+ const css::uno::Reference<css::view::XSelectionChangeListener>& rxListener)
+ throw(css::uno::RuntimeException);
+
+ virtual void SAL_CALL removeSelectionChangeListener (
+ const css::uno::Reference<css::view::XSelectionChangeListener>& rxListener)
+ throw(css::uno::RuntimeException);
+
+
+ // XDrawView
+
+ virtual void SAL_CALL setCurrentPage (
+ const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XDrawPage >& xPage)
+ throw(::com::sun::star::uno::RuntimeException);
+
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XDrawPage > SAL_CALL
+ getCurrentPage (void)
+ throw(::com::sun::star::uno::RuntimeException);
+
+
+ // XFastPropertySet
+
+ virtual void SAL_CALL setFastPropertyValue (
+ sal_Int32 nHandle,
+ const css::uno::Any& rValue)
+ throw(css::beans::UnknownPropertyException,
+ css::beans::PropertyVetoException,
+ css::lang::IllegalArgumentException,
+ css::lang::WrappedTargetException,
+ css::uno::RuntimeException);
+
+ virtual css::uno::Any SAL_CALL getFastPropertyValue (
+ sal_Int32 nHandle)
+ throw(css::beans::UnknownPropertyException,
+ css::lang::WrappedTargetException,
+ css::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);
+
+private:
+ DrawController& mrController;
+ slidesorter::SlideSorter& mrSlideSorter;
+ sd::View& mrView;
+ /*
+ virtual void FillPropertyTable (
+ ::std::vector< ::com::sun::star::beans::Property>& rProperties);
+ virtual sal_Bool SAL_CALL convertFastPropertyValue(
+ ::com::sun::star::uno::Any & rConvertedValue,
+ ::com::sun::star::uno::Any & rOldValue,
+ sal_Int32 nHandle,
+ const ::com::sun::star::uno::Any& rValue )
+ throw (::com::sun::star::lang::IllegalArgumentException);
+ virtual void SAL_CALL setFastPropertyValue_NoBroadcast(
+ sal_Int32 nHandle,
+ const ::com::sun::star::uno::Any& rValue )
+ throw (::com::sun::star::uno::Exception);
+ virtual void SAL_CALL getFastPropertyValue(
+ ::com::sun::star::uno::Any& rValue,
+ sal_Int32 nHandle ) const;
+ */
+};
+
+} // end of namespace sd
+
+#endif
diff --git a/sd/source/ui/inc/ShellFactory.hxx b/sd/source/ui/inc/ShellFactory.hxx
new file mode 100644
index 000000000000..2da34539891f
--- /dev/null
+++ b/sd/source/ui/inc/ShellFactory.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 SD_VIEW_SHELL_FACTORY_HXX
+#define SD_VIEW_SHELL_FACTORY_HXX
+
+#include <sal/types.h>
+#include <memory>
+
+class Window;
+
+namespace sd {
+
+class FrameView;
+class ViewShell;
+
+typedef sal_Int32 ShellId;
+// This shell id is a reserved value and does not specify any valid shell.
+static const sal_Int32 snInvalidShellId = -1;
+
+template<class ShellType>
+class ShellFactory
+{
+public:
+ /** This abstract virtual class needs a destructor so that the
+ destructors of derived classes are called.
+ */
+ virtual ~ShellFactory (void) {};
+
+ /** Create a new instance of a view shell for the given id that will
+ be stacked onto the given view shell base.
+ @return
+ Return the new view shell or NULL when a creation is not
+ possible.
+ */
+ virtual ShellType* CreateShell (
+ ShellId nId,
+ ::Window* pParentWindow,
+ FrameView* pFrameView = NULL) = 0;
+
+ /** Tell the factory that a shell is no longer in use. It may destroy
+ it or put it for future use in a cache.
+ */
+ virtual void ReleaseShell (ShellType* pShell) = 0;
+};
+
+} // end of namespace sd
+
+#endif
diff --git a/sd/source/ui/inc/SlideSorter.hxx b/sd/source/ui/inc/SlideSorter.hxx
new file mode 100755
index 000000000000..257695e0fc91
--- /dev/null
+++ b/sd/source/ui/inc/SlideSorter.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 SD_SLIDESORTER_SLIDE_SORTER_HXX
+#define SD_SLIDESORTER_SLIDE_SORTER_HXX
+
+#include "fupoor.hxx"
+#include "Window.hxx"
+#include <com/sun/star/frame/XController.hpp>
+#include <cppuhelper/weakref.hxx>
+#include <sfx2/viewfrm.hxx>
+#include <boost/noncopyable.hpp>
+#include <boost/shared_ptr.hpp>
+#include <boost/scoped_ptr.hpp>
+#include <boost/current_function.hpp>
+
+
+class ScrollBar;
+class ScrollBarBox;
+class Window;
+
+
+namespace sd {
+class ViewShell;
+class ViewShellBase;
+class Window;
+}
+
+namespace sd { namespace slidesorter { namespace model {
+class SlideSorterModel;
+} } }
+
+namespace sd { namespace slidesorter { namespace view {
+class SlideSorterView;
+class Theme;
+} } }
+
+namespace sd { namespace slidesorter { namespace controller {
+class Listener;
+class SlideSorterController;
+class SlotManager;
+class Properties;
+} } }
+
+
+typedef ::boost::shared_ptr<sd::Window> SharedSdWindow;
+
+
+namespace sd { namespace slidesorter {
+
+/** Show previews for all the slides in a document and allow the user to
+ insert or delete slides and modify the order of the slides.
+
+ This class is a facade for the model, view, and controller classes.
+ It is a hub that allows access to the various parts of a slide sorter.
+
+ Note that this class is not in its final state.
+*/
+class SlideSorter
+ : private ::boost::noncopyable
+{
+ friend class controller::SlotManager;
+public:
+ virtual ~SlideSorter (void);
+
+ /** Return whether the called SlideSorter object is valid and calling
+ its Get(Model,View,Controller) methods is safe. When <FALSE/> is
+ called then no other methods should be called.
+ Calling this method should be necessary only during startup and
+ shutdown (when that can be detected).
+ */
+ bool IsValid (void) const;
+
+ /** Create a new slide sorter that is strongly coupled to the given view
+ shell. Use this function for a slide sorter in the left pane.
+ @param rViewShell
+ Typically a SlideSorterViewShell object.
+ @param rpContentWindow
+ Typically the content window of the ViewShell.
+ @param rpHorizontalScrollBar
+ Typically the horizontal scroll bar of the ViewShell.
+ @param rpVerticalScrollBar
+ Typically the vertical scroll bar of the ViewShell.
+ @param rpScrollBarBox
+ The little square enclosed by the two scroll bars. Typically
+ the one from the ViewShell.
+ */
+ static ::boost::shared_ptr<SlideSorter> CreateSlideSorter (
+ ViewShell& rViewShell,
+ const ::boost::shared_ptr<sd::Window>& rpContentWindow,
+ const ::boost::shared_ptr<ScrollBar>& rpHorizontalScrollBar,
+ const ::boost::shared_ptr<ScrollBar>& rpVerticalScrollBar,
+ const ::boost::shared_ptr<ScrollBarBox>& rpScrollBarBox);
+
+ /** Create a new slide sorter that is losely coupled to the given view
+ shell. The view shell may even be missing.
+ @param rBase
+ ViewShellBase object of the enclosing application.
+ @param pViewShell
+ Supply when at hand.
+ @param rParentWindow
+ The parent window of the internally created content window and
+ scroll bars.
+ */
+ static ::boost::shared_ptr<SlideSorter> CreateSlideSorter (
+ ViewShellBase& rBase,
+ ViewShell* pViewShell,
+ ::Window& rParentWindow);
+
+ /** Return the control of the vertical scroll bar.
+ */
+ ::boost::shared_ptr<ScrollBar> GetVerticalScrollBar (void) const;
+
+ /** Return the control of the horizontal scroll bar.
+ */
+ ::boost::shared_ptr<ScrollBar> GetHorizontalScrollBar (void) const;
+
+ /** Return the scroll bar filler that paints the little square that is
+ enclosed by the two scroll bars.
+ */
+ ::boost::shared_ptr<ScrollBarBox> GetScrollBarFiller (void) const;
+
+ /** Return the content window. This is a sibling and is geometrically
+ enclosed by the scroll bars.
+ */
+ SharedSdWindow GetContentWindow (void) const;
+
+ model::SlideSorterModel& GetModel (void) const;
+
+ view::SlideSorterView& GetView (void) const;
+
+ controller::SlideSorterController& GetController (void) const;
+
+ /** Return the view shell that was given at construction.
+ @return
+ May be empty.
+ */
+ ViewShell* GetViewShell (void) const;
+
+ /** Return the XController object of the main view.
+ */
+ ::com::sun::star::uno::Reference<com::sun::star::frame::XController>
+ GetXController (void) const;
+
+ /** Return the ViewShellBase object.
+ @return
+ May be empty.
+ */
+ ViewShellBase* GetViewShellBase (void) const;
+
+ void Paint (const Rectangle& rRepaintArea);
+
+ /** Place and size the controls and windows. You may want to call this
+ method when something has changed that for instance affects the
+ visibility state of the scroll bars.
+ */
+ void ArrangeGUIElements (
+ const Point& rOffset,
+ const Size& rSize);
+ SvBorder GetBorder (void);
+
+ bool RelocateToWindow (::Window* pWindow);
+
+ /** Set the current function at the view shell or, when it is not
+ present, set it at the content window. This method supports the use
+ of functions even when there is no SlideSorterViewShell.
+ */
+ void SetCurrentFunction (const FunctionReference& rpFunction);
+
+ /** Return a collection of properties that are used througout the slide
+ sorter.
+ */
+ ::boost::shared_ptr<controller::Properties> GetProperties (void) const;
+
+ /** Return the active theme wich gives access to colors and fonts.
+ */
+ ::boost::shared_ptr<view::Theme> GetTheme (void) const;
+
+protected:
+ /** This virtual method makes it possible to create a specialization of
+ the slide sorter view shell that works with its own implementation
+ of model, view, and controller. The default implementation simply
+ calls the CreateModel(), CreateView(), and CreateController()
+ methods in this order.
+ */
+ virtual void CreateModelViewController (void);
+
+ /** Create the model for the view shell. When called from the default
+ implementation of CreateModelViewController() then neither view nor
+ controller do exist. Test their pointers when in doubt.
+ */
+ virtual model::SlideSorterModel* CreateModel (void);
+
+ /** Create the view for the view shell. When called from the default
+ implementation of CreateModelViewController() then the model but not
+ the controller does exist. Test their pointers when in doubt.
+ */
+ virtual view::SlideSorterView* CreateView (void);
+
+ /** Create the controller for the view shell. When called from the default
+ implementation of CreateModelViewController() then both the view and
+ the controller do exist. Test their pointers when in doubt.
+ */
+ virtual controller::SlideSorterController* CreateController (void);
+
+private:
+ bool mbIsValid;
+
+ ::boost::scoped_ptr<controller::SlideSorterController> mpSlideSorterController;
+ ::boost::scoped_ptr<model::SlideSorterModel> mpSlideSorterModel;
+ ::boost::scoped_ptr<view::SlideSorterView> mpSlideSorterView;
+ ::com::sun::star::uno::WeakReference<com::sun::star::frame::XController> mxControllerWeak;
+ ViewShell* mpViewShell;
+ ViewShellBase* mpViewShellBase;
+ SharedSdWindow mpContentWindow;
+ bool mbOwnesContentWindow;
+ ::boost::shared_ptr<ScrollBar> mpHorizontalScrollBar;
+ ::boost::shared_ptr<ScrollBar> mpVerticalScrollBar;
+ ::boost::shared_ptr<ScrollBarBox> mpScrollBarBox;
+
+ /** Set this flag to <TRUE/> to force a layout before the next paint.
+ */
+ bool mbLayoutPending;
+
+ /** Some slide sorter wide properties that are used in different
+ classes.
+ */
+ ::boost::shared_ptr<controller::Properties> mpProperties;
+ ::boost::shared_ptr<view::Theme> mpTheme;
+
+ SlideSorter (
+ ViewShell& rViewShell,
+ const ::boost::shared_ptr<sd::Window>& rpContentWindow,
+ const ::boost::shared_ptr<ScrollBar>& rpHorizontalScrollBar,
+ const ::boost::shared_ptr<ScrollBar>& rpVerticalScrollBar,
+ const ::boost::shared_ptr<ScrollBarBox>& rpScrollBarBox);
+ SlideSorter (
+ ViewShellBase& rBase,
+ ViewShell* pViewShell,
+ ::Window& rParentWindow);
+
+ void Init (void);
+ /** Create the controls for the slide sorter. This are the tab bar
+ for switching the edit mode, the scroll bar, and the actual
+ slide sorter view window.
+ This method is usually called exactly one time from the
+ constructor.
+ */
+ void SetupControls (::Window* pParentWindow);
+
+ /** This method is usually called exactly one time from the
+ constructor.
+ */
+ void SetupListeners (void);
+
+ /** Release the listeners that have been installed in SetupListeners().
+ */
+ void ReleaseListeners (void);
+};
+
+} } // end of namespace ::sd::slidesorter
+
+#endif
diff --git a/sd/source/ui/inc/SlideSorterChildWindow.hrc b/sd/source/ui/inc/SlideSorterChildWindow.hrc
new file mode 100644
index 000000000000..541b0bd3a18c
--- /dev/null
+++ b/sd/source/ui/inc/SlideSorterChildWindow.hrc
@@ -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.
+ *
+ ************************************************************************/
+
+#define FLT_WIN_SLIDE_BROWSER 789
+
+#define TOOLPANEL 1
diff --git a/sd/source/ui/inc/SlideSorterChildWindow.hxx b/sd/source/ui/inc/SlideSorterChildWindow.hxx
new file mode 100755
index 000000000000..06c06f2aab56
--- /dev/null
+++ b/sd/source/ui/inc/SlideSorterChildWindow.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 SD_SLIDESORTER_SLIDE_SORTER_CHILD_WINDOW_HXX
+#define SD_SLIDESORTER_SLIDE_SORTER_CHILD_WINDOW_HXX
+
+#include <sfx2/childwin.hxx>
+
+
+namespace sd { namespace slidesorter {
+
+
+/** The slide browser child window contains a slide sorter and is by
+ default shown to the left of the main edit area.
+*/
+class SlideSorterChildWindow
+ : public SfxChildWindow
+{
+public:
+ SlideSorterChildWindow (
+ ::Window*,
+ sal_uInt16,
+ SfxBindings*,
+ SfxChildWinInfo*);
+
+ virtual ~SlideSorterChildWindow (void);
+
+ SFX_DECL_CHILDWINDOW (SlideBrowserChildWindow);
+};
+
+
+} } // end of namespaces ::sd::slidesorter
+
+#endif
diff --git a/sd/source/ui/inc/SlideSorterViewShell.hxx b/sd/source/ui/inc/SlideSorterViewShell.hxx
new file mode 100755
index 000000000000..2f0ebbcfd18e
--- /dev/null
+++ b/sd/source/ui/inc/SlideSorterViewShell.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 SD_SLIDESORTER_SLIDE_SORTER_VIEW_SHELL_HXX
+#define SD_SLIDESORTER_SLIDE_SORTER_VIEW_SHELL_HXX
+
+#include "ViewShell.hxx"
+#include "glob.hxx"
+#include <sfx2/shell.hxx>
+#include <sfx2/viewfac.hxx>
+#include <boost/shared_ptr.hpp>
+#include <vector>
+
+namespace sd { namespace slidesorter { namespace controller {
+class SlotManager;
+} } }
+
+
+namespace sd { namespace slidesorter {
+
+class SlideSorter;
+
+class SlideSorterViewShell
+ : public ViewShell
+{
+ friend class controller::SlotManager;
+
+public:
+ TYPEINFO();
+ SFX_DECL_INTERFACE(SD_IF_SDSLIDESORTERVIEWSHELL)
+
+ static ::boost::shared_ptr<SlideSorterViewShell> Create(
+ SfxViewFrame* pFrame,
+ ViewShellBase& rViewShellBase,
+ ::Window* pParentWindow,
+ FrameView* pFrameView,
+ const bool bIsCenterPane);
+
+ virtual ~SlideSorterViewShell (void);
+
+ /** Late initialization that has to be called after a new instance has
+ completed its construction.
+ */
+ virtual void Init (bool bIsMainViewShell);
+
+ /** Return a slide sorter that is currently displayed in one of the
+ panes that belong to the given ViewShellBase object.
+ When there is only one slide sorter visible then that one is
+ returned. When two (or more) are visible then the one in the center
+ pane is returned. When no slidesorter is visible then NULL is
+ returned.
+ */
+ static SlideSorterViewShell* GetSlideSorter (ViewShellBase& rBase);
+
+ virtual void GetFocus (void);
+ virtual void LoseFocus (void);
+ virtual SdPage* GetActualPage (void);
+
+ /// inherited from sd::ViewShell
+ virtual SdPage* getCurrentPage() const;
+
+ void ExecCtrl (SfxRequest& rRequest);
+ virtual void GetCtrlState (SfxItemSet &rSet);
+ virtual void FuSupport (SfxRequest& rRequest);
+ virtual void FuTemporary (SfxRequest& rRequest);
+ virtual void GetStatusBarState (SfxItemSet& rSet);
+ virtual void FuPermanent (SfxRequest& rRequest);
+ void GetAttrState (SfxItemSet& rSet);
+ void ExecStatusBar (SfxRequest& rRequest);
+ virtual void Command (const CommandEvent& rEvent, ::sd::Window* pWindow);
+ virtual void GetMenuState (SfxItemSet &rSet);
+ virtual void GetClipboardState (SfxItemSet &rSet);
+
+ virtual void ReadFrameViewData (FrameView* pView);
+ virtual void WriteFrameViewData (void);
+
+ /** Set the zoom factor. The given value is clipped against an upper
+ bound.
+ @param nZoom
+ An integer percent value, i.e. nZoom/100 is the actual zoom
+ factor.
+ */
+ virtual void SetZoom (long int nZoom);
+ virtual void SetZoomRect (const Rectangle& rZoomRect);
+
+ /** This is a callback method used by the active window to delegate its
+ Paint() call to. This view shell itself delegates it to the view.
+ */
+ virtual void Paint(const Rectangle& rRect, ::sd::Window* pWin);
+
+ /** Place and size the controls and windows. You may want to call this
+ method when something has changed that for instance affects the
+ visibility state of the scroll bars.
+ */
+ virtual void ArrangeGUIElements (void);
+
+ virtual void Activate (sal_Bool IsMDIActivate);
+
+ //===== Drag and Drop =====================================================
+
+ virtual void StartDrag (
+ const Point& rDragPt,
+ ::Window* pWindow );
+ virtual void DragFinished (
+ sal_Int8 nDropAction);
+ virtual sal_Int8 AcceptDrop (
+ const AcceptDropEvent& rEvt,
+ DropTargetHelper& rTargetHelper,
+ ::sd::Window* pTargetWindow = NULL,
+ sal_uInt16 nPage = SDRPAGE_NOTFOUND,
+ sal_uInt16 nLayer = SDRPAGE_NOTFOUND );
+ virtual sal_Int8 ExecuteDrop (
+ const ExecuteDropEvent& rEvt,
+ DropTargetHelper& rTargetHelper,
+ ::sd::Window* pTargetWindow = NULL,
+ sal_uInt16 nPage = SDRPAGE_NOTFOUND,
+ sal_uInt16 nLayer = SDRPAGE_NOTFOUND);
+
+ typedef ::std::vector<SdPage*> PageSelection;
+
+ /** Return the set of selected pages.
+ */
+ ::boost::shared_ptr<PageSelection> GetPageSelection (void) const;
+
+ void SetPageSelection (const ::boost::shared_ptr<PageSelection>& rSelection);
+
+ /** Add a listener that is called when the selection of the slide sorter
+ changes.
+ @param rListener
+ When this method is called multiple times for the same listener
+ the second and all following calls are ignored. Each listener
+ is added only once.
+ */
+ void AddSelectionChangeListener (const Link& rListener);
+
+ /** Remove a listener that was called when the selection of the slide
+ sorter changes.
+ @param rListener
+ It is save to pass a listener that was not added are has been
+ removed previously. Such calls are ignored.
+ */
+ void RemoveSelectionChangeListener (const Link& rListener);
+
+ virtual css::uno::Reference<css::drawing::XDrawSubController> CreateSubController (void);
+
+ /** Create an accessible object representing the specified window.
+ @param pWindow
+ The returned object makes the document displayed in this window
+ accessible.
+ @return
+ Returns an <type>AccessibleSlideSorterView</type> object.
+ */
+ virtual ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible>
+ CreateAccessibleDocumentView (::sd::Window* pWindow);
+
+ SlideSorter& GetSlideSorter (void) const;
+
+ /** Try to relocate all toplevel window elements to the given parent
+ window.
+ */
+ virtual bool RelocateToParentWindow (::Window* pParentWindow);
+
+protected:
+
+ virtual SvBorder GetBorder (bool bOuterResize);
+
+ /** This method is overloaded to handle a missing tool bar correctly.
+ This is the case when the slide sorter is not the main view shell.
+ */
+ virtual ::svl::IUndoManager* ImpGetUndoManager (void) const;
+
+private:
+ ::boost::shared_ptr<SlideSorter> mpSlideSorter;
+ bool mbIsArrangeGUIElementsPending;
+
+ SlideSorterViewShell (
+ SfxViewFrame* pFrame,
+ ViewShellBase& rViewShellBase,
+ ::Window* pParentWindow,
+ FrameView* pFrameView);
+ void Initialize (void);
+
+ /** This method overwrites the one from our base class: We do our own
+ scroll bar and the base class call is thus unnecessary. It simply
+ calls UpdateScrollBars(false).
+ */
+ virtual void UpdateScrollBars (void);
+};
+
+typedef ::boost::shared_ptr<SlideSorterViewShell::PageSelection> SharedPageSelection;
+
+} } // end of namespace ::sd::slidesorter
+
+#endif
diff --git a/sd/source/ui/inc/SlideSorterViewShellBase.hxx b/sd/source/ui/inc/SlideSorterViewShellBase.hxx
new file mode 100644
index 000000000000..04774e19ab9a
--- /dev/null
+++ b/sd/source/ui/inc/SlideSorterViewShellBase.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 SD_SLIDE_SORTER_VIEW_SHELL_BASE_HXX
+#define SD_SLIDE_SORTER_VIEW_SHELL_BASE_HXX
+
+#include "ImpressViewShellBase.hxx"
+
+
+namespace sd {
+
+/** This class exists to be able to register a factory that creates a
+ slide sorter view shell as default.
+*/
+class SlideSorterViewShellBase
+ : public ImpressViewShellBase
+{
+public:
+ TYPEINFO();
+ SFX_DECL_VIEWFACTORY(SlideSorterViewShellBase);
+
+ /** This constructor is used by the view factory of the SFX
+ macros.
+ */
+ SlideSorterViewShellBase (SfxViewFrame *pFrame, SfxViewShell* pOldShell);
+ virtual ~SlideSorterViewShellBase (void);
+};
+
+} // end of namespace sd
+
+#endif
diff --git a/sd/source/ui/inc/SlideView.hxx b/sd/source/ui/inc/SlideView.hxx
new file mode 100755
index 000000000000..70427f5b79ce
--- /dev/null
+++ b/sd/source/ui/inc/SlideView.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 SD_SLIDE_VIEW_HXX
+#define SD_SLIDE_VIEW_HXX
+
+#include "View.hxx"
+
+class SdDrawDocument;
+class BitmapCache;
+class SdPage;
+
+namespace sd {
+
+class SlideViewShell;
+class Window;
+
+// ----------------------
+// - SlideViewFocusMove -
+// ----------------------
+
+enum SlideViewFocusMove
+{
+ SLIDEVIEWFOCUSMOVE_NONE = 0,
+ SLIDEVIEWFOCUSMOVE_TOGGLE = 1,
+ SLIDEVIEWFOCUSMOVE_SELECT = 2,
+ SLIDEVIEWFOCUSMOVE_LEFT = 3,
+ SLIDEVIEWFOCUSMOVE_TOP = 4,
+ SLIDEVIEWFOCUSMOVE_RIGHT = 5,
+ SLIDEVIEWFOCUSMOVE_BOTTOM = 6
+};
+
+// ---------------
+// - SdSlideView -
+// ---------------
+
+class SlideView
+ : public ::sd::View
+{
+public:
+ TYPEINFO();
+
+ SlideView (
+ SdDrawDocument* pDoc,
+ ::Window* pWindow,
+ SlideViewShell* pSlideVShell);
+ virtual ~SlideView (void);
+
+ void Select( sal_uInt16 nSdPageNum, sal_Bool bSelect );
+ void SelectAllSlides( sal_Bool bSelect );
+
+ void MoveFocus( SlideViewFocusMove eMove );
+ sal_uInt16 GetFocusPage() const;
+ sal_Bool HasFocus() const;
+
+ sal_uInt16 ChangePagesPerRow( sal_uInt16 nNum );
+ sal_uInt16 GetPagesPerRow() const { return nPagesPerRow; }
+
+ virtual void InvalidateOneWin( ::Window& rWin );
+ virtual void InvalidateOneWin( ::Window& rWin, const Rectangle& rRect );
+
+ void SetAllowInvalidate( sal_Bool bFlag );
+ sal_Bool IsInvalidateAllowed() const;
+
+ void Paint(const Rectangle& rRect, OutputDevice* pOut);
+ void DrawSelectionRect(sal_uInt16 nPage);
+
+ Point CalcPagePos( sal_uInt16 nPageNo ) const;
+ Rectangle GetPageArea( sal_uInt16 nPageNo ) const;
+ sal_uLong GetPageGap() const;
+ Rectangle GetFadeIconArea( sal_uInt16 nPageNo ) const;
+ SdPage* GetHitPage( const Point& rPos ) const;
+ SdPage* GetFadePage( const Point& rPos ) const;
+ SdPage* GetNearestPage( const Point& rPos ) const;
+
+ void DeleteMarked();
+ void MoveMarked( sal_uInt16 nTargetPage );
+
+ void AddToCache( SdPage* pPage, const Bitmap& rBitmap, long nZoom );
+ const GraphicObject* GetFromCache( SdPage* pPage, long& rZoom, long nZoomTolerance ) const;
+
+ virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
+
+ virtual void DoCut( ::Window* pWindow = NULL );
+ virtual void DoCopy( ::Window* pWindow = NULL );
+ virtual void DoPaste( ::Window* pWindow = NULL );
+
+ virtual void StartDrag( const Point& rDragPt, ::Window* pWindow );
+ virtual void DragFinished( sal_Int8 nDropAction );
+
+ virtual sal_Int8 AcceptDrop( const AcceptDropEvent& rEvt, DropTargetHelper& rTargetHelper,
+ ::sd::Window* pTargetWindow = NULL,
+ sal_uInt16 nPage = SDRPAGE_NOTFOUND,
+ sal_uInt16 nLayer = SDRPAGE_NOTFOUND );
+ virtual sal_Int8 ExecuteDrop( const ExecuteDropEvent& rEvt, DropTargetHelper& rTargetHelper,
+ ::sd::Window* pTargetWindow = NULL,
+ sal_uInt16 nPage = SDRPAGE_NOTFOUND,
+ sal_uInt16 nLayer = SDRPAGE_NOTFOUND );
+
+ void UpdateAllPages();
+
+private:
+ Timer aDelayedPaintTimer;
+ List aDelayedPaints;
+ SlideViewShell* pSlideViewShell;
+ BitmapCache* pCache;
+ VirtualDevice* mpVDev;
+ sal_uInt16 nAllowInvalidateSmph;
+ sal_uInt16 nPagesPerRow;
+ sal_uInt16 nFocusPage;
+ sal_Bool bInPaint;
+ sal_Bool bInDelayedPaint;
+
+ DECL_LINK( PaintDelayed, Timer * );
+ void CreateSlideTransferable (::Window* pWindow, sal_Bool bDrag);
+};
+
+} // end of namespace sd
+
+#endif
diff --git a/sd/source/ui/inc/SlideViewShell.hxx b/sd/source/ui/inc/SlideViewShell.hxx
new file mode 100755
index 000000000000..8b0dbf347098
--- /dev/null
+++ b/sd/source/ui/inc/SlideViewShell.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 SD_SLIDE_VIEW_SHELL_HXX
+#define SD_SLIDE_VIEW_SHELL_HXX
+
+
+#include "ViewShell.hxx"
+#include "SlideView.hxx"
+#include <sfx2/viewfac.hxx>
+#include <sfx2/viewsh.hxx>
+
+
+
+class SdPage;
+
+
+
+namespace sd {
+
+class SdUnoSlideView;
+class Window;
+
+/** Show an overview over the slides in an Impress document and allow
+ some high level editing i.e. editing of the order in a show, not
+ the contents of the slides.
+*/
+class SlideViewShell
+ : public ViewShell
+{
+public:
+
+ TYPEINFO();
+
+ SFX_DECL_VIEWFACTORY(SlideViewShell);
+ SFX_DECL_INTERFACE(SD_IF_SDSLIDEVIEWSHELL)
+
+ /** Create a new view shell for the slide view.
+ @param rViewShellBase
+ The new object will be stacked on this view shell base.
+ @param pFrameView
+ The frame view that makes it possible to pass information from
+ one view shell to the next.
+ */
+ SlideViewShell(SfxViewFrame* pFrame,
+ ViewShellBase& rViewShellBase,
+ ::Window* pParentWindow,
+ FrameView* pFrameView = NULL);
+
+ SlideViewShell(SfxViewFrame *pFrame,
+ ::Window* pParentWindow,
+ const SlideViewShell& rShell);
+
+ virtual ~SlideViewShell (void);
+
+ virtual void Paint(const Rectangle& rRect, ::sd::Window* pWin);
+
+ /** Arrange and resize the GUI elements like rulers, sliders, and
+ buttons as well as the actual document view according to the size of
+ the enclosing window and current sizes of buttons, rulers, and
+ sliders.
+ */
+ virtual void ArrangeGUIElements (void);
+ virtual void AddWindow(::sd::Window* pWin) { pSlideView->AddWindowToPaintView((OutputDevice*) pWin); }
+ virtual void RemoveWindow(::sd::Window* pWin) { pSlideView->DeleteWindowFromPaintView((OutputDevice*) pWin); }
+
+ virtual sal_Bool KeyInput(const KeyEvent& rKEvt, ::sd::Window* pWin);
+ virtual void MouseMove(const MouseEvent& rMEvt, ::sd::Window* pWin);
+ virtual void MouseButtonUp(const MouseEvent& rMEvt, ::sd::Window* pWin);
+ virtual void MouseButtonDown(const MouseEvent& rMEvt, ::sd::Window* pWin);
+ virtual void Command(const CommandEvent& rCEvt, ::sd::Window* pWin);
+
+ virtual SdPage* GetActualPage();
+
+ /** @returns
+ current or selected page or 0.
+ */
+ virtual SdPage* getCurrentPage() const;
+
+ void ExecCtrl(SfxRequest &rReq);
+ void GetCtrlState(SfxItemSet &rSet);
+ void GetMenuState(SfxItemSet &rSet);
+ void GetAttrState(SfxItemSet &rSet);
+
+ void SetPagesPerRow( sal_uInt16 nPagesPerRow );
+
+ void ExecStatusBar(SfxRequest& rReq);
+ void GetStatusBarState(SfxItemSet& rSet);
+
+ void FuTemporary(SfxRequest &rReq);
+ void FuPermanent(SfxRequest &rReq);
+ void FuSupport(SfxRequest &rReq);
+
+ virtual void ReadFrameViewData(FrameView* pView);
+ virtual void WriteFrameViewData();
+
+ virtual void SetZoom(long nZoom);
+ virtual void SetZoomRect(const Rectangle& rZoomRect);
+
+ virtual sal_Bool HasSelection( sal_Bool bText = sal_True ) const;
+
+ /** Draw the rectangle arround the specified slide that indicates whether
+ the slide is selected or not. When not selected the rectangle is
+ painted in the background color (WindowColor from the style settings)
+ and is therefore not visible. A selected slide is painted with the
+ WindowTextColor from the style settings. Painting takes place in
+ all associated windows. The line- and fill color of the windows are
+ restored to their original values after the rectangle is painted.
+ @param nPage
+ When the page number is invalid then the call is ignored.
+ */
+ void DrawSelectionRect( sal_uInt16 nPage );
+ void DrawFocusRect( sal_uInt16 nPage );
+
+ virtual void WriteUserDataSequence ( ::com::sun::star::uno::Sequence < ::com::sun::star::beans::PropertyValue >&, sal_Bool bBrowse = sal_False );
+ virtual void ReadUserDataSequence ( const ::com::sun::star::uno::Sequence < ::com::sun::star::beans::PropertyValue >&, sal_Bool bBrowse = sal_False );
+
+ virtual void VisAreaChanged(const Rectangle& rRect);
+
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible> CreateAccessibleDocumentView( ::sd::Window* pWindow );
+
+ void SelectionHasChanged();
+ void PageLayoutHasChanged();
+ void FocusHasChanged( sal_uInt16 nOldFocusPage, sal_uInt16 nNewFocusPage );
+ void PageVisibilityHasChanged( sal_uInt16 nPage, sal_Bool bVisible );
+
+ /** On activation the preview is turned off.
+ */
+ virtual void Activate (sal_Bool IsMDIActivate);
+
+protected:
+ virtual Size GetOptimalSizePixel() const;
+ virtual long VirtHScrollHdl(ScrollBar* pHScroll);
+ virtual long VirtVScrollHdl(ScrollBar* pVHScroll);
+
+
+private:
+ SlideView* pSlideView;
+ Point aDisplayPos;
+ Size aDisplaySize;
+ sal_uInt16 nCurFocusPage;
+ bool bSetInitialZoomFactor;
+ bool bInitializeWinPos;
+
+ void Construct(SdDrawDocument* pDoc);
+ void ImplDrawFocusRect( sal_uInt16 nPage, sal_Bool bVisible );
+};
+
+} // end of namespace sd
+
+#endif
diff --git a/sd/source/ui/inc/SpellDialogChildWindow.hxx b/sd/source/ui/inc/SpellDialogChildWindow.hxx
new file mode 100755
index 000000000000..df9ee6aad98a
--- /dev/null
+++ b/sd/source/ui/inc/SpellDialogChildWindow.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 SD_SPELL_DIALOG_CHILD_WINDOW_HXX
+#define SD_SPELL_DIALOG_CHILD_WINDOW_HXX
+
+#include <svx/SpellDialogChildWindow.hxx>
+
+
+namespace sd {
+
+class Outliner;
+
+/** This derivation of the ::svx::SpellDialogChildWindow base class
+ provides Draw and Impress specific implementations of
+ GetNextWrongSentence() and ApplyChangedSentence().
+*/
+class SpellDialogChildWindow
+ : public ::svx::SpellDialogChildWindow
+{
+public:
+ SpellDialogChildWindow (
+ ::Window* pParent,
+ sal_uInt16 nId,
+ SfxBindings* pBindings,
+ SfxChildWinInfo* pInfo);
+ virtual ~SpellDialogChildWindow (void);
+
+ /** This method makes the one from the base class public so that
+ it can be called from the view shell when one is created.
+ */
+ virtual void InvalidateSpellDialog (void);
+
+ SFX_DECL_CHILDWINDOW(SpellDialogChildWindow);
+
+protected:
+ /** Iterate over the sentences in all text shapes and stop at the
+ next sentence with spelling errors. While doing so the view
+ mode may be changed and text shapes are set into edit mode.
+ */
+ virtual ::svx::SpellPortions GetNextWrongSentence( bool bRecheck );
+
+ /** This method is responsible for merging corrections made in the
+ spelling dialog back into the document.
+ */
+ virtual void ApplyChangedSentence(const ::svx::SpellPortions& rChanged, bool bRecheck);
+ virtual void GetFocus (void);
+ virtual void LoseFocus (void);
+
+private:
+ /** This outliner is used to do the main work of iterating over a
+ document and finding sentences with spelling errors.
+ */
+ Outliner* mpSdOutliner;
+
+ /** When this flag is <TRUE/> then eventually we have to destroy
+ the outliner in mpSdOutliner.
+ */
+ bool mbOwnOutliner;
+
+ /** Provide an outliner in the mpSdOutliner data member. When the
+ view shell has changed since the last call this include the
+ deletion/release of formerly created/obtained one prior to
+ construction/obtaining of a new one.
+ */
+ void ProvideOutliner (void);
+};
+
+} // end of namespace ::sd
+
+#endif
diff --git a/sd/source/ui/inc/TabControl.hxx b/sd/source/ui/inc/TabControl.hxx
new file mode 100755
index 000000000000..7334a6e89362
--- /dev/null
+++ b/sd/source/ui/inc/TabControl.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 SD_TAB_CONTROL_HXX
+#define SD_TAB_CONTROL_HXX
+
+#include <svtools/tabbar.hxx>
+#include <svtools/transfer.hxx>
+
+namespace sd {
+
+/*************************************************************************
+|*
+|* TabControl-Klasse fuer Seitenumschaltung
+|*
+\************************************************************************/
+
+class DrawViewShell;
+
+class TabControl
+ : public TabBar,
+ public DragSourceHelper,
+ public DropTargetHelper
+{
+public:
+ TabControl (DrawViewShell* pDrViewSh, ::Window* pParent);
+ virtual ~TabControl (void);
+
+ /** Inform all listeners of this control that the current page has been
+ activated. Call this method after switching the current page and is
+ not done elsewhere (like when using page up/down keys).
+ */
+ void SendActivatePageEvent (void);
+
+ /** Inform all listeners of this control that the current page has been
+ deactivated. Call this method before switching the current page and
+ is not done elsewhere (like when using page up/down keys).
+ */
+ void SendDeactivatePageEvent (void);
+
+protected:
+ DrawViewShell* pDrViewSh;
+ sal_Bool bInternalMove;
+
+ // TabBar
+ virtual void Select();
+ virtual void DoubleClick();
+ virtual void MouseButtonDown(const MouseEvent& rMEvt);
+
+ virtual void Command(const CommandEvent& rCEvt);
+
+ virtual long StartRenaming();
+ virtual long AllowRenaming();
+ virtual void EndRenaming();
+
+ virtual void ActivatePage();
+ virtual long DeactivatePage();
+
+ // DragSourceHelper
+ virtual void StartDrag( sal_Int8 nAction, const Point& rPosPixel );
+
+ // DropTargetHelper
+ virtual sal_Int8 AcceptDrop( const AcceptDropEvent& rEvt );
+ virtual sal_Int8 ExecuteDrop( const ExecuteDropEvent& rEvt );
+
+ DECL_LINK(DeactivatePageHdl, void*);
+
+private:
+ // nested class to implement the TransferableHelper
+ class TabControlTransferable : public TransferableHelper
+ {
+ public:
+ TabControlTransferable( TabControl& rParent ) :
+ mrParent( rParent ) {}
+ private:
+
+ TabControl& mrParent;
+
+ virtual ~TabControlTransferable();
+
+ virtual void AddSupportedFormats();
+ virtual sal_Bool GetData( const ::com::sun::star::datatransfer::DataFlavor& rFlavor );
+ virtual void DragFinished( sal_Int8 nDropAction );
+
+ };
+
+ friend class TabControl::TabControlTransferable;
+
+ void DragFinished( sal_Int8 nDropAction );
+
+private:
+ using TabBar::StartDrag;
+};
+
+} // end of namespace sd
+
+#endif
+
diff --git a/sd/source/ui/inc/TemplateScanner.hxx b/sd/source/ui/inc/TemplateScanner.hxx
new file mode 100755
index 000000000000..1c5f0cfe6f11
--- /dev/null
+++ b/sd/source/ui/inc/TemplateScanner.hxx
@@ -0,0 +1,220 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef _TEMPLATE_SCANNER_HXX
+#define _TEMPLATE_SCANNER_HXX
+
+#include "tools/AsynchronousTask.hxx"
+#include "sddllapi.h"
+#include <ucbhelper/content.hxx>
+#include <tools/string.hxx>
+#include "com/sun/star/uno/Reference.hxx"
+
+#include <vector>
+#include <boost/scoped_ptr.hpp>
+
+namespace com { namespace sun { namespace star { namespace ucb {
+class XContent;
+class XCommandEnvironment;
+} } } }
+
+namespace com { namespace sun { namespace star { namespace sdbc {
+class XResultSet;
+} } } }
+
+namespace sd {
+
+/** Representation of a template or layout file.
+*/
+class TemplateEntry
+{
+public:
+ TemplateEntry (const String& rsTitle, const String& rsPath)
+ : msTitle(rsTitle), msPath(rsPath) {}
+
+ String msTitle;
+ String msPath;
+};
+
+
+
+
+/** Representation of a template or layout folder.
+*/
+class TemplateDir
+{
+public:
+ TemplateDir (const String& rsRegion, const String& rsUrl )
+ : msRegion(rsRegion), msUrl(rsUrl), maEntries() {}
+
+ String msRegion;
+ String msUrl;
+ ::std::vector<TemplateEntry*> maEntries;
+};
+
+
+
+
+/** This class scans the template folders for impress templates. There are
+ two ways to use this class.
+ 1. The old and deprecated way is to call Scan() to scan all templates
+ and collect the supported ones in a tree structure. This structure is
+ returned by GetFolderList().
+ 2. The new way implements the AsynchronousTask interface. Call
+ RunNextStep() as long HasNextStep() returns <TRUE/>. After every step
+ GetLastAddedEntry() returns the template that was scanned (and has a
+ supported format) last. When a step does not add a new template then
+ the value of the previous step is returned.
+*/
+class SD_DLLPUBLIC TemplateScanner
+ : public ::sd::tools::AsynchronousTask
+{
+public:
+ /** Create a new template scanner and prepare but do not execute the scanning.
+ */
+ TemplateScanner (void);
+
+ /** The destructor deletes any remaining entries of the local list of
+ templates.
+ */
+ virtual ~TemplateScanner (void);
+
+ /** Execute the actual scanning of templates. When this method
+ terminates the result can be obtained by calling the
+ <member>GetTemplateList</member> method.
+ */
+ void Scan (void);
+
+ /** Return the list of template folders. It lies in the responsibility
+ of the caller to take ownership of some or all entries and remove
+ them from the returned list. All entries that remain until the
+ destructor is called will be destroyed.
+ */
+ std::vector<TemplateDir*>& GetFolderList (void);
+
+ /** Implementation of the AsynchronousTask interface method.
+ */
+ virtual void RunNextStep (void);
+
+ /** Implementation of the AsynchronousTask interface method.
+ */
+ virtual bool HasNextStep (void);
+
+ /** Return the TemplateDir object that was last added to
+ mpTemplateDirectory.
+ @return
+ <NULL/> is returned either before the template scanning is
+ started or after it has ended.
+ */
+ const TemplateEntry* GetLastAddedEntry (void) const;
+
+private:
+ /** The current state determines which step will be executed next by
+ RunNextStep().
+ */
+ enum State {
+ INITIALIZE_SCANNING,
+ INITIALIZE_FOLDER_SCANNING,
+ GATHER_FOLDER_LIST,
+ SCAN_FOLDER,
+ INITIALIZE_ENTRY_SCAN,
+ SCAN_ENTRY,
+ DONE,
+ ERROR
+ };
+ State meState;
+
+ ::ucbhelper::Content maFolderContent;
+ TemplateDir* mpTemplateDirectory;
+
+ /** The data structure that is to be filled with information about the
+ template files.
+ */
+ std::vector<TemplateDir*> maFolderList;
+
+ /** This member points into the maFolderList to the member that was most
+ recently added.
+ */
+ TemplateEntry* mpLastAddedEntry;
+
+ /** The folders that are collected by GatherFolderList().
+ */
+ class FolderDescriptorList;
+ ::boost::scoped_ptr<FolderDescriptorList> mpFolderDescriptors;
+
+ /** Set of state variables used by the methods
+ InitializeFolderScanning(), GatherFolderList(), ScanFolder(),
+ InitializeEntryScanning(), and ScanEntry().
+ */
+ com::sun::star::uno::Reference<com::sun::star::ucb::XContent> mxTemplateRoot;
+ com::sun::star::uno::Reference<com::sun::star::ucb::XCommandEnvironment> mxFolderEnvironment;
+ com::sun::star::uno::Reference<com::sun::star::ucb::XCommandEnvironment> mxEntryEnvironment;
+ com::sun::star::uno::Reference<com::sun::star::sdbc::XResultSet> mxFolderResultSet;
+ com::sun::star::uno::Reference<com::sun::star::sdbc::XResultSet> mxEntryResultSet;
+
+ /** Obtain the root folder of the template folder hierarchy. The result
+ is stored in mxTemplateRoot for later use.
+ */
+ State GetTemplateRoot (void);
+
+ /** Initialize the scanning of folders. This is called exactly once.
+ @return
+ Returns one of the two states ERROR or GATHER_FOLDER_LIST.
+ */
+ State InitializeFolderScanning (void);
+
+ /** Collect all available top-level folders in an ordered list which can
+ then be processed by ScanFolder().
+ @return
+ Returns one of the two states ERROR or SCAN_FOLDER.
+ */
+ State GatherFolderList (void);
+
+ /** From the list of top-level folders collected by GatherFolderList()
+ the one with highest priority is processed.
+ @return
+ Returns one of the states ERROR, DONE, or INITILIZE_ENTRY_SCAN.
+ */
+ State ScanFolder (void);
+
+ /** Initialize the scanning of entries of a top-level folder.
+ @return
+ Returns one of the states ERROR or SCAN_ENTRY.
+ */
+ State InitializeEntryScanning (void);
+
+ /** Scan one entry. When this entry matches the recognized template
+ types it is appended to the result set.
+ @return
+ Returns one of the states ERROR, SCAN_ENTRY, or SCAN_FOLDER.
+ */
+ State ScanEntry (void);
+};
+
+} // end of namespace sd
+
+#endif
diff --git a/sd/source/ui/inc/TextLogger.hxx b/sd/source/ui/inc/TextLogger.hxx
new file mode 100644
index 000000000000..0c2214935bb7
--- /dev/null
+++ b/sd/source/ui/inc/TextLogger.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 SD_TEXT_LOGGER_HXX
+#define SD_TEXT_LOGGER_HXX
+
+#include <tools/link.hxx>
+
+class String;
+class VclWindowEvent;
+
+namespace sd { namespace notes {
+
+class EditWindow;
+
+class TextLogger
+{
+public:
+ static TextLogger& Instance (void);
+
+ void AppendText (const char* sText);
+ void AppendText (const String& sText);
+ void AppendNumber (long int nValue);
+
+ void ConnectToEditWindow (EditWindow* pWindow);
+
+private:
+ static TextLogger* spInstance;
+ EditWindow* mpEditWindow;
+
+ TextLogger (void);
+
+ DECL_LINK(WindowEventHandler, VclWindowEvent*);
+};
+
+} } // end of namespace ::sd::notes
+
+#endif
diff --git a/sd/source/ui/inc/TextObjectBar.hxx b/sd/source/ui/inc/TextObjectBar.hxx
new file mode 100644
index 000000000000..afb9e88b16a2
--- /dev/null
+++ b/sd/source/ui/inc/TextObjectBar.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 SD_TEXT_OBJECT_BAR_HXX
+#define SD_TEXT_OBJECT_BAR_HXX
+
+
+#include <sfx2/module.hxx>
+#include <sfx2/shell.hxx>
+#include "glob.hxx"
+
+class CommandEvent;
+
+namespace sd {
+
+class View;
+class ViewShell;
+class Window;
+
+class TextObjectBar
+ : public SfxShell
+{
+public:
+ TYPEINFO();
+ SFX_DECL_INTERFACE(SD_IF_SDDRAWTEXTOBJECTBAR)
+
+ TextObjectBar (
+ ViewShell* pSdViewShell,
+ SfxItemPool& rItemPool,
+ ::sd::View* pSdView);
+ virtual ~TextObjectBar (void);
+
+ void GetAttrState( SfxItemSet& rSet );
+ void Execute( SfxRequest &rReq );
+
+ virtual void Command( const CommandEvent& rCEvt );
+
+private:
+ ViewShell* mpViewShell;
+ ::sd::View* mpView;
+};
+
+} // end of namespace sd
+
+#endif
diff --git a/sd/source/ui/inc/ToolBarManager.hxx b/sd/source/ui/inc/ToolBarManager.hxx
new file mode 100755
index 000000000000..d8b84d1d7b61
--- /dev/null
+++ b/sd/source/ui/inc/ToolBarManager.hxx
@@ -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.
+ *
+ ************************************************************************/
+
+#ifndef SD_TOOL_BAR_MANAGER_HXX
+#define SD_TOOL_BAR_MANAGER_HXX
+
+#include "ViewShell.hxx"
+#include "ShellFactory.hxx"
+#include <rtl/ustring.hxx>
+#include <com/sun/star/frame/XFrame.hpp>
+
+#include <sal/types.h>
+#include <boost/scoped_ptr.hpp>
+#include <boost/shared_ptr.hpp>
+#include <boost/enable_shared_from_this.hpp>
+
+class SdrView;
+
+namespace sd { namespace tools {
+class EventMultiplexer;
+} }
+
+
+namespace sd {
+
+class ViewShellBase;
+class ViewShellManager;
+
+/** Manage the set of visible tool bars (and object bars). Usually they
+ belong to the current view in the center pane.
+
+ Tool bars are managed in groups. Each group can be set, reset, or
+ modified independently of the others. This allows for instance to
+ replace the toolbars associated with the current function independently
+ from those assoicated with the main view.
+
+ The ToolBarManager has two high level methods which contain the
+ knowledge about which tool bars to show in a specific context.
+ When the view in the center pane changes then MainViewShellChanged()
+ sets up the tool bars for the new view. On changes of the selection the
+ SelectionHasChanged() method shows the tool bars for the new context.
+
+ The update of the actually visible tool bars to the set currently
+ required by the main view shell and its functions is divided into two
+ parts, PreUpdate() and PostUpdate(). This are to be called before
+ respectively after the update of the view shell stack. The reason for
+ this is to save time by not updating tool bars that will not be visible
+ in a short time on a view shell switch.
+*/
+class ToolBarManager
+ : public ::boost::enable_shared_from_this<ToolBarManager>
+{
+public:
+ /** Use this method instead of the constructor to create new objects of
+ this class.
+ */
+ static ::boost::shared_ptr<ToolBarManager> Create (
+ ViewShellBase& rBase,
+ const ::boost::shared_ptr<tools::EventMultiplexer>& rpMultiplexer,
+ const ::boost::shared_ptr<ViewShellManager>& rpViewShellManager);
+
+ ~ToolBarManager (void);
+
+ /** Call this method prior to the destructor to prevent the
+ ToolBarManager from accessing the ViewShellManager or the
+ XLayoutManager when those are possibly not well and alive anymore
+ (like during the destruction of the ViewShellBase.)
+ */
+ void Shutdown (void);
+
+ /** When the view in the center pane changes then this method sets up
+ the initial set of tool bars for the new view.
+ The ToolBarManager listenes for view switching itself and then calls
+ MainViewShellChanged(). Calling this method from the outside should
+ not be necessary.
+ @param nShellType
+ The type of the new main view shell.
+ */
+ void MainViewShellChanged (ViewShell::ShellType nShellType);
+ void MainViewShellChanged (const ViewShell& rMainViewShell);
+
+ /** Call this method when the selection has changed to update the more
+ temporary tool bars (those in the TBG_FUNCTION group.)
+ */
+ void SelectionHasChanged (
+ const ViewShell& rViewShell,
+ const SdrView& rView);
+
+ /** The set of tool bars that are handled by this manager class.
+ */
+ const static ::rtl::OUString msToolBar; // RID_DRAW_TOOLBOX, 23011
+ // RID_GRAPHIC_TOOLBOX, 23025
+ const static ::rtl::OUString msOptionsToolBar; // RID_DRAW_OPTIONS_TOOLBOX, 23020
+ // RID_GRAPHIC_OPTIONS_TOOLBOX, 23026
+ const static ::rtl::OUString msCommonTaskToolBar; // RID_DRAW_COMMONTASK_TOOLBOX, 23021
+ const static ::rtl::OUString msViewerToolBar; // RID_DRAW_VIEWER_TOOLBOX, 23023
+ // RID_GRAPHIC_VIEWER_TOOLBOX, 23024
+ const static ::rtl::OUString msSlideSorterToolBar; // RID_SLIDE_TOOLBOX, 23012
+ const static ::rtl::OUString msSlideSorterObjectBar; // RID_SLIDE_OBJ_TOOLBOX, 23014
+ const static ::rtl::OUString msOutlineToolBar; // RID_OUTLINE_TOOLBOX, 23017
+ const static ::rtl::OUString msMasterViewToolBar; // SID_MASTERPAGE, 27053
+ const static ::rtl::OUString msDrawingObjectToolBar; // RID_DRAW_OBJ_TOOLBOX, 23013
+ const static ::rtl::OUString msGluePointsToolBar; // RID_GLUEPOINTS_TOOLBOX, 23019
+ const static ::rtl::OUString msTextObjectBar; // RID_DRAW_TEXT_TOOLBOX, 23016
+ // RID_GRAPHIC_TEXT_TOOLBOX, 23028
+ const static ::rtl::OUString msBezierObjectBar; // RID_BEZIER_TOOLBOX, 23015
+ const static ::rtl::OUString msGraphicObjectBar; // RID_DRAW_GRAF_TOOLBOX, 23030
+ const static ::rtl::OUString msMediaObjectBar; // RID_DRAW_MEDIA_TOOLBOX, 23031
+ const static ::rtl::OUString msTableObjectBar; // RID_DRAW_TABLE_TOOLBOX
+
+ /** The set of tool bar groups.
+ */
+ enum ToolBarGroup {
+ TBG__FIRST,
+
+ TBG_PERMANENT = TBG__FIRST,
+ TBG_FUNCTION,
+ TBG_MASTER_MODE,
+
+ TBG__LAST = TBG_MASTER_MODE
+ };
+
+ /** Reset the set of visible object bars in the specified group. Tool
+ bars in other groups are not affected.
+ @param rParentShell
+ When this shell is not the main view then the method returns
+ immediately.
+ @param eGroup
+ Only the tool bars in this group are rest.
+ */
+ void ResetToolBars (ToolBarGroup eGroup);
+
+ /** Reset all tool bars, regardless of the group they belong to.
+ @param rParentShell
+ When this shell is not the main view then the method returns
+ immediately.
+ */
+ void ResetAllToolBars (void);
+
+ /** Add the tool bar with the given name to the specified group of tool
+ bars.
+ @param rParentShell
+ When this shell is not the main view then the method returns
+ immediately.
+ @param eGroup
+ The new tool bar is added to this group.
+ @param rsToolBarName
+ The base name of the tool bar. A proper prefix (like
+ private:resource/toolbar/) is added. The name may be one of the
+ ones defined above. Other names are allowed as well.
+ */
+ void AddToolBar (
+ ToolBarGroup eGroup,
+ const ::rtl::OUString& rsToolBarName);
+
+ /** Add the tool bar shell to the shell stack. This method basically
+ forwards the call to the ViewShellManager.
+ For some tool bar shells additional tool bars are made visible.
+ @param rParentShell
+ When this shell is not the main view then the method returns
+ immediately.
+ @param eGroup
+ The group is used for the actual tool bars.
+ @param nToolBarId
+ Id of the tool bar shell.
+ */
+ void AddToolBarShell (
+ ToolBarGroup eGroup,
+ ShellId nToolBarId);
+
+ /** Remove the tool bar with the given name from the specified group.
+ If the tool bar is not visible then nothing happens.
+ If the tool bar is a member of another group then nothing happens
+ either.
+ */
+ void RemoveToolBar (
+ ToolBarGroup eGroup,
+ const ::rtl::OUString& rsToolBarName);
+
+ /** This is basically a shortcut for ResetToolBars(),AddToolBar(). The
+ main difference is, that all sub shells of the specified parent
+ shell are deactivated as well.
+ @param rParentShell
+ When this shell is not the main view then the method returns
+ immediately.
+ @param eGroup
+ The new tool bar is added to this group.
+ @param rsToolBarName
+ The base name of the tool bar. A proper prefix (like
+ private:resource/toolbar/) is added. The name may be one of the
+ ones defined above. Other names are allowed as well.
+ */
+ void SetToolBar (
+ ToolBarGroup eGroup,
+ const ::rtl::OUString& rsToolBarName);
+
+ /** This is basically a shortcut for ResetToolBars(),AddToolBar(). The
+ main difference is, that all sub shells of the specified parent
+ shell are deactivated as well.
+ @param rParentShell
+ When this shell is not the main view then the method returns
+ immediately.
+ @param rParentShell
+ When this shell is not the main view then the method returns
+ immediately.
+ @param eGroup
+ The group is currently not used.
+ @param nToolBarId
+ Id of the tool bar shell.
+ */
+ void SetToolBarShell (
+ ToolBarGroup eGroup,
+ ShellId nToolBarId);
+
+ void PreUpdate (void);
+
+ /** Request an update of the active tool bars. The update is made
+ asynchronously.
+ */
+ void RequestUpdate (void);
+
+ /** This is a hint for the ToolBarManager to improve the performance
+ when it updates its tool bars when its own lock is released. Taking
+ control of the release of the update lock of the ViewShellManager
+ avoids some shell stack modifications and tool bar updates.
+ */
+ void LockViewShellManager (void);
+
+ /** Use this class to prevent the visible tool bars from being updated
+ (and thus causing repaints and GUI rearrangements) when several tool
+ bar operations are made in a row.
+ */
+ class UpdateLock { public:
+ UpdateLock(const ::boost::shared_ptr<ToolBarManager>& rpManager)
+ : mpManager(rpManager) { mpManager->LockUpdate(); }
+ ~UpdateLock(void) { mpManager->UnlockUpdate(); }
+ private:
+ ::boost::shared_ptr<ToolBarManager> mpManager;
+ };
+ friend class UpdateLock;
+
+ void ToolBarsDestroyed(void);
+
+private:
+ class Implementation;
+ ::boost::scoped_ptr<Implementation> mpImpl;
+
+ /** The ViewShellBase is used to get the XLayoutManager and to determine
+ the plug in mode.
+ */
+ ToolBarManager (void);
+
+ void LockUpdate (void);
+ void UnlockUpdate (void);
+};
+
+} // end of namespace sd
+
+#endif
diff --git a/sd/source/ui/inc/UpdateLockManager.hxx b/sd/source/ui/inc/UpdateLockManager.hxx
new file mode 100755
index 000000000000..9a0f6b65b259
--- /dev/null
+++ b/sd/source/ui/inc/UpdateLockManager.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 SD_UPDATE_LOCK_MANAGER_HXX
+#define SD_UPDATE_LOCK_MANAGER_HXX
+
+#include <memory>
+
+namespace sd {
+
+class ViewShellBase;
+
+/** Manage update locks of ViewShellBase objects.
+ A ViewShellBase object is locked while views are switched in order to
+ avoid unnecessary repaints of views and object bars.
+ Locking a ViewShellBase locks the frame::XLayoutManager and prevents
+ Activate() and Deactivate() calls at ViewShell objects being processed.
+
+ The main responsibility of this class is find the right moment to unlock
+ the managed ViewShellBase object: Only Lock() has to be called from the
+ outside (usually from PaneManager). Unlock() is called by this class
+ itself. When all else fails it has a timer that calls Unlock()
+ eventually.
+*/
+class UpdateLockManager
+{
+public:
+ /** The newly created instance supports locking for the specified
+ ViewShellBase object by default. Call Disable() for Lock() and
+ Unlock() calls being ignored.
+ */
+ UpdateLockManager (ViewShellBase& rBase);
+ ~UpdateLockManager (void);
+
+ /** For e.g. the PresentationViewShellBase locking is not necessary and
+ does lead to problems. This method lets Lock() and Unlock() calls
+ be ignored and thus turns locking essentially off.
+ */
+ void Disable (void);
+
+ /** Lock some UI updates. For every call to this method a call to
+ Unlock() is required to really unlock.
+ */
+ void Lock (void);
+
+ /** When called as many times as Lock() has been called before then the
+ ViewShellBase object is unlocked.
+ */
+ void Unlock (void);
+
+ /** Return whether the ViewShellBase object is locked. When locking is
+ disabled, i.e. Disable() has been called before, then this method
+ always returns <FALSE/>.
+ */
+ bool IsLocked (void) const;
+
+private:
+ class Implementation;
+ Implementation* mpImpl;
+
+ UpdateLockManager (const UpdateLockManager&); // Not supported.
+ UpdateLockManager& operator= (const UpdateLockManager&); // Not supported.
+};
+
+} // end of namespace sd
+
+#endif
+
diff --git a/sd/source/ui/inc/View.hxx b/sd/source/ui/inc/View.hxx
new file mode 100755
index 000000000000..766f0c072b63
--- /dev/null
+++ b/sd/source/ui/inc/View.hxx
@@ -0,0 +1,261 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef SD_VIEW_HXX
+#define SD_VIEW_HXX
+
+#include "pres.hxx"
+#include <tools/gen.hxx>
+#include <svtools/transfer.hxx>
+#include <svx/fmview.hxx>
+#include <svx/svdmark.hxx>
+//#ifndef _SVDVMARK_HXX //autogen
+//#include <svx/svdvmark.hxx>
+//#endif
+#include <svx/svdpage.hxx>
+#include "fupoor.hxx"
+
+#include "smarttag.hxx"
+
+class SdDrawDocument;
+class SdrOle2Obj;
+class SdrGrafObj;
+class SdrMediaObj;
+class OutputDevice;
+class VirtualDevice;
+class ImageMap;
+class Point;
+class Graphic;
+class SdrOutliner;
+class TransferableDataHelper;
+struct StyleRequestData;
+class Outliner;
+
+namespace sd {
+
+class DrawDocShell;
+struct SdNavigatorDropEvent;
+class ViewShell;
+class Window;
+class ViewClipboard;
+
+// -------------------
+// - SdViewRedrawRec -
+// -------------------
+
+struct SdViewRedrawRec
+{
+ OutputDevice* mpOut;
+ Rectangle aRect;
+};
+
+
+class View : public FmFormView
+{
+public:
+ TYPEINFO();
+
+ View (
+ SdDrawDocument* pDrawDoc,
+ OutputDevice* pOutDev,
+ ViewShell* pViewSh=NULL);
+ virtual ~View (void);
+
+ void CompleteRedraw( OutputDevice* pOutDev, const Region& rReg, sdr::contact::ViewObjectContactRedirector* pRedirector = 0L);
+
+ virtual sal_Bool GetAttributes( SfxItemSet& rTargetSet, sal_Bool bOnlyHardAttr=sal_False ) const;
+ virtual sal_Bool SetAttributes(const SfxItemSet& rSet, sal_Bool bReplaceAll = sal_False);
+ virtual void MarkListHasChanged();
+ virtual void ModelHasChanged();
+ virtual void SelectAll();
+ virtual void DoCut(::Window* pWindow=NULL);
+ virtual void DoCopy(::Window* pWindow=NULL);
+ virtual void DoPaste(::Window* pWindow=NULL);
+ virtual void DoConnect(SdrOle2Obj* pOleObj);
+ virtual sal_Bool SetStyleSheet(SfxStyleSheet* pStyleSheet, sal_Bool bDontRemoveHardAttr = sal_False);
+ virtual void StartDrag( const Point& rStartPos, ::Window* pWindow );
+ virtual void DragFinished( sal_Int8 nDropAction );
+ virtual sal_Int8 AcceptDrop (
+ const AcceptDropEvent& rEvt,
+ DropTargetHelper& rTargetHelper,
+ ::sd::Window* pTargetWindow = NULL,
+ sal_uInt16 nPage = SDRPAGE_NOTFOUND,
+ sal_uInt16 nLayer = SDRPAGE_NOTFOUND);
+ virtual sal_Int8 ExecuteDrop (
+ const ExecuteDropEvent& rEvt,
+ DropTargetHelper& rTargetHelper,
+ ::sd::Window* pTargetWindow = NULL,
+ sal_uInt16 nPage = SDRPAGE_NOTFOUND,
+ sal_uInt16 nLayer = SDRPAGE_NOTFOUND);
+
+ ::com::sun::star::uno::Reference<
+ ::com::sun::star::datatransfer::XTransferable>
+ CreateClipboardDataObject (::sd::View*, ::Window& rWindow);
+ ::com::sun::star::uno::Reference<
+ ::com::sun::star::datatransfer::XTransferable>
+ CreateDragDataObject (::sd::View*, ::Window& rWindow,
+ const Point& rDragPos);
+ ::com::sun::star::uno::Reference<
+ ::com::sun::star::datatransfer::XTransferable>
+ CreateSelectionDataObject (::sd::View*, ::Window& rWindow);
+
+ void UpdateSelectionClipboard( sal_Bool bForceDeselect );
+
+ inline DrawDocShell* GetDocSh (void) const;
+ inline SdDrawDocument* GetDoc (void) const;
+ inline ViewShell* GetViewShell (void) const;
+
+ virtual sal_Bool SdrBeginTextEdit(SdrObject* pObj, SdrPageView* pPV = 0L, ::Window* pWin = 0L, sal_Bool bIsNewObj = sal_False,
+ SdrOutliner* pGivenOutliner = 0L, OutlinerView* pGivenOutlinerView = 0L,
+ sal_Bool bDontDeleteOutliner = sal_False, sal_Bool bOnlyOneView = sal_False, sal_Bool bGrabFocus = sal_True);
+
+ virtual SdrEndTextEditKind SdrEndTextEdit(sal_Bool bDontDeleteReally = sal_False);
+
+ bool RestoreDefaultText( SdrTextObj* pTextObj );
+
+ sal_Bool InsertData( const TransferableDataHelper& rDataHelper,
+ const Point& rPos, sal_Int8& rDnDAction, sal_Bool bDrag,
+ sal_uLong nFormat = 0, sal_uInt16 nPage = SDRPAGE_NOTFOUND, sal_uInt16 nLayer = SDRLAYER_NOTFOUND );
+ /** gets the metafile from the given transferable helper and insert it as a graphic shape.
+ @param bOptimize if set to true, the metafile is analyzed and if only one bitmap action is
+ present, then is is inserted as a single graphic.
+ */
+ bool InsertMetaFile( TransferableDataHelper& rDataHelper,
+ const Point& rInsertPos,
+ ImageMap* pImageMap, bool bOptimize );
+
+ SdrGrafObj* InsertGraphic( const Graphic& rGraphic,
+ sal_Int8& rAction, const Point& rPos,
+ SdrObject* pSelectedObj, ImageMap* pImageMap );
+ SdrMediaObj* InsertMediaURL( const rtl::OUString& rMediaURL, sal_Int8& rAction,
+ const Point& rPos, const Size& rSize );
+
+ bool PasteRTFTable( SotStorageStreamRef xStm, SdrPage* pPage, sal_uLong nPasteOptions );
+
+ sal_Bool IsPresObjSelected(sal_Bool bOnPage=sal_True, sal_Bool bOnMasterPage=sal_True, sal_Bool bCheckPresObjListOnly=sal_False, sal_Bool bCheckLayoutOnly=sal_False) const;
+
+ void SetMarkedOriginalSize();
+
+ void LockRedraw(sal_Bool bLock);
+
+ sal_Bool IsMorphingAllowed() const;
+ sal_Bool IsVectorizeAllowed() const;
+
+ virtual SfxStyleSheet* GetStyleSheet() const;
+
+ sal_Bool GetExchangeList( List*& rpExchangeList, List* pBookmarkList, sal_uInt16 nType );
+
+ virtual void onAccessibilityOptionsChanged();
+
+ virtual SdrModel* GetMarkedObjModel() const;
+ virtual sal_Bool Paste(const SdrModel& rMod, const Point& rPos, SdrObjList* pLst=NULL, sal_uInt32 nOptions=0);
+ using SdrExchangeView::Paste;
+
+ /** returns true if we have an undo manager and there is an open list undo action */
+ bool isRecordingUndo() const;
+
+ virtual void AddCustomHdl();
+
+ SmartTagSet& getSmartTags() { return maSmartTags; }
+ void selectSmartTag( const SmartTagReference& xTag );
+ void updateHandles();
+
+ virtual SdrViewContext GetContext() const;
+ virtual sal_Bool HasMarkablePoints() const;
+ virtual sal_uLong GetMarkablePointCount() const;
+ virtual sal_Bool HasMarkedPoints() const;
+ virtual sal_uLong GetMarkedPointCount() const;
+ virtual sal_Bool IsPointMarkable(const SdrHdl& rHdl) const;
+ virtual sal_Bool MarkPoint(SdrHdl& rHdl, sal_Bool bUnmark=sal_False);
+ virtual void CheckPossibilities();
+ virtual sal_Bool MarkPoints(const ::Rectangle* pRect, sal_Bool bUnmark);
+ using SdrMarkView::MarkPoints;
+
+ void SetPossibilitiesDirty() { bPossibilitiesDirty = true; }
+ void SetMoveAllowed( bool bSet ) { bMoveAllowed = bSet; }
+ void SetMoveProtected( bool bSet ) { bMoveProtect = bSet; }
+ void SetResizeFreeAllowed( bool bSet ) { bResizeFreeAllowed = bSet; }
+ void SetResizePropAllowed( bool bSet ) { bResizePropAllowed = bSet; }
+ void SetResizeProtected( bool bSet ) { bResizeProtect = bSet; }
+
+ void SetMarkedPointsSmoothPossible( bool bSet ) { bSetMarkedPointsSmoothPossible = bSet; }
+ void SetMarkedSegmentsKindPossible( bool bSet ) { bSetMarkedSegmentsKindPossible = bSet; }
+
+ SdrObject* GetEmptyPresentationObject( PresObjKind eKind );
+protected:
+ DECL_LINK( OnParagraphInsertedHdl, ::Outliner * );
+ DECL_LINK( OnParagraphRemovingHdl, ::Outliner * );
+
+ virtual void OnBeginPasteOrDrop( PasteOrDropInfos* pInfos );
+ virtual void OnEndPasteOrDrop( PasteOrDropInfos* pInfos );
+
+ SdDrawDocument* mpDoc;
+ DrawDocShell* mpDocSh;
+ ViewShell* mpViewSh;
+ SdrMarkList* mpDragSrcMarkList;
+ SdrObject* mpDropMarkerObj;
+ SdrDropMarkerOverlay* mpDropMarker;
+ sal_uInt16 mnDragSrcPgNum;
+ Point maDropPos;
+ ::std::vector< String > maDropFileVector;
+ sal_Int8 mnAction;
+ Timer maDropErrorTimer;
+ Timer maDropInsertFileTimer;
+ sal_uInt16 mnLockRedrawSmph;
+ List* mpLockedRedraws;
+ bool mbIsDropAllowed;
+
+ DECL_LINK( DropErrorHdl, Timer* );
+ DECL_LINK( DropInsertFileHdl, Timer* );
+ DECL_LINK( ExecuteNavigatorDrop, SdNavigatorDropEvent* pSdNavigatorDropEvent );
+
+ void ImplClearDrawDropMarker();
+
+ SmartTagSet maSmartTags;
+
+private:
+ ::std::auto_ptr<ViewClipboard> mpClipboard;
+};
+
+
+DrawDocShell* View::GetDocSh (void) const
+{
+ return mpDocSh;
+}
+SdDrawDocument* View::GetDoc (void) const
+{
+ return mpDoc;
+}
+
+ViewShell* View::GetViewShell (void) const
+{
+ return mpViewSh;
+}
+
+} // end of namespace sd
+
+#endif
diff --git a/sd/source/ui/inc/ViewClipboard.hxx b/sd/source/ui/inc/ViewClipboard.hxx
new file mode 100755
index 000000000000..00f68f6a4218
--- /dev/null
+++ b/sd/source/ui/inc/ViewClipboard.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 SD_VIEW_CLIPBOARD_HXX
+#define SD_VIEW_CLIPBOARD_HXX
+
+#include <tools/solar.h>
+
+class SdPage;
+class SdTransferable;
+
+namespace sd {
+
+class View;
+
+
+/** Handle clipboard related tasks for the draw view.
+*/
+class ViewClipboard
+{
+public:
+ ViewClipboard (::sd::View& rView);
+ virtual ~ViewClipboard (void);
+
+ /** Handle the drop of a drag-and-drop action where the transferable
+ contains a set of pages.
+ */
+ virtual void HandlePageDrop (const SdTransferable& rTransferable);
+
+protected:
+ ::sd::View& mrView;
+
+ /** Return the first master page of the given transferable. When the
+ bookmark list of the transferable contains at least one non-master
+ page then NULL is returned.
+ */
+ SdPage* GetFirstMasterPage (const SdTransferable& rTransferable);
+
+ /** Assign the (first) master page of the given transferable to the
+ (...) slide.
+ */
+ virtual void AssignMasterPage (
+ const SdTransferable& rTransferable,
+ SdPage* pMasterPage);
+
+ /** Return an index of a page after which the pages of the transferable
+ are to be inserted into the target document.
+ */
+ virtual sal_uInt16 DetermineInsertPosition (
+ const SdTransferable& rTransferable);
+
+ /** Insert the slides in the given transferable behind the last selected
+ slide or, when the selection is empty, behind the last slide.
+ @param rTransferable
+ This transferable defines which pages to insert.
+ @param nInsertPosition
+ The pages of the transferable will be inserted behind the page
+ with this index.
+ @return
+ Returns the number of inserted slides.
+ */
+ virtual sal_uInt16 InsertSlides (
+ const SdTransferable& rTransferable,
+ sal_uInt16 nInsertPosition);
+};
+
+} // end of namespace ::sd
+
+#endif
diff --git a/sd/source/ui/inc/ViewShell.hxx b/sd/source/ui/inc/ViewShell.hxx
new file mode 100755
index 000000000000..fa4aed19b2ba
--- /dev/null
+++ b/sd/source/ui/inc/ViewShell.hxx
@@ -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.
+ *
+ ************************************************************************/
+
+#ifndef SD_VIEW_SHELL_HXX
+#define SD_VIEW_SHELL_HXX
+
+#include <rtl/ref.hxx>
+
+#include <vcl/field.hxx>
+#include <sfx2/viewsh.hxx>
+#include <vcl/field.hxx>
+#include <vcl/prntypes.hxx>
+#include <svtools/transfer.hxx>
+#include <comphelper/implementationreference.hxx>
+#include "glob.hxx"
+#include "pres.hxx"
+#include "cfgids.hxx"
+#ifndef _SD_VIEW_HXX
+#include "View.hxx"
+#endif
+#include "sddllapi.h"
+
+#include <com/sun/star/drawing/XDrawSubController.hpp>
+#include <memory>
+#include <boost/shared_ptr.hpp>
+
+class SdPage;
+class SvxRuler;
+class SdrOle2Obj; // fuer die, die Teile von SVDRAW rausdefiniert haben
+class ScrollBarBox;
+class SdDrawDocument;
+class ScrollBar;
+class FmFormShell;
+class SdOptionsPrintItem;
+class MultiSelection;
+
+extern const String aEmptyStr;
+
+namespace com { namespace sun { namespace star {
+namespace embed {
+ class XEmbeddedObject;
+}}}}
+
+namespace css = ::com::sun::star;
+
+namespace sd {
+
+class Client;
+class DrawDocShell;
+class DrawSubController;
+class FrameView;
+class FuPoor;
+class FuSearch;
+class SlideShow;
+class LayerTabBar;
+class View;
+class ViewShellBase;
+class ViewTabBar;
+class Window;
+class WindowUpdater;
+class ZoomList;
+
+#undef OUTPUT_DRAWMODE_COLOR
+#undef OUTPUT_DRAWMODE_CONTRAST
+
+/** Base class of the stacked shell hierarchy.
+
+ <p>Despite its name this class is not a descendant of SfxViewShell
+ but of SfxShell. Its name expresses the fact that it acts like a
+ view shell. Beeing a stacked shell rather then being an actual view shell
+ there can be several instances of this class that
+ <ul>
+ <li>all are based on the same view shell and thus show the same
+ document and share common view functionality and</li>
+ <li>are all visible at the same time and live in the same
+ frame.</li>
+ <ul></p>
+
+ <p>This class replaces the former ViewShell class.</p>
+*/
+class ViewShell
+ : public SfxShell
+{
+public:
+ enum ShellType {
+ ST_NONE,
+ ST_DRAW, // The Draw application.
+ ST_IMPRESS, // Main view of the Impress application.
+ ST_NOTES,
+ ST_HANDOUT,
+ ST_OUTLINE,
+ ST_SLIDE_SORTER,
+ ST_PRESENTATION,
+ ST_TASK_PANE
+ };
+ static const int MAX_HSPLIT_CNT = 1;
+ static const int MAX_VSPLIT_CNT = 1;
+ static const int MIN_SCROLLBAR_SIZE = 50;
+
+ static const sal_uLong OUTPUT_DRAWMODE_COLOR = DRAWMODE_DEFAULT;
+ static const sal_uLong OUTPUT_DRAWMODE_GRAYSCALE
+ = DRAWMODE_GRAYLINE | DRAWMODE_GRAYFILL
+ | DRAWMODE_BLACKTEXT | DRAWMODE_GRAYBITMAP
+ | DRAWMODE_GRAYGRADIENT;
+ static const int OUTPUT_DRAWMODE_BLACKWHITE
+ = DRAWMODE_BLACKLINE | DRAWMODE_BLACKTEXT
+ | DRAWMODE_WHITEFILL | DRAWMODE_GRAYBITMAP
+ | DRAWMODE_WHITEGRADIENT;
+ static const int OUTPUT_DRAWMODE_CONTRAST
+ = DRAWMODE_SETTINGSLINE | DRAWMODE_SETTINGSFILL
+ | DRAWMODE_SETTINGSTEXT | DRAWMODE_SETTINGSGRADIENT;
+
+ TYPEINFO();
+
+ ViewShell (
+ SfxViewFrame *pFrame,
+ ::Window* pParentWindow,
+ ViewShellBase& rViewShellBase,
+ bool bAllowCenter = true);
+ virtual ~ViewShell (void);
+
+ /** The Init method has to be called from the outside directly
+ after a new object of this class has been created. It can be
+ used for that part of the initialisation that can be run only
+ after the creation of the new object is finished. This
+ includes registration as listener at event broadcasters.
+
+ Derived classes should call this method at the head of their
+ Init() methods.
+ @param bIsMainViewShell
+ This flag tells the Init() method whether the new ViewShell will
+ be the main view shell.
+ */
+ virtual void Init (bool bIsMainViewShell);
+
+ /** The Exit() method has to be called before the destructor so that the
+ view shell is still a valid object and can safely call methods that
+ rely on that.
+ */
+ virtual void Exit (void);
+
+ void Cancel();
+
+ /** Return the window that is the parent of all controls of this view
+ shell. This may or may not be the window of the frame.
+ */
+ inline ::Window* GetParentWindow (void) const;
+
+ inline ::sd::View* GetView (void) const;
+ inline SdrView* GetDrawView (void) const;
+ SD_DLLPUBLIC DrawDocShell* GetDocSh (void) const;
+
+ SdDrawDocument* GetDoc (void) const;
+
+ SD_DLLPUBLIC SfxViewFrame* GetViewFrame (void) const;
+
+ /** The active window is usually the mpContentWindow. When there is a
+ show running then the active window is a ShowWindow.
+ */
+ ::sd::Window* GetActiveWindow (void) const;
+
+ /** Set the active window. When the shell is displayed in the center
+ pane then the window of the ViewShellBase is also set to the given
+ window.
+ */
+ void SetActiveWindow (::sd::Window* pWindow);
+
+ /** Return the rectangle that encloses all windows of the view. That
+ excludes the controls in the frame like rulers, scroll bars, tab
+ bar, and buttons.
+ @return
+ The rectangle is returned in screen coordinates, i.e. pixel
+ values relative to the upper left corner of the screen?.
+ */
+ const Rectangle& GetAllWindowRect (void);
+
+ // Mouse- & Key-Events
+ virtual void PrePaint();
+ virtual void Paint (const Rectangle& rRect, ::sd::Window* pWin);
+ virtual sal_Bool KeyInput(const KeyEvent& rKEvt, ::sd::Window* pWin);
+ virtual void MouseMove(const MouseEvent& rMEvt, ::sd::Window* pWin);
+ virtual void MouseButtonUp(const MouseEvent& rMEvt, ::sd::Window* pWin);
+ virtual void MouseButtonDown(const MouseEvent& rMEvt, ::sd::Window* pWin);
+ virtual void Command(const CommandEvent& rCEvt, ::sd::Window* pWin);
+ virtual sal_Bool RequestHelp( const HelpEvent& rEvt, ::sd::Window* pWin );
+ virtual long Notify( NotifyEvent& rNEvt, ::sd::Window* pWin );
+
+ virtual bool HandleScrollCommand(const CommandEvent& rCEvt, ::sd::Window* pWin);
+
+ virtual void Draw(OutputDevice &rDev, const Region &rReg);
+
+ virtual void SetUIUnit(FieldUnit eUnit);
+ virtual void SetDefTabHRuler( sal_uInt16 nDefTab );
+
+ sal_Bool HasRuler (void);
+ void SetRuler(sal_Bool bRuler);
+
+ /** Set internal values of all scroll bars that determine thumb size and
+ position. The external values like size and position of the scroll
+ bar controls are not modified.
+ */
+ virtual void UpdateScrollBars (void);
+ void Scroll(long nX, long nY);
+ void ScrollLines(long nX, long nY);
+ virtual void SetZoom(long nZoom);
+ virtual void SetZoomRect(const Rectangle& rZoomRect);
+ void InitWindows(const Point& rViewOrigin, const Size& rViewSize,
+ const Point& rWinPos, sal_Bool bUpdate = sal_False);
+ void InvalidateWindows();
+ /** This method is still used by the OutlineViewShell to update the
+ model according to the content of the outline view. This in turn
+ updates the previews in the slide sorter.
+ */
+ virtual void UpdatePreview (SdPage* pPage, sal_Bool bInit = sal_False);
+
+ void DrawMarkRect(const Rectangle& rRect) const;
+
+ void ExecReq( SfxRequest &rReq );
+
+ ZoomList* GetZoomList (void);
+
+ FrameView* GetFrameView (void);
+ /** Setting a frame view triggers ReadFrameViewData() for the new
+ frame.
+ @param pFrameView
+ The new frame view that replaces the old one.
+ */
+ void SetFrameView (FrameView* pFrameView);
+ virtual void ReadFrameViewData(FrameView* pView);
+ virtual void WriteFrameViewData();
+ virtual void WriteUserData(String& rString);
+ virtual void ReadUserData(const String& rString);
+
+ virtual sal_Bool ActivateObject(SdrOle2Obj* pObj, long nVerb);
+
+ /** @returns
+ current or selected page or 0. This method
+ will fail in master page mode.
+
+ @deprecated, please use getCurrentPage();
+ */
+ virtual SdPage* GetActualPage() = 0;
+
+ /** @returns
+ current or selected page or 0.
+ */
+ virtual SdPage* getCurrentPage() const = 0;
+
+ FunctionReference GetOldFunction() const { return mxOldFunction; }
+ bool HasOldFunction() const { return mxOldFunction.is(); }
+ FunctionReference GetCurrentFunction() const { return mxCurrentFunction; }
+ bool HasCurrentFunction( sal_uInt16 nSID ) { return mxCurrentFunction.is() && (mxCurrentFunction->GetSlotID() == nSID ); }
+ bool HasCurrentFunction() { return mxCurrentFunction.is(); }
+
+ void SetCurrentFunction(const FunctionReference& xFunction);
+ void SetOldFunction(const FunctionReference& xFunction);
+ void DeactivateCurrentFunction( bool bPermanent = false );
+
+ void SetPageSizeAndBorder(PageKind ePageKind, const Size& rNewSize,
+ long nLeft, long nRight, long nUpper, long nLower,
+ sal_Bool bScaleAll, Orientation eOrient, sal_uInt16 nPaperBin,
+ sal_Bool bBackgroundFullSize );
+
+ void SetStartShowWithDialog( sal_Bool bIn = sal_True ) { mbStartShowWithDialog = bIn; }
+ sal_Bool IsStartShowWithDialog() const { return mbStartShowWithDialog; }
+
+ sal_uInt16 GetPrintedHandoutPageNum (void) const { return mnPrintedHandoutPageNum; }
+ void SetPrintedHandoutPageNum (sal_uInt16 nPageNumber) {mnPrintedHandoutPageNum=nPageNumber; }
+
+ sal_uInt16 GetPrintedHandoutPageCount(void) const { return mnPrintedHandoutPageCount; }
+ void SetPrintedHandoutPageCount (sal_uInt16 nPageCount) {mnPrintedHandoutPageCount=nPageCount; }
+
+ virtual sal_uInt16 PrepareClose( sal_Bool bUI = sal_True, sal_Bool bForBrowsing = sal_False );
+
+ void GetMenuState(SfxItemSet& rSet);
+
+ virtual sal_Int8 AcceptDrop( const AcceptDropEvent& rEvt, DropTargetHelper& rTargetHelper,
+ ::sd::Window* pTargetWindow, sal_uInt16 nPage, sal_uInt16 nLayer );
+ virtual sal_Int8 ExecuteDrop( const ExecuteDropEvent& rEvt, DropTargetHelper& rTargetHelper,
+ ::sd::Window* pTargetWindow, sal_uInt16 nPage, sal_uInt16 nLayer );
+
+ virtual void WriteUserDataSequence ( ::com::sun::star::uno::Sequence < ::com::sun::star::beans::PropertyValue >&, sal_Bool bBrowse = sal_False );
+ virtual void ReadUserDataSequence ( const ::com::sun::star::uno::Sequence < ::com::sun::star::beans::PropertyValue >&, sal_Bool bBrowse = sal_False );
+
+ /** this method is called when the visible area of the view from this viewshell is changed */
+ virtual void VisAreaChanged(const Rectangle& rRect);
+
+ /** Create an accessible object representing the specified window.
+ Overload this method to provide view mode specific objects. The
+ default implementation returns an empty reference.
+ @param pWindow
+ Make the document displayed in this window accessible.
+ @return
+ This default implementation returns an empty reference.
+ */
+ virtual ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible>
+ CreateAccessibleDocumentView (::sd::Window* pWindow);
+
+ void SetWinViewPos(const Point& rWinPos, bool bUpdate);
+ Point GetWinViewPos() const;
+ Point GetViewOrigin() const;
+
+ /** Return the window updater of this view shell.
+ @return
+ In rare circumstances the returned pointer may be <null/>,
+ i.e. when no memory is available anymore.
+ */
+ ::sd::WindowUpdater* GetWindowUpdater (void) const;
+
+ /** Return the border that is drawn arround the actual document view.
+ The border contains typically rulers and scroll bars.
+ @param bOuterResize
+ When this flag is <TRUE/> then the border is used for an
+ OuterResizePixel(), i.e. there is a given window size and the
+ border elements are placed inside so that the document view has
+ the given window size minus the border.
+ When the flag is <FALSE/> then the border is used for an
+ InnerResizePixel(), i.e. the document view has a given size and
+ the border is placed outside. In this scenario the parent
+ window has the size of the document view plus the border.
+ */
+ SvBorder GetBorder (bool bOuterResize);
+
+ /** Notify the view shell that its parent window has been resized.
+ The ViewShell places and resizes its UI elements accordingly.
+ The new size can be obtained from the parent window.
+ */
+ virtual void Resize (void);
+
+ /** Set the position and size of the area which contains the GUI
+ elements like rulers, sliders, and buttons as well as the document
+ view. Both size and position are expected to be in pixel
+ coordinates. The positions and sizes of the mentioned GUI elements
+ are updated as well.
+
+ <p> This method is implemented by first setting copying the given
+ values to internal variables and then calling the
+ <type>ArrangeGUIElements</type> method which performs the actual
+ work of sizeing and arranging the UI elements accordingly.</p>
+ @param rPos
+ The position of the enclosing window relative to the document
+ window. This is only interesting if a Draw/Impress document
+ view is embedded as OLE object into another document view. For
+ normal documents this position is (0,0).
+ @param rSize
+ The new size in pixel.
+ */
+ // This is to be replaced by Resize.
+ // virtual void AdjustPosSizePixel(const Point &rPos, const Size &rSize);
+
+ /** Set position and size of the GUI elements that are controllerd by
+ the view shell like rulers and scroll bars as well as the actual
+ document view according to the position and size that were given
+ with the last Resize() call.
+ */
+ virtual void ArrangeGUIElements (void);
+
+ // virtual void OuterResizePixel(const Point &rPos, const Size &rSize);
+ // virtual void InnerResizePixel(const Point &rPos, const Size &rSize);
+
+ ViewShellBase& GetViewShellBase (void) const;
+
+ /** Return <TRUE/> when the called view shell is the main sub shell of
+ its ViewShellBase object, i.e. is display in the center pane. This
+ convenience function is equivalent to comparing the this pointer to
+ the result of ViewShellBase::GetViewShell(PT_CENTER).
+ */
+ bool IsMainViewShell (void) const;
+
+ /** Set or reset the flag that indicates whether the called shell is the
+ one displayed in the center pane. By default this flag is set to
+ <FALSE/>. For the main view shell it thus has to be set to <TRUE/>.
+ */
+ void SetIsMainViewShell (bool bIsMainViewShell);
+
+ /** Return a sub controller that implements the view shell specific
+ part of the DrawController.
+ */
+ virtual css::uno::Reference<css::drawing::XDrawSubController> CreateSubController (void) = 0;
+
+ /** Return the type of the shell.
+ */
+ virtual ShellType GetShellType (void) const;
+
+ /** This method is more or less an alias to Deactivate(). It is called
+ before an object of this class is taken from the stack of view
+ shells.
+
+ <p>When this method is not called before a view shell is taken from
+ a stack then the Deactivate() call from the SFX as a response to
+ RemoveSubShell() comes to late when the view shell is not on the
+ stack anymore.</p>
+ */
+ virtual void Shutdown (void);
+
+ /** This function is called from the underlying ViewShellBase
+ object to handle a verb execution request.
+ */
+ virtual ErrCode DoVerb (long nVerb);
+
+ virtual void UIActivating( SfxInPlaceClient* );
+ virtual void UIDeactivated( SfxInPlaceClient* );
+
+ /** Show controls of the UI or hide them, depending on the given flag.
+ As a result the border is adapted.
+ */
+ virtual void ShowUIControls (bool bVisible = true);
+ sal_Bool IsPageFlipMode(void) const;
+
+ /** Set the given window as new parent window. This is not possible for
+ all views, so the return value tells the caller if the relocation
+ was successfull.
+ */
+ virtual bool RelocateToParentWindow (::Window* pParentWindow);
+
+ void AdaptDefaultsForChart(
+ const ::com::sun::star::uno::Reference < ::com::sun::star::embed::XEmbeddedObject > & xEmbObj );
+
+ /** Depending on the given request create a new page or duplicate an
+ existing one. A new page is created behind the given slide.
+ @param rRequest
+ The request as passed to an Execute() method. Its arguments are
+ evaluated. Its slot id determines whether to create or
+ duplicate a slide.
+ @param pPage
+ This page is either duplicated or becomes the predecessor of the
+ new slide. If NULL a duplication request is ignored. A new
+ slide is inserted as first slide.
+ @param nInsertPosition
+ When -1 (the default) then insert after pPage. Otherwise insert
+ before the given index (of a standard page).
+ @return
+ The new slide is returned. If for some reason a new page can
+ not be created then NULL is returned.
+ */
+ virtual SdPage* CreateOrDuplicatePage (
+ SfxRequest& rRequest,
+ PageKind ePageKind,
+ SdPage* pPage,
+ const sal_Int32 nInsertPosition = -1);
+
+
+ class Implementation;
+
+protected:
+ /** must be called in the beginning of each subclass d'tor.
+ disposes and clears both current and old function. */
+ void DisposeFunctions();
+
+ friend class ViewShellBase;
+
+ /** Window inside the rulers and scroll bars that shows a view of the
+ document.
+ */
+
+ ::boost::shared_ptr<sd::Window> mpContentWindow;
+
+ /// Horizontal scroll bar for the current slide is displayed when needed.
+ ::boost::shared_ptr<ScrollBar> mpHorizontalScrollBar;
+ /// Vertical scroll bar for whole document is always visible.
+ ::boost::shared_ptr<ScrollBar> mpVerticalScrollBar;
+ /// Horizontal ruler is not shown by default.
+ ::std::auto_ptr<SvxRuler> mpHorizontalRuler;
+ /// Vertical ruler is not shown by default.
+ ::std::auto_ptr<SvxRuler> mpVerticalRuler;
+ /// Filler of the little square enclosed by the two scroll bars.
+ ::boost::shared_ptr<ScrollBarBox> mpScrollBarBox;
+ /// Layer tab bar.
+ ::std::auto_ptr<LayerTabBar> mpLayerTabBar;
+
+ /// This flag controls whether the rulers are visible.
+ bool mbHasRulers;
+
+ /// The active window.
+ ::sd::Window* mpActiveWindow;
+ ::sd::View* mpView;
+ FrameView* mpFrameView;
+
+ FunctionReference mxCurrentFunction;
+ FunctionReference mxOldFunction;
+ ZoomList* mpZoomList;
+
+ Point maViewPos;
+ Size maViewSize;
+ Size maScrBarWH;
+
+ sal_Bool mbCenterAllowed; // wird an Fenster weitergegeben
+
+ sal_Bool mbStartShowWithDialog; // Praesentation wurde ueber Dialog gestartet
+ sal_uInt16 mnPrintedHandoutPageNum; // Page number of the handout page that is to be printed.
+ sal_uInt16 mnPrintedHandoutPageCount; // Page count of the handout pages that are to be printed.
+
+ //af sal_Bool bPrintDirectSelected; // Print only selected objects in direct print
+ //afString sPageRange; // pagerange if selected objects in direct print
+
+ /** Area covered by all windows, i.e. the area of the parent window
+ without the controls at the borders like rulers, scroll bars, tab
+ bar, buttons.
+ This rectangle may be set in window coordinates (i.e. pixel values
+ relative to the parent window). It is transformed by every call to
+ GetAllWindowRectangle() into screen coordinates (relative to the
+ upper left corner of the screen.
+ */
+ Rectangle maAllWindowRectangle;
+
+ /// The type of the shell. Returned by GetShellType().
+ ShellType meShellType;
+
+ ::std::auto_ptr<Implementation> mpImpl;
+
+ // #96090# Support methods for centralized UNDO/REDO
+ virtual ::svl::IUndoManager* ImpGetUndoManager (void) const;
+ void ImpGetUndoStrings(SfxItemSet &rSet) const;
+ void ImpGetRedoStrings(SfxItemSet &rSet) const;
+ void ImpSidUndo(sal_Bool bDrawViewShell, SfxRequest& rReq);
+ void ImpSidRedo(sal_Bool bDrawViewShell, SfxRequest& rReq);
+
+ DECL_LINK( HScrollHdl, ScrollBar * );
+ DECL_LINK( VScrollHdl, ScrollBar * );
+
+ // virt. Scroll-Handler, hier koennen sich abgeleitete Klassen einklinken
+ virtual long VirtHScrollHdl(ScrollBar* pHScroll);
+ virtual long VirtVScrollHdl(ScrollBar* pVScroll);
+
+ // virtuelle Funktionen fuer Lineal-Handling
+ virtual SvxRuler* CreateHRuler(::sd::Window* pWin, sal_Bool bIsFirst);
+ virtual SvxRuler* CreateVRuler(::sd::Window* pWin);
+ virtual void UpdateHRuler();
+ virtual void UpdateVRuler();
+
+ // Zeiger auf ein zusaetzliches Control im horizontalen ScrollBar
+ // abgeleiteter Klassen (z.B. ein TabBar) zurueckgeben
+ virtual long GetHCtrlWidth();
+
+ virtual void Activate(sal_Bool IsMDIActivate);
+ virtual void Deactivate(sal_Bool IsMDIActivate);
+
+ virtual void SetZoomFactor( const Fraction &rZoomX,
+ const Fraction &rZoomY );
+
+private:
+ ::Window* mpParentWindow;
+ /** This window updater is used to keep all relevant windows up to date
+ with reference to the digit langugage used to display digits in text
+ shapes.
+ */
+ ::std::auto_ptr< ::sd::WindowUpdater> mpWindowUpdater;
+
+ /** Code common to all constructors. It generally is a bad idea
+ to call this function from outside a constructor.
+ */
+ void construct (void);
+
+ DECL_LINK(FrameWindowEventListener, VclSimpleEvent*);
+
+ /** Create the rulers.
+ */
+ void SetupRulers (void);
+};
+
+
+
+
+::Window* ViewShell::GetParentWindow (void) const
+{
+ return mpParentWindow;
+}
+
+::sd::View* ViewShell::GetView (void) const
+{
+ return mpView;
+}
+
+SdrView* ViewShell::GetDrawView (void) const
+{
+ return static_cast<SdrView*>(mpView);
+}
+
+} // end of namespace sd
+
+#endif
diff --git a/sd/source/ui/inc/ViewShellBase.hxx b/sd/source/ui/inc/ViewShellBase.hxx
new file mode 100755
index 000000000000..338dbce75beb
--- /dev/null
+++ b/sd/source/ui/inc/ViewShellBase.hxx
@@ -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.
+ *
+ ************************************************************************/
+
+#ifndef SD_VIEW_SHELL_BASE_HXX
+#define SD_VIEW_SHELL_BASE_HXX
+
+#include <com/sun/star/frame/XFrame.hpp>
+
+#include "ViewShell.hxx"
+
+#include "glob.hxx"
+#include <sfx2/viewsh.hxx>
+#include <sfx2/viewfac.hxx>
+#include <memory>
+#include <boost/shared_ptr.hpp>
+#include <boost/scoped_ptr.hpp>
+
+#include <set>
+
+class SdDrawDocument;
+class SfxRequest;
+
+namespace sd { namespace tools {
+class EventMultiplexer;
+} }
+
+namespace sd {
+
+class DrawController;
+class DrawDocShell;
+class FormShellManager;
+class ToolBarManager;
+class UpdateLockManager;
+class ViewShell;
+class ViewShellManager;
+
+/** SfxViewShell descendant that the stacked Draw/Impress shells are
+ based on.
+
+ <p>The "base" part of the name does not mean that this is a base
+ class of some class hierarchy. It rather is the base of the
+ stacked shells.</p>
+
+ <p>This class starts as a new and relatively small class. Over
+ time as much code as possible should be moved from the stacked
+ shells to this class.</p>
+*/
+class ViewShellBase
+ : public SfxViewShell
+{
+public:
+ TYPEINFO();
+ SFX_DECL_VIEWFACTORY(ViewShellBase);
+ SFX_DECL_INTERFACE(SD_IF_SDVIEWSHELLBASE)
+
+ /** This constructor is used by the view factory of the SFX macros.
+ Note that LateInit() has to be called after the constructor
+ terminates and before doing anything else.
+ */
+ ViewShellBase (
+ SfxViewFrame *pFrame,
+ SfxViewShell* pOldShell);
+
+ virtual ~ViewShellBase (void);
+
+ /** This method is part of the object construction. It HAS to be called
+ after the constructor has created a new object.
+ */
+ virtual void LateInit (const ::rtl::OUString& rsDefaultView);
+
+ ::boost::shared_ptr<ViewShellManager> GetViewShellManager (void) const;
+
+ /** Return the main view shell stacked on the called ViewShellBase
+ object. This is usually the view shell displayed in the center
+ pane.
+ */
+ ::boost::shared_ptr<ViewShell> GetMainViewShell (void) const;
+
+ /** When given a view frame this static method returns the
+ corresponding sd::ViewShellBase object.
+ @return
+ When the SfxViewShell of the given frame is not a
+ ViewShellBase object then NULL is returned.
+ */
+ static ViewShellBase* GetViewShellBase (SfxViewFrame* pFrame);
+
+ DrawDocShell* GetDocShell (void) const;
+ SdDrawDocument* GetDocument (void) const;
+
+ /** Callback function for general slot calls. At the moment these are
+ slots for switching the pane docking windows on and off.
+ */
+ virtual void Execute (SfxRequest& rRequest);
+
+ /** Callback function for retrieving item values related to certain
+ slots. This is the companion of Execute() and handles the slots
+ concerned with showing the pane docking windows.
+ */
+ virtual void GetState (SfxItemSet& rSet);
+
+ SvBorder GetBorder (bool bOuterResize);
+ virtual void InnerResizePixel (const Point& rOrigin, const Size& rSize);
+ virtual void OuterResizePixel (const Point& rOrigin, const Size& rSize);
+
+ /** This call is forwarded to the main sub-shell.
+ */
+ virtual ErrCode DoVerb (long nVerb);
+
+ /** Return a new renderer that can be used for example for printing the
+ document.
+ */
+ virtual com::sun::star::uno::Reference<com::sun::star::view::XRenderable> GetRenderable (void);
+
+ /// Forwarded to the print manager.
+ virtual SfxPrinter* GetPrinter (sal_Bool bCreate = sal_False);
+
+ /// Forwarded to the print manager.
+ virtual sal_uInt16 SetPrinter (
+ SfxPrinter* pNewPrinter,
+ sal_uInt16 nDiffFlags = SFX_PRINTER_ALL, bool bIsApi=false);
+
+ /// Forwarded to the print manager.
+ virtual SfxTabPage* CreatePrintOptionsPage (
+ ::Window *pParent,
+ const SfxItemSet &rOptions);
+
+ /// Forward methods to main sub shell.
+ virtual void WriteUserDataSequence (
+ ::com::sun::star::uno::Sequence <
+ ::com::sun::star::beans::PropertyValue >&,
+ sal_Bool bBrowse = sal_False);
+
+ /** Pass the given properties to the main view shell. After that we
+ ensure that the right view shell type is displayed in the center
+ pane.
+ */
+ virtual void ReadUserDataSequence (
+ const ::com::sun::star::uno::Sequence <
+ ::com::sun::star::beans::PropertyValue >&,
+ sal_Bool bBrowse = sal_False);
+
+ virtual void UIActivating( SfxInPlaceClient* );
+ virtual void UIDeactivated( SfxInPlaceClient* );
+ virtual void Activate (sal_Bool IsMDIActivate);
+ virtual void Deactivate (sal_Bool IsMDIActivate);
+ virtual void SetZoomFactor (
+ const Fraction &rZoomX,
+ const Fraction &rZoomY);
+ virtual sal_uInt16 PrepareClose (sal_Bool bUI = sal_True, sal_Bool bForBrowsing = sal_False);
+ virtual void WriteUserData (String&, sal_Bool bBrowse = sal_False);
+ virtual void ReadUserData (const String&, sal_Bool bBrowse = sal_False);
+ virtual SdrView* GetDrawView (void) const;
+ virtual void AdjustPosSizePixel (const Point &rOfs, const Size &rSize);
+
+ /** When <TRUE/> is given, then the mouse shape is set to hour glass (or
+ whatever the busy shape looks like on the system.)
+ */
+ void SetBusyState (bool bBusy);
+
+ /** Call this method when the controls of this view shell or the
+ embedded sub shell need to be rearranged. This is necessary
+ e.g. when the border has been modified (UpdateBorder() calls this
+ method).
+
+ This method is like ResizePixel() with no arguments.
+ */
+ void Rearrange (void);
+
+ /** Update the border that is set with SfxViewShell::SetBorderPixel().
+ This is done by adding the border used by the ViewShellBase itself
+ with the border used by the main view shell.
+
+ @param bForce if true the borders are also updated if old border
+ and new border are same.
+ */
+ void UpdateBorder ( bool bForce = false );
+
+ /** With this method the UI controls can be turned on or off. It is
+ used by the FuSlideShow to hide the UI controls while showing a
+ non-full-screen or in-window presentation in the center pane.
+ */
+ void ShowUIControls (bool bVisible);
+
+ /** this method starts the presentation by
+ executing the slot SID_PRESENTATION asynchronous */
+ void StartPresentation();
+
+ /** Return an event multiplexer. It is a single class that forwards
+ events from various sources. This method must not be called before
+ LateInit() has terminated.
+ */
+ ::boost::shared_ptr<tools::EventMultiplexer> GetEventMultiplexer (void);
+
+ /** returns the complete area of the current view relative to the frame
+ window
+ */
+ const Rectangle& getClientRectangle() const;
+
+ ::boost::shared_ptr<UpdateLockManager> GetUpdateLockManager (void) const;
+
+ ::boost::shared_ptr<ToolBarManager> GetToolBarManager (void) const;
+
+ ::boost::shared_ptr<FormShellManager> GetFormShellManager (void) const;
+
+ DrawController& GetDrawController (void) const;
+
+ void SetViewTabBar (const ::rtl::Reference<ViewTabBar>& rViewTabBar);
+
+ /** Return the window that is used by the main view shell to display its
+ view and other UI elements, like scroll bars and rulers. Ownership
+ of that window remains with the called ViewShellBase object.
+ */
+ ::Window* GetViewWindow (void);
+
+ /** returns the ui descriptive name for the given uno slot. The result is taken from the configuration
+ and not cached, so do not use it excessive (f.e. in status updates) */
+ ::rtl::OUString RetrieveLabelFromCommand( const ::rtl::OUString& aCmdURL ) const;
+
+protected:
+ osl::Mutex maMutex;
+
+ virtual void Notify(SfxBroadcaster& rBC, const SfxHint& rHint);
+
+ virtual void InitializeFramework (void);
+
+private:
+ class Implementation;
+ ::boost::scoped_ptr<Implementation> mpImpl;
+ DrawDocShell* mpDocShell;
+ SdDrawDocument* mpDocument;
+
+ /** Determine from the properties of the document shell the initial type
+ of the view shell in the center pane. We use this method to avoid
+ starting with the wrong type. When ReadUserDataSequence() is called
+ we check that the right type is active and change again if that is
+ not the case because something went wrong.
+ */
+ ::rtl::OUString GetInitialViewShellType (void);
+};
+
+class ICustomhandleSupplier
+{
+public:
+ virtual void addCustomHandler( SdrView& rSourceView, ViewShell::ShellType eShellType, SdrHdlList& rHandlerList ) = 0;
+};
+
+} // end of namespace sd
+
+#endif
diff --git a/sd/source/ui/inc/ViewShellHint.hxx b/sd/source/ui/inc/ViewShellHint.hxx
new file mode 100644
index 000000000000..6124a95c29c1
--- /dev/null
+++ b/sd/source/ui/inc/ViewShellHint.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 SD_VIEW_SHELL_HINT_HXX
+#define SD_VIEW_SHELL_HINT_HXX
+
+#include <svl/hint.hxx>
+
+namespace sd {
+
+/** Local derivation of the SfxHint class that defines some hint ids that
+ are used by the ViewShell class and its decendants.
+*/
+class ViewShellHint
+ : public SfxHint
+{
+public:
+ enum HintId {
+ // Indicate that a page resize is about to begin.
+ HINT_PAGE_RESIZE_START,
+ // Indicate that a page resize has been completed.
+ HINT_PAGE_RESIZE_END,
+ // Indicate that an edit mode change is about to begin.
+ HINT_CHANGE_EDIT_MODE_START,
+ // Indicate that an edit mode change has been completed.
+ HINT_CHANGE_EDIT_MODE_END,
+
+ HINT_COMPLEX_MODEL_CHANGE_START,
+ HINT_COMPLEX_MODEL_CHANGE_END
+ };
+
+ TYPEINFO();
+
+ ViewShellHint (HintId nHintId);
+
+ HintId GetHintId (void) const;
+
+private:
+ HintId meHintId;
+};
+
+} // end of namespace sd
+
+#endif
diff --git a/sd/source/ui/inc/ViewShellImplementation.hxx b/sd/source/ui/inc/ViewShellImplementation.hxx
new file mode 100755
index 000000000000..f4f07b5549dd
--- /dev/null
+++ b/sd/source/ui/inc/ViewShellImplementation.hxx
@@ -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.
+ *
+ ************************************************************************/
+
+#ifndef SD_VIEW_SHELL_IMPLEMENTATION_HXX
+#define SD_VIEW_SHELL_IMPLEMENTATION_HXX
+
+#include "ViewShell.hxx"
+#include "ViewShellManager.hxx"
+#include "ToolBarManager.hxx"
+
+#include <boost/shared_ptr.hpp>
+#include <boost/weak_ptr.hpp>
+#include <memory>
+
+
+class SvxIMapDlg;
+
+namespace sd {
+
+class DrawController;
+
+/** This class contains (will contain) the implementation of methods that
+ have not be accessible from the outside.
+*/
+class ViewShell::Implementation
+{
+public:
+ bool mbIsShowingUIControls;
+ bool mbIsMainViewShell;
+ /// Set to true when the ViewShell::Init() method has been called.
+ bool mbIsInitialized;
+ /** Set to true while ViewShell::ArrangeGUIElements() is being
+ executed. It is used as guard against recursive execution.
+ */
+ bool mbArrangeActive;
+
+ /** Remember a link to the sub shell factory, so that it can be
+ unregistered at the ViewShellManager when a ViewShell is deleted.
+ */
+ ViewShellManager::SharedShellFactory mpSubShellFactory;
+
+ /** This update lock for the ToolBarManager exists in order to avoid
+ problems with tool bars being displayed while the mouse button is
+ pressed. Whith docked tool bars this can lead to a size change of
+ the view. This would change the relative mouse coordinates and thus
+ interpret every mouse click as move command.
+ */
+ class ToolBarManagerLock
+ {
+ public:
+ /** Create a new instance. This allows the mpSelf member to be set
+ automatically.
+ */
+ static ::boost::shared_ptr<ToolBarManagerLock> Create (
+ const ::boost::shared_ptr<ToolBarManager>& rpManager);
+ /** Release the lock. When the UI is captured
+ (Application::IsUICaptured() returns <TRUE/>) then the lock is
+ released later asynchronously.
+ @param bForce
+ When this flag is <TRUE/> then the lock is released even
+ when IsUICaptured() returns <TRUE/>.
+ */
+ void Release (bool bForce = false);
+ DECL_LINK(TimeoutCallback,Timer*);
+ private:
+ ::std::auto_ptr<ToolBarManager::UpdateLock> mpLock;
+ /** The timer is used both as a safe guard to unlock the update lock
+ when Release() is not called explicitly. It is also used to
+ defer the release of the lock to a time when the UI is not
+ captured.
+ */
+ Timer maTimer;
+ /** The shared_ptr to this allows the ToolBarManagerLock to control
+ its own lifetime. This, of course, does work only when no one
+ holds another shared_ptr longer than only temporary.
+ */
+ ::boost::shared_ptr<ToolBarManagerLock> mpSelf;
+ ToolBarManagerLock (const ::boost::shared_ptr<sd::ToolBarManager>& rpManager);
+ ~ToolBarManagerLock (void);
+
+ class Deleter;
+ friend class Deleter;
+ };
+ // The member is not an auto_ptr because it takes over its own life time
+ // control.
+ ::boost::weak_ptr<ToolBarManagerLock> mpUpdateLockForMouse;
+
+ Implementation (ViewShell& rViewShell);
+ ~Implementation (void);
+
+ /** Process the SID_MODIFY slot.
+ */
+ void ProcessModifyPageSlot (
+ SfxRequest& rRequest,
+ SdPage* pCurrentPage,
+ PageKind ePageKind);
+
+ /** Assign the given layout to the given page. This method is at the
+ moment merely a front end for ProcessModifyPageSlot.
+ @param pPage
+ If a NULL pointer is given then this call is ignored.
+ */
+ void AssignLayout ( SfxRequest& rRequest, PageKind ePageKind );
+
+ /** Determine the view id of the view shell. This corresponds to the
+ view id stored in the SfxViewFrame class.
+
+ We can not use the view of that class because with the introduction
+ of the multi pane GUI we do not switch the SfxViewShell anymore when
+ switching the view in the center pane. The view id of the
+ SfxViewFrame is thus not modified and we can not set it from the
+ outside.
+
+ The view id is still needed for the SFX to determine on start up
+ (e.g. after loading a document) which ViewShellBase sub class to
+ use. These sub classes--like OutlineViewShellBase--exist only to be
+ used by the SFX as factories. They only set the initial pane
+ configuration, nothing more.
+
+ So what we do here in essence is to return on of the
+ ViewShellFactoryIds that can be used to select the factory that
+ creates the ViewShellBase subclass with the initial pane
+ configuration that has in the center pane a view shell of the same
+ type as mrViewShell.
+ */
+ sal_uInt16 GetViewId (void);
+
+ /** Return a pointer to the image map dialog that is displayed in some
+ child window.
+ @return
+ Returns <NULL/> when the image map dialog is not available.
+ */
+ static SvxIMapDlg* GetImageMapDialog (void);
+
+private:
+ ViewShell& mrViewShell;
+};
+
+
+} // end of namespace sd
+
+#endif
diff --git a/sd/source/ui/inc/ViewShellManager.hxx b/sd/source/ui/inc/ViewShellManager.hxx
new file mode 100755
index 000000000000..d674e7d07eff
--- /dev/null
+++ b/sd/source/ui/inc/ViewShellManager.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 SD_VIEW_SHELL_MANAGER_HXX
+#define SD_VIEW_SHELL_MANAGER_HXX
+
+#include "ShellFactory.hxx"
+#include <tools/link.hxx>
+#include <memory>
+#include <vector>
+#include <boost/shared_ptr.hpp>
+
+class FmFormShell;
+class SfxShell;
+class SfxUndoManager;
+
+namespace sd {
+
+class ViewShell;
+class ViewShellBase;
+
+/** The ViewShellManager has the responsibility to manage the view shells
+ and sub shells on the SFX shell stack. They form a two level hierarchy
+ (the underlying ViewShellBase, the only true SfxViewShell descendant,
+ forms a third level.) On the first level there are the view shells
+ (what formely was called view shell, anyway; nowadays they are derived
+ from SfxShell.) and shells for panes. On the second level there are sub
+ shells (also derived from SfxShell) that usually are tool bars.
+
+ <p>On the SFX shell stack the regular sub shells are placed above their
+ view shells. The FormShell is a special case. With the SetFormShell()
+ method it can be placed directly above or below one of the view
+ shells.</p>
+
+ <p>Shells managed by this class are created by factories or are given
+ directly to Activate... methods. For the sub shells there is one
+ factory for every view shell. Factories are added or removed via the
+ (Add|Remove)SubShellFactory() methods. The FormShell is managed with the
+ factory of its view shell.</p>
+*/
+class ViewShellManager
+{
+public:
+ typedef ::boost::shared_ptr<ShellFactory<SfxShell> > SharedShellFactory;
+
+ ViewShellManager (ViewShellBase& rBase);
+
+ /** Before the destructor is called the method Shutdown() has to have
+ been called.
+ */
+ ~ViewShellManager (void);
+
+ /** Tell a ViewShellManager object to prepare to be deleted, i.e. to
+ destroy all of its resources and to ignore all following calls.
+ Use this when the owner of the view shell manager is about being
+ destroyed but the view shell manager itself can not yet be deleted.
+ */
+ void Shutdown (void);
+
+ /** Set the factory for sub shells of the specified view shell.
+ */
+ void AddSubShellFactory (
+ ViewShell* pViewShell,
+ const SharedShellFactory& rpFactory);
+ void RemoveSubShellFactory (
+ ViewShell* pViewShell,
+ const SharedShellFactory& rpFactory);
+
+ /** Activate the given view shell.
+ */
+ void ActivateViewShell (ViewShell* pViewShell);
+
+ /** Activate the given shell which is not a view shell. For view shells
+ use the ActivateViewShell() method.
+ */
+ void ActivateShell (SfxShell* pShell);
+
+ /** Deactivate the specified shell, i.e. take it and all of its
+ object bars from the shell stack.
+ @param pShell
+ The shell to deactivate.
+ */
+ void DeactivateViewShell (const ViewShell* pShell);
+
+ /** Deactivate the specified shell. The shell is not destroyed.
+ */
+ void DeactivateShell (const SfxShell* pShell);
+
+ /** Associate the form shell with a view shell and their relative
+ position. This method does not change the shell stack, it just
+ stores the given values for the next shell stack update.
+ @param pParentShell
+ The view shell of the form shell.
+ @param pFormShell
+ The form shell.
+ @param bAbove
+ When <TRUE/> then the form shell will be placed directly above
+ pViewShell on the SFX shell stack. Otherwise the form shell is
+ placed directly below the view shell.
+ */
+ void SetFormShell (const ViewShell* pParentShell, FmFormShell* pFormShell, bool bAbove);
+
+ /** Activate the specified shell as sub shell for the given view shell.
+ The sub shell factory associated with the view shell is used to
+ create the sub shell.
+ @param rParentShell
+ The new sub shell will be placed above this view shell.
+ @param nId
+ This id is used only with the factory registered for the parent
+ view shell.
+ */
+ void ActivateSubShell (const ViewShell& rParentShell, ShellId nId);
+
+ /** Deactivate the specified sub shell.
+ */
+ void DeactivateSubShell (const ViewShell& rParentShell, ShellId nId);
+
+ /** Move the specified sub shells to the top position among the sub
+ shells of the parent view shell. The rest of the SFX shell stack
+ does not change (but the all shells above the sub shells have to be
+ taken once off the stack and are then moved back on again.)
+ */
+ void MoveSubShellToTop (const ViewShell& rParentShell, ShellId nId);
+
+ /** Send all sub shells of the specified view shell an Invalidate()
+ call. This does not modify the shell stack.
+ */
+ void InvalidateAllSubShells (
+ ViewShell* pViewShell);
+
+ /** Move the specified view shell to the top most position on the stack
+ of view shells in relation to the other view shells. After this the
+ only shells that are higher on the stack are its object bars.
+
+ Call this method after a focus change to bring a view mode view
+ shell and ist associated tool bar shells to the top of the
+ stack.
+
+ The mbKeepMainViewShellOnTop flag is not obeyed.
+
+ @param nId
+ The id of the shell to move to the top.
+ */
+ void MoveToTop (const ViewShell& rShell);
+
+ /** Return the first, i.e. top most, view shell that has been activated
+ under the given id.
+ @param nId
+ The id of the shell for which to return a pointer.
+ @return
+ When the specified shell is currently not active then NULL is
+ returned.
+ */
+ SfxShell* GetShell (ShellId nId) const;
+
+ /** Return the top-most shell on the SFX shell stack regardless of
+ whether that is a view shell or a sub shell.
+ */
+ SfxShell* GetTopShell (void) const;
+
+ /** Use this class to safely lock updates of the view shell stack.
+ */
+ class UpdateLock
+ {
+ public:
+ UpdateLock (const ::boost::shared_ptr<ViewShellManager>& rpManager)
+ : mpManager(rpManager) {mpManager->LockUpdate();}
+ ~UpdateLock (void) {mpManager->UnlockUpdate();};
+ private:
+ ::boost::shared_ptr<ViewShellManager> mpManager;
+ };
+ friend class UpdateLock;
+
+private:
+ class Implementation;
+ ::std::auto_ptr<ViewShellManager::Implementation> mpImpl;
+ bool mbValid;
+
+ void LockUpdate (void);
+ void UnlockUpdate (void);
+};
+
+
+
+} // end of namespace sd
+
+#endif
+
diff --git a/sd/source/ui/inc/ViewTabBar.hxx b/sd/source/ui/inc/ViewTabBar.hxx
new file mode 100644
index 000000000000..9c6077936f2c
--- /dev/null
+++ b/sd/source/ui/inc/ViewTabBar.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 SD_VIEW_TAB_BAR_HXX
+#define SD_VIEW_TAB_BAR_HXX
+
+#include <com/sun/star/frame/XController.hpp>
+#include <com/sun/star/drawing/framework/XPane.hpp>
+#include <com/sun/star/drawing/framework/TabBarButton.hpp>
+#include <com/sun/star/drawing/framework/XTabBar.hpp>
+#include <com/sun/star/drawing/framework/XToolBar.hpp>
+#include <com/sun/star/drawing/framework/XConfigurationController.hpp>
+#include <com/sun/star/drawing/framework/XConfigurationChangeListener.hpp>
+#include <com/sun/star/lang/XUnoTunnel.hpp>
+#ifndef _VCL_TABCTRL_HXX_
+#include <vcl/tabctrl.hxx>
+#endif
+#include <cppuhelper/compbase4.hxx>
+#include "MutexOwner.hxx"
+
+#include <vector>
+#include <boost/scoped_ptr.hpp>
+#include <boost/shared_ptr.hpp>
+
+namespace sd { namespace tools {
+ class EventMultiplexerEvent;
+} }
+
+namespace sd {
+ class ViewShellBase;
+ class PaneManagerEvent;
+}
+
+namespace {
+ typedef ::cppu::WeakComponentImplHelper4 <
+ ::com::sun::star::drawing::framework::XToolBar,
+ ::com::sun::star::drawing::framework::XTabBar,
+ ::com::sun::star::drawing::framework::XConfigurationChangeListener,
+ ::com::sun::star::lang::XUnoTunnel
+ > ViewTabBarInterfaceBase;
+}
+
+
+
+
+namespace sd {
+
+/** Tab control for switching between views in the center pane.
+*/
+class ViewTabBar
+ : private sd::MutexOwner,
+ public ViewTabBarInterfaceBase
+{
+public:
+ ViewTabBar (
+ const ::com::sun::star::uno::Reference<
+ com::sun::star::drawing::framework::XResourceId>& rxViewTabBarId,
+ const ::com::sun::star::uno::Reference<
+ ::com::sun::star::frame::XController>& rxController);
+ virtual ~ViewTabBar (void);
+
+ virtual void SAL_CALL disposing (void);
+
+ ::boost::shared_ptr< ::TabControl> GetTabControl (void) const;
+
+ bool ActivatePage (void);
+
+ //----- drawing::framework::XConfigurationChangeListener ------------------
+
+ virtual void SAL_CALL
+ notifyConfigurationChange (
+ const ::com::sun::star::drawing::framework::ConfigurationChangeEvent& rEvent)
+ throw (::com::sun::star::uno::RuntimeException);
+
+
+ //----- XEventListener ----------------------------------------------------
+
+ virtual void SAL_CALL disposing(
+ const com::sun::star::lang::EventObject& rEvent)
+ throw (com::sun::star::uno::RuntimeException);
+
+
+ //----- XTabBar -----------------------------------------------------------
+
+ virtual void
+ SAL_CALL addTabBarButtonAfter (
+ const ::com::sun::star::drawing::framework::TabBarButton& rButton,
+ const ::com::sun::star::drawing::framework::TabBarButton& rAnchor)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ virtual void
+ SAL_CALL appendTabBarButton (
+ const ::com::sun::star::drawing::framework::TabBarButton& rButton)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ virtual void
+ SAL_CALL removeTabBarButton (
+ const ::com::sun::star::drawing::framework::TabBarButton& rButton)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ virtual sal_Bool
+ SAL_CALL hasTabBarButton (
+ const ::com::sun::star::drawing::framework::TabBarButton& rButton)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ virtual ::com::sun::star::uno::Sequence<com::sun::star::drawing::framework::TabBarButton>
+ SAL_CALL getTabBarButtons (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+
+ //----- XResource ---------------------------------------------------------
+
+ virtual ::com::sun::star::uno::Reference<
+ ::com::sun::star::drawing::framework::XResourceId> SAL_CALL getResourceId (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ virtual sal_Bool SAL_CALL isAnchorOnly (void)
+ throw (com::sun::star::uno::RuntimeException);
+
+
+ //----- XUnoTunnel --------------------------------------------------------
+
+ virtual sal_Int64 SAL_CALL getSomething (const com::sun::star::uno::Sequence<sal_Int8>& rId)
+ throw (com::sun::star::uno::RuntimeException);
+
+ // ------------------------------------------------------------------------
+
+ /** The returned value is calculated as the difference between the
+ total height of the control and the heigh of its first tab page.
+ This can be considered a hack.
+ This procedure works only when the control is visible. Calling this
+ method when the control is not visible results in returning a
+ default value.
+ To be on the safe side wait for this control to become visible and
+ the call this method again.
+ */
+ int GetHeight (void);
+
+ void AddTabBarButton (
+ const ::com::sun::star::drawing::framework::TabBarButton& rButton,
+ const ::com::sun::star::drawing::framework::TabBarButton& rAnchor);
+ void AddTabBarButton (
+ const ::com::sun::star::drawing::framework::TabBarButton& rButton);
+ void RemoveTabBarButton (
+ const ::com::sun::star::drawing::framework::TabBarButton& rButton);
+ bool HasTabBarButton (
+ const ::com::sun::star::drawing::framework::TabBarButton& rButton);
+ ::com::sun::star::uno::Sequence<com::sun::star::drawing::framework::TabBarButton>
+ GetTabBarButtons (void);
+
+private:
+ ::boost::shared_ptr< ::TabControl> mpTabControl;
+ ::com::sun::star::uno::Reference<
+ ::com::sun::star::frame::XController> mxController;
+ ::com::sun::star::uno::Reference<
+ ::com::sun::star::drawing::framework::XConfigurationController> mxConfigurationController;
+ typedef ::std::vector<com::sun::star::drawing::framework::TabBarButton> TabBarButtonList;
+ TabBarButtonList maTabBarButtons;
+ ::boost::scoped_ptr<TabPage> mpTabPage;
+ ::com::sun::star::uno::Reference<
+ ::com::sun::star::drawing::framework::XResourceId> mxViewTabBarId;
+ ViewShellBase* mpViewShellBase;
+
+ void UpdateActiveButton (void);
+ void AddTabBarButton (
+ const ::com::sun::star::drawing::framework::TabBarButton& rButton,
+ sal_Int32 nPosition);
+ void UpdateTabBarButtons (void);
+
+ /** This method is called from the constructor to get the window for an
+ anchor ResourceId and pass it to our base class. It has to be
+ static because it must not access any of the, not yet initialized
+ members.
+ */
+ static ::Window* GetAnchorWindow(
+ const ::com::sun::star::uno::Reference<
+ ::com::sun::star::drawing::framework::XResourceId>& rxViewTabBarId,
+ const ::com::sun::star::uno::Reference<
+ ::com::sun::star::frame::XController>& rxController);
+ const ::com::sun::star::uno::Sequence<sal_Int8>& getUnoTunnelId (void);
+};
+
+} // end of namespace sd
+
+#endif
+
diff --git a/sd/source/ui/inc/ViewTabControl.hxx b/sd/source/ui/inc/ViewTabControl.hxx
new file mode 100755
index 000000000000..91ae38effa35
--- /dev/null
+++ b/sd/source/ui/inc/ViewTabControl.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 SD_TAB_CONTROL_HXX
+#define SD_TAB_CONTROL_HXX
+
+#include <svtools/tabbar.hxx>
+#include <svtools/transfer.hxx>
+
+namespace sd {
+
+/*************************************************************************
+|*
+|* TabControl-Klasse fuer Seitenumschaltung
+|*
+\************************************************************************/
+
+class DrawViewShell;
+
+class TabControl
+ : public TabBar,
+ public DragSourceHelper,
+ public DropTargetHelper
+{
+public:
+ TabControl (DrawViewShell* pDrViewSh, ::Window* pParent);
+ virtual ~TabControl (void);
+
+ /** Inform all listeners of this control that the current page has been
+ activated. Call this method after switching the current page and is
+ not done elsewhere (like when using page up/down keys).
+ */
+ void SendActivatePageEvent (void);
+
+ /** Inform all listeners of this control that the current page has been
+ deactivated. Call this method before switching the current page and
+ is not done elsewhere (like when using page up/down keys).
+ */
+ void SendDeactivatePageEvent (void);
+
+protected:
+ DrawViewShell* pDrViewSh;
+ sal_Bool bInternalMove;
+
+ // TabBar
+ virtual void Select();
+ virtual void DoubleClick();
+ virtual void MouseButtonDown(const MouseEvent& rMEvt);
+
+ virtual void Command(const CommandEvent& rCEvt);
+
+ virtual long StartRenaming();
+ virtual long AllowRenaming();
+ virtual void EndRenaming();
+
+ virtual void ActivatePage();
+ virtual long DeactivatePage();
+
+ // DragSourceHelper
+ virtual void StartDrag( sal_Int8 nAction, const Point& rPosPixel );
+
+ // DropTargetHelper
+ virtual sal_Int8 AcceptDrop( const AcceptDropEvent& rEvt );
+ virtual sal_Int8 ExecuteDrop( const ExecuteDropEvent& rEvt );
+
+ DECL_LINK(DeactivatePageHdl, void*);
+
+private:
+ // nested class to implement the TransferableHelper
+ class TabControlTransferable : public TransferableHelper
+ {
+ public:
+ TabControlTransferable( TabControl& rParent ) :
+ mrParent( rParent ) {}
+ private:
+
+ TabControl& mrParent;
+
+ virtual ~TabControlTransferable();
+
+ virtual void AddSupportedFormats();
+ virtual sal_Bool GetData( const ::com::sun::star::datatransfer::DataFlavor& rFlavor );
+ virtual void DragFinished( sal_Int8 nDropAction );
+
+ };
+
+ friend class TabControl::TabControlTransferable;
+
+ void DragFinished( sal_Int8 nDropAction );
+
+};
+
+} // end of namespace sd
+
+#endif
+
diff --git a/sd/source/ui/inc/Window.hxx b/sd/source/ui/inc/Window.hxx
new file mode 100755
index 000000000000..471f1f9dc6d5
--- /dev/null
+++ b/sd/source/ui/inc/Window.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 SD_WINDOW_HXX
+#define SD_WINDOW_HXX
+
+
+#include <tools/gen.hxx>
+#include <vcl/window.hxx>
+#include <svtools/transfer.hxx>
+
+namespace sd {
+
+class ViewShell;
+
+// Since we removed all old SV-stuff, there is no brush any more
+// and so there is no BRUSH_SIZE defined in VCL.
+// So I define it here
+// #i2237#
+// removed old stuff here which still forced zoom to be
+// %BRUSH_SIZE which is outdated now
+//#define BRUSH_SIZE 8
+
+/** An SdWindow contains the actual working area of ViewShell.
+
+ <p>The zoom factor used by this class controls how much the page and the
+ shapes on it are scaled down (<100%) or up (>100%) when displayed on the
+ output device represented by the <type>OutputDevice</type>base class. A
+ zoom factor of 100% would result (with a correctly set DPI value for an
+ output device) in a one to one mapping of the internal coordinates that
+ are stored in 100th of mm. The zoom factor is stored in the map mode
+ member of the <type>OutputDevice</type> base class. It is calculated to
+ be an integer percent value.
+*/
+class Window
+ : public ::Window,
+ public ::DropTargetHelper
+{
+public:
+ Window (::Window* pParent);
+ virtual ~Window (void);
+
+ void SetViewShell (ViewShell* pViewSh);
+
+ /** Set the zoom factor to the specified value and center the display
+ area arround the zoom center.
+ @param nZoom
+ The zoom factor is given as integral percent value.
+ */
+ void SetZoomIntegral(long nZoom);
+
+ /** This internally used method performs the actual adaption of the
+ window's map mode to the specified zoom factor.
+ @param nZoom
+ The zoom factor is given as integral percent value.
+ @return
+ When the given zoom factor lies outside the valid range enclosed
+ by the minimal zoom factor previously calculated by
+ <member>CalcMinZoom</member> and a constant upper value it is
+ forced into that interval. Therefore the returned value is a
+ valid zoom factor.
+ */
+ long SetZoomFactor(long nZoom);
+
+ /** This method is called when the whole page shall be displayed in the
+ window. Position and zoom factor are set so that the given
+ rectangle is displayed as large as possible in the window while at
+ the same time maintaining the rectangle's aspect ratio and adding a
+ small space at all its four sides (about 3% of width and height).
+ The map mode is adapted accordingly.
+ @param rZoomRect
+ The rectangle is expected to be given relative to the upper left
+ corner of the window in logical coordinates (100th of mm).
+ @return
+ The new zoom factor is returned as integral percent value.
+ */
+ long SetZoomRect (const Rectangle& rZoomRect);
+
+ long GetZoomForRect( const Rectangle& rZoomRect );
+
+
+ void SetMinZoomAutoCalc (bool bAuto);
+ void SetCalcMinZoomByMinSide (bool bMin);
+
+ /** Calculate the minimal zoom factor as the value at which the
+ application area would completely fill the window. All values set
+ manually or programatically are set to this value if they are
+ smaller. If the currently used zoom factor is smaller than the minimal zoom
+ factor than set the minimal zoom factor as the new current zoom
+ factor.
+
+ <p>This calculation is performed only when the
+ <member>bMinZoomAutoCalc</member> is set (to <TRUE/>).</p>
+ */
+ void CalcMinZoom (void);
+ void SetMinZoom (long int nMin);
+ long GetMinZoom (void) const;
+ void SetMaxZoom (long int nMax);
+ long GetMaxZoom (void) const;
+
+ long GetZoom (void) const;
+
+ Point GetWinViewPos (void) const;
+ Point GetViewOrigin (void) const;
+ Size GetViewSize (void) const;
+ void SetWinViewPos(const Point& rPnt);
+ void SetViewOrigin(const Point& rPnt);
+ void SetViewSize(const Size& rSize);
+ void SetCenterAllowed (bool bIsAllowed);
+
+ /** Calculate origin of the map mode accoring to the size of the view
+ and window (its size in model coordinates; that takes the zoom
+ factor into account), and the bCenterAllowed flag. When it is not
+ set then nothing is changed. When in any direction the window is
+ larger than the view or the value of aWinPos in this direction is -1
+ then the window is centered in this direction.
+ */
+ void UpdateMapOrigin (sal_Bool bInvalidate = sal_True);
+
+ void UpdateMapMode (void);
+
+ double GetVisibleX(); // Interface fuer ScrollBars
+ double GetVisibleY();
+ void SetVisibleXY(double fX, double fY);
+ double GetVisibleWidth();
+ double GetVisibleHeight();
+ double GetScrlLineWidth();
+ double GetScrlLineHeight();
+ double GetScrlPageWidth();
+ double GetScrlPageHeight();
+ virtual void GrabFocus();
+ virtual void DataChanged( const DataChangedEvent& rDCEvt );
+
+ // DropTargetHelper
+ virtual sal_Int8 AcceptDrop( const AcceptDropEvent& rEvt );
+ virtual sal_Int8 ExecuteDrop( const ExecuteDropEvent& rEvt );
+
+ /** The DropScroll() method is used by AcceptDrop() to scroll the
+ content of the window while dragging and dropping. With this method
+ you can control whether DropScroll() shall be used.
+ */
+ void SetUseDropScroll (bool bUseDropScroll);
+ void DropScroll (const Point& rMousePos);
+protected:
+ ::sd::Window* mpShareWin;
+ Point maWinPos;
+ Point maViewOrigin;
+ Size maViewSize;
+ sal_uInt16 mnMinZoom;
+ sal_uInt16 mnMaxZoom;
+ /** This flag tells whether to re-calculate the minimal zoom factor
+ depening on the current zoom factor. According to task #105436# its
+ default value is now sal_False.
+ */
+ bool mbMinZoomAutoCalc;
+ bool mbCalcMinZoomByMinSide;
+ bool mbCenterAllowed;
+ long mnTicks;
+ bool mbDraggedFrom;
+
+ ViewShell* mpViewShell;
+ bool mbUseDropScroll;
+
+ virtual void Resize();
+ virtual void PrePaint();
+ virtual void Paint(const Rectangle& rRect);
+ virtual void KeyInput(const KeyEvent& rKEvt);
+ virtual void MouseMove(const MouseEvent& rMEvt);
+ virtual void MouseButtonUp(const MouseEvent& rMEvt);
+ virtual void MouseButtonDown(const MouseEvent& rMEvt);
+ virtual void Command(const CommandEvent& rCEvt);
+ virtual void RequestHelp( const HelpEvent& rEvt );
+ virtual void LoseFocus();
+ virtual long Notify( NotifyEvent& rNEvt );
+
+ /** Create an accessibility object that makes this window accessible.
+
+ @return
+ The returned reference is empty if an accessible object could
+ not be created.
+ */
+ virtual ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible>
+ CreateAccessible (void);
+
+ XubString GetSurroundingText() const;
+ Selection GetSurroundingTextSelection() const;
+};
+
+} // end of namespace sd
+
+#endif
diff --git a/sd/source/ui/inc/WindowUpdater.hxx b/sd/source/ui/inc/WindowUpdater.hxx
new file mode 100644
index 000000000000..9f817de6a6c4
--- /dev/null
+++ b/sd/source/ui/inc/WindowUpdater.hxx
@@ -0,0 +1,152 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef SD_OUTPUT_DEVICE_UPDATER_HXX
+#define SD_OUTPUT_DEVICE_UPDATER_HXX
+
+#include <svl/lstner.hxx>
+#include <svl/ctloptions.hxx>
+#include "sddllapi.h"
+
+#ifndef INCLUDED_VECTOR
+#include <vector>
+#define INCLUDED_VECTOR
+#endif
+
+class Window;
+class OutputDevice;
+class SdDrawDocument;
+
+
+namespace sd {
+
+class ViewShell;
+
+/** The purpose of the <type>WindowUpdater</type> is to update output
+ devices to take care of modified global values. These values are
+ monitored for changes. At the moment this is
+ the digit language that defines the glyphs to use to render digits.
+ Other values may be added in the future.
+
+ <p>The methods of this class have not been included into the
+ <type>ViewShell</type> class in order to not clutter its interface any
+ further. This class accesses some of <type>ViewShell</type> data
+ members directly and thus is declared as its friend.</p>
+
+ <p>Windows that are to be kept up-to-date have to be registered via the
+ <member>RegisterWindow()</member> method. When a document is given then
+ this document is reformatted when the monitored option changes.</p>
+*/
+class SD_DLLPUBLIC WindowUpdater
+ : public utl::ConfigurationListener
+{
+public:
+ explicit WindowUpdater (void);
+ virtual ~WindowUpdater (void) throw();
+
+ /** Add the given device to the list of devices which will be updated
+ when one of the monitored values changes.
+ @param pWindow
+ This device is added to the device list if it is not <null/> and
+ when it is not already a member of that list.
+ */
+ void RegisterWindow (::Window* pWindow);
+
+ /** Remove the given device from the list of devices which will be updated
+ when one of the monitored values changes.
+ @param pWindow
+ This device is removed from the device list when it is a member
+ of that list.
+ */
+ void UnregisterWindow (::Window* pWindow);
+
+ /** Set the view shell whose output devices shall be kept up to date.
+ It is used to clear the master page cache so that a redraw affects
+ the master page content as well.
+ */
+ void SetViewShell (ViewShell& rViewShell);
+
+ /** Set the document so that it is reformatted when one of the monitored
+ values changes.
+ @param pDocument
+ When <null/> is given document reformatting will not take
+ place in the future.
+ */
+ void SetDocument (SdDrawDocument* pDocument);
+
+ /** Update the given output device and update all text objects of the
+ view shell if not told otherwise.
+ @param pWindow
+ The device to update. When the given pointer is NULL then
+ nothing is done.
+ @param pDocument
+ When given a pointer to a document then tell it to reformat all
+ text objects. This refromatting is necessary for the new values
+ to take effect.
+ */
+ void Update (OutputDevice* pDevice, SdDrawDocument* pDocument=0) const;
+
+ /** Callback that waits for notifications of a
+ <type>SvtCTLOptions</type> object.
+ */
+ virtual void ConfigurationChanged ( utl::ConfigurationBroadcaster*, sal_uInt32 nHint);
+
+private:
+ /// Options to monitor for changes.
+ SvtCTLOptions maCTLOptions;
+
+ /// Keep the output devices of this view shell up to date.
+ ViewShell* mpViewShell;
+
+ /// The document rendered in the output devices.
+ SdDrawDocument* mpDocument;
+
+ /// Copy constructor not supported.
+ WindowUpdater (const WindowUpdater& rUpdater);
+
+ /// Assignment operator not supported.
+ WindowUpdater operator= (const WindowUpdater& rUpdater);
+
+ /** Type and data member for a list of devices that have to be kept
+ up-to-date.
+ */
+ typedef ::std::vector< ::Window*> tWindowList;
+ tWindowList maWindowList;
+
+ /** The central method of this class. Update the given output device.
+ It is the task of the caller to initiate a refrormatting of the
+ document that is rendered on this device to reflect the changes.
+ @param pWindow
+ The output device to update. When it is <null/> then the call
+ is ignored.
+ */
+ SD_DLLPRIVATE void UpdateWindow (OutputDevice* pDevice) const;
+};
+
+} // end of namespace sd
+
+#endif
diff --git a/sd/source/ui/inc/animobjs.hrc b/sd/source/ui/inc/animobjs.hrc
new file mode 100755
index 000000000000..1a6d8291ee59
--- /dev/null
+++ b/sd/source/ui/inc/animobjs.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.
+ *
+ ************************************************************************/
+#define FLT_WIN_ANIMATION 619
+#define CTL_DISPLAY 1
+#define BTN_FIRST 1
+#define BTN_REVERSE 2
+#define BTN_STOP 3
+#define BTN_PLAY 4
+#define BTN_LAST 5
+#define BTN_GET_ONE_OBJECT 6
+#define BTN_GET_ALL_OBJECTS 7
+#define BTN_REMOVE_BITMAP 8
+#define BTN_REMOVE_ALL 9
+#define BTN_CREATE_GROUP 10
+#define NUM_FLD_BITMAP 1
+#define TIME_FIELD 1
+#define FT_COUNT 1
+#define FI_COUNT 2
+#define GRP_BITMAP 1
+#define RBT_GROUP 1
+#define RBT_BITMAP 2
+#define FT_ADJUSTMENT 4
+#define LB_ADJUSTMENT 2
+#define LB_LOOP_COUNT 3
+#define GRP_ANIMATION_GROUP 2
+//IAccessibility2 Implementation 2009-----
+#define STR_DISPLAY 1
+//-----IAccessibility2 Implementation 2009
diff --git a/sd/source/ui/inc/animobjs.hxx b/sd/source/ui/inc/animobjs.hxx
new file mode 100755
index 000000000000..c03a785775e6
--- /dev/null
+++ b/sd/source/ui/inc/animobjs.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 SD_ANIMOBJS_HXX
+#define SD_ANIMOBJS_HXX
+
+#include <sfx2/dockwin.hxx>
+#include <vcl/fixed.hxx>
+#include <svtools/stdctrl.hxx>
+#include <vcl/group.hxx>
+#include <sfx2/ctrlitem.hxx>
+
+#ifndef _SV_BUTTON_HXX //autogen
+#include <vcl/button.hxx>
+#endif
+#include <vcl/field.hxx>
+#include <svx/dlgctrl.hxx>
+#include <sfx2/progress.hxx>
+
+
+#include <vcl/lstbox.hxx>
+
+#ifndef _SD_SDRESID_HXX
+#include "sdresid.hxx"
+#endif
+#include "misc/scopelock.hxx"
+
+class SdDrawDocument;
+class BitmapEx;
+
+namespace sd {
+
+class AnimationControllerItem;
+class View;
+
+//------------------------------------------------------------------------
+
+enum BitmapAdjustment
+{
+ BA_LEFT_UP,
+ BA_LEFT,
+ BA_LEFT_DOWN,
+ BA_UP,
+ BA_CENTER,
+ BA_DOWN,
+ BA_RIGHT_UP,
+ BA_RIGHT,
+ BA_RIGHT_DOWN
+};
+
+//------------------------------------------------------------------------
+
+class SdDisplay : public Control
+{
+private:
+ BitmapEx aBitmapEx;
+ Fraction aScale;
+
+public:
+ SdDisplay( ::Window* pWin, SdResId Id );
+ ~SdDisplay();
+
+ virtual void Paint( const Rectangle& rRect );
+
+ void SetBitmapEx( BitmapEx* pBmpEx );
+ void SetScale( const Fraction& rFrac );
+
+ virtual void DataChanged( const DataChangedEvent& rDCEvt );
+};
+
+//------------------------------------------------------------------------
+
+class AnimationWindow : public SfxDockingWindow
+{
+ friend class AnimationChildWindow;
+ friend class AnimationControllerItem;
+
+public:
+ AnimationWindow( SfxBindings* pBindings, SfxChildWindow *pCW,
+ ::Window* pParent, const SdResId& rSdResId );
+ virtual ~AnimationWindow();
+
+ void AddObj( ::sd::View& rView );
+ void CreateAnimObj( ::sd::View& rView );
+
+ virtual void DataChanged( const DataChangedEvent& rDCEvt );
+
+protected:
+ virtual sal_Bool Close();
+ virtual void Resize();
+ virtual void FillInfo( SfxChildWinInfo& ) const;
+
+private:
+ SdDisplay aCtlDisplay;
+ ImageButton aBtnFirst;
+ ImageButton aBtnReverse;
+ ImageButton aBtnStop;
+ ImageButton aBtnPlay;
+ ImageButton aBtnLast;
+ NumericField aNumFldBitmap;
+ TimeField aTimeField;
+ ListBox aLbLoopCount;
+ FixedLine aGrpBitmap;
+ ImageButton aBtnGetOneObject;
+ ImageButton aBtnGetAllObjects;
+ ImageButton aBtnRemoveBitmap;
+ ImageButton aBtnRemoveAll;
+ FixedText aFtCount;
+ FixedInfo aFiCount;
+ FixedLine aGrpAnimation;
+
+ RadioButton aRbtGroup;
+ RadioButton aRbtBitmap;
+ FixedText aFtAdjustment;
+ ListBox aLbAdjustment;
+ PushButton aBtnCreateGroup;
+
+ ::Window* pWin;
+ List aBmpExList;
+ List aTimeList;
+ SdDrawDocument* pMyDoc;
+ BitmapEx* pBitmapEx;
+
+ Size aSize;
+ Size aFltWinSize;
+ Size aDisplaySize;
+ Size aBmpSize;
+ sal_Bool bMovie;
+ sal_Bool bAllObjects;
+
+ SfxBindings* pBindings;
+ AnimationControllerItem* pControllerItem;
+
+ ScopeLock maPlayLock;
+ //------------------------------------
+
+ DECL_LINK( ClickFirstHdl, void * );
+ DECL_LINK( ClickStopHdl, void * );
+ DECL_LINK( ClickPlayHdl, void * );
+ DECL_LINK( ClickLastHdl, void * );
+ DECL_LINK( ClickGetObjectHdl, void * );
+ DECL_LINK( ClickRemoveBitmapHdl, void * );
+ DECL_LINK( ClickRbtHdl, void * );
+ DECL_LINK( ClickCreateGroupHdl, void * );
+ DECL_LINK( ModifyBitmapHdl, void * );
+ DECL_LINK( ModifyTimeHdl, void * );
+
+ void UpdateControl( sal_uLong nPos, sal_Bool bDisableCtrls = sal_False );
+ void ResetAttrs();
+ void WaitInEffect( sal_uLong nMilliSeconds, sal_uLong nTime,
+ SfxProgress* pStbMgr ) const;
+ Fraction GetScale();
+};
+
+/*************************************************************************
+|*
+|* ControllerItem fuer Animator
+|*
+\************************************************************************/
+
+class AnimationControllerItem : public SfxControllerItem
+{
+
+public:
+ AnimationControllerItem( sal_uInt16, AnimationWindow*, SfxBindings* );
+
+protected:
+ virtual void StateChanged( sal_uInt16 nSId, SfxItemState eState,
+ const SfxPoolItem* pState );
+private:
+ AnimationWindow* pAnimationWin;
+};
+
+} // end of namespace sd
+
+#endif
+
diff --git a/sd/source/ui/inc/annotationmanager.hxx b/sd/source/ui/inc/annotationmanager.hxx
new file mode 100755
index 000000000000..6f0fdaa11180
--- /dev/null
+++ b/sd/source/ui/inc/annotationmanager.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 _SD_ANNOTATIONMANAGER_HXX
+#define _SD_ANNOTATIONMANAGER_HXX
+
+#include <com/sun/star/office/XAnnotationAccess.hpp>
+#include <memory>
+
+#include <rtl/ref.hxx>
+
+namespace sd
+{
+
+class ViewShellBase;
+class AnnotationManagerImpl;
+
+// --------------------------------------------------------------------
+
+class AnnotationManager
+{
+public:
+ AnnotationManager( ViewShellBase& rViewShellBase );
+ ~AnnotationManager();
+
+ void ExecuteAnnotation (SfxRequest& rRequest);
+ void GetAnnotationState (SfxItemSet& rItemSet);
+
+private:
+ ::rtl::Reference< AnnotationManagerImpl > mxImpl;
+};
+
+}
+
+#endif // _SD_ANNOTATIONMANAGER_HXX
diff --git a/sd/source/ui/inc/assclass.hxx b/sd/source/ui/inc/assclass.hxx
new file mode 100644
index 000000000000..fca386485faa
--- /dev/null
+++ b/sd/source/ui/inc/assclass.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 INC_ASSCLASS
+#define INC_ASSCLASS
+
+#include <tools/solar.h>
+#include "sddllapi.h"
+
+#define MAX_PAGES 10
+
+class List;
+class Control;
+
+class SD_DLLPUBLIC Assistent
+{
+ List* mpPages[MAX_PAGES];
+ //enthaelt fuer jede Seite die Controls die
+ //korrekt geschaltet werden muessen
+
+ int mnPages;
+ //gibt die Anzahl der Seiten an
+
+ int mnCurrentPage;
+ //gibt die aktuelle Seite an
+
+ bool* mpPageStatus;
+
+public:
+
+ Assistent(int nNoOfPage);
+
+ bool IsEnabled( int nPage );
+ void EnablePage( int nPage );
+ void DisablePage( int nPage );
+
+ bool InsertControl(int nDestPage,Control* pUsedControl);
+ //fuegt einer spezifizierten Seite ein Control hinzu
+
+ bool NextPage();
+ //springt zur naechsten Seite
+
+ bool PreviousPage();
+ //springt zur vorherigen Seite
+
+ bool GotoPage(const int nPageToGo);
+ //springt zu einer angegebenen Seite
+
+ bool IsLastPage();
+ //gibt an ob die aktuelle Seite die letzte ist
+
+ bool IsFirstPage();
+ //gibt an ob die aktuelle Seite die erste ist
+
+ int GetCurrentPage();
+ //gibt die aktuelle Seite zurueck
+
+ ~Assistent();
+};
+
+
+#endif
diff --git a/sd/source/ui/inc/bmcache.hxx b/sd/source/ui/inc/bmcache.hxx
new file mode 100755
index 000000000000..7d845694fb6e
--- /dev/null
+++ b/sd/source/ui/inc/bmcache.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 _SD_BMCACHE_HXX
+#define _SD_BMCACHE_HXX
+
+#include <tools/list.hxx>
+
+
+class SdPage;
+class GraphicObject;
+
+class BitmapCache
+{
+ sal_uLong nMaxSize;
+ sal_uLong nCurSize;
+ List aEntries;
+
+public:
+ BitmapCache(sal_uLong nMaxSizeKB)
+ : nMaxSize(nMaxSizeKB), nCurSize(0) {}
+ virtual ~BitmapCache();
+
+ void Remove(const SdPage* pPage);
+};
+
+#endif // _SD_BMCACHE_HXX
+
diff --git a/sd/source/ui/inc/brkdlg.hrc b/sd/source/ui/inc/brkdlg.hrc
new file mode 100644
index 000000000000..02f2311a39ff
--- /dev/null
+++ b/sd/source/ui/inc/brkdlg.hrc
@@ -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.
+ *
+ ************************************************************************/
+#define FT_OBJ_INFO 1
+#define FT_ACT_INFO 2
+#define FT_INS_INFO 3
+#define FI_OBJ_INFO 4
+#define FI_ACT_INFO 5
+#define FI_INS_INFO 6
+#define BTN_CANCEL 7
+#define DLG_BREAK 6197
diff --git a/sd/source/ui/inc/bulmaper.hxx b/sd/source/ui/inc/bulmaper.hxx
new file mode 100644
index 000000000000..93f86fbcd0f9
--- /dev/null
+++ b/sd/source/ui/inc/bulmaper.hxx
@@ -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.
+ *
+ ************************************************************************/
+
+#ifndef INCLUDED_SD_BULMAPER_HXX
+#define INCLUDED_SD_BULMAPER_HXX
+
+#include "tools/solar.h"
+
+class SfxItemSet;
+class SvxBulletItem;
+class SvxNumberFormat;
+class SvxNumRule;
+
+class SdBulletMapper
+{
+public:
+/* #i35937#
+ static void PreMapNumBulletForDialog( SfxItemSet& rSet );
+ static void PostMapNumBulletForDialog( SfxItemSet& rSet );
+*/
+ static void MapFontsInNumRule( SvxNumRule& aNumRule, const SfxItemSet& rSet );
+
+};
+
+#endif /* INCLUDED_SD_BULMAPER_HXX */
diff --git a/sd/source/ui/inc/celltempl.hrc b/sd/source/ui/inc/celltempl.hrc
new file mode 100644
index 000000000000..ee3c596a494d
--- /dev/null
+++ b/sd/source/ui/inc/celltempl.hrc
@@ -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 <sfx2/sfx.hrc>
+#define TAB_CELL_TEMPLATE 910
+#define TAB_CONTROL 1
diff --git a/sd/source/ui/inc/celltempl.hxx b/sd/source/ui/inc/celltempl.hxx
new file mode 100755
index 000000000000..b194f23fec63
--- /dev/null
+++ b/sd/source/ui/inc/celltempl.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 SD_CELLTEMPL_HXX
+#define SD_CELLTEMPL_HXX
+
+#include <sfx2/styledlg.hxx>
+
+class XColorTable;
+class XGradientList;
+class XHatchList;
+class XBitmapList;
+class SfxStyleSheetBase;
+class SdrModel;
+
+class SdPresCellTemplateDlg : public SfxStyleDialog
+{
+private:
+ XColorTable* mpColorTab;
+ XGradientList* mpGradientList;
+ XHatchList* mpHatchingList;
+ XBitmapList* mpBitmapList;
+
+ virtual void PageCreated( sal_uInt16 nId, SfxTabPage &rPage );
+ virtual const SfxItemSet* GetRefreshedSet();
+
+public:
+ SdPresCellTemplateDlg( SdrModel* pModel, Window* pParent, SfxStyleSheetBase& rStyleBase );
+ ~SdPresCellTemplateDlg();
+
+ const SfxItemSet* GetOutputItemSet() const;
+};
+
+
+#endif // SD_CELLTEMPL_HXX
diff --git a/sd/source/ui/inc/cfgids.hxx b/sd/source/ui/inc/cfgids.hxx
new file mode 100644
index 000000000000..ef49c4928b48
--- /dev/null
+++ b/sd/source/ui/inc/cfgids.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 _SD_CFGID_HXX
+#define _SD_CFGID_HXX
+
+#include <sfx2/sfx.hrc>
+
+// Item-Ids fuer Config-Items
+#define SDCFG_IMPRESS (SFX_ITEMTYPE_SD_BEGIN + 1)
+#define SDCFG_SPELL (SFX_ITEMTYPE_SD_BEGIN + 2)
+#define SDCFG_DRAW (SFX_ITEMTYPE_SD_BEGIN + 3)
+
+// Acceleratoren, Menus, ...
+#define RID_DRAW_DEFAULTACCEL (SFX_ITEMTYPE_SD_BEGIN + 5)
+#define RID_DRAW_DEFAULTMENU (SFX_ITEMTYPE_SD_BEGIN + 6)
+#define RID_DRAW_PORTALMENU (SFX_ITEMTYPE_SD_BEGIN + 35)
+#define RID_DRAW_STATUSBAR (SFX_ITEMTYPE_SD_BEGIN + 7)
+// Acceleratoren, Menus, ... (fuers Draw (Graphic))
+#define RID_GRAPHIC_DEFAULTACCEL (SFX_ITEMTYPE_SD_BEGIN + 8)
+#define RID_GRAPHIC_DEFAULTMENU (SFX_ITEMTYPE_SD_BEGIN + 9)
+#define RID_GRAPHIC_PORTALMENU (SFX_ITEMTYPE_SD_BEGIN + 36)
+//#define RID_GRAPHIC_STATUSBAR (SFX_ITEMTYPE_SD_BEGIN + 30)
+
+// Toolbars
+#define RID_DRAW_DEFAULTTOOLBOX (SFX_ITEMTYPE_SD_BEGIN + 10)
+#define RID_DRAW_TOOLBOX (SFX_ITEMTYPE_SD_BEGIN + 11)
+#define RID_SLIDE_TOOLBOX (SFX_ITEMTYPE_SD_BEGIN + 12)
+#define RID_DRAW_OBJ_TOOLBOX (SFX_ITEMTYPE_SD_BEGIN + 13)
+#define RID_SLIDE_OBJ_TOOLBOX (SFX_ITEMTYPE_SD_BEGIN + 14)
+#define RID_BEZIER_TOOLBOX (SFX_ITEMTYPE_SD_BEGIN + 15)
+#define RID_DRAW_TEXT_TOOLBOX (SFX_ITEMTYPE_SD_BEGIN + 16)
+#define RID_OUTLINE_TOOLBOX (SFX_ITEMTYPE_SD_BEGIN + 17)
+#define RID_DRAW_TABLE_TOOLBOX (SFX_ITEMTYPE_SD_BEGIN + 18)
+#define RID_GLUEPOINTS_TOOLBOX (SFX_ITEMTYPE_SD_BEGIN + 19)
+#define RID_DRAW_OPTIONS_TOOLBOX (SFX_ITEMTYPE_SD_BEGIN + 20)
+#define RID_DRAW_COMMONTASK_TOOLBOX (SFX_ITEMTYPE_SD_BEGIN + 21)
+#define RID_FORMLAYER_TOOLBOX (SFX_ITEMTYPE_SD_BEGIN + 22)
+#define RID_DRAW_VIEWER_TOOLBOX (SFX_ITEMTYPE_SD_BEGIN + 23)
+#define RID_GRAPHIC_VIEWER_TOOLBOX (SFX_ITEMTYPE_SD_BEGIN + 24)
+
+#define RID_GRAPHIC_TOOLBOX (SFX_ITEMTYPE_SD_BEGIN + 25)
+#define RID_GRAPHIC_OPTIONS_TOOLBOX (SFX_ITEMTYPE_SD_BEGIN + 26)
+#define RID_GRAPHIC_OBJ_TOOLBOX (SFX_ITEMTYPE_SD_BEGIN + 27)
+#define RID_GRAPHIC_TEXT_TOOLBOX (SFX_ITEMTYPE_SD_BEGIN + 28)
+
+#define RID_DRAW_GRAF_TOOLBOX (SFX_ITEMTYPE_SD_BEGIN + 30)
+#define RID_DRAW_MEDIA_TOOLBOX (SFX_ITEMTYPE_SD_BEGIN + 31)
+
+
+#endif
diff --git a/sd/source/ui/inc/copydlg.hrc b/sd/source/ui/inc/copydlg.hrc
new file mode 100644
index 000000000000..f0067bd47cee
--- /dev/null
+++ b/sd/source/ui/inc/copydlg.hrc
@@ -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.
+ *
+ ************************************************************************/
+#define FT_COPIES 1
+#define NUM_FLD_COPIES 1
+#define FT_ANGLE 2
+#define MTR_FLD_ANGLE 1
+#define BTN_OK 1
+#define BTN_CANCEL 1
+#define BTN_HELP 1
+#define BTN_SET_VIEWDATA 1
+#define BTN_SET_DEFAULT 2
+#define GRP_MOVEMENT 1
+#define MTR_FLD_MOVE_X 2
+#define MTR_FLD_MOVE_Y 3
+#define FT_MOVE_X 3
+#define FT_MOVE_Y 4
+#define GRP_ENLARGEMENT 2
+#define FT_WIDTH 5
+#define FT_HEIGHT 6
+#define MTR_FLD_WIDTH 4
+#define MTR_FLD_HEIGHT 5
+#define DLG_COPY 727
+#define GRP_COLOR 3
+#define LB_START_COLOR 1
+#define FT_START_COLOR 7
+#define FT_END_COLOR 8
+#define LB_END_COLOR 2
diff --git a/sd/source/ui/inc/copydlg.hxx b/sd/source/ui/inc/copydlg.hxx
new file mode 100755
index 000000000000..b726a473b3c5
--- /dev/null
+++ b/sd/source/ui/inc/copydlg.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 SD_COPY_DLG_HXX
+#define SD_COPY_DLG_HXX
+
+#include <vcl/group.hxx>
+#ifndef _SV_BUTTON_HXX //autogen
+#include <vcl/button.hxx>
+#endif
+#include <svx/dlgctrl.hxx>
+#include <vcl/field.hxx>
+#include <vcl/fixed.hxx>
+#include <sfx2/basedlgs.hxx>
+
+class XColorTable;
+
+namespace sd {
+
+class View;
+
+/*************************************************************************
+|*
+|* Dialog zum Einstellen des Bildschirms
+|*
+\************************************************************************/
+class CopyDlg
+ : public SfxModalDialog
+{
+public:
+ CopyDlg( ::Window* pWindow, const SfxItemSet& rInAttrs,
+ XColorTable* pColTab, ::sd::View* pView );
+ ~CopyDlg();
+
+ void GetAttr( SfxItemSet& rOutAttrs );
+ DECL_LINK( Reset, void* );
+
+private:
+ FixedText maFtCopies;
+ NumericField maNumFldCopies;
+ ImageButton maBtnSetViewData;
+
+ FixedLine maGrpMovement;
+ FixedText maFtMoveX;
+ MetricField maMtrFldMoveX;
+ FixedText maFtMoveY;
+ MetricField maMtrFldMoveY;
+ FixedText maFtAngle;
+ MetricField maMtrFldAngle;
+ FixedLine maGrpEnlargement;
+
+ FixedText maFtWidth;
+ MetricField maMtrFldWidth;
+ FixedText maFtHeight;
+ MetricField maMtrFldHeight;
+
+ FixedLine maGrpColor;
+ FixedText maFtStartColor;
+ ColorLB maLbStartColor;
+ FixedText maFtEndColor;
+ ColorLB maLbEndColor;
+
+ OKButton maBtnOK;
+ CancelButton maBtnCancel;
+ HelpButton maBtnHelp;
+ PushButton maBtnSetDefault;
+
+ const SfxItemSet& mrOutAttrs;
+ XColorTable* mpColorTab;
+ Fraction maUIScale;
+ ::sd::View* mpView;
+
+ DECL_LINK( SelectColorHdl, void * );
+ DECL_LINK( SetViewData, void * );
+ DECL_LINK( SetDefault, void * );
+};
+
+} // end of namespace sd
+
+#endif
+
diff --git a/sd/source/ui/inc/custsdlg.hrc b/sd/source/ui/inc/custsdlg.hrc
new file mode 100644
index 000000000000..2ce79cdae877
--- /dev/null
+++ b/sd/source/ui/inc/custsdlg.hrc
@@ -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 <sfx2/sfx.hrc>
+
+#define DLG_CUSTOMSHOW 843
+#define DLG_DEFINE_CUSTOMSHOW 890
+#define BTN_OK 1
+#define BTN_NEW 1
+#define BTN_EDIT 2
+#define BTN_REMOVE 3
+#define BTN_COPY 4
+#define BTN_STARTSHOW 5
+#define BTN_HELP 1
+#define LB_CUSTOMSHOWS 1
+#define LB_PAGES 1
+#define LB_CUSTOM_PAGES 2
+#define FT_NAME 1
+#define EDT_NAME 1
+#define FT_PAGES 2
+#define FT_CUSTOM_PAGES 3
+#define BTN_CANCEL 2
+#define BTN_ADD 1
+#define CBX_USE_CUSTOMSHOW 1
diff --git a/sd/source/ui/inc/custsdlg.hxx b/sd/source/ui/inc/custsdlg.hxx
new file mode 100755
index 000000000000..764baccefd54
--- /dev/null
+++ b/sd/source/ui/inc/custsdlg.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 _SD_CUSTSDLG_HXX
+#define _SD_CUSTSDLG_HXX
+
+#ifndef _BUTTON_HXX //autogen
+#include <vcl/button.hxx>
+#endif
+#include <vcl/lstbox.hxx>
+#include <vcl/fixed.hxx>
+#include <vcl/edit.hxx>
+#include <svtools/svtreebx.hxx>
+#include <vcl/dialog.hxx>
+
+class SdDrawDocument;
+class SdCustomShow;
+
+//------------------------------------------------------------------------
+
+class SdCustomShowDlg : public ModalDialog
+{
+private:
+ ListBox aLbCustomShows;
+ CheckBox aCbxUseCustomShow;
+ PushButton aBtnNew;
+ PushButton aBtnEdit;
+ PushButton aBtnRemove;
+ PushButton aBtnCopy;
+ HelpButton aBtnHelp;
+ PushButton aBtnStartShow;
+ OKButton aBtnOK;
+
+ SdDrawDocument& rDoc;
+ List* pCustomShowList;
+ SdCustomShow* pCustomShow;
+ sal_Bool bModified;
+
+ void CheckState();
+
+ DECL_LINK( ClickButtonHdl, void * );
+ DECL_LINK( StartShowHdl, Button* );
+
+public:
+ SdCustomShowDlg( Window* pWindow, SdDrawDocument& rDrawDoc );
+ ~SdCustomShowDlg();
+
+ sal_Bool IsModified() const { return( bModified ); }
+ sal_Bool IsCustomShow() const;
+};
+
+
+//------------------------------------------------------------------------
+
+class SdDefineCustomShowDlg : public ModalDialog
+{
+private:
+ FixedText aFtName;
+ Edit aEdtName;
+ FixedText aFtPages;
+ MultiListBox aLbPages;
+ PushButton aBtnAdd;
+ PushButton aBtnRemove;
+ FixedText aFtCustomPages;
+ SvTreeListBox aLbCustomPages;
+ OKButton aBtnOK;
+ CancelButton aBtnCancel;
+ HelpButton aBtnHelp;
+
+ SdDrawDocument& rDoc;
+ SdCustomShow*& rpCustomShow;
+ sal_Bool bModified;
+ String aOldName;
+
+ void CheckState();
+ void CheckCustomShow();
+
+ DECL_LINK( ClickButtonHdl, void * );
+ DECL_LINK( OKHdl, Button* );
+
+public:
+
+ SdDefineCustomShowDlg( Window* pWindow,
+ SdDrawDocument& rDrawDoc, SdCustomShow*& rpCS );
+ ~SdDefineCustomShowDlg();
+
+ sal_Bool IsModified() const { return( bModified ); }
+};
+
+#endif // _SD_CUSTSDLG_HXX
+
diff --git a/sd/source/ui/inc/diactrl.hxx b/sd/source/ui/inc/diactrl.hxx
new file mode 100755
index 000000000000..182990a89690
--- /dev/null
+++ b/sd/source/ui/inc/diactrl.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 _SD_DIACTRL_HXX
+#define _SD_DIACTRL_HXX
+
+#include "dlgctrls.hxx"
+#include <svl/intitem.hxx>
+#include <sfx2/bindings.hxx>
+#include <svx/itemwin.hxx>
+#include <vcl/fixed.hxx>
+#include <vcl/field.hxx>
+#include <vcl/toolbox.hxx>
+#include <sfx2/tbxctrl.hxx>
+#include <com/sun/star/frame/XFrame.hpp>
+
+//========================================================================
+// SdPagesField:
+
+class SdPagesField : public SvxMetricField
+{
+private:
+ ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame > m_xFrame;
+protected:
+ virtual void Modify();
+
+public:
+ SdPagesField( Window* pParent,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& rFrame,
+ WinBits nBits = WB_BORDER | WB_SPIN | WB_REPEAT );
+ ~SdPagesField();
+
+ void UpdatePagesField( const SfxUInt16Item* pItem );
+};
+
+//========================================================================
+// SdTbxCtlDiaPages:
+//========================================================================
+
+class SdTbxCtlDiaPages : public SfxToolBoxControl
+{
+public:
+ virtual void StateChanged( sal_uInt16 nSID, SfxItemState eState,
+ const SfxPoolItem* pState );
+ virtual Window* CreateItemWindow( Window *pParent );
+
+ SFX_DECL_TOOLBOX_CONTROL();
+
+ SdTbxCtlDiaPages( sal_uInt16 nSlotId, sal_uInt16 nId, ToolBox& rTbx );
+ ~SdTbxCtlDiaPages();
+};
+
+#endif // _SD_DIACTRL_HXX
+
+
+
diff --git a/sd/source/ui/inc/dialogs.hrc b/sd/source/ui/inc/dialogs.hrc
new file mode 100644
index 000000000000..af233ad3b52c
--- /dev/null
+++ b/sd/source/ui/inc/dialogs.hrc
@@ -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.
+ *
+ ************************************************************************/
+
+/** module unique resource ids for dialogs */
+#define RID_SD_DLG_HEADERFOOTER (1000)
+#define RID_SD_DLG_MASTER_LAYOUT (1001)
+
+/** module unique resource ids for tabpages */
+#define RID_SD_TABPAGE_HEADERFOOTER (1000)
+#define RID_SD_TABPAGE_HEADERFOOTER_SLIDE (1001)
+#define RID_SD_TABPAGE_HEADERFOOTER_NOTESHANDOUT (1002)
+
diff --git a/sd/source/ui/inc/dlg_char.hrc b/sd/source/ui/inc/dlg_char.hrc
new file mode 100644
index 000000000000..dccf0570f1a7
--- /dev/null
+++ b/sd/source/ui/inc/dlg_char.hrc
@@ -0,0 +1,28 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General 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 TAB_CHAR 20600
+
diff --git a/sd/source/ui/inc/dlg_char.hxx b/sd/source/ui/inc/dlg_char.hxx
new file mode 100755
index 000000000000..3ac15dc6ef1d
--- /dev/null
+++ b/sd/source/ui/inc/dlg_char.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 SD_DLG_CHAR_HXX
+#define SD_DLG_CHAR_HXX
+
+#include <sfx2/tabdlg.hxx>
+
+#include "dlg_char.hrc"
+
+class SfxItemSet;
+class SfxObjectShell;
+
+
+/*************************************************************************
+|*
+|* Zeichen-Tab-Dialog
+|*
+\************************************************************************/
+class SdCharDlg : public SfxTabDialog
+{
+private:
+ const SfxItemSet& rOutAttrs;
+ const SfxObjectShell& rDocShell;
+
+ virtual void PageCreated( sal_uInt16 nId, SfxTabPage &rPage );
+
+public:
+
+ SdCharDlg( Window* pParent, const SfxItemSet* pAttr,
+ const SfxObjectShell* pDocShell );
+ ~SdCharDlg() {};
+};
+
+#endif // SD_DLG_CHAR_HXX
+
diff --git a/sd/source/ui/inc/dlgass.hrc b/sd/source/ui/inc/dlgass.hrc
new file mode 100644
index 000000000000..5e406cfbc121
--- /dev/null
+++ b/sd/source/ui/inc/dlgass.hrc
@@ -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.
+ *
+ ************************************************************************/
+#define BUT_FINISH 1
+#define BUT_CANCEL 2
+#define BUT_LAST 3
+#define BUT_NEXT 4
+#define BUT_HELP 5
+#define CT_PREVIEW 6
+#define CB_PREVIEW 7
+#define CB_STARTWITH 8
+
+#define FB_PAGE1 9
+#define FL_PAGE1_ARTGROUP 10
+#define RB_PAGE1_EMPTY 11
+#define RB_PAGE1_TEMPLATE 12
+#define LB_PAGE1_REGION 13
+#define LB_PAGE1_TEMPLATES 14
+#define RB_PAGE1_OPEN 15
+#define LB_PAGE1_OPEN 16
+#define PB_PAGE1_OPEN 17
+
+#define FB_PAGE2 30
+#define FL_PAGE2_LAYOUT 31
+#define LB_PAGE2_REGION 32
+#define LB_PAGE2_LAYOUT 33
+#define FL_PAGE2_OUTPUTTYPES 34
+#define RB_PAGE2_MEDIUM1 35
+#define RB_PAGE2_MEDIUM2 36
+#define RB_PAGE2_MEDIUM3 37
+#define RB_PAGE2_MEDIUM4 38
+#define RB_PAGE2_MEDIUM5 39
+
+#define FB_PAGE3 40
+#define FL_PAGE3_EFFECT 41
+#define FT_PAGE3_EFFECT 42
+#define LB_PAGE3_EFFECT 43
+#define FT_PAGE3_SPEED 44
+#define LB_PAGE3_SPEED 45
+#define FL_PAGE3_PRESTYPE 46
+#define RB_PAGE3_LIVE 47
+#define RB_PAGE3_KIOSK 48
+#define FT_PAGE3_TIME 49
+#define TMF_PAGE3_TIME 50
+#define FT_PAGE3_BREAK 51
+#define TMF_PAGE3_BREAK 52
+#define CB_PAGE3_LOGO 53
+
+#define FB_PAGE4 20
+#define FL_PAGE4_PERSONAL 21
+#define FT_PAGE4_ASKNAME 22
+#define EDT_PAGE4_ASKNAME 23
+#define FT_PAGE4_ASKTOPIC 24
+#define EDT_PAGE4_ASKTOPIC 25
+#define FT_PAGE4_ASKINFORMATION 26
+#define EDT_PAGE4_ASKINFORMATION 27
+
+#define FB_PAGE5 60
+#define FT_PAGE5_PAGELIST 61
+#define CT_PAGE5_PAGELIST 62
+#define CB_PAGE5_SUMMARY 63
+
+#define STR_CREATE 64
+#define STR_OPEN 65
+#define DLG_ASS 900
diff --git a/sd/source/ui/inc/dlgass.hxx b/sd/source/ui/inc/dlgass.hxx
new file mode 100755
index 000000000000..c4d70ba6d127
--- /dev/null
+++ b/sd/source/ui/inc/dlgass.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 INC_DLGASS
+#define INC_DLGASS
+
+#ifndef _GROUP_HXX
+#include <vcl/group.hxx>
+#endif
+#ifndef _EDIT_HXX
+#include <vcl/edit.hxx>
+#endif
+#ifndef _FIXED_HXX
+#include <vcl/fixed.hxx>
+#endif
+#ifndef _BUTTON_HXX
+#include <vcl/button.hxx>
+#endif
+#ifndef _DIALOG_HXX
+#include <vcl/dialog.hxx>
+#endif
+#include <svtools/svmedit.hxx>
+#include "assclass.hxx"
+#include <vcl/lstbox.hxx>
+#include <sfx2/app.hxx>
+
+#include "sdenumdef.hxx"
+
+class AssistentDlgImpl;
+
+class AssistentDlg:public ModalDialog
+{
+private:
+ AssistentDlgImpl* mpImpl;
+
+public:
+ AssistentDlg(Window* pParent, sal_Bool bAutoPilot);
+ ~AssistentDlg();
+
+ DECL_LINK( FinishHdl, OKButton * );
+
+ SfxObjectShellLock GetDocument();
+ OutputType GetOutputMedium() const;
+ sal_Bool IsSummary() const;
+ StartType GetStartType() const;
+ String GetDocPath() const;
+ sal_Bool GetStartWithFlag() const;
+
+ sal_Bool IsDocEmpty() const;
+ String GetPassword();
+};
+
+#endif
diff --git a/sd/source/ui/inc/dlgctrls.hxx b/sd/source/ui/inc/dlgctrls.hxx
new file mode 100755
index 000000000000..72b5921d8e86
--- /dev/null
+++ b/sd/source/ui/inc/dlgctrls.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 SD_DLGCTRLS_HXX
+#define SD_DLGCTRLS_HXX
+
+#include "TransitionPreset.hxx"
+#include <vcl/lstbox.hxx>
+
+#ifndef _SD_SDRESID_HXX
+#include "sdresid.hxx"
+#endif
+#include "fadedef.h"
+#include "sddllapi.h"
+
+/*************************************************************************
+|*
+|* FadeEffectLB
+|*
+\************************************************************************/
+
+struct FadeEffectLBImpl;
+
+class SD_DLLPUBLIC FadeEffectLB : public ListBox
+{
+public:
+ FadeEffectLB( Window* pParent, SdResId Id );
+ ~FadeEffectLB();
+ virtual void Fill();
+
+/* void selectEffectFromPage( SdPage* pPage ); */
+ void applySelected( SdPage* pSlide ) const;
+
+ FadeEffectLBImpl* mpImpl;
+};
+
+#endif // SD_DLGCTRLS_HXX
diff --git a/sd/source/ui/inc/dlgfield.hrc b/sd/source/ui/inc/dlgfield.hrc
new file mode 100644
index 000000000000..61585c8fc17f
--- /dev/null
+++ b/sd/source/ui/inc/dlgfield.hrc
@@ -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 GRP_TYPE 1
+#define RBT_FIX 1
+#define RBT_VAR 2
+#define LB_FORMAT 1
+#define FT_FORMAT 1
+#define BTN_OK 1
+#define BTN_CANCEL 1
+#define BTN_HELP 1
+#define FT_LANGUAGE 2
+#define LB_LANGUAGE 3
+#define DLG_FIELD_MODIFY 448
diff --git a/sd/source/ui/inc/dlgfield.hxx b/sd/source/ui/inc/dlgfield.hxx
new file mode 100755
index 000000000000..dd08fa5c2d56
--- /dev/null
+++ b/sd/source/ui/inc/dlgfield.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 _SD_DLGFIELD_HXX
+#define _SD_DLGFIELD_HXX
+
+
+#ifndef _LSTBOX_HXX //autogen
+#include <vcl/lstbox.hxx>
+#endif
+#ifndef _GROUP_HXX //autogen
+#include <vcl/group.hxx>
+#endif
+#ifndef _FIXED_HXX //autogen
+#include <vcl/fixed.hxx>
+#endif
+#ifndef _BUTTON_HXX //autogen
+#include <vcl/button.hxx>
+#endif
+#ifndef _DIALOG_HXX //autogen
+#include <vcl/dialog.hxx>
+#endif
+#include <svx/langbox.hxx>
+class SvxFieldData;
+
+/*************************************************************************
+|*
+|* Dialog zum Bearbeiten von Feldbefehlen
+|*
+\************************************************************************/
+
+class SdModifyFieldDlg : public ModalDialog
+{
+private:
+ FixedLine aGrpType;
+ RadioButton aRbtFix;
+ RadioButton aRbtVar;
+ FixedText maFtLanguage;
+ SvxLanguageBox maLbLanguage;
+ FixedText aFtFormat;
+ ListBox aLbFormat;
+ OKButton aBtnOK;
+ CancelButton aBtnCancel;
+ HelpButton aBtnHelp;
+ SfxItemSet maInputSet;
+
+ const SvxFieldData* pField;
+
+ void FillFormatList();
+ void FillControls();
+
+ DECL_LINK( LanguageChangeHdl, void * );
+
+public:
+ SdModifyFieldDlg( Window* pWindow, const SvxFieldData* pInField, const SfxItemSet& rSet );
+ ~SdModifyFieldDlg() {}
+
+ SvxFieldData* GetField();
+ SfxItemSet GetItemSet();
+};
+
+
+
+#endif // _SD_DLGFIELD_HXX
diff --git a/sd/source/ui/inc/dlgolbul.hrc b/sd/source/ui/inc/dlgolbul.hrc
new file mode 100644
index 000000000000..0dffa9cb2f07
--- /dev/null
+++ b/sd/source/ui/inc/dlgolbul.hrc
@@ -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.
+ *
+ ************************************************************************/
+#define TAB_OUTLINEBULLET 20601
diff --git a/sd/source/ui/inc/dlgpage.hrc b/sd/source/ui/inc/dlgpage.hrc
new file mode 100644
index 000000000000..e12333c6310e
--- /dev/null
+++ b/sd/source/ui/inc/dlgpage.hrc
@@ -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.
+ *
+ ************************************************************************/
+#define TAB_PAGE 20625
diff --git a/sd/source/ui/inc/dlgpage.hxx b/sd/source/ui/inc/dlgpage.hxx
new file mode 100755
index 000000000000..3b12652b0ea2
--- /dev/null
+++ b/sd/source/ui/inc/dlgpage.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 _SD_DLGPAGE_HXX
+#define _SD_DLGPAGE_HXX
+
+#include <sfx2/tabdlg.hxx>
+#include "dlgpage.hrc"
+
+class SfxObjectShell;
+class XColorTable;
+class XGradientList;
+class XHatchList;
+class XBitmapList;
+
+typedef sal_uInt16 ChangeType;
+
+/*************************************************************************
+|*
+|* Seite einrichten-Tab-Dialog
+|*
+\************************************************************************/
+class SdPageDlg : public SfxTabDialog
+{
+private:
+ const SfxItemSet& mrOutAttrs;
+
+ const SfxObjectShell* mpDocShell;
+
+ XColorTable* mpColorTab;
+ XGradientList* mpGradientList;
+ XHatchList* mpHatchingList;
+ XBitmapList* mpBitmapList;
+public:
+
+ SdPageDlg( SfxObjectShell* pDocSh, Window* pParent, const SfxItemSet* pAttr, sal_Bool bAreaPage = sal_True );
+ ~SdPageDlg() {};
+
+ virtual void PageCreated(sal_uInt16 nId, SfxTabPage& rPage);
+};
+
+#endif // _SD_DLGPAGE_HXX
+
diff --git a/sd/source/ui/inc/dlgsnap.hrc b/sd/source/ui/inc/dlgsnap.hrc
new file mode 100644
index 000000000000..1d7f5bf7c164
--- /dev/null
+++ b/sd/source/ui/inc/dlgsnap.hrc
@@ -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.
+ *
+ ************************************************************************/
+#define DLG_SNAPLINE 312
+#define BTN_OK 1
+#define BTN_CANCEL 2
+#define BTN_HELP 3
+#define BTN_DELETE 4
+#define FL_POSITION 5
+#define FT_X 6
+#define MTR_FLD_X 7
+#define FT_Y 8
+#define MTR_FLD_Y 9
+#define FL_DIRECTION 10
+#define RB_HORIZONTAL 11
+#define RB_VERTICAL 12
+#define RB_POINT 13
+
+#define BMP_POINT_H 1
+#define BMP_VERTICAL_H 2
+#define BMP_HORIZONTAL_H 3
diff --git a/sd/source/ui/inc/dlgsnap.hxx b/sd/source/ui/inc/dlgsnap.hxx
new file mode 100755
index 000000000000..4ff9e92adcb5
--- /dev/null
+++ b/sd/source/ui/inc/dlgsnap.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 _SD_DLGSNAP_HXX
+#define _SD_DLGSNAP_HXX
+
+
+#ifndef _IMAGEBTN_HXX //autogen
+#include <vcl/button.hxx>
+#endif
+#ifndef _FIXED_HXX //autogen
+#include <vcl/fixed.hxx>
+#endif
+#ifndef _FIELD_HXX //autogen
+#include <vcl/field.hxx>
+#endif
+#ifndef _GROUP_HXX //autogen
+#include <vcl/group.hxx>
+#endif
+#ifndef _BUTTON_HXX //autogen
+#include <vcl/button.hxx>
+#endif
+#include <tools/fract.hxx>
+#ifndef _DIALOG_HXX //autogen
+#include <vcl/dialog.hxx>
+#endif
+#include "sdenumdef.hxx"
+/************************************************************************/
+
+class SfxItemSet;
+namespace sd {
+ class View;
+}
+
+/*************************************************************************
+|*
+|* Dialog zum Einstellen von Fanglinien und -punkten
+|*
+\************************************************************************/
+
+class SdSnapLineDlg : public ModalDialog
+{
+private:
+ FixedLine aFlPos;
+ FixedText aFtX;
+ MetricField aMtrFldX;
+ FixedText aFtY;
+ MetricField aMtrFldY;
+ FixedLine aFlDir;
+ ImageRadioButton aRbPoint;
+ ImageRadioButton aRbVert;
+ ImageRadioButton aRbHorz;
+ OKButton aBtnOK;
+ CancelButton aBtnCancel;
+ HelpButton aBtnHelp;
+ PushButton aBtnDelete;
+ long nXValue;
+ long nYValue;
+ FieldUnit eUIUnit;
+ Fraction aUIScale;
+
+ DECL_LINK( ClickHdl, Button * );
+
+public:
+ SdSnapLineDlg(Window* pWindow, const SfxItemSet& rInAttrs, ::sd::View* pView);
+
+ void GetAttr(SfxItemSet& rOutAttrs);
+
+ void HideRadioGroup();
+ void HideDeleteBtn() { aBtnDelete.Hide(); }
+ void SetInputFields(sal_Bool bEnableX, sal_Bool bEnableY);
+};
+
+
+
+#endif // _SD_DLGSNAP_HXX
diff --git a/sd/source/ui/inc/docprev.hxx b/sd/source/ui/inc/docprev.hxx
new file mode 100755
index 000000000000..de0b2e38fd78
--- /dev/null
+++ b/sd/source/ui/inc/docprev.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 _SD_DOCPREV_HXX_
+#define _SD_DOCPREV_HXX_
+
+#include <com/sun/star/presentation/FadeEffect.hpp>
+#include <vcl/window.hxx>
+#include <tools/gen.hxx>
+
+#include <rtl/ref.hxx>
+
+#include <svl/lstner.hxx>
+#include <svtools/colorcfg.hxx>
+#include "fadedef.h"
+#include "sddllapi.h"
+
+namespace sd {
+ class SlideShow;
+}
+
+class GDIMetaFile;
+
+class SD_DLLPUBLIC SdDocPreviewWin : public Control, public SfxListener
+{
+protected:
+ GDIMetaFile* pMetaFile;
+ sal_Bool bInEffect;
+ Link aClickHdl;
+ SfxObjectShell* mpObj;
+ sal_uInt16 mnShowPage;
+ Color maDocumentColor;
+ rtl::Reference< sd::SlideShow > mxSlideShow;
+
+ virtual void Paint( const Rectangle& rRect );
+ static void CalcSizeAndPos( GDIMetaFile* pFile, Size& rSize, Point& rPoint );
+ void ImpPaint( GDIMetaFile* pFile, OutputDevice* pVDev );
+
+ static const int FRAME;
+
+ svtools::ColorConfig maColorConfig;
+
+ virtual void Notify(SfxBroadcaster& rBC, const SfxHint& rHint);
+
+ void updateViewSettings();
+
+public:
+ SdDocPreviewWin( Window* pParent, const ResId& rResId );
+ ~SdDocPreviewWin();
+ void SetObjectShell( SfxObjectShell* pObj, sal_uInt16 nShowPage = 0 );
+ virtual void Resize();
+ void startPreview();
+
+ virtual long Notify( NotifyEvent& rNEvt );
+
+ void SetClickHdl( const Link& rLink ) { aClickHdl = rLink; }
+ const Link& GetClickHdl() const { return aClickHdl; }
+
+ virtual void DataChanged( const DataChangedEvent& rDCEvt );
+
+};
+
+#endif
+
diff --git a/sd/source/ui/inc/drawview.hxx b/sd/source/ui/inc/drawview.hxx
new file mode 100755
index 000000000000..e4b5eb00cfbb
--- /dev/null
+++ b/sd/source/ui/inc/drawview.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 SD_DRAW_VIEW_HXX
+#define SD_DRAW_VIEW_HXX
+
+#include "View.hxx"
+
+
+namespace sd {
+
+class DrawDocShell;
+class DrawViewShell;
+class FuSlideShow;
+class SlideShow;
+
+#define SDDRAWVIEW_MAGIC 0x456789BA
+
+/*************************************************************************
+|*
+|* Ableitung von ::sd::View; enthaelt auch einen Zeiger auf das Dokument
+|*
+\************************************************************************/
+
+class DrawView : public ::sd::View
+{
+public:
+ TYPEINFO();
+
+ DrawView (
+ DrawDocShell* pDocSh,
+ OutputDevice* pOutDev,
+ DrawViewShell* pShell);
+ virtual ~DrawView (void);
+
+ virtual void MarkListHasChanged();
+ void CompleteRedraw(OutputDevice* pOutDev, const Region& rReg, sdr::contact::ViewObjectContactRedirector* pRedirector = 0L);
+
+ virtual sal_Bool SetAttributes(const SfxItemSet& rSet, sal_Bool bReplaceAll = sal_False);
+
+ virtual void Notify(SfxBroadcaster& rBC, const SfxHint& rHint);
+
+ void BlockPageOrderChangedHint(sal_Bool bBlock);
+
+ sal_Bool SetStyleSheet(SfxStyleSheet* pStyleSheet, sal_Bool bDontRemoveHardAttr = sal_False);
+ virtual sal_Bool IsObjMarkable(SdrObject* pObj, SdrPageView* pPV) const;
+
+ virtual void MakeVisible(const Rectangle& rRect, ::Window& rWin);
+ virtual void HideSdrPage(); // SdrPageView* pPV);
+
+ void PresPaint(const Region& rRegion);
+
+ virtual void DeleteMarked(); // from SdrView
+protected:
+ virtual void ModelHasChanged();
+
+private:
+ friend class DrawViewRedirector;
+
+ DrawDocShell* mpDocShell;
+ DrawViewShell* mpDrawViewShell;
+ VirtualDevice* mpVDev;
+
+ sal_uInt16 mnPOCHSmph; // zum blockieren des PageOrderChangedHint
+};
+
+} // end of namespace sd
+
+#endif
diff --git a/sd/source/ui/inc/enumdlg.hrc b/sd/source/ui/inc/enumdlg.hrc
new file mode 100644
index 000000000000..5b3b4e127b06
--- /dev/null
+++ b/sd/source/ui/inc/enumdlg.hrc
@@ -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.
+ *
+ ************************************************************************/
+#define TP_ENUM_BULLET 943
+#define LB_STYLE 1
+#define GRP_STYLE 1
+#define FT_ENUM 1
+#define NUM_FLD_ENUM 1
+#define FT_PREVIEW_ENUM 2
+#define GRP_ENUM 3
+#define BTN_GET_BULLET 1
+#define CTL_BULLET_PREVIEW 1
+#define GRP_BULLET 2
+#define MTR_FLD_SIZE 1
+#define LB_BULLET_COLOR 2
+#define FT_BULLET_SIZE 3
+#define FT_BULLET_COLOR 4
+#define FT_SAMPLE 5
+#define TSB_USE_BULLET 1
diff --git a/sd/source/ui/inc/filedlg.hxx b/sd/source/ui/inc/filedlg.hxx
new file mode 100755
index 000000000000..2aaa7be9f123
--- /dev/null
+++ b/sd/source/ui/inc/filedlg.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 _FILEDLG_HXX
+#define _FILEDLG_HXX
+
+#include <tools/string.hxx>
+#include <tools/errcode.hxx>
+
+#ifndef INCLUDED_MEMORY
+#include <memory>
+#define INCLUDED_MEMORY
+#endif
+#include "sddllapi.h"
+
+class SdFileDialog_Imp;
+
+
+/******************************************************************************/
+
+/**
+ The class SdOpenSoundFileDialog wraps the FileDialogHelper, displaying the
+ FILEOPEN_PLAY dialog template and performing the 'preview' functionality
+ (playing the selected sound file). The interface is a downstripped version
+ of the aforementioned class, with similar semantics.
+ */
+class SD_DLLPUBLIC SdOpenSoundFileDialog
+{
+ const std::auto_ptr< SdFileDialog_Imp > mpImpl;
+
+ // forbidden and not implemented
+ SdOpenSoundFileDialog (const SdOpenSoundFileDialog &);
+ SdOpenSoundFileDialog & operator= (const SdOpenSoundFileDialog &);
+
+public:
+ SdOpenSoundFileDialog();
+ ~SdOpenSoundFileDialog();
+
+ ErrCode Execute();
+ String GetPath() const;
+ void SetPath( const String& rPath );
+
+ String ReqDisplayDirectory() const;
+};
+
+#endif // _FILEDLG_HXX
+
diff --git a/sd/source/ui/inc/fontwork.hrc b/sd/source/ui/inc/fontwork.hrc
new file mode 100644
index 000000000000..0f7406cd8b7e
--- /dev/null
+++ b/sd/source/ui/inc/fontwork.hrc
@@ -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.
+ *
+ ************************************************************************/
+#define GRP_STYLE 1
+#define BTN_STYLE_OFF 1
+#define BTN_STYLE_ROTATE 2
+#define BTN_STYLE_UPRIGHT 3
+#define BTN_STYLE_SLANTX 4
+#define BTN_STYLE_SLANTY 5
+#define CBX_MIRROR 1
+#define MTR_FLD_DISTANCE 1
+#define MTR_FLD_TEXTSTART 2
+#define BTN_POS_LEFT 6
+#define BTN_POS_CENTER 7
+#define BTN_POS_RIGHT 8
+#define BTN_POS_FULL 9
+#define GRP_POS 2
+#define FT_DISTANCE 1
+#define FT_TEXTSTART 2
+#define BTN_OK 1
+#define BTN_CANCEL 1
+#define BTN_HELP 1
diff --git a/sd/source/ui/inc/framework/Configuration.hxx b/sd/source/ui/inc/framework/Configuration.hxx
new file mode 100755
index 000000000000..57a6c838feab
--- /dev/null
+++ b/sd/source/ui/inc/framework/Configuration.hxx
@@ -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.
+ *
+ ************************************************************************/
+
+#ifndef SD_FRAMEWORK_CONFIGURATION_CONFIGURATION_HXX
+#define SD_FRAMEWORK_CONFIGURATION_CONFIGURATION_HXX
+
+#include "MutexOwner.hxx"
+#include <com/sun/star/drawing/framework/XConfiguration.hpp>
+#include <com/sun/star/drawing/framework/XConfigurationControllerBroadcaster.hpp>
+#include <com/sun/star/util/XCloneable.hpp>
+#include <com/sun/star/container/XNamed.hpp>
+#include <cppuhelper/compbase2.hxx>
+
+#include <boost/scoped_ptr.hpp>
+
+namespace {
+
+typedef ::cppu::WeakComponentImplHelper2 <
+ ::com::sun::star::drawing::framework::XConfiguration,
+ ::com::sun::star::container::XNamed
+ > ConfigurationInterfaceBase;
+
+} // end of anonymous namespace.
+
+
+
+
+namespace sd { namespace framework {
+
+/** A configuration describes the resources of an application like panes,
+ views, and tool bars and their relationships that are currently active
+ or are requested to be activated. Resources are specified by URLs rather
+ than references so that not only the current configuration but also a
+ requested configuration can be represented.
+
+ A resource URL describes the type of a resource, not its actual
+ instance. For resources, like panes, that are unique with respect to an
+ application frame, that does not mean much of a difference. For other
+ resources like views, that may have more than one instance per
+ application frame, this is different. To identify them unambigously a
+ second URL, one of a unique resource, is necessary. This second URL is
+ called the anchor of the first. The two types of resources are called
+ unique and linked respectively.
+
+ Direct manipulation of a configuration object is not advised with the
+ exception of the configuration controller and objects that implement the
+ XConfigurationChangeOperation interface.
+*/
+class Configuration
+ : private sd::MutexOwner,
+ public ConfigurationInterfaceBase
+{
+public:
+ /** Create a new configuration with a broadcaster that is used to send
+ events about requested configuration changes.
+ @param rxBroadcaster
+ This broadcaster is typically the same as the one used by the
+ ConfigurationController.
+ @param bBroadcastRequestEvents
+ When this is <TRUE/> then modifications to the configuration
+ trigger the broadcasting of "ResourceActivationRequestEvent" and
+ "ResourceDeactivationRequestEvent". When this flag is <FALSE/>
+ then events with type "ResourceActivationEvent" and
+ "ResourceDeactivationEvent" are broadcasted.
+ */
+ Configuration (const ::com::sun::star::uno::Reference<
+ ::com::sun::star::drawing::framework::XConfigurationControllerBroadcaster>& rxBroadcaster,
+ bool bBroadcastRequestEvents);
+ virtual ~Configuration (void);
+
+ virtual void SAL_CALL disposing (void);
+
+
+ // XConfiguration
+
+ virtual void SAL_CALL addResource (
+ const ::com::sun::star::uno::Reference<com::sun::star::drawing::framework::XResourceId>&
+ rxResourceId)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ virtual void SAL_CALL removeResource(
+ const ::com::sun::star::uno::Reference<com::sun::star::drawing::framework::XResourceId>&
+ rxResourceId)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ virtual ::com::sun::star::uno::Sequence< com::sun::star::uno::Reference<
+ com::sun::star::drawing::framework::XResourceId> > SAL_CALL getResources (
+ const ::com::sun::star::uno::Reference<
+ ::com::sun::star::drawing::framework::XResourceId>& rxAnchorId,
+ const ::rtl::OUString& rsResourceURLPrefix,
+ ::com::sun::star::drawing::framework::AnchorBindingMode eMode)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ virtual sal_Bool SAL_CALL hasResource (
+ const ::com::sun::star::uno::Reference<com::sun::star::drawing::framework::XResourceId>&
+ rxResourceId)
+ throw (::com::sun::star::uno::RuntimeException);
+
+
+ // XCloneable
+
+ virtual ::com::sun::star::uno::Reference<com::sun::star::util::XCloneable>
+ SAL_CALL createClone (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+
+ // XNamed
+
+ /** Return a human readable string representation. This is used for
+ debugging purposes.
+ */
+ virtual ::rtl::OUString SAL_CALL getName (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ /** This call is ignored because the XNamed interface is (mis)used to
+ give access to a human readable name for debugging purposes.
+ */
+ virtual void SAL_CALL setName (const ::rtl::OUString& rName)
+ throw (::com::sun::star::uno::RuntimeException);
+
+private:
+ class ResourceContainer;
+ /** The resource container holds the URLs of unique resource and of
+ resource linked to unique resources.
+ */
+ ::boost::scoped_ptr<ResourceContainer> mpResourceContainer;
+
+ /** The broadcaster used for notifying listeners of requests for
+ configuration changes.
+ */
+ ::com::sun::star::uno::Reference<
+ ::com::sun::star::drawing::framework::XConfigurationControllerBroadcaster>
+ mxBroadcaster;
+
+ bool mbBroadcastRequestEvents;
+
+ /** This private variant of the constructor is used for cloning a
+ Configuration object.
+ @param rResourceContainer
+ The new Configuration is created with a copy of the elements in
+ this container.
+ */
+ Configuration (const ::com::sun::star::uno::Reference<
+ ::com::sun::star::drawing::framework::XConfigurationControllerBroadcaster>& rxBroadcaster,
+ bool bBroadcastRequestEvents,
+ const ResourceContainer& rResourceContainer);
+
+ /** Send an event to all interested listeners that a resource has been
+ added or removed. The event is sent to the listeners via the
+ ConfigurationController.
+ @param rxResourceId
+ The resource that is added to or removed from the configuration.
+ @param bActivation
+ This specifies whether an activation or deactivation is
+ broadcasted. The mbBroadcastRequestEvents member is also taken
+ into account when the actual event type field is determined.
+ */
+ void PostEvent (
+ const ::com::sun::star::uno::Reference<com::sun::star::drawing::framework::XResourceId>&
+ rxResourceId,
+ const bool bActivation);
+
+ /** When the called object has already been disposed this method throws
+ an exception and does not return.
+ */
+ void ThrowIfDisposed (void) const
+ throw (::com::sun::star::lang::DisposedException);
+};
+
+
+/** Return whether the two given configurations contain the same resource
+ ids. The order of resource ids is ignored. Empty references are
+ treated like empty configurations.
+*/
+bool AreConfigurationsEquivalent (
+ const ::com::sun::star::uno::Reference<
+ ::com::sun::star::drawing::framework::XConfiguration>& rxConfiguration1,
+ const ::com::sun::star::uno::Reference<
+ ::com::sun::star::drawing::framework::XConfiguration>& rxConfiguration2);
+
+} } // end of namespace sd::framework
+
+#endif
diff --git a/sd/source/ui/inc/framework/ConfigurationController.hxx b/sd/source/ui/inc/framework/ConfigurationController.hxx
new file mode 100644
index 000000000000..d5e8dda059d2
--- /dev/null
+++ b/sd/source/ui/inc/framework/ConfigurationController.hxx
@@ -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.
+ *
+ ************************************************************************/
+
+#ifndef SD_FRAMEWORK_CONFIGURATION_CONTROLLER_HXX
+#define SD_FRAMEWORK_CONFIGURATION_CONTROLLER_HXX
+
+#include "MutexOwner.hxx"
+
+#include <com/sun/star/drawing/framework/XConfigurationController.hpp>
+#include <com/sun/star/drawing/framework/XConfigurationChangeRequest.hpp>
+#include <com/sun/star/drawing/framework/XConfiguration.hpp>
+#include <com/sun/star/drawing/framework/XControllerManager.hpp>
+#include <com/sun/star/drawing/framework/XResourceFactoryManager.hpp>
+#include <com/sun/star/drawing/framework/XResourceId.hpp>
+#include <com/sun/star/drawing/framework/ConfigurationChangeEvent.hpp>
+#include <com/sun/star/lang/XInitialization.hpp>
+#include <com/sun/star/uno/XComponentContext.hpp>
+
+#include <cppuhelper/compbase2.hxx>
+#include <tools/link.hxx>
+#include <rtl/ref.hxx>
+
+#include <boost/scoped_ptr.hpp>
+#include <boost/shared_ptr.hpp>
+#include <boost/noncopyable.hpp>
+
+namespace css = ::com::sun::star;
+
+namespace {
+
+typedef ::cppu::WeakComponentImplHelper2 <
+ ::css::drawing::framework::XConfigurationController,
+ ::css::lang::XInitialization
+ > ConfigurationControllerInterfaceBase;
+
+} // end of anonymous namespace.
+
+
+namespace sd { class ViewShellBase; }
+
+
+namespace sd { namespace framework {
+
+class ChangeRequestQueueProcessor;
+class ConfigurationControllerBroadcaster;
+class ConfigurationUpdater;
+class ConfigurationUpdaterLock;
+
+/** The configuration controller is responsible for maintaining the current
+ configuration.
+
+ @see css::drawing::framework::XConfigurationController
+ for an extended documentation.
+*/
+class ConfigurationController
+ : private sd::MutexOwner,
+ private boost::noncopyable,
+ public ConfigurationControllerInterfaceBase
+{
+public:
+ ConfigurationController (void) throw();
+ virtual ~ConfigurationController (void) throw();
+
+ virtual void SAL_CALL disposing (void);
+
+ void ProcessEvent (void);
+
+ /** Normally the requested changes of the configuration are executed
+ asynchronously. However, there is at least one situation (searching
+ with the Outliner) where the surrounding code does not cope with
+ this. So, instead of calling Reschedule until the global event loop
+ executes the configuration update, this method does (almost) the
+ same without the reschedules.
+
+ Do not use this method until there is absolutely no other way.
+ */
+ void RequestSynchronousUpdate (void);
+
+ // XConfigurationController
+
+ virtual void SAL_CALL lock (void)
+ throw (css::uno::RuntimeException);
+
+ virtual void SAL_CALL unlock (void)
+ throw (css::uno::RuntimeException);
+
+ virtual void SAL_CALL requestResourceActivation (
+ const css::uno::Reference<css::drawing::framework::XResourceId>& rxResourceId,
+ css::drawing::framework::ResourceActivationMode eMode)
+ throw (css::uno::RuntimeException);
+
+ virtual void SAL_CALL requestResourceDeactivation (
+ const css::uno::Reference<css::drawing::framework::XResourceId>&
+ rxResourceId)
+ throw (css::uno::RuntimeException);
+
+ virtual css::uno::Reference<css::drawing::framework::XResource>
+ SAL_CALL getResource (
+ const css::uno::Reference<css::drawing::framework::XResourceId>& rxResourceId)
+ throw (css::uno::RuntimeException);
+
+ virtual void SAL_CALL update (void)
+ throw (css::uno::RuntimeException);
+
+ virtual css::uno::Reference<
+ css::drawing::framework::XConfiguration>
+ SAL_CALL getRequestedConfiguration (void)
+ throw (css::uno::RuntimeException);
+
+ virtual css::uno::Reference<
+ css::drawing::framework::XConfiguration>
+ SAL_CALL getCurrentConfiguration (void)
+ throw (css::uno::RuntimeException);
+
+ virtual void SAL_CALL restoreConfiguration (
+ const css::uno::Reference<css::drawing::framework::XConfiguration>&
+ rxConfiguration)
+ throw (css::uno::RuntimeException);
+
+
+ // XConfigurationControllerBroadcaster
+
+ virtual void SAL_CALL addConfigurationChangeListener (
+ const css::uno::Reference<
+ css::drawing::framework::XConfigurationChangeListener>& rxListener,
+ const ::rtl::OUString& rsEventType,
+ const css::uno::Any& rUserData)
+ throw (css::uno::RuntimeException);
+
+ virtual void SAL_CALL removeConfigurationChangeListener (
+ const css::uno::Reference<
+ css::drawing::framework::XConfigurationChangeListener>& rxListener)
+ throw (css::uno::RuntimeException);
+
+ virtual void SAL_CALL notifyEvent (
+ const css::drawing::framework::ConfigurationChangeEvent& rEvent)
+ throw (css::uno::RuntimeException);
+
+
+ // XConfigurationRequestQueue
+
+ virtual sal_Bool SAL_CALL hasPendingRequests (void)
+ throw (css::uno::RuntimeException);
+
+ virtual void SAL_CALL postChangeRequest (
+ const css::uno::Reference<
+ css::drawing::framework::XConfigurationChangeRequest>& rxRequest)
+ throw (css::uno::RuntimeException);
+
+
+ // XResourceFactoryManager
+
+ virtual void SAL_CALL addResourceFactory(
+ const ::rtl::OUString& sResourceURL,
+ const css::uno::Reference<css::drawing::framework::XResourceFactory>& rxResourceFactory)
+ throw (css::uno::RuntimeException);
+
+ virtual void SAL_CALL removeResourceFactoryForURL(
+ const ::rtl::OUString& sResourceURL)
+ throw (css::uno::RuntimeException);
+
+ virtual void SAL_CALL removeResourceFactoryForReference(
+ const css::uno::Reference<css::drawing::framework::XResourceFactory>& rxResourceFactory)
+ throw (css::uno::RuntimeException);
+
+ virtual css::uno::Reference<css::drawing::framework::XResourceFactory>
+ SAL_CALL getResourceFactory (
+ const ::rtl::OUString& sResourceURL)
+ throw (css::uno::RuntimeException);
+
+
+ // XInitialization
+
+ virtual void SAL_CALL initialize(
+ const css::uno::Sequence<css::uno::Any>& rArguments)
+ throw (css::uno::Exception, css::uno::RuntimeException);
+
+
+ /** Use this class instead of calling lock() and unlock() directly in
+ order to be exception safe.
+ */
+ class Lock
+ {
+ public:
+ Lock (const css::uno::Reference<
+ css::drawing::framework::XConfigurationController>& rxController);
+ ~Lock (void);
+ private:
+ css::uno::Reference<
+ css::drawing::framework::XConfigurationController> mxController;
+ };
+
+private:
+ class Implementation;
+ ::boost::scoped_ptr<Implementation> mpImplementation;
+ bool mbIsDisposed;
+
+ /** When the called object has already been disposed this method throws
+ an exception and does not return.
+ */
+ void ThrowIfDisposed (void) const
+ throw (css::lang::DisposedException);
+};
+
+} } // end of namespace sd::framework
+
+#endif
diff --git a/sd/source/ui/inc/framework/DrawModule.hxx b/sd/source/ui/inc/framework/DrawModule.hxx
new file mode 100644
index 000000000000..08fd339df77a
--- /dev/null
+++ b/sd/source/ui/inc/framework/DrawModule.hxx
@@ -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.
+ *
+ ************************************************************************/
+
+#ifndef SD_FRAMEWORK_DRAW_MODULE_HXX
+#define SD_FRAMEWORK_DRAW_MODULE_HXX
+
+#include <com/sun/star/frame/XController.hpp>
+
+
+namespace sd { namespace framework {
+
+/** The task of this module is to instantiate all modules that belong to the
+ Draw application.
+*/
+class DrawModule
+{
+public:
+ static void Initialize (
+ ::com::sun::star::uno::Reference<com::sun::star::frame::XController>& rxController);
+};
+
+} } // end of namespace sd::framework
+
+#endif
diff --git a/sd/source/ui/inc/framework/FrameworkHelper.hxx b/sd/source/ui/inc/framework/FrameworkHelper.hxx
new file mode 100755
index 000000000000..723cd9f4fabf
--- /dev/null
+++ b/sd/source/ui/inc/framework/FrameworkHelper.hxx
@@ -0,0 +1,430 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef SD_FRAMEWORK_FRAMEWORK_HELPER_HXX
+#define SD_FRAMEWORK_FRAMEWORK_HELPER_HXX
+
+#include "ViewShell.hxx"
+
+#include "tools/SdGlobalResourceContainer.hxx"
+
+#include <com/sun/star/drawing/framework/XConfigurationController.hpp>
+#include <com/sun/star/drawing/framework/XView.hpp>
+#include <com/sun/star/lang/XEventListener.hpp>
+
+#include <boost/scoped_ptr.hpp>
+#include <boost/shared_ptr.hpp>
+#include <boost/enable_shared_from_this.hpp>
+#include <boost/function.hpp>
+#include <map>
+
+namespace sd {
+class ViewShell;
+class ViewShellBase;
+}
+
+namespace rtl {
+class OUString;
+}
+
+namespace css = ::com::sun::star;
+
+namespace sd { namespace framework {
+
+/** The FrameworkHelper is a convenience class that simplifies the
+ access to the drawing framework.
+ It has three main tasks:
+ 1. Provide frequently used strings of resource URLs and event names.
+ 2. Provide shortcuts for accessing the sd framework.
+ 3. Easy the migration to the drawing framwork.
+
+ Note that a FrameworkHelper disposes itself when one of the resource
+ controllers called by it throw a DisposedException.
+*/
+class FrameworkHelper
+ : public ::boost::enable_shared_from_this<FrameworkHelper>,
+ public SdGlobalResource
+{
+public:
+ // URLs of frequently used panes.
+ static const ::rtl::OUString msPaneURLPrefix;
+ static const ::rtl::OUString msCenterPaneURL;
+ static const ::rtl::OUString msFullScreenPaneURL;
+ static const ::rtl::OUString msLeftImpressPaneURL;
+ static const ::rtl::OUString msLeftDrawPaneURL;
+ static const ::rtl::OUString msRightPaneURL;
+
+ // URLs of frequently used views.
+ static const ::rtl::OUString msViewURLPrefix;
+ static const ::rtl::OUString msImpressViewURL;
+ static const ::rtl::OUString msDrawViewURL;
+ static const ::rtl::OUString msOutlineViewURL;
+ static const ::rtl::OUString msNotesViewURL;
+ static const ::rtl::OUString msHandoutViewURL;
+ static const ::rtl::OUString msSlideSorterURL;
+ static const ::rtl::OUString msPresentationViewURL;
+ static const ::rtl::OUString msTaskPaneURL;
+
+ // URLs of frequently used tool bars.
+ static const ::rtl::OUString msToolBarURLPrefix;
+ static const ::rtl::OUString msViewTabBarURL;
+
+ // URLs of task panels.
+ static const ::rtl::OUString msTaskPanelURLPrefix;
+ static const ::rtl::OUString msMasterPagesTaskPanelURL;
+ static const ::rtl::OUString msLayoutTaskPanelURL;
+ static const ::rtl::OUString msTableDesignPanelURL;
+ static const ::rtl::OUString msCustomAnimationTaskPanelURL;
+ static const ::rtl::OUString msSlideTransitionTaskPanelURL;
+
+ // Names of frequently used events.
+ static const ::rtl::OUString msResourceActivationRequestEvent;
+ static const ::rtl::OUString msResourceDeactivationRequestEvent;
+ static const ::rtl::OUString msResourceActivationEvent;
+ static const ::rtl::OUString msResourceDeactivationEvent;
+ static const ::rtl::OUString msConfigurationUpdateStartEvent;
+ static const ::rtl::OUString msConfigurationUpdateEndEvent;
+
+ // Service names of the common controllers.
+ static const ::rtl::OUString msModuleControllerService;
+ static const ::rtl::OUString msConfigurationControllerService;
+
+ /** Return the FrameworkHelper object that is associated with the given
+ ViewShellBase. If such an object does not yet exist, a new one is
+ created.
+ */
+ static ::boost::shared_ptr<FrameworkHelper> Instance (ViewShellBase& rBase);
+
+ static ::boost::shared_ptr<FrameworkHelper> Instance (
+ const css::uno::Reference<css::frame::XController>& rxController);
+
+ /** Mark the FrameworkHelper object for the given ViewShellBase as
+ disposed. A following ReleaseInstance() call will destroy the
+ FrameworkHelper object.
+
+ Do not call this method. It is an internally used method that can
+ not be made private.
+ */
+ static void DisposeInstance (ViewShellBase& rBase);
+
+ /** Destroy the FrameworkHelper object for the given ViewShellBase.
+
+ Do not call this method. It is an internally used method that can
+ not be made private.
+ */
+ static void ReleaseInstance (ViewShellBase& rBase);
+
+ /** Return an identifier for the given view URL. This identifier can be
+ used in a switch statement. See GetViewURL() for a mapping in the
+ opposite direction.
+ */
+ static ViewShell::ShellType GetViewId (const rtl::OUString& rsViewURL);
+
+ /** Return a view URL for the given identifier. See GetViewId() for a
+ mapping in the opposite direction.
+ */
+ static ::rtl::OUString GetViewURL (ViewShell::ShellType eType);
+
+ /** Return a ViewShell pointer for the given XView reference. This
+ assumes that the given reference is implemented by the
+ ViewShellWrapper class that supports the XTunnel interface.
+ @return
+ When the ViewShell pointer can not be inferred from the given
+ reference then an empty pointer is returned.
+ */
+ static ::boost::shared_ptr<ViewShell> GetViewShell (
+ const css::uno::Reference<css::drawing::framework::XView>& rxView);
+
+ ~FrameworkHelper (void);
+
+ typedef ::boost::function<bool(const css::drawing::framework::ConfigurationChangeEvent&)>
+ ConfigurationChangeEventFilter;
+ typedef ::boost::function<void(bool bEventSeen)> Callback;
+ typedef ::boost::function<
+ void(
+ const css::uno::Reference<
+ css::drawing::framework::XResourceId>&)
+ > ResourceFunctor;
+
+ /** Test whether the called FrameworkHelper object is valid.
+ @return
+ When the object has already been disposed then <FALSE/> is returned.
+ */
+ bool IsValid (void);
+
+ /** Return a pointer to the view shell that is displayed in the
+ specified pane. See GetView() for a variant that returns a
+ reference to XView instead of a ViewShell pointer.
+ @return
+ An empty pointer is returned when for example the specified pane
+ does not exist or is not visible or does not show a view or one
+ of the involved objects does not support XUnoTunnel (where
+ necessary).
+ */
+ ::boost::shared_ptr<ViewShell> GetViewShell (const ::rtl::OUString& rsPaneURL);
+
+ /** Return a reference to the view that is displayed in the specified
+ pane. See GetViewShell () for a variant that returns a ViewShell
+ pointer instead of a reference to XView.
+ @param rxPaneOrViewId
+ When this ResourceId specifies a view then that view is
+ returned. When it belongs to a pane then one view in that pane
+ is returned.
+ @return
+ An empty reference is returned when for example the specified pane
+ does not exist or is not visible or does not show a view or one
+ of the involved objects does not support XTunnel (where
+ necessary).
+ */
+ css::uno::Reference<css::drawing::framework::XView>
+ GetView (
+ const css::uno::Reference<
+ css::drawing::framework::XResourceId>& rxPaneOrViewId);
+
+ /** Request the specified view to be displayed in the specified pane.
+ When the pane is not visible its creation is also requested. The
+ update that creates the actual view object is done asynchronously.
+ @param rsResourceURL
+ The resource URL of the view to show.
+ @param rsAnchorURL
+ The URL of the pane in which to show the view.
+ @return
+ The resource id of the requested view is returned. With that
+ the caller can, for example, call RunOnResourceActivation() to
+ do some initialization after the requested view becomes active.
+ */
+ css::uno::Reference<css::drawing::framework::XResourceId> RequestView (
+ const ::rtl::OUString& rsResourceURL,
+ const ::rtl::OUString& rsAnchorURL);
+
+ /** Request the activation of the specified task panel in the standard
+ task pane.
+ @param rsTaskPanelURL
+ The panel that is to be activated.
+ @param bEnsureTaskPaneIsVisible
+ When this is <TRUE/> then the task pane is activated when not
+ yet active.
+ When this flag is <FALSE/> then the requested panel
+ is activated only when the task pane is already active. When it
+ is not active then this call is silently ignored.
+ */
+ void RequestTaskPanel (
+ const ::rtl::OUString& rsTaskPanelURL,
+ const bool bEnsureTaskPaneIsVisible = true);
+
+ /** Process a slot call that requests a view shell change.
+ */
+ void HandleModeChangeSlot (
+ sal_uLong nSlotId,
+ SfxRequest& rRequest);
+
+ /** Run the given callback when the specified event is notified by the
+ ConfigurationManager. When there are no pending requests and
+ therefore no events would be notified (in the foreseeable future)
+ then the callback is called immediately.
+ The callback is called with a flag that tells the callback whether
+ the event it waits for has been sent.
+ */
+ void RunOnConfigurationEvent(
+ const ::rtl::OUString& rsEventType,
+ const Callback& rCallback);
+
+ /** Run the given callback when the specified resource has been
+ activated. When the resource is active already when this method is
+ called then rCallback is called before this method returns.
+ @param rxResourceId
+ Wait for the activation of this resource before calling
+ rCallback.
+ @param rCallback
+ The callback to be called when the resource is activated.
+
+ */
+ void RunOnResourceActivation(
+ const css::uno::Reference<css::drawing::framework::XResourceId>& rxResourceId,
+ const Callback& rCallback);
+
+ /** Normally the requested changes of the configuration are executed
+ asynchronously. However, there is at least one situation (searching
+ with the Outliner) where the surrounding code does not cope with
+ this. So, instead of calling Reschedule until the global event loop
+ executes the configuration update, this method does (almost) the
+ same without the reschedules.
+
+ Do not use this method until there is absolutely no other way.
+ */
+ void RequestSynchronousUpdate (void);
+
+ /** Block until the specified event is notified by the configuration
+ controller. When the configuration controller is not processing any
+ requests the method returns immediately.
+ */
+ void WaitForEvent (const ::rtl::OUString& rsEventName) const;
+
+ /** This is a short cut for WaitForEvent(msConfigurationUpdateEndEvent).
+ Call this method to execute the pending requests.
+ */
+ void WaitForUpdate (void) const;
+
+ /** Explicit request for an update of the current configuration. Call
+ this method when one of the resources managed by the sd framework
+ has been activated or deactivated from the outside, i.e. not by the
+ framework itself. An example for this is a click on the closer
+ button of one of the side panes.
+ */
+ void UpdateConfiguration (void);
+
+ /** Return a string representation of the given XResourceId object.
+ */
+ static ::rtl::OUString ResourceIdToString (
+ const css::uno::Reference<
+ css::drawing::framework::XResourceId>& rxResourceId);
+
+ /** Create a new XResourceId object for the given resource URL.
+ */
+ static css::uno::Reference<
+ css::drawing::framework::XResourceId>
+ CreateResourceId (
+ const ::rtl::OUString& rsResourceURL);
+
+ /** Create a new XResourceId object for the given resource URL and a
+ single anchor URL.
+ */
+ static css::uno::Reference<
+ css::drawing::framework::XResourceId>
+ CreateResourceId (
+ const ::rtl::OUString& rsResourceURL,
+ const ::rtl::OUString& rsAnchorURL);
+
+ /** Create a new XResourceId object for the given resource URL and the
+ two given anchor URLs.
+ */
+ static css::uno::Reference<
+ css::drawing::framework::XResourceId>
+ CreateResourceId (
+ const ::rtl::OUString& rsResourceURL,
+ const ::rtl::OUString& rsFirstAnchorURL,
+ const ::rtl::OUString& rsSecondAnchorURL);
+
+ /** Create a new XResourceId object for the given resource URL.
+ */
+ static css::uno::Reference<
+ css::drawing::framework::XResourceId>
+ CreateResourceId (
+ const ::rtl::OUString& rsResourceURL,
+ const css::uno::Reference<
+ css::drawing::framework::XResourceId>& rxAnchor);
+
+ css::uno::Reference<css::drawing::framework::XConfigurationController>
+ GetConfigurationController (void) const;
+
+
+private:
+ typedef ::std::map<
+ ViewShellBase*,
+ ::boost::shared_ptr<FrameworkHelper> > InstanceMap;
+ /** The instance map holds (at least) one FrameworkHelper instance for
+ every ViewShellBase object.
+ */
+ static InstanceMap maInstanceMap;
+ class ViewURLMap;
+ static ::boost::scoped_ptr<ViewURLMap> mpViewURLMap;
+
+ ViewShellBase& mrBase;
+ css::uno::Reference<css::drawing::framework::XConfigurationController>
+ mxConfigurationController;
+
+ class DisposeListener;
+ friend class DisposeListener;
+ css::uno::Reference<css::lang::XComponent>
+ mxDisposeListener;
+
+ FrameworkHelper (ViewShellBase& rBase);
+ FrameworkHelper (const FrameworkHelper& rHelper); // Not implemented.
+ FrameworkHelper& operator= (const FrameworkHelper& rHelper); // Not implemented.
+
+ void Initialize (void);
+
+ void Dispose (void);
+
+ /** Run the given callback when an event of the specified type is
+ received from the ConfigurationController or when the
+ ConfigurationController has no pending change requests.
+ @param rsEventType
+ Run rCallback only on this event.
+ @param rFilter
+ This filter has to return <TRUE/> in order for rCallback to be
+ called.
+ @param rCallback
+ The callback functor to be called.
+ */
+ void RunOnEvent(
+ const ::rtl::OUString& rsEventType,
+ const ConfigurationChangeEventFilter& rFilter,
+ const Callback& rCallback) const;
+
+ /** This disposing method is forwarded from the inner DisposeListener class.
+ */
+ void disposing (const css::lang::EventObject& rEventObject);
+};
+
+
+} } // end of namespace sd::framework
+
+
+
+namespace sd { namespace framework {
+
+namespace {
+
+ class FrameworkHelperAllPassFilter
+ {
+ public:
+ bool operator() (const css::drawing::framework::ConfigurationChangeEvent&) { return true; }
+ };
+
+
+ class FrameworkHelperResourceIdFilter
+ {
+ public:
+ FrameworkHelperResourceIdFilter (
+ const css::uno::Reference<css::drawing::framework::XResourceId>& rxResourceId);
+ bool operator() (const css::drawing::framework::ConfigurationChangeEvent& rEvent)
+ { return mxResourceId.is() && rEvent.ResourceId.is()
+ && mxResourceId->compareTo(rEvent.ResourceId) == 0; }
+ private:
+ css::uno::Reference<css::drawing::framework::XResourceId> mxResourceId;
+ };
+
+} // end of anonymous namespace
+
+
+
+
+} } // end of namespace sd::framework
+
+
+#endif
diff --git a/sd/source/ui/inc/framework/ImpressModule.hxx b/sd/source/ui/inc/framework/ImpressModule.hxx
new file mode 100644
index 000000000000..f5b309760c4a
--- /dev/null
+++ b/sd/source/ui/inc/framework/ImpressModule.hxx
@@ -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.
+ *
+ ************************************************************************/
+
+#ifndef SD_FRAMEWORK_IMPRESS_MODULE_HXX
+#define SD_FRAMEWORK_IMPRESS_MODULE_HXX
+
+#include <com/sun/star/frame/XController.hpp>
+
+namespace sd { namespace framework {
+
+/** The task of this module is to instantiate all modules that belong to the
+ Impress application.
+*/
+class ImpressModule
+{
+public:
+ static void Initialize (
+ ::com::sun::star::uno::Reference<com::sun::star::frame::XController>& rxController);
+};
+
+} } // end of namespace sd::framework
+
+#endif
diff --git a/sd/source/ui/inc/framework/ModuleController.hxx b/sd/source/ui/inc/framework/ModuleController.hxx
new file mode 100644
index 000000000000..4e9517500abc
--- /dev/null
+++ b/sd/source/ui/inc/framework/ModuleController.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 SD_FRAMEWORK_MODULE_CONTROLLER_HXX
+#define SD_FRAMEWORK_MODULE_CONTROLLER_HXX
+
+#include "MutexOwner.hxx"
+
+#include <osl/mutex.hxx>
+#include <com/sun/star/drawing/framework/XModuleController.hpp>
+#include <com/sun/star/uno/XComponentContext.hpp>
+#include <com/sun/star/lang/XInitialization.hpp>
+#include <com/sun/star/frame/XController.hpp>
+#include <cppuhelper/compbase2.hxx>
+
+#include <boost/scoped_ptr.hpp>
+#include <set>
+
+namespace css = ::com::sun::star;
+
+namespace {
+
+typedef ::cppu::WeakComponentImplHelper2 <
+ css::drawing::framework::XModuleController,
+ css::lang::XInitialization
+ > ModuleControllerInterfaceBase;
+
+} // end of anonymous namespace.
+
+
+
+namespace sd { namespace framework {
+
+/** The ModuleController has to tasks:
+
+ 1. It reads the
+ org.openoffice.Office.Impress/MultiPaneGUI/Framework/ResourceFactories
+ configuration data that maps from resource URLs to service names of
+ factories that can create resources for the URLs. When the
+ configuration controller wants to create a resource for which it does
+ not have a factory, it asks the ModuleController to provide one. The
+ ModuleController looks up the service name registered for the URL of the
+ resource and instantiates this service. The service is expected to
+ register on its creation a factory for the resource in question.
+
+ 2. The ModuleController reads on its creation
+ org.openoffice.Office.Impress/MultiPaneGUI/Framework/StartupServices
+ configuration data and instantiates all listed services. These servces
+ can then register as listeners at the ConfigurationController or do
+ whatever they like.
+*/
+class ModuleController
+ : private sd::MutexOwner,
+ public ModuleControllerInterfaceBase
+{
+public:
+ static css::uno::Reference<
+ css::drawing::framework::XModuleController>
+ CreateInstance (
+ const css::uno::Reference<css::uno::XComponentContext>&
+ rxContext);
+
+ virtual void SAL_CALL disposing (void);
+
+
+ // XModuleController
+
+ virtual void SAL_CALL requestResource(const ::rtl::OUString& rsResourceURL)
+ throw (css::uno::RuntimeException);
+
+
+ // XInitialization
+
+ virtual void SAL_CALL initialize(
+ const css::uno::Sequence<css::uno::Any>& aArguments)
+ throw (css::uno::Exception, css::uno::RuntimeException);
+
+private:
+ css::uno::Reference<
+ css::frame::XController> mxController;
+
+ class ResourceToFactoryMap;
+ ::boost::scoped_ptr<ResourceToFactoryMap> mpResourceToFactoryMap;
+ class LoadedFactoryContainer;
+ ::boost::scoped_ptr<LoadedFactoryContainer> mpLoadedFactories;
+
+ ModuleController (
+ const css::uno::Reference<css::uno::XComponentContext>& rxContext)
+ throw();
+ ModuleController (void); // Not implemented.
+ ModuleController (const ModuleController&); // Not implemented.
+ virtual ~ModuleController (void) throw();
+
+ /** Load a list of URL to service mappings from the
+ /org.openoffice.Office.Impress/MultiPaneGUI/Framework/ResourceFactories
+ configuration entry. The mappings are stored in the
+ mpResourceToFactoryMap member.
+ */
+ void LoadFactories (const css::uno::Reference<css::uno::XComponentContext>& rxContext);
+
+ /** Called for every entry in the ResourceFactories configuration entry.
+ */
+ void ProcessFactory (const ::std::vector<css::uno::Any>& rValues);
+
+ /** Instantiate all startup services that are found in the
+ /org.openoffice.Office.Impress/MultiPaneGUI/Framework/StartupServices
+ configuration entry. This method is called once when a new
+ ModuleController object is created.
+ */
+ void InstantiateStartupServices (void);
+
+ /** Called for one entry in the StartupServices configuration list this
+ method instantiates the service described by the entry. It does not
+ hold references to the new object so that the object will be
+ destroyed on function exit when it does not register itself
+ somewhere. It typically will register as
+ XConfigurationChangeListener at the configuration controller.
+ */
+ void ProcessStartupService (const ::std::vector<css::uno::Any>& rValues);
+};
+
+} } // end of namespace sd::framework
+
+#endif
diff --git a/sd/source/ui/inc/framework/Pane.hxx b/sd/source/ui/inc/framework/Pane.hxx
new file mode 100755
index 000000000000..f12f0ca118f0
--- /dev/null
+++ b/sd/source/ui/inc/framework/Pane.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 SD_FRAMEWORK_PANE_HXX
+#define SD_FRAMEWORK_PANE_HXX
+
+#include "MutexOwner.hxx"
+
+#include <com/sun/star/drawing/framework/XPane.hpp>
+#include <com/sun/star/drawing/framework/XPane2.hpp>
+#include <com/sun/star/drawing/framework/TabBarButton.hpp>
+#include <com/sun/star/lang/XUnoTunnel.hpp>
+#include <cppuhelper/compbase3.hxx>
+#include <tools/link.hxx>
+#include <boost/shared_ptr.hpp>
+#include <boost/weak_ptr.hpp>
+
+class Window;
+
+namespace css = ::com::sun::star;
+namespace cssu = ::com::sun::star::uno;
+
+namespace {
+
+typedef ::cppu::WeakComponentImplHelper3 <
+ ::com::sun::star::drawing::framework::XPane,
+ ::com::sun::star::drawing::framework::XPane2,
+ ::com::sun::star::lang::XUnoTunnel
+ > PaneInterfaceBase;
+
+} // end of anonymous namespace.
+
+namespace sd { namespace framework {
+
+/** A pane is a wrapper for a window and possibly for a tab bar (for view
+ switching). Panes are unique resources.
+
+ This class has two responsibilities:
+ 1. It implements the XPane interface. This is the most important
+ interface of this class for API based views (of which there not that
+ many yet) because it gives access to the XWindow.
+ 2. It gives access to the underlying VCL Window by implementing the
+ XUnoTunnel interface. This is necessary at the moment and in the
+ foreseeable future because many parts of the Draw and Impress views rely
+ on direct access on the Window class.
+*/
+class Pane
+ : protected MutexOwner,
+ public PaneInterfaceBase
+{
+public:
+ /** Create a new Pane object that wrapps the given window.
+ @param rsPaneURL
+ The URL that is used by the configuration to identify the pane.
+ The given URL has to be valid.
+ @param pWindow
+ The VCL Window (usually this really is an sd::Window) that is
+ wrapped by the new Pane object. The given pointer must not be
+ NULL.
+ */
+ Pane (
+ const ::com::sun::star::uno::Reference<
+ com::sun::star::drawing::framework::XResourceId>& rxPaneId,
+ ::Window* pWindow)
+ throw ();
+ virtual ~Pane (void) throw();
+
+ virtual void SAL_CALL disposing (void);
+
+ static const ::com::sun::star::uno::Sequence<sal_Int8>& getUnoTunnelId (void);
+
+ /** This method is typically used together with the XUnoTunnel to obtain
+ a Window pointer from an XPane object.
+ */
+ virtual ::Window* GetWindow (void);
+
+
+ //----- XPane -------------------------------------------------------------
+
+ /** For a UNO API based implementation of a view this may the most
+ important method of this class because the view is only interested
+ in the window of the pane.
+ */
+ virtual cssu::Reference<css::awt::XWindow>
+ SAL_CALL getWindow (void)
+ throw (cssu::RuntimeException);
+
+ virtual cssu::Reference<css::rendering::XCanvas>
+ SAL_CALL getCanvas (void)
+ throw (cssu::RuntimeException);
+
+
+ //----- XPane2 -------------------------------------------------------------
+
+ virtual sal_Bool SAL_CALL isVisible (void)
+ throw (cssu::RuntimeException);
+
+ virtual void SAL_CALL setVisible (sal_Bool bIsVisible)
+ throw (cssu::RuntimeException);
+
+ virtual cssu::Reference<css::accessibility::XAccessible> SAL_CALL getAccessible (void)
+ throw (cssu::RuntimeException);
+
+ virtual void SAL_CALL setAccessible (
+ const cssu::Reference<css::accessibility::XAccessible>& rxAccessible)
+ throw (cssu::RuntimeException);
+
+
+ //----- XResource ---------------------------------------------------------
+
+ virtual ::com::sun::star::uno::Reference<com::sun::star::drawing::framework::XResourceId>
+ SAL_CALL getResourceId (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ /** For the typical pane it makes no sense to be dislayed without a
+ view. Therefore this default implementation returns always <TRUE/>.
+ */
+ virtual sal_Bool SAL_CALL isAnchorOnly (void)
+ throw (com::sun::star::uno::RuntimeException);
+
+
+ //----- XUnoTunnel --------------------------------------------------------
+
+ virtual sal_Int64 SAL_CALL getSomething (const com::sun::star::uno::Sequence<sal_Int8>& rId)
+ throw (com::sun::star::uno::RuntimeException);
+
+
+protected:
+ ::com::sun::star::uno::Reference<com::sun::star::drawing::framework::XResourceId> mxPaneId;
+ ::Window* mpWindow;
+ ::com::sun::star::uno::Reference<com::sun::star::awt::XWindow> mxWindow;
+ ::com::sun::star::uno::Reference<com::sun::star::rendering::XCanvas> mxCanvas;
+
+ /** Overload this method, not getCanvas(), when you want to provide a
+ different canvas.
+ */
+ virtual ::com::sun::star::uno::Reference<com::sun::star::rendering::XCanvas>
+ CreateCanvas (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ /** Throw DisposedException when the object has already been disposed or
+ is currently being disposed. Otherwise this method returns
+ normally.
+ */
+ void ThrowIfDisposed (void) const
+ throw (::com::sun::star::lang::DisposedException);
+};
+
+} } // end of namespace sd::framework
+
+#endif
diff --git a/sd/source/ui/inc/framework/PresentationFactory.hxx b/sd/source/ui/inc/framework/PresentationFactory.hxx
new file mode 100755
index 000000000000..a607542f2df0
--- /dev/null
+++ b/sd/source/ui/inc/framework/PresentationFactory.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 SD_FRAMEWORK_PRESENTATION_FACTORY_HXX
+#define SD_FRAMEWORK_PRESENTATION_FACTORY_HXX
+
+#include "MutexOwner.hxx"
+
+#include <com/sun/star/drawing/framework/XResourceFactory.hpp>
+#include <com/sun/star/drawing/framework/XConfigurationChangeListener.hpp>
+#include <com/sun/star/drawing/framework/XConfigurationController.hpp>
+#include <com/sun/star/frame/XController.hpp>
+#include <com/sun/star/lang/XInitialization.hpp>
+#include <com/sun/star/uno/XComponentContext.hpp>
+#include <osl/mutex.hxx>
+#include <cppuhelper/compbase2.hxx>
+
+
+#include <boost/scoped_ptr.hpp>
+#include <boost/shared_ptr.hpp>
+
+namespace css = ::com::sun::star;
+
+namespace {
+
+typedef ::cppu::WeakComponentImplHelper2 <
+ css::drawing::framework::XResourceFactory,
+ css::drawing::framework::XConfigurationChangeListener
+ > PresentationFactoryInterfaceBase;
+
+} // end of anonymous namespace.
+
+
+
+namespace sd { namespace framework {
+
+/** This factory creates a marker view whose existence in a configuration
+ indicates that a slideshow is running (in another but associated
+ application window).
+*/
+class PresentationFactory
+ : private sd::MutexOwner,
+ public PresentationFactoryInterfaceBase
+{
+public:
+ static const ::rtl::OUString msPresentationViewURL;
+
+ PresentationFactory (
+ const css::uno::Reference<css::frame::XController>& rxController);
+ virtual ~PresentationFactory (void);
+
+ virtual void SAL_CALL disposing (void);
+
+
+ // XResourceFactory
+
+ virtual css::uno::Reference<css::drawing::framework::XResource>
+ SAL_CALL createResource (
+ const css::uno::Reference<
+ css::drawing::framework::XResourceId>& rxViewId)
+ throw (css::uno::RuntimeException, css::lang::IllegalArgumentException, css::lang::WrappedTargetException);
+
+ virtual void SAL_CALL releaseResource (
+ const css::uno::Reference<css::drawing::framework::XResource>& xView)
+ throw(css::uno::RuntimeException);
+
+
+ // XConfigurationChangeListener
+
+ virtual void SAL_CALL notifyConfigurationChange (
+ const css::drawing::framework::ConfigurationChangeEvent& rEvent)
+ throw (css::uno::RuntimeException);
+
+
+ // lang::XEventListener
+
+ virtual void SAL_CALL disposing (
+ const css::lang::EventObject& rEventObject)
+ throw (css::uno::RuntimeException);
+
+private:
+ css::uno::Reference<css::drawing::framework::XConfigurationController>
+ mxConfigurationController;
+ css::uno::Reference<css::frame::XController> mxController;
+
+ void ThrowIfDisposed (void) const
+ throw (css::lang::DisposedException);
+};
+
+} } // end of namespace sd::framework
+
+#endif
diff --git a/sd/source/ui/inc/framework/PresentationModule.hxx b/sd/source/ui/inc/framework/PresentationModule.hxx
new file mode 100644
index 000000000000..ac96f9c44b2e
--- /dev/null
+++ b/sd/source/ui/inc/framework/PresentationModule.hxx
@@ -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.
+ *
+ ************************************************************************/
+
+#ifndef SD_FRAMEWORK_PRESENTATION_MODULE_HXX
+#define SD_FRAMEWORK_PRESENTATION_MODULE_HXX
+
+#include <com/sun/star/frame/XController.hpp>
+
+namespace sd { namespace framework {
+
+/** The task of this module is to instantiate all modules that belong to the
+ fullscreen presentation.
+*/
+class PresentationModule
+{
+public:
+ static void Initialize (
+ ::com::sun::star::uno::Reference<com::sun::star::frame::XController>& rxController);
+};
+
+} } // end of namespace sd::framework
+
+#endif
diff --git a/sd/source/ui/inc/framework/ResourceId.hxx b/sd/source/ui/inc/framework/ResourceId.hxx
new file mode 100755
index 000000000000..e8124e895ee6
--- /dev/null
+++ b/sd/source/ui/inc/framework/ResourceId.hxx
@@ -0,0 +1,244 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef SD_FRAMEWORK_RESOURCE_ID_HXX
+#define SD_FRAMEWORK_RESOURCE_ID_HXX
+
+#include <com/sun/star/drawing/framework/XResourceId.hpp>
+#include <com/sun/star/lang/XInitialization.hpp>
+#include <com/sun/star/util/XURLTransformer.hpp>
+#include <cppuhelper/compbase2.hxx>
+#include <boost/scoped_ptr.hpp>
+
+namespace css = ::com::sun::star;
+
+
+namespace {
+
+typedef ::cppu::WeakImplHelper2 <
+ css::drawing::framework::XResourceId,
+ css::lang::XInitialization
+ > ResourceIdInterfaceBase;
+
+} // end of anonymous namespace.
+
+
+
+
+namespace sd { namespace framework {
+
+/** Implementation of the css::drawing::framework::ResourceId
+ service and the css::drawing::framework::XResourceId
+ interface.
+*/
+class ResourceId
+ : public ResourceIdInterfaceBase
+{
+public:
+ /** Create a new, empty resource id.
+ */
+ ResourceId (void);
+
+ /** Create a new resource id that is described by the given URLs.
+ @param rsResourceURLs
+ The first URL specifies the type of resource. The other URLs
+ describe its anchor.
+ The set of URLs may be empty. The result is then the same as
+ returned by ResourceId() default constructor.
+ */
+ ResourceId (const ::std::vector<rtl::OUString>& rsResourceURLs);
+
+ /** Create a new resource id that has an empty anchor.
+ @param rsResourceURL
+ When this resource URL is empty then the resulting ResourceId
+ object is identical to when the ResourceId() default constructor
+ had been called.
+ */
+ ResourceId (
+ const ::rtl::OUString& rsResourceURL);
+
+ /** Create a new resource id for the given resource type and an anchor
+ that is specified by a single URL. This constructor can be used for
+ example for views that are bound to panes.
+ @param rsResourceURL
+ The URL of the actual resource.
+ @param rsAnchorURL
+ The single URL of the anchor.
+ */
+ ResourceId (
+ const ::rtl::OUString& rsResourceURL,
+ const ::rtl::OUString& rsAnchorURL);
+
+ /** Create a new resource id for the specified resource type and the
+ given list of anchor URLs.
+ @param rsResourceURL
+ The URL of the actual resource.
+ @param rsAnchorURLs
+ The possibly empty list of anchor URLs.
+ */
+ ResourceId (
+ const ::rtl::OUString& rsResourceURL,
+ const ::std::vector<rtl::OUString>& rAnchorURLs);
+
+ /** Create a new resource id with an anchor that consists of a sequence
+ of URLs that is extended by a further URL.
+ @param rsResourceURL
+ The URL of the actual resource.
+ @param rsFirstAnchorURL
+ This URL extends the anchor given by rAnchorURLs.
+ @param rAnchorURLs
+ An anchor as it is returned by XResourceId::getAnchorURLs().
+ */
+ ResourceId (
+ const ::rtl::OUString& rsResourceURL,
+ const ::rtl::OUString& rsFirstAnchorURL,
+ const css::uno::Sequence<rtl::OUString>& rAnchorURLs);
+
+ virtual ~ResourceId (void);
+
+ /** Return the list of URLs of both the resource URL and the anchor
+ URLs.
+ */
+ const ::std::vector<rtl::OUString>& GetResourceURLs (void) const;
+
+ //===== XResourceId =======================================================
+
+ virtual ::rtl::OUString SAL_CALL
+ getResourceURL (void)
+ throw(css::uno::RuntimeException);
+
+ virtual css::util::URL SAL_CALL
+ getFullResourceURL (void)
+ throw(css::uno::RuntimeException);
+
+ virtual sal_Bool SAL_CALL
+ hasAnchor (void)
+ throw (css::uno::RuntimeException);
+
+ virtual css::uno::Reference<
+ css::drawing::framework::XResourceId> SAL_CALL
+ getAnchor (void)
+ throw (css::uno::RuntimeException);
+
+ virtual css::uno::Sequence<rtl::OUString> SAL_CALL
+ getAnchorURLs (void)
+ throw (css::uno::RuntimeException);
+
+ virtual ::rtl::OUString SAL_CALL
+ getResourceTypePrefix (void)
+ throw (css::uno::RuntimeException);
+
+ virtual sal_Int16 SAL_CALL
+ compareTo (const css::uno::Reference<
+ css::drawing::framework::XResourceId>& rxResourceId)
+ throw (css::uno::RuntimeException);
+
+ virtual sal_Bool SAL_CALL
+ isBoundTo (
+ const css::uno::Reference<
+ css::drawing::framework::XResourceId>& rxResourceId,
+ css::drawing::framework::AnchorBindingMode eMode)
+ throw(css::uno::RuntimeException);
+
+ virtual sal_Bool SAL_CALL
+ isBoundToURL (
+ const ::rtl::OUString& rsAnchorURL,
+ css::drawing::framework::AnchorBindingMode eMode)
+ throw (css::uno::RuntimeException);
+
+ virtual css::uno::Reference<
+ css::drawing::framework::XResourceId> SAL_CALL
+ clone (void)
+ throw(css::uno::RuntimeException);
+
+ //===== XInitialization ===================================================
+
+ void SAL_CALL initialize (
+ const css::uno::Sequence<css::uno::Any>& aArguments)
+ throw (css::uno::RuntimeException);
+
+private:
+ /** The set of URLs that consist of the resource URL at index 0 and the
+ anchor URLs and indices 1 and above.
+ */
+ ::std::vector<rtl::OUString> maResourceURLs;
+
+ ::boost::scoped_ptr<css::util::URL> mpURL;
+
+ static css::uno::WeakReference<css::util::XURLTransformer> mxURLTransformerWeak;
+
+ /** Compare the called ResourceId object to the given ResourceId object.
+ This uses the implementation of both objects to speed up the
+ comparison.
+ */
+ sal_Int16 CompareToLocalImplementation (const ResourceId& rId) const;
+
+ /** Compare the called ResourceId object to the given XResourceId object
+ reference. The comparison is done via the UNO interface. Namely,
+ it uses the getResourceURL() and the getAnchorURLs() methods to get
+ access to the URLs of the given objec.
+ */
+ sal_Int16 CompareToExternalImplementation (const css::uno::Reference<
+ css::drawing::framework::XResourceId>& rxId) const;
+
+ /** Return whether the called ResourceId object is bound to the anchor
+ consisting of the URLs given by psFirstAnchorURL and paAnchorURLs.
+ @param psFirstAnchorURL
+ Optional first URL of the anchor. This can be missing or present
+ independently of paAnchorURLs.
+ @param paAnchorURLs
+ Optional set of additional anchor URLs. This can be missing or
+ present independently of psFirstAnchorURL.
+ @param eMode
+ This specifies whether the called resource has to be directly
+ bound to the given anchor in order to return <TRUE/> or whether
+ it can be bound indirectly, too.
+ */
+ bool IsBoundToAnchor (
+ const rtl::OUString* psFirstAnchorURL,
+ const css::uno::Sequence<rtl::OUString>* paAnchorURLs,
+ css::drawing::framework::AnchorBindingMode eMode) const;
+
+ /** Return whether the called ResourceId object is bound to the anchor
+ consisting of the URLs in rResourceURLs.
+ @param rResourceURLs
+ A possibly empty list of anchor URLs.
+ @param eMode
+ This specifies whether the called resource has to be directly
+ bound to the given anchor in order to return <TRUE/> or whether
+ it can be bound indirectly, too.
+ */
+ bool IsBoundToAnchor (
+ const ::std::vector<rtl::OUString>& rResourceURLs,
+ css::drawing::framework::AnchorBindingMode eMode) const;
+
+ void ParseResourceURL (void);
+};
+
+} } // end of namespace sd::framework
+
+#endif
diff --git a/sd/source/ui/inc/framework/ViewShellWrapper.hxx b/sd/source/ui/inc/framework/ViewShellWrapper.hxx
new file mode 100755
index 000000000000..12483f462d5e
--- /dev/null
+++ b/sd/source/ui/inc/framework/ViewShellWrapper.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 SD_FRAMEWORK_VIEW_SHELL_WRAPPER_HXX
+#define SD_FRAMEWORK_VIEW_SHELL_WRAPPER_HXX
+
+#include "MutexOwner.hxx"
+#include <com/sun/star/drawing/framework/XView.hpp>
+#include <com/sun/star/drawing/framework/XRelocatableResource.hpp>
+#include <com/sun/star/awt/XWindow.hpp>
+#include <com/sun/star/lang/XUnoTunnel.hpp>
+#include <osl/mutex.hxx>
+#include <cppuhelper/compbase4.hxx>
+#include <cppuhelper/implbase1.hxx>
+
+#include <boost/shared_ptr.hpp>
+
+namespace {
+
+typedef ::cppu::WeakComponentImplHelper4 < ::com::sun::star::lang::XUnoTunnel
+ , ::com::sun::star::awt::XWindowListener
+ , ::com::sun::star::drawing::framework::XRelocatableResource
+ , ::com::sun::star::drawing::framework::XView
+ > ViewShellWrapperInterfaceBase;
+
+} // end of anonymous namespace.
+
+namespace sd { class ViewShell; }
+
+namespace sd { namespace framework {
+
+/** This class wraps ViewShell objects and makes them look like an XView.
+ Most importantly it provides a tunnel to the ViewShell implementation.
+ Then it forwards size changes of the pane window to the view shell.
+*/
+class ViewShellWrapper :private sd::MutexOwner
+ ,public ViewShellWrapperInterfaceBase
+{
+public:
+ /** Create a new ViewShellWrapper object that wraps the given ViewShell
+ object.
+ @param pViewShell
+ The ViewShell object to wrap.
+ @param rsViewURL
+ URL of the view type of the wrapped view shell.
+ @param rxWindow
+ This window reference is optional. When a valid reference is
+ given then size changes of the referenced window are forwarded
+ to the ViewShell object.
+ */
+ ViewShellWrapper (
+ ::boost::shared_ptr<ViewShell> pViewShell,
+ const ::com::sun::star::uno::Reference<
+ ::com::sun::star::drawing::framework::XResourceId>& rxViewId,
+ const ::com::sun::star::uno::Reference<com::sun::star::awt::XWindow>& rxWindow);
+ virtual ~ViewShellWrapper (void);
+
+ virtual void SAL_CALL disposing (void);
+
+ static const ::com::sun::star::uno::Sequence<sal_Int8>& getUnoTunnelId (void);
+
+ /** This method is typically used together with the XUnoTunnel interface
+ to obtain a pointer to the wrapped ViewShell object for a given
+ XView object.
+ */
+ ::boost::shared_ptr<ViewShell> GetViewShell (void);
+
+ // XUnoTunnel
+
+ virtual sal_Int64 SAL_CALL getSomething (const com::sun::star::uno::Sequence<sal_Int8>& rId)
+ throw (com::sun::star::uno::RuntimeException);
+
+ // XResource
+
+ virtual ::com::sun::star::uno::Reference<com::sun::star::drawing::framework::XResourceId>
+ SAL_CALL getResourceId (void)
+ throw (com::sun::star::uno::RuntimeException);
+
+ virtual sal_Bool SAL_CALL isAnchorOnly (void)
+ throw (com::sun::star::uno::RuntimeException);
+
+
+ // XRelocatableResource
+
+ virtual sal_Bool SAL_CALL relocateToAnchor (
+ const ::com::sun::star::uno::Reference<
+ com::sun::star::drawing::framework::XResource>& xResource)
+ throw (com::sun::star::uno::RuntimeException);
+
+
+ // XWindowListener
+
+ virtual void SAL_CALL windowResized(
+ const ::com::sun::star::awt::WindowEvent& rEvent)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ virtual void SAL_CALL windowMoved(
+ const ::com::sun::star::awt::WindowEvent& rEvent)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ virtual void SAL_CALL windowShown(
+ const ::com::sun::star::lang::EventObject& rEvent)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ virtual void SAL_CALL windowHidden(
+ const ::com::sun::star::lang::EventObject& rEvent)
+ throw (::com::sun::star::uno::RuntimeException);
+
+
+ // XEventListener
+
+ virtual void SAL_CALL disposing(
+ const com::sun::star::lang::EventObject& rEvent)
+ throw (com::sun::star::uno::RuntimeException);
+
+private:
+ ::boost::shared_ptr< ViewShell > mpViewShell;
+ const ::com::sun::star::uno::Reference< com::sun::star::drawing::framework::XResourceId > mxViewId;
+ ::com::sun::star::uno::Reference<com::sun::star::awt::XWindow > mxWindow;
+};
+
+} } // end of namespace sd::framework
+
+#endif
diff --git a/sd/source/ui/inc/fuarea.hxx b/sd/source/ui/inc/fuarea.hxx
new file mode 100644
index 000000000000..f109f4792ad2
--- /dev/null
+++ b/sd/source/ui/inc/fuarea.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 SD_FU_AREA_HXX
+#define SD_FU_AREA_HXX
+
+#include "fupoor.hxx"
+
+namespace sd {
+
+class FuArea : public FuPoor
+{
+public:
+ TYPEINFO();
+
+ static FunctionReference Create( ViewShell* pViewSh, ::sd::Window* pWin, ::sd::View* pView, SdDrawDocument* pDoc, SfxRequest& rReq );
+
+ virtual void Activate();
+ virtual void Deactivate();
+
+private:
+ FuArea (
+ ViewShell* pViewSh,
+ ::sd::Window* pWin,
+ ::sd::View* pView,
+ SdDrawDocument* pDoc,
+ SfxRequest& rReq);
+
+ virtual void DoExecute( SfxRequest& rReq );
+};
+
+} // end of namespace sd
+
+#endif
+
diff --git a/sd/source/ui/inc/fubullet.hxx b/sd/source/ui/inc/fubullet.hxx
new file mode 100644
index 000000000000..d01b9f7fe86e
--- /dev/null
+++ b/sd/source/ui/inc/fubullet.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 SD_FU_BULLET_HXX
+#define SD_FU_BULLET_HXX
+
+#include "fupoor.hxx"
+
+class SfxItemSet;
+class SfxViewFrame;
+
+namespace sd {
+
+class ViewShell;
+
+class FuBullet : public FuPoor
+{
+public:
+ TYPEINFO();
+
+ static FunctionReference Create( ViewShell* pViewSh, ::sd::Window* pWin, ::sd::View* pView, SdDrawDocument* pDoc, SfxRequest& rReq );
+ virtual void DoExecute( SfxRequest& rReq );
+
+ static void GetSlotState( SfxItemSet& rSet, ViewShell* pViewShell, SfxViewFrame* pViewFrame );
+
+private:
+ FuBullet (
+ ViewShell* pViewSh,
+ ::sd::Window* pWin,
+ ::sd::View* pView,
+ SdDrawDocument* pDoc,
+ SfxRequest& rReq);
+
+ void InsertSpecialCharacter( SfxRequest& rReq );
+ void InsertFormattingMark( sal_Unicode cMark );
+};
+
+} // end of namespace sd
+
+#endif
+
diff --git a/sd/source/ui/inc/fuchar.hxx b/sd/source/ui/inc/fuchar.hxx
new file mode 100644
index 000000000000..a207603ec270
--- /dev/null
+++ b/sd/source/ui/inc/fuchar.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 SD_FU_CHAR_HXX
+#define SD_FU_CHAR_HXX
+
+#include "fupoor.hxx"
+
+namespace sd {
+
+class FuChar
+ : public FuPoor
+{
+public:
+ TYPEINFO();
+
+ static FunctionReference Create( ViewShell* pViewSh, ::sd::Window* pWin, ::sd::View* pView, SdDrawDocument* pDoc, SfxRequest& rReq );
+
+ virtual void DoExecute( SfxRequest& rReq );
+
+ virtual void Activate();
+ virtual void Deactivate();
+
+private:
+ FuChar (
+ ViewShell* pViewSh,
+ ::sd::Window* pWin,
+ ::sd::View* pView,
+ SdDrawDocument* pDoc,
+ SfxRequest& rReq);
+};
+
+} // end of namespace sd
+
+#endif
+
diff --git a/sd/source/ui/inc/fucon3d.hxx b/sd/source/ui/inc/fucon3d.hxx
new file mode 100755
index 000000000000..d5b47fd2bc28
--- /dev/null
+++ b/sd/source/ui/inc/fucon3d.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 SD_FU_CONSTRUCT_3D_OBJECT_HXX
+#define SD_FU_CONSTRUCT_3D_OBJECT_HXX
+
+#include "fuconstr.hxx"
+
+class E3dCompoundObject;
+class E3dScene;
+class SdDrawDocument;
+class SfxRequest;
+
+namespace sd {
+
+class FuConstruct3dObject
+ : public FuConstruct
+{
+public:
+ TYPEINFO();
+
+ static FunctionReference Create( ViewShell* pViewSh, ::sd::Window* pWin, ::sd::View* pView, SdDrawDocument* pDoc, SfxRequest& rReq, bool bPermanent );
+ virtual void DoExecute( SfxRequest& rReq );
+
+ // Mouse- & Key-Events
+ virtual sal_Bool KeyInput(const KeyEvent& rKEvt);
+ virtual sal_Bool MouseMove(const MouseEvent& rMEvt);
+ virtual sal_Bool MouseButtonUp(const MouseEvent& rMEvt);
+ virtual sal_Bool MouseButtonDown(const MouseEvent& rMEvt);
+
+ virtual void Activate(); // Function aktivieren
+ virtual void Deactivate(); // Function deaktivieren
+
+ // #97016#
+ virtual SdrObject* CreateDefaultObject(const sal_uInt16 nID, const Rectangle& rRectangle);
+
+private:
+ FuConstruct3dObject (
+ ViewShell* pViewSh,
+ ::sd::Window* pWin,
+ ::sd::View* pView,
+ SdDrawDocument* pDoc,
+ SfxRequest& rReq);
+
+ // #97016#
+ void ImpPrepareBasic3DShape(E3dCompoundObject* p3DObj, E3dScene *pScene);
+ E3dCompoundObject* ImpCreateBasic3DShape();
+};
+
+} // end of namespace sd
+
+#endif
+
diff --git a/sd/source/ui/inc/fuconarc.hxx b/sd/source/ui/inc/fuconarc.hxx
new file mode 100755
index 000000000000..6d333d96c0b3
--- /dev/null
+++ b/sd/source/ui/inc/fuconarc.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 SD_FU_CONSTRUCT_ARC_HXX
+#define SD_FU_CONSTRUCT_ARC_HXX
+
+#include "fuconstr.hxx"
+
+namespace sd {
+
+
+class FuConstructArc
+ : public FuConstruct
+{
+public:
+ TYPEINFO();
+
+ static FunctionReference Create( ViewShell* pViewSh, ::sd::Window* pWin, ::sd::View* pView, SdDrawDocument* pDoc, SfxRequest& rReq, bool bPermanent );
+ virtual void DoExecute( SfxRequest& rReq );
+
+ // Mouse- & Key-Events
+ virtual sal_Bool KeyInput(const KeyEvent& rKEvt);
+ virtual sal_Bool MouseMove(const MouseEvent& rMEvt);
+ virtual sal_Bool MouseButtonUp(const MouseEvent& rMEvt);
+ virtual sal_Bool MouseButtonDown(const MouseEvent& rMEvt);
+
+ virtual void Activate(); // Function aktivieren
+ virtual void Deactivate(); // Function deaktivieren
+
+ // #97016#
+ virtual SdrObject* CreateDefaultObject(const sal_uInt16 nID, const Rectangle& rRectangle);
+
+protected:
+ FuConstructArc (
+ ViewShell* pViewSh,
+ ::sd::Window* pWin,
+ ::sd::View* pView,
+ SdDrawDocument* pDoc,
+ SfxRequest& rReq);
+
+};
+
+} // end of namespace sd
+
+#endif
+
diff --git a/sd/source/ui/inc/fuconbez.hxx b/sd/source/ui/inc/fuconbez.hxx
new file mode 100755
index 000000000000..f5597a7d9053
--- /dev/null
+++ b/sd/source/ui/inc/fuconbez.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 SD_FU_CONSTRUCT_BEZIER_HXX
+#define SD_FU_CONSTRUCT_BEZIER_HXX
+
+#include <com/sun/star/uno/Any.hxx>
+#include "fuconstr.hxx"
+
+class SdDrawDocument;
+
+namespace sd {
+
+class DrawView;
+class DrawViewShell;
+class Window;
+
+
+class FuConstructBezierPolygon
+ : public FuConstruct
+{
+public:
+ TYPEINFO();
+
+ static FunctionReference Create( ViewShell* pViewSh, ::sd::Window* pWin, ::sd::View* pView, SdDrawDocument* pDoc, SfxRequest& rReq, bool bPermanent );
+ virtual void DoExecute( SfxRequest& rReq );
+
+ // Mouse- & Key-Events
+ virtual sal_Bool KeyInput(const KeyEvent& rKEvt);
+ virtual sal_Bool MouseMove(const MouseEvent& rMEvt);
+ virtual sal_Bool MouseButtonUp(const MouseEvent& rMEvt);
+ virtual sal_Bool MouseButtonDown(const MouseEvent& rMEvt);
+
+ virtual void Activate(); // Function aktivieren
+ virtual void Deactivate(); // Function deaktivieren
+
+ virtual void SelectionHasChanged();
+
+ void SetEditMode(sal_uInt16 nMode);
+ sal_uInt16 GetEditMode() { return nEditMode; }
+
+ // #97016#
+ virtual SdrObject* CreateDefaultObject(const sal_uInt16 nID, const Rectangle& rRectangle);
+
+protected:
+ FuConstructBezierPolygon (
+ ViewShell* pViewSh,
+ ::sd::Window* pWin,
+ ::sd::View* pView,
+ SdDrawDocument* pDoc,
+ SfxRequest& rReq);
+
+ sal_uInt16 nEditMode;
+
+ ::com::sun::star::uno::Any maTargets; // used for creating a path for custom animations
+};
+
+} // end of namespace sd
+
+#endif
+
diff --git a/sd/source/ui/inc/fuconcs.hxx b/sd/source/ui/inc/fuconcs.hxx
new file mode 100755
index 000000000000..064461ff201a
--- /dev/null
+++ b/sd/source/ui/inc/fuconcs.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 SD_FU_CONSTRUCT_CUSTOMSHAPE_HXX
+#define SD_FU_CONSTRUCT_CUSTOMSHAPE_HXX
+
+#include "fuconstr.hxx"
+
+class KeyEvent;
+class SdDrawDocument;
+class SdrObject;
+class SdxRequest;
+class SfxItemSet;
+
+namespace sd {
+
+/*************************************************************************
+|*
+|* Rechteck zeichnen
+|*
+\************************************************************************/
+
+class FuConstructCustomShape
+ : public FuConstruct
+{
+public:
+ TYPEINFO();
+
+ static FunctionReference Create( ViewShell* pViewSh, ::sd::Window* pWin, ::sd::View* pView, SdDrawDocument* pDoc, SfxRequest& rReq, bool bPermanent );
+ virtual void DoExecute( SfxRequest& rReq );
+
+ // Mouse- & Key-Events
+ virtual sal_Bool KeyInput(const KeyEvent& rKEvt);
+ virtual sal_Bool MouseMove(const MouseEvent& rMEvt);
+ virtual sal_Bool MouseButtonUp(const MouseEvent& rMEvt);
+ virtual sal_Bool MouseButtonDown(const MouseEvent& rMEvt);
+
+ virtual void Activate(); // Function aktivieren
+
+ void SetAttributes( SdrObject* pObj );
+
+ // #97016#
+ virtual SdrObject* CreateDefaultObject(const sal_uInt16 nID, const Rectangle& rRectangle);
+
+ // #i33136#
+ virtual bool doConstructOrthogonal() const;
+
+protected:
+ FuConstructCustomShape (
+ ViewShell* pViewSh,
+ ::sd::Window* pWin,
+ ::sd::View* pView,
+ SdDrawDocument* pDoc,
+ SfxRequest& rReq);
+
+private:
+ rtl::OUString aCustomShape;
+};
+
+} // end of namespace sd
+
+#endif
+
diff --git a/sd/source/ui/inc/fuconnct.hxx b/sd/source/ui/inc/fuconnct.hxx
new file mode 100644
index 000000000000..623c1dd9432b
--- /dev/null
+++ b/sd/source/ui/inc/fuconnct.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 SD_FU_CONNECTION_DLG_HXX
+#define SD_FU_CONNECTION_DLG_HXX
+
+#include "fupoor.hxx"
+
+namespace sd {
+
+class FuConnectionDlg
+ : public FuPoor
+{
+public:
+ TYPEINFO();
+
+ static FunctionReference Create( ViewShell* pViewSh, ::sd::Window* pWin, ::sd::View* pView, SdDrawDocument* pDoc, SfxRequest& rReq );
+
+ virtual void DoExecute( SfxRequest& rReq );
+
+private:
+ FuConnectionDlg (
+ ViewShell* pViewSh,
+ ::sd::Window* pWin,
+ ::sd::View* pView,
+ SdDrawDocument* pDoc,
+ SfxRequest& rReq);
+};
+
+} // end of namespace sd
+
+#endif
+
diff --git a/sd/source/ui/inc/fuconrec.hxx b/sd/source/ui/inc/fuconrec.hxx
new file mode 100755
index 000000000000..b3b24cce37ed
--- /dev/null
+++ b/sd/source/ui/inc/fuconrec.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 SD_FU_CONSTRUCT_RECTANGLE_HXX
+#define SD_FU_CONSTRUCT_RECTANGLE_HXX
+
+#include "fuconstr.hxx"
+
+class KeyEvent;
+class SdDrawDocument;
+class SdrObject;
+class SdxRequest;
+class SfxItemSet;
+
+namespace sd {
+
+/*************************************************************************
+|*
+|* Rechteck zeichnen
+|*
+\************************************************************************/
+
+class FuConstructRectangle
+ : public FuConstruct
+{
+public:
+ TYPEINFO();
+
+ static FunctionReference Create( ViewShell* pViewSh, ::sd::Window* pWin, ::sd::View* pView, SdDrawDocument* pDoc, SfxRequest& rReq, bool bPermanent );
+ virtual void DoExecute( SfxRequest& rReq );
+
+ // Mouse- & Key-Events
+ virtual sal_Bool KeyInput(const KeyEvent& rKEvt);
+ virtual sal_Bool MouseMove(const MouseEvent& rMEvt);
+ virtual sal_Bool MouseButtonUp(const MouseEvent& rMEvt);
+ virtual sal_Bool MouseButtonDown(const MouseEvent& rMEvt);
+
+ virtual void Activate(); // Function aktivieren
+ virtual void Deactivate(); // Function deaktivieren
+
+ void SetAttributes(SfxItemSet& rAttr, SdrObject* pObj);
+ void SetLineEnds(SfxItemSet& rAttr, SdrObject* pObj);
+
+ // #97016#
+ virtual SdrObject* CreateDefaultObject(const sal_uInt16 nID, const Rectangle& rRectangle);
+
+protected:
+ FuConstructRectangle (
+ ViewShell* pViewSh,
+ ::sd::Window* pWin,
+ ::sd::View* pView,
+ SdDrawDocument* pDoc,
+ SfxRequest& rReq);
+
+};
+
+} // end of namespace sd
+
+#endif
+
diff --git a/sd/source/ui/inc/fuconstr.hxx b/sd/source/ui/inc/fuconstr.hxx
new file mode 100755
index 000000000000..e9fde8168233
--- /dev/null
+++ b/sd/source/ui/inc/fuconstr.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 SD_FU_CONSTRUCT_HXX
+#define SD_FU_CONSTRUCT_HXX
+
+#include "fudraw.hxx"
+
+class KeyEvent;
+class SdrObject;
+class SfxItemSet;
+
+namespace sd {
+
+/*************************************************************************
+|*
+|* Rechteck zeichnen
+|*
+\************************************************************************/
+
+class FuConstruct
+ : public FuDraw
+{
+public:
+ static const int MIN_FREEHAND_DISTANCE = 10;
+
+ TYPEINFO();
+
+ virtual void DoExecute( SfxRequest& rReq );
+
+ // Mouse- & Key-Events
+ virtual sal_Bool KeyInput(const KeyEvent& rKEvt);
+ virtual sal_Bool MouseMove(const MouseEvent& rMEvt);
+ virtual sal_Bool MouseButtonUp(const MouseEvent& rMEvt);
+ virtual sal_Bool MouseButtonDown(const MouseEvent& rMEvt);
+
+ virtual void Activate(); // Function aktivieren
+ virtual void Deactivate(); // Function deaktivieren
+
+ virtual void SelectionHasChanged() { bSelectionChanged = sal_True; }
+
+ // SJ: setting stylesheet, the use of a filled or unfilled style
+ // is determined by the member nSlotId :
+ void SetStyleSheet(SfxItemSet& rAttr, SdrObject* pObj);
+
+ // SJ: setting stylesheet, the use of a filled or unfilled style
+ // is determinded by the parameters bUseFillStyle and bUseNoFillStyle :
+ void SetStyleSheet( SfxItemSet& rAttr, SdrObject* pObj,
+ const sal_Bool bUseFillStyle, const sal_Bool bUseNoFillStyle );
+
+protected:
+ FuConstruct (ViewShell* pViewSh,
+ ::sd::Window* pWin,
+ ::sd::View* pView,
+ SdDrawDocument* pDoc,
+ SfxRequest& rReq);
+
+ bool bSelectionChanged;
+};
+
+} // end of namespace sd
+
+#endif // _SD_FUCONSTR_HXX
diff --git a/sd/source/ui/inc/fuconuno.hxx b/sd/source/ui/inc/fuconuno.hxx
new file mode 100755
index 000000000000..4b55f6f150c9
--- /dev/null
+++ b/sd/source/ui/inc/fuconuno.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 SD_FU_CONSTRUCT_UNO_CONTROL_HXX
+#define SD_FU_CONSTRUCT_UNO_CONTROL_HXX
+
+#include <svl/itemset.hxx>
+#include "fuconstr.hxx"
+
+namespace sd {
+
+/*************************************************************************
+|*
+|* Control zeichnen
+|*
+\************************************************************************/
+
+class FuConstructUnoControl
+ : public FuConstruct
+{
+public:
+ TYPEINFO();
+
+ static FunctionReference Create( ViewShell* pViewSh, ::sd::Window* pWin, ::sd::View* pView, SdDrawDocument* pDoc, SfxRequest& rReq, bool bPermanent );
+ virtual void DoExecute( SfxRequest& rReq );
+
+ // Mouse- & Key-Events
+ virtual sal_Bool KeyInput(const KeyEvent& rKEvt);
+ virtual sal_Bool MouseMove(const MouseEvent& rMEvt);
+ virtual sal_Bool MouseButtonUp(const MouseEvent& rMEvt);
+ virtual sal_Bool MouseButtonDown(const MouseEvent& rMEvt);
+
+ virtual void Activate(); // Function aktivieren
+ virtual void Deactivate(); // Function deaktivieren
+
+ // #97016#
+ virtual SdrObject* CreateDefaultObject(const sal_uInt16 nID, const Rectangle& rRectangle);
+
+protected:
+ FuConstructUnoControl(
+ ViewShell* pViewSh,
+ ::sd::Window* pWin,
+ ::sd::View* pView,
+ SdDrawDocument* pDoc,
+ SfxRequest& rReq);
+
+ String aOldLayer;
+
+private:
+ sal_uInt32 nInventor;
+ sal_uInt16 nIdentifier;
+};
+
+} // end of namespace sd
+
+#endif
+
diff --git a/sd/source/ui/inc/fucopy.hxx b/sd/source/ui/inc/fucopy.hxx
new file mode 100644
index 000000000000..eb9565f02ff6
--- /dev/null
+++ b/sd/source/ui/inc/fucopy.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 SD_FU_COPY_HXX
+#define SD_FU_COPY_HXX
+
+#include "fupoor.hxx"
+
+namespace sd {
+
+class FuCopy
+ : public FuPoor
+{
+public:
+ TYPEINFO();
+
+ static FunctionReference Create( ViewShell* pViewSh, ::sd::Window* pWin, ::sd::View* pView, SdDrawDocument* pDoc, SfxRequest& rReq );
+ virtual void DoExecute( SfxRequest& rReq );
+
+private:
+
+ FuCopy (
+ ViewShell* pViewSh,
+ ::sd::Window* pWin,
+ ::sd::View* pView,
+ SdDrawDocument* pDoc,
+ SfxRequest& rReq);
+
+};
+
+} // end of namespace sd
+
+#endif
+
diff --git a/sd/source/ui/inc/fucushow.hxx b/sd/source/ui/inc/fucushow.hxx
new file mode 100644
index 000000000000..54c7596bfbc0
--- /dev/null
+++ b/sd/source/ui/inc/fucushow.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 SD_FU_CUSTOM_SHOW_DLG_HXX
+#define SD_FU_CUSTOM_SHOW_DLG_HXX
+
+#include "fupoor.hxx"
+
+namespace sd {
+
+class FuCustomShowDlg
+ : public FuPoor
+{
+public:
+ TYPEINFO();
+
+ static FunctionReference Create( ViewShell* pViewSh, ::sd::Window* pWin, ::sd::View* pView, SdDrawDocument* pDoc, SfxRequest& rReq );
+ virtual void DoExecute( SfxRequest& rReq );
+
+private:
+ FuCustomShowDlg (
+ ViewShell* pViewSh,
+ ::sd::Window* pWin,
+ ::sd::View* pView,
+ SdDrawDocument* pDoc,
+ SfxRequest& rReq);
+};
+
+} // end of namespace sd
+
+#endif
diff --git a/sd/source/ui/inc/fudraw.hxx b/sd/source/ui/inc/fudraw.hxx
new file mode 100755
index 000000000000..8a36ad16fcb4
--- /dev/null
+++ b/sd/source/ui/inc/fudraw.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 SD_FU_DRAW_HXX
+#define SD_FU_DRAW_HXX
+
+#ifndef _SV_POINTR_HXX //autogen
+#include <vcl/pointr.hxx>
+#endif
+#include "fupoor.hxx"
+
+struct SdrViewEvent;
+class SdrObject;
+
+namespace sd {
+
+/*************************************************************************
+|*
+|* Basisklasse fuer alle Drawmodul-spezifischen Funktionen
+|*
+\************************************************************************/
+
+class FuDraw
+ : public FuPoor
+{
+public:
+ TYPEINFO();
+
+ virtual sal_Bool KeyInput(const KeyEvent& rKEvt);
+ virtual sal_Bool MouseMove(const MouseEvent& rMEvt);
+ virtual sal_Bool MouseButtonUp(const MouseEvent& rMEvt);
+ virtual sal_Bool MouseButtonDown(const MouseEvent& rMEvt);
+ virtual sal_Bool RequestHelp(const HelpEvent& rHEvt);
+
+ virtual void ScrollStart();
+ virtual void ScrollEnd();
+
+ virtual void Activate();
+ virtual void Deactivate();
+
+ virtual void ForcePointer(const MouseEvent* pMEvt = NULL);
+
+ virtual void DoubleClick(const MouseEvent& rMEvt);
+
+ sal_Bool SetPointer(SdrObject* pObj, const Point& rPos);
+ sal_Bool SetHelpText(SdrObject* pObj, const Point& rPos, const SdrViewEvent& rVEvt);
+
+ void SetPermanent(sal_Bool bSet) { bPermanent = bSet; }
+
+ /** is called when the currenct function should be aborted. <p>
+ This is used when a function gets a KEY_ESCAPE but can also
+ be called directly.
+
+ @returns true if a active function was aborted
+ */
+ virtual bool cancel();
+
+protected:
+ FuDraw (ViewShell* pViewSh,
+ ::sd::Window* pWin,
+ ::sd::View* pView,
+ SdDrawDocument* pDoc,
+ SfxRequest& rReq);
+
+ virtual ~FuDraw();
+
+ Pointer aNewPointer;
+ Pointer aOldPointer;
+ sal_Bool bMBDown;
+ sal_Bool bDragHelpLine;
+ sal_uInt16 nHelpLine;
+ sal_Bool bPermanent;
+
+};
+
+} // end of namespace sd
+
+#endif // _SD_FUDRAW_HXX
diff --git a/sd/source/ui/inc/fudspord.hxx b/sd/source/ui/inc/fudspord.hxx
new file mode 100755
index 000000000000..31719deccaaf
--- /dev/null
+++ b/sd/source/ui/inc/fudspord.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 SD_FU_DISPLAY_ORDER_HXX
+#define SD_FU_DISPLAY_ORDER_HXX
+
+
+#include "fupoor.hxx"
+#include <vcl/pointr.hxx>
+
+class SdrDropMarkerOverlay;
+class SdrObject;
+
+namespace sd {
+
+/*************************************************************************
+|*
+|* Funktion DisplayOrder
+|*
+\************************************************************************/
+
+class FuDisplayOrder
+ : public FuPoor
+{
+public:
+ TYPEINFO();
+
+ static FunctionReference Create( ViewShell* pViewSh, ::sd::Window* pWin, ::sd::View* pView, SdDrawDocument* pDoc, SfxRequest& rReq );
+
+ // Mouse- & Key-Events
+ virtual sal_Bool MouseMove(const MouseEvent& rMEvt);
+ virtual sal_Bool MouseButtonUp(const MouseEvent& rMEvt);
+ virtual sal_Bool MouseButtonDown(const MouseEvent& rMEvt);
+
+ virtual void Activate(); // Function aktivieren
+ virtual void Deactivate(); // Function deaktivieren
+
+protected:
+ virtual ~FuDisplayOrder (void);
+ void implClearOverlay();
+
+ Pointer maPtr;
+ SdrObject* mpRefObj;
+ SdrDropMarkerOverlay* mpOverlay;
+
+private:
+ FuDisplayOrder (
+ ViewShell* pViewSh,
+ ::sd::Window* pWin,
+ ::sd::View* pView,
+ SdDrawDocument* pDoc,
+ SfxRequest& rReq);
+};
+
+} // end of namespace sd
+
+#endif // _SD_FUDSPORD_HXX
+
diff --git a/sd/source/ui/inc/fuediglu.hxx b/sd/source/ui/inc/fuediglu.hxx
new file mode 100755
index 000000000000..3fcf51729bce
--- /dev/null
+++ b/sd/source/ui/inc/fuediglu.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 SD_FU_EDIT_GLUE_POINTS_HXX
+#define SD_FU_EDIT_GLUE_POINTS_HXX
+
+#include "fudraw.hxx"
+
+namespace sd {
+
+/*************************************************************************
+|*
+|* FuEditGluePoints
+|*
+\************************************************************************/
+
+class FuEditGluePoints
+ : public FuDraw
+{
+public:
+ TYPEINFO();
+
+ static FunctionReference Create( ViewShell* pViewSh, ::sd::Window* pWin, ::sd::View* pView, SdDrawDocument* pDoc, SfxRequest& rReq, bool bPermanent );
+ virtual void DoExecute( SfxRequest& rReq );
+
+ // Mouse- & Key-Events
+ virtual sal_Bool KeyInput(const KeyEvent& rKEvt);
+ virtual sal_Bool MouseMove(const MouseEvent& rMEvt);
+ virtual sal_Bool MouseButtonUp(const MouseEvent& rMEvt);
+ virtual sal_Bool MouseButtonDown(const MouseEvent& rMEvt);
+ virtual sal_Bool Command(const CommandEvent& rCEvt);
+ virtual void ReceiveRequest(SfxRequest& rReq);
+
+ virtual void Activate(); // Function aktivieren
+ virtual void Deactivate(); // Function deaktivieren
+
+protected:
+ FuEditGluePoints (
+ ViewShell* pViewSh,
+ ::sd::Window* pWin,
+ ::sd::View* pView,
+ SdDrawDocument* pDoc,
+ SfxRequest& rReq);
+ virtual ~FuEditGluePoints (void);
+};
+
+} // end of namespace sd
+
+#endif
+
diff --git a/sd/source/ui/inc/fuexpand.hxx b/sd/source/ui/inc/fuexpand.hxx
new file mode 100644
index 000000000000..9e732efb4c2b
--- /dev/null
+++ b/sd/source/ui/inc/fuexpand.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.
+ *
+ ************************************************************************/
+
+#ifndef SD_FU_EXPAND_PAGE_HXX
+#define SD_FU_EXPAND_PAGE_HXX
+
+#include "fupoor.hxx"
+
+namespace sd {
+
+class FuExpandPage
+ : public FuPoor
+{
+ public:
+ TYPEINFO();
+
+ static FunctionReference Create( ViewShell* pViewSh, ::sd::Window* pWin, ::sd::View* pView, SdDrawDocument* pDoc, SfxRequest& rReq );
+ virtual void DoExecute( SfxRequest& rReq );
+
+private:
+ FuExpandPage (
+ ViewShell* pViewSh,
+ ::sd::Window* pWin,
+ ::sd::View* pView,
+ SdDrawDocument* pDoc,
+ SfxRequest& rReq);
+};
+
+} // end of namespace sd
+
+#endif
+
diff --git a/sd/source/ui/inc/fuformatpaintbrush.hxx b/sd/source/ui/inc/fuformatpaintbrush.hxx
new file mode 100755
index 000000000000..4d2f19f5fb65
--- /dev/null
+++ b/sd/source/ui/inc/fuformatpaintbrush.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 SD_FU_FORMATPAINTBRUSH_HXX
+#define SD_FU_FORMATPAINTBRUSH_HXX
+
+#include "futext.hxx"
+
+// header for class SfxItemSet
+#include <svl/itemset.hxx>
+#include <boost/scoped_ptr.hpp>
+
+namespace sd {
+
+class DrawViewShell;
+
+class FuFormatPaintBrush : public FuText
+{
+public:
+ TYPEINFO();
+
+ static FunctionReference Create( ViewShell* pViewSh, ::sd::Window* pWin, ::sd::View* pView, SdDrawDocument* pDoc, SfxRequest& rReq );
+
+ virtual sal_Bool MouseMove(const MouseEvent& rMEvt);
+ virtual sal_Bool MouseButtonUp(const MouseEvent& rMEvt);
+ virtual sal_Bool MouseButtonDown(const MouseEvent& rMEvt);
+ virtual sal_Bool KeyInput(const KeyEvent& rKEvt);
+
+ virtual void Activate();
+ virtual void Deactivate();
+
+ static void GetMenuState( DrawViewShell& rDrawViewShell, SfxItemSet &rSet );
+ static bool CanCopyThisType( sal_uInt32 nObjectInventor, sal_uInt16 nObjectIdentifier );
+
+private:
+ FuFormatPaintBrush ( ViewShell* pViewSh, ::sd::Window* pWin, ::sd::View* pView, SdDrawDocument* pDoc, SfxRequest& rReq);
+
+ void DoExecute( SfxRequest& rReq );
+
+ bool HasContentForThisType( sal_uInt32 nObjectInventor, sal_uInt16 nObjectIdentifier ) const;
+ void Paste( bool, bool );
+
+ void implcancel();
+
+ ::boost::shared_ptr<SfxItemSet> mpItemSet;
+ bool mbPermanent;
+ bool mbOldIsQuickTextEditMode;
+};
+
+} // end of namespace sd
+
+#endif
diff --git a/sd/source/ui/inc/fugrid.hxx b/sd/source/ui/inc/fugrid.hxx
new file mode 100644
index 000000000000..fa3834a81281
--- /dev/null
+++ b/sd/source/ui/inc/fugrid.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 SD_FU_GRID_HXX
+#define SD_FU_GRID_HXX
+
+#include "fupoor.hxx"
+
+namespace sd {
+
+class FuGrid
+ : public FuPoor
+{
+public:
+ TYPEINFO();
+
+ static FunctionReference Create( ViewShell* pViewSh, ::sd::Window* pWin, ::sd::View* pView, SdDrawDocument* pDoc, SfxRequest& rReq );
+
+ virtual void Activate();
+ virtual void Deactivate();
+
+private:
+ FuGrid (
+ ViewShell* pViewSh,
+ ::sd::Window* pWin,
+ ::sd::View* pView,
+ SdDrawDocument* pDoc,
+ SfxRequest& rReq);
+};
+
+} // end of namespace sd
+
+#endif
+
+
diff --git a/sd/source/ui/inc/fuhhconv.hxx b/sd/source/ui/inc/fuhhconv.hxx
new file mode 100755
index 000000000000..6bffd12f693c
--- /dev/null
+++ b/sd/source/ui/inc/fuhhconv.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 _SD_FUHHCONV_HXX
+#define _SD_FUHHCONV_HXX
+
+#ifndef _SD_FUPOOR_HXX
+#include "fupoor.hxx"
+#endif
+
+namespace sd {
+
+class Outliner;
+
+
+class FuHangulHanjaConversion : public FuPoor
+{
+ public:
+ TYPEINFO();
+
+ static FunctionReference Create( ViewShell* pViewSh, ::sd::Window* pWin, ::sd::View* pView, SdDrawDocument* pDoc, SfxRequest& rReq );
+
+ void StartConversion( sal_Int16 nSourceLanguage, sal_Int16 nTargetLanguage,
+ const Font *pTargetFont, sal_Int32 nOptions, sal_Bool bIsInteractive );
+
+ void StartChineseConversion();
+
+ void ConvertStyles( sal_Int16 nTargetLanguage, const Font *pTargetFont );
+
+ Outliner* GetOutliner() const { return pSdOutliner; }
+
+ protected:
+ ~FuHangulHanjaConversion();
+
+ Outliner* pSdOutliner;
+ sal_Bool bOwnOutliner;
+
+private:
+ FuHangulHanjaConversion (
+ ViewShell* pViewSh,
+ ::sd::Window* pWin,
+ ::sd::View* pView,
+ SdDrawDocument* pDoc,
+ SfxRequest& rReq );
+
+};
+
+#endif // _SD_FUHHCONV_HXX
+
+
+} // end of namespace sd
diff --git a/sd/source/ui/inc/fuinsert.hxx b/sd/source/ui/inc/fuinsert.hxx
new file mode 100644
index 000000000000..e783c69b314b
--- /dev/null
+++ b/sd/source/ui/inc/fuinsert.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 SD_FU_INSERT_HXX
+#define SD_FU_INSERT_HXX
+
+#include "fupoor.hxx"
+
+namespace sd {
+
+class FuInsertGraphic
+ : public FuPoor
+{
+public:
+ TYPEINFO();
+
+ static FunctionReference Create( ViewShell* pViewSh, ::sd::Window* pWin, ::sd::View* pView, SdDrawDocument* pDoc, SfxRequest& rReq );
+ virtual void DoExecute( SfxRequest& rReq );
+
+private:
+
+ FuInsertGraphic (
+ ViewShell* pViewSh,
+ ::sd::Window* pWin,
+ ::sd::View* pView,
+ SdDrawDocument* pDoc,
+ SfxRequest& rReq);
+};
+
+
+/************************************************************************/
+
+class FuInsertClipboard
+ : public FuPoor
+{
+public:
+ TYPEINFO();
+
+ static FunctionReference Create( ViewShell* pViewSh, ::sd::Window* pWin, ::sd::View* pView, SdDrawDocument* pDoc, SfxRequest& rReq );
+ virtual void DoExecute( SfxRequest& rReq );
+
+private:
+ FuInsertClipboard (
+ ViewShell* pViewSh,
+ ::sd::Window* pWin,
+ ::sd::View* pView,
+ SdDrawDocument* pDoc,
+ SfxRequest& rReq);
+};
+
+
+/************************************************************************/
+
+class FuInsertOLE
+ : public FuPoor
+{
+ public:
+ TYPEINFO();
+
+ static FunctionReference Create( ViewShell* pViewSh, ::sd::Window* pWin, ::sd::View* pView, SdDrawDocument* pDoc, SfxRequest& rReq );
+ virtual void DoExecute( SfxRequest& rReq );
+
+private:
+ FuInsertOLE (
+ ViewShell* pViewSh,
+ ::sd::Window* pWin,
+ ::sd::View* pView,
+ SdDrawDocument* pDoc,
+ SfxRequest& rReq);
+};
+
+/************************************************************************/
+
+class FuInsertAVMedia
+ : public FuPoor
+{
+public:
+ TYPEINFO();
+
+ static FunctionReference Create( ViewShell* pViewSh, ::sd::Window* pWin, ::sd::View* pView, SdDrawDocument* pDoc, SfxRequest& rReq );
+ virtual void DoExecute( SfxRequest& rReq );
+
+private:
+ FuInsertAVMedia (
+ ViewShell* pViewSh,
+ ::sd::Window* pWin,
+ ::sd::View* pView,
+ SdDrawDocument* pDoc,
+ SfxRequest& rReq);
+};
+
+
+} // end of namespace sd
+
+#endif
diff --git a/sd/source/ui/inc/fuinsfil.hxx b/sd/source/ui/inc/fuinsfil.hxx
new file mode 100755
index 000000000000..51964de71c54
--- /dev/null
+++ b/sd/source/ui/inc/fuinsfil.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 SD_FU_INSERT_FILE_HXX
+#define SD_FU_INSERT_FILE_HXX
+
+#include "fupoor.hxx"
+#include <vector>
+
+class SfxMedium;
+struct StyleRequestData;
+
+namespace sd {
+
+class FuInsertFile
+ : public FuPoor
+{
+public:
+ TYPEINFO();
+
+ static FunctionReference Create( ViewShell* pViewSh, ::sd::Window* pWin, ::sd::View* pView, SdDrawDocument* pDoc, SfxRequest& rReq );
+ virtual void DoExecute( SfxRequest& rReq );
+
+ static void GetSupportedFilterVector( ::std::vector< String >& rFilterVector );
+
+private:
+ FuInsertFile (
+ ViewShell* pViewSh,
+ ::sd::Window* pWin,
+ ::sd::View* pView,
+ SdDrawDocument* pDoc,
+ SfxRequest& rReq);
+
+ String aLayoutName; // Layoutname der aktuell eingefuegten Seite
+ String aFilterName; // gewaehlter Dateifilter
+ String aFile; // gewaehlter Dateiname
+
+ void InsTextOrRTFinOlMode(SfxMedium* pMedium);
+ sal_Bool InsSDDinOlMode(SfxMedium* pMedium);
+ void InsTextOrRTFinDrMode(SfxMedium* pMedium);
+ sal_Bool InsSDDinDrMode(SfxMedium* pMedium);
+};
+
+} // end of namespace sd
+
+#endif
diff --git a/sd/source/ui/inc/fuline.hxx b/sd/source/ui/inc/fuline.hxx
new file mode 100644
index 000000000000..32fd95a6f326
--- /dev/null
+++ b/sd/source/ui/inc/fuline.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 SD_FU_LINE_HXX
+#define SD_FU_LINE_HXX
+
+#include "fupoor.hxx"
+
+namespace sd {
+
+class FuLine
+ : public FuPoor
+{
+public:
+ TYPEINFO();
+
+ virtual void Activate();
+ virtual void Deactivate();
+
+ static FunctionReference Create( ViewShell* pViewSh, ::sd::Window* pWin, ::sd::View* pView, SdDrawDocument* pDoc, SfxRequest& rReq );
+ virtual void DoExecute( SfxRequest& rReq );
+
+private:
+
+ FuLine (
+ ViewShell* pViewSh,
+ ::sd::Window* pWin,
+ ::sd::View* pView,
+ SdDrawDocument* pDoc,
+ SfxRequest& rReq);
+};
+
+} // end of namespace sd
+
+#endif
+
diff --git a/sd/source/ui/inc/fulinend.hxx b/sd/source/ui/inc/fulinend.hxx
new file mode 100644
index 000000000000..da8df27f5e0d
--- /dev/null
+++ b/sd/source/ui/inc/fulinend.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 SD_FULINE_END_HXX
+#define SD_FULINE_END_HXX
+
+#include "fupoor.hxx"
+
+namespace sd {
+
+class FuLineEnd
+ : public FuPoor
+{
+public:
+ TYPEINFO();
+
+ virtual void Activate();
+ virtual void Deactivate();
+
+ static FunctionReference Create( ViewShell* pViewSh, ::sd::Window* pWin, ::sd::View* pView, SdDrawDocument* pDoc, SfxRequest& rReq );
+ virtual void DoExecute( SfxRequest& rReq );
+
+private:
+
+ FuLineEnd (
+ ViewShell* pViewSh,
+ ::sd::Window* pWin,
+ ::sd::View* pView,
+ SdDrawDocument* pDoc,
+ SfxRequest& rReq);
+};
+
+} // end of namespace sd
+
+#endif
+
diff --git a/sd/source/ui/inc/fulink.hxx b/sd/source/ui/inc/fulink.hxx
new file mode 100644
index 000000000000..feea6e9d63c1
--- /dev/null
+++ b/sd/source/ui/inc/fulink.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 SD_FU_LINK_HXX
+#define SD_FU_LINK_HXX
+
+#include "fupoor.hxx"
+
+namespace sd {
+
+class FuLink
+ : public FuPoor
+{
+public:
+ TYPEINFO();
+
+ static FunctionReference Create( ViewShell* pViewSh, ::sd::Window* pWin, ::sd::View* pView, SdDrawDocument* pDoc, SfxRequest& rReq );
+ virtual void DoExecute( SfxRequest& rReq );
+
+private:
+
+ FuLink (
+ ViewShell* pViewSh,
+ ::sd::Window* pWin,
+ ::sd::View* pView,
+ SdDrawDocument* pDoc,
+ SfxRequest& rReq );
+};
+
+} // end of namespace sd
+
+#endif
+
+
diff --git a/sd/source/ui/inc/fumeasur.hxx b/sd/source/ui/inc/fumeasur.hxx
new file mode 100644
index 000000000000..e5a42d03731d
--- /dev/null
+++ b/sd/source/ui/inc/fumeasur.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 SD_FU_MEASURE_DLG_HXX
+#define SD_FU_MEASURE_DLG_HXX
+
+#include "fupoor.hxx"
+
+namespace sd {
+
+class FuMeasureDlg
+ : public FuPoor
+{
+ public:
+ TYPEINFO();
+
+ static FunctionReference Create( ViewShell* pViewSh, ::sd::Window* pWin, ::sd::View* pView, SdDrawDocument* pDoc, SfxRequest& rReq );
+ virtual void DoExecute( SfxRequest& rReq );
+
+private:
+
+ FuMeasureDlg (
+ ViewShell* pViewSh,
+ ::sd::Window* pWin,
+ ::sd::View* pView,
+ SdDrawDocument* pDoc,
+ SfxRequest& rReq);
+};
+
+} // end of namespace sd
+
+#endif
+
diff --git a/sd/source/ui/inc/fumorph.hxx b/sd/source/ui/inc/fumorph.hxx
new file mode 100755
index 000000000000..53c84487d266
--- /dev/null
+++ b/sd/source/ui/inc/fumorph.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 SD_FU_MORPH_HXX
+#define SD_FU_MORPH_HXX
+
+#include "fupoor.hxx"
+
+#include <math.h>
+
+/*************************************************************************
+|*
+\************************************************************************/
+class List;
+namespace basegfx {
+ class B2DPolyPolygon;
+ class B2DPolygon;
+ class B2DPoint;
+}
+
+namespace sd {
+
+class FuMorph
+ : public FuPoor
+{
+public:
+ TYPEINFO();
+
+ static FunctionReference Create( ViewShell* pViewSh, ::sd::Window* pWin, ::sd::View* pView, SdDrawDocument* pDoc, SfxRequest& rReq );
+ virtual void DoExecute( SfxRequest& rReq );
+
+private:
+ FuMorph (
+ ViewShell* pViewSh,
+ ::sd::Window* pWin,
+ ::sd::View* pView,
+ SdDrawDocument* pDoc,
+ SfxRequest& rReq);
+
+ void ImpInsertPolygons(List& rPolyPolyList3D, sal_Bool bAttributeFade,
+ const SdrObject* pObj1, const SdrObject* pObj2);
+ ::basegfx::B2DPolyPolygon* ImpCreateMorphedPolygon(
+ const ::basegfx::B2DPolyPolygon& rPolyPolyStart,
+ const ::basegfx::B2DPolyPolygon& rPolyPolyEnd,
+ double fMorphingFactor);
+ sal_Bool ImpMorphPolygons(
+ const ::basegfx::B2DPolyPolygon& rPolyPoly1, const ::basegfx::B2DPolyPolygon& rPolyPoly2,
+ const sal_uInt16 nSteps, List& rPolyPolyList3D);
+ void ImpAddPolys(::basegfx::B2DPolyPolygon& rSmaller, const ::basegfx::B2DPolyPolygon& rBigger);
+ void ImpEqualizePolyPointCount(::basegfx::B2DPolygon& rSmall, const ::basegfx::B2DPolygon& rBig);
+ sal_uInt32 ImpGetNearestIndex(const ::basegfx::B2DPolygon& rPoly, const ::basegfx::B2DPoint& rPos);
+};
+
+} // end of namespace sd
+
+#endif
diff --git a/sd/source/ui/inc/fuoaprms.hxx b/sd/source/ui/inc/fuoaprms.hxx
new file mode 100644
index 000000000000..9d015727bc07
--- /dev/null
+++ b/sd/source/ui/inc/fuoaprms.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 SD_FU_OBJECT_ANIMATION_PARAMETERS
+#define SD_FU_OBJECT_ANIMATION_PARAMETERS
+
+#include "fupoor.hxx"
+
+namespace sd {
+
+class FuObjectAnimationParameters
+ : public FuPoor
+{
+public:
+ TYPEINFO();
+
+ static FunctionReference Create( ViewShell* pViewSh, ::sd::Window* pWin, ::sd::View* pView, SdDrawDocument* pDoc, SfxRequest& rReq );
+ virtual void DoExecute( SfxRequest& rReq );
+
+private:
+
+ FuObjectAnimationParameters (
+ ViewShell* pViewSh,
+ ::sd::Window* pWin,
+ ::sd::View* pView,
+ SdDrawDocument* pDoc,
+ SfxRequest& rReq);
+};
+
+} // end of namespace sd
+
+#endif
+
+
+
+
diff --git a/sd/source/ui/inc/fuolbull.hxx b/sd/source/ui/inc/fuolbull.hxx
new file mode 100644
index 000000000000..31ec06307ac0
--- /dev/null
+++ b/sd/source/ui/inc/fuolbull.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 SD_FU_OUTLINE_BULLET_HXX
+#define SD_FU_OUTLINE_BULLET_HXX
+
+#include "fupoor.hxx"
+
+class SdDrawDocument;
+class SfxRequest;
+
+namespace sd {
+
+class View;
+class ViewShell;
+class Window;
+
+/*************************************************************************
+|*
+|* Bulletfunktionen im Outlinermodus
+|*
+\************************************************************************/
+
+class FuOutlineBullet
+ : public FuPoor
+{
+public:
+ TYPEINFO();
+
+ static FunctionReference Create( ViewShell* pViewSh, ::sd::Window* pWin, ::sd::View* pView, SdDrawDocument* pDoc, SfxRequest& rReq );
+ virtual void DoExecute( SfxRequest& rReq );
+
+private:
+ FuOutlineBullet (
+ ViewShell* pViewShell,
+ ::sd::Window* pWin,
+ ::sd::View* pView,
+ SdDrawDocument* pDoc,
+ SfxRequest& rReq);
+};
+
+} // end of namespace sd
+
+#endif
diff --git a/sd/source/ui/inc/fuoltext.hxx b/sd/source/ui/inc/fuoltext.hxx
new file mode 100755
index 000000000000..2ff04c77f922
--- /dev/null
+++ b/sd/source/ui/inc/fuoltext.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 SD_FU_OUTLINE_TEXT_HXX
+#define SD_FU_OUTLINE_TEXT_HXX
+
+#include "fuoutl.hxx"
+
+class SdDrawDocument;
+class SfxRequest;
+
+namespace sd {
+
+class View;
+class ViewShell;
+class Window;
+
+/*************************************************************************
+|*
+|* Textfunktionen im Outlinermodus
+|*
+\************************************************************************/
+class FuOutlineText
+ : public FuOutline
+{
+public:
+ TYPEINFO();
+
+ static FunctionReference Create( ViewShell* pViewSh, ::sd::Window* pWin, ::sd::View* pView, SdDrawDocument* pDoc, SfxRequest& rReq );
+
+ virtual sal_Bool KeyInput(const KeyEvent& rKEvt);
+ virtual sal_Bool MouseMove(const MouseEvent& rMEvt);
+ virtual sal_Bool MouseButtonUp(const MouseEvent& rMEvt);
+ virtual sal_Bool MouseButtonDown(const MouseEvent& rMEvt);
+
+ virtual void DoCut();
+ virtual void DoCopy();
+ virtual void DoPaste();
+
+ virtual void Activate(); // Function aktivieren
+ virtual void Deactivate(); // Function deaktivieren
+
+ /** Call this method when the text in the outliner (may) has changed.
+ It will invalidate some slots of the view frame and update the
+ preview in the slide sorter.
+ */
+ void UpdateForKeyPress (const KeyEvent& rEvent);
+
+protected:
+ FuOutlineText (
+ ViewShell* pViewShell,
+ ::sd::Window* pWin,
+ ::sd::View* pView,
+ SdDrawDocument* pDoc,
+ SfxRequest& rReq);
+
+};
+
+} // end of namespace sd
+
+#endif
diff --git a/sd/source/ui/inc/fuoutl.hxx b/sd/source/ui/inc/fuoutl.hxx
new file mode 100755
index 000000000000..6b1674654ff1
--- /dev/null
+++ b/sd/source/ui/inc/fuoutl.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 SD_FU_OUTLINE_HXX
+#define SD_FU_OUTLINE_HXX
+
+#include "fupoor.hxx"
+
+class SdDrawDocument;
+class SfxRequest;
+
+
+namespace sd {
+
+class OutlineView;
+class OutlineViewShell;
+class View;
+class ViewShell;
+class Window;
+
+/*************************************************************************
+|*
+|* Basisklasse der Funktionen des Outlinemodus
+|*
+\************************************************************************/
+
+class FuOutline
+ : public FuPoor
+{
+public:
+ TYPEINFO();
+
+ virtual sal_Bool Command(const CommandEvent& rCEvt);
+
+ virtual void ScrollStart();
+ virtual void ScrollEnd();
+
+protected:
+ FuOutline (
+ ViewShell* pViewShell,
+ ::sd::Window* pWindow,
+ ::sd::View* pView,
+ SdDrawDocument* pDoc,
+ SfxRequest& rReq);
+
+ OutlineViewShell* pOutlineViewShell;
+ OutlineView* pOutlineView;
+};
+
+} // end of namespace sd
+
+#endif
diff --git a/sd/source/ui/inc/fupage.hxx b/sd/source/ui/inc/fupage.hxx
new file mode 100755
index 000000000000..a0cd7b4d2e0a
--- /dev/null
+++ b/sd/source/ui/inc/fupage.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 SD_FU_PAGE_HXX
+#define SD_FU_PAGE_HXX
+
+#include "fupoor.hxx"
+
+class SfxItemSet;
+class SdBackgroundObjUndoAction;
+class SdPage;
+
+namespace sd {
+class DrawViewShell;
+
+class FuPage
+ : public FuPoor
+{
+ public:
+ TYPEINFO();
+
+ static FunctionReference Create( ViewShell* pViewSh, ::sd::Window* pWin, ::sd::View* pView, SdDrawDocument* pDoc, SfxRequest& rReq );
+ virtual void DoExecute( SfxRequest& rReq );
+
+ virtual void Activate(); // Function aktivieren
+ virtual void Deactivate(); // Function deaktivieren
+
+ const SfxItemSet* ExecuteDialog( Window* pParent );
+
+protected:
+ virtual ~FuPage (void);
+
+private:
+ FuPage (
+ ViewShell* pViewSh,
+ ::sd::Window* pWin,
+ ::sd::View* pView,
+ SdDrawDocument* pDoc,
+ SfxRequest& rReq );
+
+ void ApplyItemSet( const SfxItemSet* pArgs );
+
+ SfxRequest& mrReq;
+ const SfxItemSet* mpArgs;
+ SdBackgroundObjUndoAction* mpBackgroundObjUndoAction;
+ Size maSize;
+ bool mbPageBckgrdDeleted;
+ bool mbMasterPage;
+ bool mbDisplayBackgroundTabPage;
+ SdPage* mpPage;
+ DrawViewShell* mpDrawViewShell;
+};
+
+} // end of namespace sd
+
+#endif
+
diff --git a/sd/source/ui/inc/fuparagr.hxx b/sd/source/ui/inc/fuparagr.hxx
new file mode 100644
index 000000000000..0e61aaff28c8
--- /dev/null
+++ b/sd/source/ui/inc/fuparagr.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 SD_FU_PARAGRAPH_HXX
+#define SD_FU_PARAGRAPH_HXX
+
+#include "fupoor.hxx"
+
+namespace sd {
+
+class FuParagraph
+ : public FuPoor
+{
+public:
+ TYPEINFO();
+
+ virtual void Activate();
+ virtual void Deactivate();
+
+ static FunctionReference Create( ViewShell* pViewSh, ::sd::Window* pWin, ::sd::View* pView, SdDrawDocument* pDoc, SfxRequest& rReq );
+ virtual void DoExecute( SfxRequest& rReq );
+
+private:
+ FuParagraph (
+ ViewShell* pViewSh,
+ ::sd::Window* pWin,
+ ::sd::View* pView,
+ SdDrawDocument* pDoc,
+ SfxRequest& rReq);
+};
+
+} // end of namespace
+
+#endif
+
diff --git a/sd/source/ui/inc/fupoor.hxx b/sd/source/ui/inc/fupoor.hxx
new file mode 100755
index 000000000000..38469208b44e
--- /dev/null
+++ b/sd/source/ui/inc/fupoor.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 SD_FU_POOR_HXX
+#define SD_FU_POOR_HXX
+
+#include <tools/rtti.hxx>
+#include <vcl/timer.hxx>
+#include <tools/link.hxx>
+#include <tools/gen.hxx>
+#include <vcl/event.hxx>
+#include <rtl/ref.hxx>
+
+#ifndef _SALHELPER_SIMPLEREFERENCECOMPONENT_HXX_
+#include "helper/simplereferencecomponent.hxx"
+#endif
+
+class SdDrawDocument;
+class SfxRequest;
+class Dialog;
+class SdrObject;
+
+namespace sd {
+
+class DrawDocShell;
+class View;
+class ViewShell;
+class Window;
+
+/*************************************************************************
+|*
+|* Basisklasse fuer alle Funktionen
+|*
+\************************************************************************/
+
+class FuPoor : public SimpleReferenceComponent
+{
+public:
+ static const int HITPIX = 2; // Hit-Toleranz in Pixel
+ static const int DRGPIX = 2; // Drag MinMove in Pixel
+
+ TYPEINFO();
+
+ virtual void DoExecute( SfxRequest& rReq );
+
+ // #95491# see member
+ void SetMouseButtonCode(sal_uInt16 nNew) { if(nNew != mnCode) mnCode = nNew; }
+ sal_uInt16 GetMouseButtonCode() const { return mnCode; }
+
+ DrawDocShell* GetDocSh() { return mpDocSh; }
+ SdDrawDocument* GetDoc() { return mpDoc; }
+
+ virtual void DoCut();
+ virtual void DoCopy();
+ virtual void DoPaste();
+
+ // Mouse- & Key-Events; Returnwert=sal_True: Event wurde bearbeitet
+ virtual sal_Bool KeyInput(const KeyEvent& rKEvt);
+ virtual sal_Bool MouseMove(const MouseEvent& );
+ virtual sal_Bool MouseButtonUp(const MouseEvent& rMEvt);
+
+ // #95491# moved from inline to *.cxx
+ virtual sal_Bool MouseButtonDown(const MouseEvent& rMEvt);
+
+ virtual sal_Bool Command(const CommandEvent& rCEvt);
+ virtual sal_Bool RequestHelp(const HelpEvent& rHEvt);
+ virtual void Paint(const Rectangle&, ::sd::Window* );
+ virtual void ReceiveRequest(SfxRequest& rReq);
+
+ virtual void Activate(); // Function aktivieren
+ virtual void Deactivate(); // Function deaktivieren
+
+ virtual void ScrollStart() {} // diese Funktionen werden von
+ virtual void ScrollEnd() {} // ForceScroll aufgerufen
+
+ void SetWindow(::sd::Window* pWin) { mpWindow = pWin; }
+
+ // #97016# II
+ virtual void SelectionHasChanged();
+
+ sal_uInt16 GetSlotID() const { return( nSlotId ); }
+ sal_uInt16 GetSlotValue() const { return( nSlotValue ); }
+
+ void SetNoScrollUntilInside(sal_Bool bNoScroll = sal_True)
+ { bNoScrollUntilInside = bNoScroll; }
+
+ void StartDelayToScrollTimer ();
+
+ // #97016#
+ virtual SdrObject* CreateDefaultObject(const sal_uInt16 nID, const Rectangle& rRectangle);
+
+ /** is called when the currenct function should be aborted. <p>
+ This is used when a function gets a KEY_ESCAPE but can also
+ be called directly.
+
+ @returns true if a active function was aborted
+ */
+ virtual bool cancel();
+
+ // #i33136#
+ /** Decide if the object to be created should be created
+ orthogonal. Default implementation uses nSlotID
+ to decide. May be overloaded to use other criterias
+ for this decision
+
+ @returns true if the to be created object should be orthogonal.
+ */
+ virtual bool doConstructOrthogonal() const;
+
+protected:
+ /**
+ @param pViewSh
+ May be NULL.
+ */
+ FuPoor (ViewShell* pViewSh,
+ ::sd::Window* pWin,
+ ::sd::View* pView,
+ SdDrawDocument* pDoc,
+ SfxRequest& rReq);
+ virtual ~FuPoor (void);
+
+ DECL_LINK( DelayHdl, Timer * );
+
+ void ImpForceQuadratic(Rectangle& rRect);
+
+ /** Switch to another layer. The layer to switch to is specified by an
+ offset relative to the active layer. With respect to the layer bar
+ control at the lower left of the document window positive values
+ move to the right and negative values move to the left.
+
+ <p>Switching the layer is independant of the view's layer mode. The
+ layers are switched even when the layer mode is turned off and the
+ layer control is not visible.</p>
+ @param nOffset
+ If the offset is positive skip that many layers in selecting the
+ next layer. If it is negative then select a previous one. An
+ offset or zero does not change the current layer. If the
+ resulting index lies outside the valid range of indices then it
+ is set to either the minimal or maximal valid index, whitchever
+ is nearer.
+ */
+ void SwitchLayer (sal_Int32 nOffset);
+
+ ::sd::View* mpView;
+ ViewShell* mpViewShell;
+ ::sd::Window* mpWindow;
+ DrawDocShell* mpDocSh;
+ SdDrawDocument* mpDoc;
+
+ sal_uInt16 nSlotId;
+ sal_uInt16 nSlotValue;
+
+ Dialog* pDialog;
+
+ Timer aScrollTimer; // fuer Autoscrolling
+ DECL_LINK( ScrollHdl, Timer * );
+ void ForceScroll(const Point& aPixPos);
+
+ Timer aDragTimer; // fuer Drag&Drop
+ DECL_LINK( DragHdl, Timer * );
+ sal_Bool bIsInDragMode;
+ Point aMDPos; // Position von MouseButtonDown
+
+ // Flag, um AutoScrolling zu verhindern, bis von ausserhalb in das
+ // Fenster hinein gedragt wurde
+ sal_Bool bNoScrollUntilInside;
+
+ // Timer um das scrolling zu verzoegern, wenn aus dem fenster
+ // herausgedraggt wird (ca. 1 sec.)
+ Timer aDelayToScrollTimer; // fuer Verzoegerung bis scroll
+ sal_Bool bScrollable;
+ sal_Bool bDelayActive;
+ sal_Bool bFirstMouseMove;
+
+ // #95491# member to hold state of the mouse buttons for creation
+ // of own MouseEvents (like in ScrollHdl)
+
+private:
+ sal_uInt16 mnCode;
+
+};
+
+typedef rtl::Reference< FuPoor > FunctionReference;
+
+} // end of namespace sd
+
+#endif // _SD_FUPOOR_HXX
+
diff --git a/sd/source/ui/inc/fuprlout.hxx b/sd/source/ui/inc/fuprlout.hxx
new file mode 100644
index 000000000000..9eb092a5bfa3
--- /dev/null
+++ b/sd/source/ui/inc/fuprlout.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 SD_FU_PRESENTATION_LAYOUT_HXX
+#define SD_FU_PRESENTATION_LAYOUT_HXX
+
+#include "fupoor.hxx"
+
+class SdDrawDocument;
+class SfxRequest;
+class SfxStyleSheetBasePool;
+
+namespace sd {
+
+class View;
+class ViewShell;
+class Window;
+
+class FuPresentationLayout
+ : public FuPoor
+{
+public:
+ TYPEINFO();
+
+ static FunctionReference Create( ViewShell* pViewSh, ::sd::Window* pWin, ::sd::View* pView, SdDrawDocument* pDoc, SfxRequest& rReq );
+ virtual void DoExecute( SfxRequest& rReq );
+
+private:
+ FuPresentationLayout (
+ ViewShell* pViewSh,
+ ::sd::Window* pWin,
+ ::sd::View* pView,
+ SdDrawDocument* pDoc,
+ SfxRequest& rReq);
+};
+
+} // end of namespace sd
+
+#endif
+
diff --git a/sd/source/ui/inc/fuprobjs.hxx b/sd/source/ui/inc/fuprobjs.hxx
new file mode 100644
index 000000000000..8cb706683d43
--- /dev/null
+++ b/sd/source/ui/inc/fuprobjs.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 SD_FU_PRESENTATION_OBJECTS_HXX
+#define SD_FU_PRESENTATION_OBJECTS_HXX
+
+#include "fupoor.hxx"
+
+class SdDrawDocument;
+class SfxRequest;
+
+namespace sd {
+
+class View;
+class ViewShell;
+class Window;
+
+
+class FuPresentationObjects
+ : public FuPoor
+{
+public:
+ TYPEINFO();
+
+ static FunctionReference Create( ViewShell* pViewSh, ::sd::Window* pWin, ::sd::View* pView, SdDrawDocument* pDoc, SfxRequest& rReq );
+ virtual void DoExecute( SfxRequest& rReq );
+
+private:
+ FuPresentationObjects (
+ ViewShell* pViewSh,
+ ::sd::Window* pWin,
+ ::sd::View* pView,
+ SdDrawDocument* pDoc,
+ SfxRequest& rReq);
+};
+
+} // end of namespace sd
+
+#endif
+
diff --git a/sd/source/ui/inc/fuscale.hxx b/sd/source/ui/inc/fuscale.hxx
new file mode 100644
index 000000000000..f6355b04ebb7
--- /dev/null
+++ b/sd/source/ui/inc/fuscale.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.
+ *
+ ************************************************************************/
+
+#ifndef SD_FU_SCALE_HXX
+#define SD_FU_SCALE_HXX
+
+#include "fupoor.hxx"
+
+namespace sd {
+
+class FuScale
+ : public FuPoor
+{
+public:
+ TYPEINFO();
+
+ static FunctionReference Create( ViewShell* pViewSh, ::sd::Window* pWin, ::sd::View* pView, SdDrawDocument* pDoc, SfxRequest& rReq );
+ virtual void DoExecute( SfxRequest& rReq );
+
+private:
+ FuScale (
+ ViewShell* pViewSh,
+ ::sd::Window* pWin,
+ ::sd::View* pView,
+ SdDrawDocument* pDoc,
+ SfxRequest& rReq);
+};
+
+} // end of namespace sd
+
+#endif
+
diff --git a/sd/source/ui/inc/fusearch.hxx b/sd/source/ui/inc/fusearch.hxx
new file mode 100755
index 000000000000..661280e4652c
--- /dev/null
+++ b/sd/source/ui/inc/fusearch.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 SD_FU_SEARCH_HXX
+#define SD_FU_SEARCH_HXX
+
+#include "fupoor.hxx"
+
+class SvxSearchItem;
+
+namespace sd {
+
+class Outliner;
+
+class FuSearch
+ : public FuPoor
+{
+public:
+ TYPEINFO();
+
+ static FunctionReference Create( ViewShell* pViewSh, ::sd::Window* pWin, ::sd::View* pView, SdDrawDocument* pDoc, SfxRequest& rReq );
+ virtual void DoExecute( SfxRequest& rReq );
+
+ void SearchAndReplace( const SvxSearchItem* pSearchItem );
+
+ ::sd::Outliner* GetOutliner() const { return pSdOutliner; }
+
+protected:
+ virtual ~FuSearch (void);
+
+ ::sd::Outliner* pSdOutliner;
+ sal_Bool bOwnOutliner;
+
+private:
+ FuSearch (
+ ViewShell* pViewSh,
+ ::sd::Window* pWin,
+ ::sd::View* pView,
+ SdDrawDocument* pDoc,
+ SfxRequest& rReq);
+
+};
+
+} // end of namespace sd
+
+#endif
+
+
diff --git a/sd/source/ui/inc/fusel.hxx b/sd/source/ui/inc/fusel.hxx
new file mode 100755
index 000000000000..e0d4c72ef28c
--- /dev/null
+++ b/sd/source/ui/inc/fusel.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 SD_FU_SELECTION_HXX
+#define SD_FU_SELECTION_HXX
+
+#include "fudraw.hxx"
+
+#include <com/sun/star/media/XPlayer.hpp>
+
+class SdrHdl;
+class SdrObject;
+class Sound;
+
+
+namespace sd {
+
+class FuSelection
+ : public FuDraw
+{
+public:
+ TYPEINFO();
+
+ static FunctionReference Create( ViewShell* pViewSh, ::sd::Window* pWin, ::sd::View* pView, SdDrawDocument* pDoc, SfxRequest& rReq );
+ virtual void DoExecute( SfxRequest& rReq );
+
+ // Mouse- & Key-Events
+ virtual sal_Bool KeyInput(const KeyEvent& rKEvt);
+ virtual sal_Bool MouseMove(const MouseEvent& rMEvt);
+ virtual sal_Bool MouseButtonUp(const MouseEvent& rMEvt);
+ virtual sal_Bool MouseButtonDown(const MouseEvent& rMEvt);
+
+ virtual void Activate(); // Function aktivieren
+ virtual void Deactivate(); // Function deaktivieren
+
+ virtual void SelectionHasChanged();
+
+ void SetEditMode(sal_uInt16 nMode);
+ sal_uInt16 GetEditMode() { return nEditMode; }
+
+ sal_Bool AnimateObj(SdrObject* pObj, const Point& rPos);
+
+ /** is called when the currenct function should be aborted. <p>
+ This is used when a function gets a KEY_ESCAPE but can also
+ be called directly.
+
+ @returns true if a active function was aborted
+ */
+ virtual bool cancel();
+
+protected:
+ FuSelection (ViewShell* pViewSh,
+ ::sd::Window* pWin,
+ ::sd::View* pView,
+ SdDrawDocument* pDoc,
+ SfxRequest& rReq);
+
+ virtual ~FuSelection();
+
+ sal_Bool bTempRotation;
+ sal_Bool bSelectionChanged;
+ sal_Bool bHideAndAnimate;
+ SdrHdl* pHdl;
+ sal_Bool bSuppressChangesOfSelection;
+ sal_Bool bMirrorSide0;
+ sal_uInt16 nEditMode;
+ ::com::sun::star::uno::Reference< ::com::sun::star::media::XPlayer > mxPlayer;
+
+private:
+ /** This pointer stores a canidate for assigning a style in the water
+ can mode between mouse button down and mouse button up.
+ */
+ SdrObject* pWaterCanCandidate;
+
+ /** Find the object under the given test point without selecting it.
+ @param rTestPoint
+ The coordinates at which to search for a shape.
+ @return
+ The shape at the test point. When there is no shape at this
+ position then NULL is returned.
+ */
+ SdrObject* pickObject (const Point& rTestPoint);
+};
+
+} // end of namespace sd
+
+#endif // _SD_FUSEL_HXX
+
diff --git a/sd/source/ui/inc/fusldlg.hxx b/sd/source/ui/inc/fusldlg.hxx
new file mode 100644
index 000000000000..239f950c1108
--- /dev/null
+++ b/sd/source/ui/inc/fusldlg.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 SD_FU_SLIDE_SHOW_DLG_HXX
+#define SD_FU_SLIDE_SHOW_DLG_HXX
+
+#include "fupoor.hxx"
+
+namespace sd {
+
+class FuSlideShowDlg
+ : public FuPoor
+{
+public:
+ TYPEINFO();
+
+ static FunctionReference Create( ViewShell* pViewSh, ::sd::Window* pWin, ::sd::View* pView, SdDrawDocument* pDoc, SfxRequest& rReq );
+ virtual void DoExecute( SfxRequest& rReq );
+
+private:
+ FuSlideShowDlg (
+ ViewShell* pViewSh,
+ ::sd::Window* pWin,
+ ::sd::View* pView,
+ SdDrawDocument* pDoc,
+ SfxRequest& rReq);
+};
+
+} // end of namespace sd
+
+#endif
diff --git a/sd/source/ui/inc/fuslhide.hxx b/sd/source/ui/inc/fuslhide.hxx
new file mode 100644
index 000000000000..4858696e41b1
--- /dev/null
+++ b/sd/source/ui/inc/fuslhide.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 SD_FU_SLIDE_HIDE_HXX
+#define SD_FU_SLIDE_HIDE_HXX
+
+#include "fuslid.hxx"
+
+namespace sd {
+
+/*************************************************************************
+|*
+|* selektierte Dias in der Show zeigen / nicht zeigen
+|*
+\************************************************************************/
+
+class FuSlideHide
+ : public FuSlide
+{
+public:
+ TYPEINFO();
+
+ static FunctionReference Create( SlideViewShell* pViewSh, ::sd::Window* pWin, SlideView* pView, SdDrawDocument* pDoc, SfxRequest& rReq );
+ virtual void DoExecute( SfxRequest& rReq );
+
+protected:
+ FuSlideHide (
+ ViewShell* pViewSh,
+ ::sd::Window* pWin,
+ ::sd::View* pView,
+ SdDrawDocument* pDoc,
+ SfxRequest& rReq);
+ virtual ~FuSlideHide (void);
+};
+
+} // end of namespace sd
+
+#endif
+
diff --git a/sd/source/ui/inc/fuslid.hxx b/sd/source/ui/inc/fuslid.hxx
new file mode 100755
index 000000000000..e97ceddd548b
--- /dev/null
+++ b/sd/source/ui/inc/fuslid.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 SD_FU_SLIDE_HXX
+#define SD_FU_SLIDE_HXX
+
+#include "fupoor.hxx"
+
+class SdDrawDocument;
+
+namespace sd {
+
+class SlideView;
+class SlideViewShell;
+class Window;
+
+
+/*************************************************************************
+|*
+|* Basisklasse der Funktionen des Diamodus
+|*
+\************************************************************************/
+
+class FuSlide
+ : public FuPoor
+{
+public:
+ TYPEINFO();
+
+ static FunctionReference Create( SlideViewShell* pViewSh, ::sd::Window* pWin, SlideView* pView, SdDrawDocument* pDoc, SfxRequest& rReq );
+
+ virtual sal_Bool MouseMove(const MouseEvent& rMEvt);
+ virtual sal_Bool MouseButtonUp(const MouseEvent& rMEvt);
+ virtual sal_Bool MouseButtonDown(const MouseEvent& rMEvt);
+
+ virtual void ScrollStart();
+ virtual void ScrollEnd();
+
+protected:
+ FuSlide (
+ SlideViewShell* pViewSh,
+ ::sd::Window* pWin,
+ SlideView* pView,
+ SdDrawDocument* pDoc,
+ SfxRequest& rReq);
+
+ SlideViewShell* pSlViewShell;
+ SlideView* pSlView;
+};
+
+} // end of namespace sd
+
+#endif
diff --git a/sd/source/ui/inc/fuslsel.hxx b/sd/source/ui/inc/fuslsel.hxx
new file mode 100755
index 000000000000..16cf5257ee2c
--- /dev/null
+++ b/sd/source/ui/inc/fuslsel.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 SD_FU_SLIDE_SELECTION_HXX
+#define SD_FU_SLIDE_SELECTION_HXX
+
+#include "fuslid.hxx"
+#include <tools/list.hxx>
+
+class SdDrawDocument;
+class Sound;
+
+namespace sd {
+
+class SlideView;
+class SlideViewShell;
+class Window;
+
+struct FSS_IsShowingEffectInfo
+{
+ sal_Bool bIsShowingEffect; // sal_True while we show a fade effect one the slide view
+ sal_Bool bDisposed; // sal_True if the FuSlideSelection was deleted during fade effect
+};
+
+
+class FuSlideSelection
+ : public FuSlide
+{
+public:
+ TYPEINFO();
+
+ static FunctionReference Create( SlideViewShell* pViewSh, ::sd::Window* pWin, SlideView* pView, SdDrawDocument* pDoc, SfxRequest& rReq );
+ virtual void DoExecute( SfxRequest& rReq );
+
+ // Mouse- & Key-Events
+ virtual sal_Bool KeyInput(const KeyEvent& rKEvt);
+ virtual sal_Bool MouseMove(const MouseEvent& rMEvt);
+ virtual sal_Bool MouseButtonUp(const MouseEvent& rMEvt);
+ virtual sal_Bool MouseButtonDown(const MouseEvent& rMEvt);
+ virtual void Paint(const Rectangle& rRect, ::sd::Window* pWin);
+
+ virtual void Activate(); // Function aktivieren
+ virtual void Deactivate(); // Function deaktivieren
+
+ virtual void ScrollStart();
+ virtual void ScrollEnd();
+
+ sal_Bool IsShowingEffect() const { return pIsShowingEffectInfo && pIsShowingEffectInfo->bIsShowingEffect; }
+
+ /** is called when the currenct function should be aborted. <p>
+ This is used when a function gets a KEY_ESCAPE but can also
+ be called directly.
+
+ @returns true if a active function was aborted
+ */
+ virtual bool cancel();
+
+protected:
+ FuSlideSelection (
+ SlideViewShell* pViewSh,
+ ::sd::Window* pWin,
+ SlideView* pView,
+ SdDrawDocument* pDoc,
+ SfxRequest& rReq);
+ virtual ~FuSlideSelection (void);
+
+private:
+ sal_Bool bSubstShown;
+ sal_Bool bPageHit;
+ List aSubstList; // Liste mit Ertsatzdarstellungen
+ Point aDragPos; // hier wird die Seite angefasst
+ sal_Bool bDragSelection;
+ Point aDragSelRectAnchor; // fester Punkt des Selektionsrechtecks
+ Rectangle aDragSelRect;
+ Point aPosOfInsertMarker;
+ FSS_IsShowingEffectInfo* pIsShowingEffectInfo;
+
+ void DrawInsertMarker(sal_Bool bShow);
+ Point CalcPosOfInsertMarker(const Point& rPoint);
+
+ sal_uInt16 GetTargetPage(const Point& rPoint) const;
+
+ void CreateSubst();
+ void DeleteSubst();
+ void DrawSubst() const;
+ void ChangeSubstPos(const Point& rVector);
+ void DrawDragSelectionRect() const;
+ void ShowEffect(sal_uInt16 nPageNo);
+
+ DECL_LINK( DragSlideHdl, Timer* );
+};
+
+} // end of namespace sd
+
+#endif
+
diff --git a/sd/source/ui/inc/fusnapln.hxx b/sd/source/ui/inc/fusnapln.hxx
new file mode 100644
index 000000000000..cc5efaba990c
--- /dev/null
+++ b/sd/source/ui/inc/fusnapln.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 SD_FU_SNAP_LINE_HXX
+#define SD_FU_SNAP_LINE_HXX
+
+#include "fupoor.hxx"
+
+namespace sd {
+
+class FuSnapLine
+ : public FuPoor
+{
+public:
+ TYPEINFO();
+
+ virtual void Activate();
+ virtual void Deactivate();
+
+ static FunctionReference Create( ViewShell* pViewSh, ::sd::Window* pWin, ::sd::View* pView, SdDrawDocument* pDoc, SfxRequest& rReq );
+ virtual void DoExecute( SfxRequest& rReq );
+
+private:
+ FuSnapLine (
+ ViewShell* pViewSh,
+ ::sd::Window* pWin,
+ ::sd::View* pView,
+ SdDrawDocument* pDoc,
+ SfxRequest& rReq);
+};
+
+} // end of namespace sd
+
+#endif
diff --git a/sd/source/ui/inc/fusumry.hxx b/sd/source/ui/inc/fusumry.hxx
new file mode 100644
index 000000000000..6515977026c6
--- /dev/null
+++ b/sd/source/ui/inc/fusumry.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.
+ *
+ ************************************************************************/
+
+#ifndef SD_FU_SUMMARY_PAGE_HXX
+#define SD_FU_SUMMARY_PAGE_HXX
+
+#include "fupoor.hxx"
+
+namespace sd {
+
+class FuSummaryPage
+ : public FuPoor
+{
+public:
+ TYPEINFO();
+
+ static FunctionReference Create( ViewShell* pViewSh, ::sd::Window* pWin, ::sd::View* pView, SdDrawDocument* pDoc, SfxRequest& rReq );
+ virtual void DoExecute( SfxRequest& rReq );
+
+private:
+ FuSummaryPage (
+ ViewShell* pViewSh,
+ ::sd::Window* pWin,
+ ::sd::View* pView,
+ SdDrawDocument* pDoc,
+ SfxRequest& rReq);
+};
+
+} // end of namespace sd
+
+#endif
+
diff --git a/sd/source/ui/inc/futempl.hxx b/sd/source/ui/inc/futempl.hxx
new file mode 100644
index 000000000000..40bf5936cda3
--- /dev/null
+++ b/sd/source/ui/inc/futempl.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 SD_FU_TEMPLATE_HXX
+#define SD_FU_TEMPLATE_HXX
+
+#include "fupoor.hxx"
+
+namespace sd {
+
+class FuTemplate
+ : public FuPoor
+{
+public:
+ TYPEINFO();
+
+ virtual void Activate();
+ virtual void Deactivate();
+
+ static FunctionReference Create( ViewShell* pViewSh, ::sd::Window* pWin, ::sd::View* pView, SdDrawDocument* pDoc, SfxRequest& rReq );
+ virtual void DoExecute( SfxRequest& rReq );
+
+private:
+ FuTemplate (
+ ViewShell* pViewSh,
+ ::sd::Window* pWin,
+ ::sd::View* pView,
+ SdDrawDocument* pDoc,
+ SfxRequest& rReq);
+};
+
+} // end of namespace sd
+
+#endif
+
diff --git a/sd/source/ui/inc/futext.hxx b/sd/source/ui/inc/futext.hxx
new file mode 100755
index 000000000000..6784dbb175f7
--- /dev/null
+++ b/sd/source/ui/inc/futext.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 SD_FU_TEXT_HXX
+#define SD_FU_TEXT_HXX
+
+#ifndef _EDITDATA_HXX
+#include <editeng/editdata.hxx>
+#endif
+#include "fuconstr.hxx"
+#include <svx/svdotext.hxx>
+
+struct StyleRequestData;
+class SdrTextObj;
+class OutlinerParaObject;
+class FontList;
+class OutlinerView;
+
+namespace sd {
+
+/*************************************************************************
+|*
+|* Basisklasse fuer Textfunktionen
+|*
+\************************************************************************/
+
+class FuText
+ : public FuConstruct
+{
+public:
+ TYPEINFO();
+
+ static FunctionReference Create( ViewShell* pViewSh, ::sd::Window* pWin, ::sd::View* pView, SdDrawDocument* pDoc, SfxRequest& rReq );
+ virtual void DoExecute( SfxRequest& rReq );
+
+ virtual sal_Bool KeyInput(const KeyEvent& rKEvt);
+ virtual sal_Bool MouseMove(const MouseEvent& rMEvt);
+ virtual sal_Bool MouseButtonUp(const MouseEvent& rMEvt);
+ virtual sal_Bool MouseButtonDown(const MouseEvent& rMEvt);
+ virtual sal_Bool Command(const CommandEvent& rCEvt);
+ virtual sal_Bool RequestHelp(const HelpEvent& rHEvt);
+ virtual void ReceiveRequest(SfxRequest& rReq);
+ virtual void DoubleClick(const MouseEvent& rMEvt);
+
+ virtual void Activate(); // Function aktivieren
+ virtual void Deactivate(); // Function deaktivieren
+
+ void SetInEditMode(const MouseEvent& rMEvt, sal_Bool bQuickDrag);
+ sal_Bool DeleteDefaultText();
+ SdrTextObj* GetTextObj() { return static_cast< SdrTextObj* >( mxTextObj.get() ); }
+
+ DECL_LINK(SpellError, void* );
+
+ // #97016#
+ virtual SdrObject* CreateDefaultObject(const sal_uInt16 nID, const Rectangle& rRectangle);
+
+ /** is called when the currenct function should be aborted. <p>
+ This is used when a function gets a KEY_ESCAPE but can also
+ be called directly.
+
+ @returns true if a active function was aborted
+ */
+ virtual bool cancel();
+
+ static void ChangeFontSize( bool, OutlinerView*, const FontList*, ::sd::View* );
+
+protected:
+ FuText (ViewShell* pViewSh,
+ ::sd::Window* pWin,
+ ::sd::View* pView,
+ SdDrawDocument* pDoc,
+ SfxRequest& rReq);
+
+ virtual void disposing();
+
+ SdrObjectWeakRef mxTextObj;
+ Link aOldLink;
+ sal_Bool bFirstObjCreated;
+
+ SfxRequest& rRequest;
+
+private:
+ // #97016#
+ void ImpSetAttributesForNewTextObject(SdrTextObj* pTxtObj);
+ void ImpSetAttributesFitToSize(SdrTextObj* pTxtObj);
+ void ImpSetAttributesFitToSizeVertical(SdrTextObj* pTxtObj);
+ void ImpSetAttributesFitCommon(SdrTextObj* pTxtObj);
+};
+
+} // end of namespace sd
+
+#endif
diff --git a/sd/source/ui/inc/futhes.hxx b/sd/source/ui/inc/futhes.hxx
new file mode 100644
index 000000000000..07aadf386b05
--- /dev/null
+++ b/sd/source/ui/inc/futhes.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 SD_FU_THESAURUS_HXX
+#define SD_FU_THESAURUS_HXX
+
+#include "fupoor.hxx"
+
+namespace sd {
+
+class FuThesaurus
+ : public FuPoor
+{
+public:
+ TYPEINFO();
+
+ static FunctionReference Create( ViewShell* pViewSh, ::sd::Window* pWin, ::sd::View* pView, SdDrawDocument* pDoc, SfxRequest& rReq );
+ virtual void DoExecute( SfxRequest& rReq );
+
+private:
+ FuThesaurus (
+ ViewShell* pViewSh,
+ ::sd::Window* pWin,
+ ::sd::View* pView,
+ SdDrawDocument* pDoc,
+ SfxRequest& rReq);
+};
+
+} // end of namespace sd
+
+#endif
+
+
diff --git a/sd/source/ui/inc/futransf.hxx b/sd/source/ui/inc/futransf.hxx
new file mode 100755
index 000000000000..85041334c7f0
--- /dev/null
+++ b/sd/source/ui/inc/futransf.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 SD_FU_TRANSFORM_HXX
+#define SD_FU_TRANSFORM_HXX
+
+#ifndef _SVX_RETENUM_HXX
+#include <svx/rectenum.hxx>
+#endif
+#include "fupoor.hxx"
+
+namespace sd {
+
+class FuTransform
+ : public FuPoor
+{
+public:
+ TYPEINFO();
+
+ static FunctionReference Create( ViewShell* pViewSh, ::sd::Window* pWin, ::sd::View* pView, SdDrawDocument* pDoc, SfxRequest& rReq );
+ virtual void DoExecute( SfxRequest& rReq );
+
+private:
+ FuTransform (
+ ViewShell* pViewSh,
+ ::sd::Window* pWin,
+ ::sd::View* pView,
+ SdDrawDocument* pDoc,
+ SfxRequest& rReq);
+};
+
+} // end of namespace sd
+
+#endif
+
diff --git a/sd/source/ui/inc/futxtatt.hxx b/sd/source/ui/inc/futxtatt.hxx
new file mode 100644
index 000000000000..f766d32d048d
--- /dev/null
+++ b/sd/source/ui/inc/futxtatt.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.
+ *
+ ************************************************************************/
+
+#ifndef SD_FU_TEXT_ATTR_DLG_HXX
+#define SD_FU_TEXT_ATTR_DLG_HXX
+
+#include "fupoor.hxx"
+
+namespace sd {
+
+class FuTextAttrDlg
+ : public FuPoor
+{
+ public:
+ TYPEINFO();
+
+ static FunctionReference Create( ViewShell* pViewSh, ::sd::Window* pWin, ::sd::View* pView, SdDrawDocument* pDoc, SfxRequest& rReq );
+ virtual void DoExecute( SfxRequest& rReq );
+
+private:
+ FuTextAttrDlg (
+ ViewShell* pViewSh,
+ ::sd::Window* pWin,
+ ::sd::View* pView,
+ SdDrawDocument* pDoc,
+ SfxRequest& rReq);
+};
+
+} // end of namespace sd
+
+#endif
+
diff --git a/sd/source/ui/inc/fuvect.hxx b/sd/source/ui/inc/fuvect.hxx
new file mode 100644
index 000000000000..406bea288bea
--- /dev/null
+++ b/sd/source/ui/inc/fuvect.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 SD_FU_VECTORIZE_HXX
+#define SD_FU_VECTORIZE_HXX
+
+#include "fupoor.hxx"
+
+namespace sd {
+
+class FuVectorize
+ : public FuPoor
+{
+public:
+ TYPEINFO();
+
+ static FunctionReference Create( ViewShell* pViewSh, ::sd::Window* pWin, ::sd::View* pView, SdDrawDocument* pDoc, SfxRequest& rReq );
+ virtual void DoExecute( SfxRequest& rReq );
+
+private:
+
+ FuVectorize (
+ ViewShell* pViewSh,
+ ::sd::Window* pWin,
+ ::sd::View* pView,
+ SdDrawDocument* pDoc,
+ SfxRequest& rReq);
+};
+
+} // end of namespace sd
+
+#endif
+
diff --git a/sd/source/ui/inc/fuzoom.hxx b/sd/source/ui/inc/fuzoom.hxx
new file mode 100755
index 000000000000..b2436639336b
--- /dev/null
+++ b/sd/source/ui/inc/fuzoom.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 SD_FU_ZOOM_HXX
+#define SD_FU_ZOOM_HXX
+
+#ifndef _SV_POINTR_HXX //autogen
+#include <vcl/pointr.hxx>
+#endif
+#include "fupoor.hxx"
+
+namespace sd {
+
+extern sal_uInt16 SidArrayZoom[];
+
+class FuZoom
+ : public FuPoor
+{
+public:
+ TYPEINFO();
+
+ static FunctionReference Create( ViewShell* pViewSh, ::sd::Window* pWin, ::sd::View* pView, SdDrawDocument* pDoc, SfxRequest& rReq );
+
+ // Mouse- & Key-Events
+ virtual sal_Bool MouseMove(const MouseEvent& rMEvt);
+ virtual sal_Bool MouseButtonUp(const MouseEvent& rMEvt);
+ virtual sal_Bool MouseButtonDown(const MouseEvent& rMEvt);
+
+ virtual void Activate(); // Function aktivieren
+ virtual void Deactivate(); // Function deaktivieren
+
+protected:
+ virtual ~FuZoom (void);
+
+ Point aBeginPosPix;
+ Point aBeginPos;
+ Point aEndPos;
+ Rectangle aZoomRect;
+ sal_Bool bVisible;
+ sal_Bool bStartDrag;
+ Pointer aPtr;
+
+private:
+ FuZoom (
+ ViewShell* pViewSh,
+ ::sd::Window* pWin,
+ ::sd::View* pView,
+ SdDrawDocument* pDoc,
+ SfxRequest& rReq);
+};
+
+} // end of namespace sd
+
+#endif
+
diff --git a/sd/source/ui/inc/gluectrl.hxx b/sd/source/ui/inc/gluectrl.hxx
new file mode 100755
index 000000000000..f2fbe1ab307a
--- /dev/null
+++ b/sd/source/ui/inc/gluectrl.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 SD_GLUECTRL_HXX
+#define SD_GLUECTRL_HXX
+
+#include <vcl/lstbox.hxx>
+#include <sfx2/tbxctrl.hxx>
+
+/*************************************************************************
+|*
+|* GluePointEscDirLB
+|*
+\************************************************************************/
+class GlueEscDirLB : public ListBox
+{
+private:
+ ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame > m_xFrame;
+public:
+ GlueEscDirLB( Window* pParent,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& rFrame );
+ ~GlueEscDirLB();
+
+ virtual void Select();
+
+ void Fill();
+};
+
+/*************************************************************************
+|*
+|* Toolbox-Controller fuer Klebepunkte-Austrittsrichtung
+|*
+\************************************************************************/
+
+class SdTbxCtlGlueEscDir: public SfxToolBoxControl
+{
+private:
+ sal_uInt16 GetEscDirPos( sal_uInt16 nEscDir );
+
+public:
+ virtual void StateChanged( sal_uInt16 nSId, SfxItemState eState,
+ const SfxPoolItem* pState );
+ virtual Window* CreateItemWindow( Window *pParent );
+
+ SFX_DECL_TOOLBOX_CONTROL();
+
+ SdTbxCtlGlueEscDir( sal_uInt16 nSlotId, sal_uInt16 nId, ToolBox& rTbx );
+ ~SdTbxCtlGlueEscDir() {}
+};
+
+#endif // SD_GLUECTRL_HXX
+
diff --git a/sd/source/ui/inc/headerfooterdlg.hrc b/sd/source/ui/inc/headerfooterdlg.hrc
new file mode 100644
index 000000000000..d79874d42faa
--- /dev/null
+++ b/sd/source/ui/inc/headerfooterdlg.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 FL_INCLUDE_ON_PAGE 1
+#define CB_DATETIME 2
+#define RB_DATETIME_FIXED 3
+#define TB_DATETIME_FIXED 4
+#define RB_DATETIME_AUTOMATIC 5
+#define CB_DATETIME_FORMAT 6
+#define FT_DATETIME_LANGUAGE 7
+#define CB_DATETIME_LANGUAGE 8
+#define FL_FOOTER 9
+#define CB_FOOTER 10
+#define FT_FOOTER 11
+#define TB_FOOTER_FIXED 12
+#define FL_SLIDENUMBER 13
+#define CB_SLIDENUMBER 14
+#define FL_NOTONTITLE 15
+#define CB_NOTONTITLE 16
+#define BT_APPLYTOALL 17
+#define BT_APPLY 18
+#define BT_CANCEL 19
+#define BT_HELP 20
+#define FL_HEADER 21
+#define CB_HEADER 22
+#define FT_HEADER 23
+#define TB_HEADER_FIXED 24
+#define FL_DATETIME 25
+#define CT_PREVIEW 26
+#define STR_PAGE_NUMBER 27
+#define STR_INCLUDE_ON_PAGE 28
diff --git a/sd/source/ui/inc/headerfooterdlg.hxx b/sd/source/ui/inc/headerfooterdlg.hxx
new file mode 100755
index 000000000000..fa0c4d9282c0
--- /dev/null
+++ b/sd/source/ui/inc/headerfooterdlg.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 _SD_HEADERFOOTER_DIALOG_HXX
+#define _SD_HEADERFOOTER_DIALOG_HXX
+
+#include <vcl/tabdlg.hxx>
+#ifndef _SV_BUTTON_HXX //autogen
+#include <vcl/button.hxx>
+#endif
+#include <vcl/tabctrl.hxx>
+#include <vcl/tabpage.hxx>
+
+#include "headerfooterdlg.hrc"
+#include "sdpage.hxx"
+
+class SfxObjectShell;
+class SdUndoGroup;
+
+namespace sd
+{
+class ViewShell;
+
+class HeaderFooterTabPage;
+
+class HeaderFooterDialog : public TabDialog
+{
+private:
+ DECL_LINK( ActivatePageHdl, TabControl * );
+ DECL_LINK( DeactivatePageHdl, TabControl * );
+
+ TabControl maTabCtrl;
+
+ HeaderFooterTabPage* mpSlideTabPage;
+ HeaderFooterTabPage* mpNotesHandoutsTabPage;
+
+ HeaderFooterSettings maSlideSettings;
+ HeaderFooterSettings maNotesHandoutSettings;
+ bool mbNotOnTitle;
+
+ SdDrawDocument* mpDoc;
+ SdPage* mpCurrentPage;
+ ViewShell* mpViewShell;
+
+ void apply( bool bToAll, bool bForceSlides );
+ void change( SdUndoGroup* pUndoGroup, SdPage* pPage, const HeaderFooterSettings& rNewSettings );
+
+public:
+ HeaderFooterDialog( ViewShell* pViewShell, ::Window* pParent, SdDrawDocument* pDoc, SdPage* pCurrentPage );
+ ~HeaderFooterDialog();
+
+ void ApplyToAll( TabPage* pPage );
+ void Apply( TabPage* pPage );
+ void Cancel( TabPage* pPage );
+
+ virtual short Execute();
+};
+
+}
+
+#endif
+
diff --git a/sd/source/ui/inc/ins_paste.hrc b/sd/source/ui/inc/ins_paste.hrc
new file mode 100644
index 000000000000..500b152c08c8
--- /dev/null
+++ b/sd/source/ui/inc/ins_paste.hrc
@@ -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.
+ *
+ ************************************************************************/
+
+#define DLG_INSERT_PASTE 678
+
+#define BTN_OK 1
+#define BTN_CANCEL 1
+#define BTN_HELP 1
+
+#define FL_POSITION 1
+#define RB_BEFORE 1
+#define RB_AFTER 2
diff --git a/sd/source/ui/inc/ins_paste.hxx b/sd/source/ui/inc/ins_paste.hxx
new file mode 100755
index 000000000000..d2aacd9d992e
--- /dev/null
+++ b/sd/source/ui/inc/ins_paste.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 _SD_INS_PASTE_HXX_
+#define _SD_INS_PASTE_HXX_
+
+#include <vcl/button.hxx>
+#include <vcl/fixed.hxx>
+#include <vcl/dialog.hxx>
+#include "sdresid.hxx"
+
+// --------------------
+// - SdInsertPasteDlg -
+// --------------------
+
+class SdInsertPasteDlg : public ModalDialog
+{
+private:
+
+ FixedLine aFlPosition;
+ RadioButton aRbBefore;
+ RadioButton aRbAfter;
+ OKButton aBtnOK;
+ CancelButton aBtnCancel;
+ HelpButton aBtnHelp;
+
+public:
+
+ SdInsertPasteDlg( Window* pWindow );
+ ~SdInsertPasteDlg();
+
+ sal_Bool IsInsertBefore() const;
+};
+
+#endif // _SD_INS_PASTE_HXX_
diff --git a/sd/source/ui/inc/inspagob.hrc b/sd/source/ui/inc/inspagob.hrc
new file mode 100644
index 000000000000..bba29081f721
--- /dev/null
+++ b/sd/source/ui/inc/inspagob.hrc
@@ -0,0 +1,33 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General 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 DLG_INSERT_PAGES_OBJS 938
+#define BTN_OK 1
+#define BTN_CANCEL 1
+#define BTN_HELP 1
+#define LB_TREE 1
+#define CBX_LINK 1
+#define CBX_CHECK_MASTERS 2
diff --git a/sd/source/ui/inc/inspagob.hxx b/sd/source/ui/inc/inspagob.hxx
new file mode 100755
index 000000000000..3229d29a3c90
--- /dev/null
+++ b/sd/source/ui/inc/inspagob.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 _SD_INSPAGOB_HXX
+#define _SD_INSPAGOB_HXX
+
+#ifndef _SV_BUTTON_HXX //autogen
+#include <vcl/button.hxx>
+#endif
+#include <vcl/dialog.hxx>
+#include "sdtreelb.hxx"
+
+class SdDrawDocument;
+
+//------------------------------------------------------------------------
+
+class SdInsertPagesObjsDlg : public ModalDialog
+{
+private:
+ SdPageObjsTLB aLbTree;
+ CheckBox aCbxLink;
+ CheckBox aCbxMasters;
+ OKButton aBtnOk;
+ CancelButton aBtnCancel;
+ HelpButton aBtnHelp;
+
+ SfxMedium* pMedium;
+ const SdDrawDocument* mpDoc;
+ const String& rName;
+
+ void Reset();
+ DECL_LINK( SelectObjectHdl, void * );
+
+public:
+ SdInsertPagesObjsDlg( Window* pParent,
+ const SdDrawDocument* pDoc,
+ SfxMedium* pSfxMedium,
+ const String& rFileName );
+ ~SdInsertPagesObjsDlg();
+
+ List* GetList( sal_uInt16 nType );
+ sal_Bool IsLink();
+ sal_Bool IsRemoveUnnessesaryMasterPages() const;
+};
+
+
+#endif // _SD_INSPAGOB_HXX
diff --git a/sd/source/ui/inc/layeroptionsdlg.hrc b/sd/source/ui/inc/layeroptionsdlg.hrc
new file mode 100644
index 000000000000..63bb1b4105e0
--- /dev/null
+++ b/sd/source/ui/inc/layeroptionsdlg.hrc
@@ -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.
+ *
+ ************************************************************************/
+#include <sfx2/sfx.hrc>
+
+#define DLG_INSERT_LAYER 259
+
+#define FT_NAME 1
+#define EDT_NAME 2
+#define FT_TITLE 3
+#define EDT_TITLE 4
+#define FT_DESCRIPTION 5
+#define EDT_DESCRIPTION 6
+#define CBX_VISIBLE 7
+#define CBX_PRINTABLE 8
+#define CBX_LOCKED 9
+#define FL_SEPARATOR_B 10
+
+#define BTN_HELP 1
+#define BTN_OK 1
+#define BTN_CANCEL 1
diff --git a/sd/source/ui/inc/layeroptionsdlg.hxx b/sd/source/ui/inc/layeroptionsdlg.hxx
new file mode 100644
index 000000000000..a2aefd9e6f2a
--- /dev/null
+++ b/sd/source/ui/inc/layeroptionsdlg.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 _SD_LAYER_DLG_HXX_
+#define _SD_LAYER_DLG_HXX_
+
+#include <vcl/edit.hxx>
+#include <vcl/fixed.hxx>
+#include <vcl/dialog.hxx>
+#include <vcl/button.hxx>
+#include <svtools/svmedit.hxx>
+#include "sdresid.hxx"
+#include "strings.hrc"
+
+class SfxItemSet;
+
+class SdInsertLayerDlg : public ModalDialog
+{
+private:
+ FixedText maFtName;
+ Edit maEdtName;
+ FixedText maFtTitle;
+ Edit maEdtTitle;
+ FixedText maFtDesc;
+ MultiLineEdit maEdtDesc;
+ CheckBox maCbxVisible;
+ CheckBox maCbxPrintable;
+ CheckBox maCbxLocked;
+ FixedLine maFixedLine;
+ HelpButton maBtnHelp;
+ OKButton maBtnOK;
+ CancelButton maBtnCancel;
+
+ const SfxItemSet& mrOutAttrs;
+
+public:
+
+ SdInsertLayerDlg( Window* pWindow, const SfxItemSet& rInAttrs, bool bDeletable, String aStr );
+ void GetAttr( SfxItemSet& rOutAttrs );
+};
+
+#endif // _SD_LAYER_DLG_HXX_
diff --git a/sd/source/ui/inc/masterlayoutdlg.hrc b/sd/source/ui/inc/masterlayoutdlg.hrc
new file mode 100644
index 000000000000..635b5cbdef10
--- /dev/null
+++ b/sd/source/ui/inc/masterlayoutdlg.hrc
@@ -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.
+ *
+ ************************************************************************/
+
+#define FL_PLACEHOLDERS 1
+#define CB_DATE 2
+#define CB_PAGE_NUMBER 3
+#define CB_HEADER 4
+#define CB_FOOTER 5
+#define BT_OK 6
+#define BT_CANCEL 7
+#define STR_SLIDE_NUMBER 8
+#define STR_MASTER_LAYOUT_TITLE 9
diff --git a/sd/source/ui/inc/masterlayoutdlg.hxx b/sd/source/ui/inc/masterlayoutdlg.hxx
new file mode 100755
index 000000000000..f75635ad2755
--- /dev/null
+++ b/sd/source/ui/inc/masterlayoutdlg.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 _SD_MASTERLAYOUT_DIALOG_HXX
+#define _SD_MASTERLAYOUT_DIALOG_HXX
+
+#include <vcl/dialog.hxx>
+
+#ifndef _SV_BUTTON_HXX //autogen
+#include <vcl/button.hxx>
+#endif
+#include <vcl/fixed.hxx>
+
+#include "sdpage.hxx"
+
+class SdDrawDocument;
+
+namespace sd
+{
+
+class MasterLayoutDialog : public ModalDialog
+{
+private:
+ SdDrawDocument* mpDoc;
+ SdPage* mpCurrentPage;
+
+ FixedLine maFLPlaceholders;
+ CheckBox maCBDate;
+ CheckBox maCBPageNumber;
+ CheckBox maCBHeader;
+ CheckBox maCBFooter;
+
+ OKButton maPBOK;
+ CancelButton maPBCancel;
+
+ sal_Bool mbOldHeader;
+ sal_Bool mbOldFooter;
+ sal_Bool mbOldDate;
+ sal_Bool mbOldPageNumber;
+
+ void applyChanges();
+ void remove( PresObjKind eKind );
+ void create( PresObjKind eKind );
+
+public:
+ MasterLayoutDialog( Window* pParent, SdDrawDocument* pDoc, SdPage* pCurrentPage );
+ ~MasterLayoutDialog();
+
+ virtual short Execute();
+};
+
+}
+
+#endif // _SD_MASTERLAYOUT_DIALOG_HXX
+
diff --git a/sd/source/ui/inc/morphdlg.hrc b/sd/source/ui/inc/morphdlg.hrc
new file mode 100644
index 000000000000..f9a23c681d7e
--- /dev/null
+++ b/sd/source/ui/inc/morphdlg.hrc
@@ -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.
+ *
+ ************************************************************************/
+#define DLG_MORPH 653
+#define BTN_OK 1
+#define BTN_CANCEL 1
+#define BTN_HELP 1
+#define GRP_PRESET 1
+#define FT_STEPS 1
+#define MTF_STEPS 1
+#define CBX_ATTRIBUTES 1
+#define CBX_ORIENTATION 2
diff --git a/sd/source/ui/inc/morphdlg.hxx b/sd/source/ui/inc/morphdlg.hxx
new file mode 100755
index 000000000000..85f18f4c8787
--- /dev/null
+++ b/sd/source/ui/inc/morphdlg.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 SD_MORPH_DLG_HXX
+#define SD_MORPH_DLG_HXX
+
+#include <vcl/button.hxx>
+#include <vcl/group.hxx>
+#include <vcl/fixed.hxx>
+#include <vcl/field.hxx>
+#include <vcl/dialog.hxx>
+
+class SdrObject;
+
+namespace sd {
+
+/******************************************************************************
+|*
+|*
+|*
+\******************************************************************************/
+
+class MorphDlg
+ : public ModalDialog
+{
+public:
+ MorphDlg (
+ ::Window* pParent,
+ const SdrObject* pObj1,
+ const SdrObject* pObj2);
+ virtual ~MorphDlg (void);
+
+ void SaveSettings() const;
+ sal_uInt16 GetFadeSteps() const { return (sal_uInt16) aMtfSteps.GetValue(); }
+ sal_Bool IsAttributeFade() const { return aCbxAttributes.IsChecked(); }
+ sal_Bool IsOrientationFade() const { return aCbxOrientation.IsChecked(); }
+
+private:
+ FixedLine aGrpPreset;
+ FixedText aFtSteps;
+ MetricField aMtfSteps;
+ CheckBox aCbxAttributes;
+ CheckBox aCbxOrientation;
+ OKButton aBtnOK;
+ CancelButton aBtnCancel;
+ HelpButton aBtnHelp;
+ SdrObject* pSdrObj1;
+ SdrObject* pSdrObj2;
+
+ void LoadSettings();
+};
+
+
+#endif
+
+
+} // end of namespace sd
diff --git a/sd/source/ui/inc/navigatr.hrc b/sd/source/ui/inc/navigatr.hrc
new file mode 100755
index 000000000000..f12932255fe5
--- /dev/null
+++ b/sd/source/ui/inc/navigatr.hrc
@@ -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.
+ *
+ ************************************************************************/
+#define FLT_NAVIGATOR 575
+//IAccessibility2 Implementation 2009-----
+#define STR_OBJECTS_TREE (FLT_NAVIGATOR+1)
+//-----IAccessibility2 Implementation 2009
+#define TLB_OBJECTS 1
+#define TBI_PEN 2
+#define TBI_FIRST 3
+#define TBI_PREVIOUS 4
+#define TBI_NEXT 5
+#define TBI_LAST 6
+#define TBI_DRAGTYPE 7
+#define TBI_EMBEDDED 8
+#define TBI_LINK 9
+#define TBI_HYPERLINK 10
+#define TBI_SHAPE_FILTER 11
+
+#define LB_DOCS 1
+
+#define IL_NAVIGATR 333
+#define ILH_NAVIGATR 444
+//IAccessibility2 Implementation 2009-----
+#define STR_DRAGMODE 1
+//-----IAccessibility2 Implementation 2009
+
diff --git a/sd/source/ui/inc/navigatr.hxx b/sd/source/ui/inc/navigatr.hxx
new file mode 100755
index 000000000000..ccbbe1dfad3b
--- /dev/null
+++ b/sd/source/ui/inc/navigatr.hxx
@@ -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.
+ *
+ ************************************************************************/
+
+#ifndef SD_NAVIGATOR_HXX
+#define SD_NAVIGATOR_HXX
+
+#include <vcl/window.hxx>
+#include <vcl/lstbox.hxx>
+#ifndef _TOOLBOX_HXX //autogen
+#include <vcl/toolbox.hxx>
+#endif
+#include <sfx2/ctrlitem.hxx>
+#include "sdtreelb.hxx"
+#include "pres.hxx"
+
+#define NAVSTATE_NONE 0x00000000
+
+#define NAVBTN_PEN_ENABLED 0x00000010
+#define NAVBTN_PEN_DISABLED 0x00000020
+#define NAVBTN_PEN_CHECKED 0x00000040
+#define NAVBTN_PEN_UNCHECKED 0x00000080
+
+#define NAVTLB_UPDATE 0x00000100
+
+#define NAVBTN_FIRST_ENABLED 0x00001000
+#define NAVBTN_FIRST_DISABLED 0x00002000
+#define NAVBTN_PREV_ENABLED 0x00004000
+#define NAVBTN_PREV_DISABLED 0x00008000
+
+#define NAVBTN_LAST_ENABLED 0x00010000
+#define NAVBTN_LAST_DISABLED 0x00020000
+#define NAVBTN_NEXT_ENABLED 0x00040000
+#define NAVBTN_NEXT_DISABLED 0x00080000
+
+// forward
+namespace sd {
+class DrawDocShell;
+class NavigatorChildWindow;
+class View;
+}
+class Menu;
+class SdNavigatorControllerItem;
+class SdPageNameControllerItem;
+
+//------------------------------------------------------------------------
+
+class NavDocInfo
+{
+public:
+ NavDocInfo() { mpDocShell = NULL; }
+
+ sal_Bool HasName() { return( (sal_Bool) bName ); }
+ sal_Bool IsActive() { return( (sal_Bool) bActive ); }
+
+ void SetName( sal_Bool bOn = sal_True ) { bName = bOn; }
+ void SetActive( sal_Bool bOn = sal_True ) { bActive = bOn; }
+
+private:
+ friend class SdNavigatorWin;
+ sal_Bool bName : 1;
+ sal_Bool bActive : 1;
+ ::sd::DrawDocShell* mpDocShell;
+};
+
+//------------------------------------------------------------------------
+
+class SdNavigatorWin
+ : public Window
+{
+public:
+ SdNavigatorWin(
+ ::Window* pParent,
+ ::sd::NavigatorChildWindow* pChildWinContext,
+ const SdResId& rSdResId,
+ SfxBindings* pBindings );
+ virtual ~SdNavigatorWin();
+
+ virtual void KeyInput( const KeyEvent& rKEvt );
+
+ void InitTreeLB( const SdDrawDocument* pDoc );
+ void RefreshDocumentLB( const String* pDocName = NULL );
+
+ sal_Bool InsertFile(const String& rFileName);
+
+ NavigatorDragType GetNavigatorDragType();
+ void SetNavigatorDragType(NavigatorDragType eType) { meDragType = eType; }
+
+protected:
+ virtual void Resize();
+ virtual long Notify(NotifyEvent& rNEvt);
+
+
+private:
+ friend class ::sd::NavigatorChildWindow;
+ friend class SdNavigatorControllerItem;
+ friend class SdPageNameControllerItem;
+
+ ToolBox maToolbox;
+ SdPageObjsTLB maTlbObjects;
+ ListBox maLbDocs;
+
+ ::sd::NavigatorChildWindow* mpChildWinContext;
+ Size maSize;
+ Size maMinSize;
+// Size maFltWinSize;
+ sal_Bool mbDocImported;
+ String maDropFileName;
+ NavigatorDragType meDragType;
+ List* mpDocList;
+ SfxBindings* mpBindings;
+ SdNavigatorControllerItem* mpNavigatorCtrlItem;
+ SdPageNameControllerItem* mpPageNameCtrlItem;
+
+ ImageList maImageList;
+ ImageList maImageListH;
+
+ /** This flag controls whether all shapes or only the named shapes are
+ shown.
+ */
+ bool mbShowAllShapes;
+
+ sal_uInt16 GetDragTypeSdResId( NavigatorDragType eDT, sal_Bool bImage = sal_False );
+ NavDocInfo* GetDocInfo();
+
+ DECL_LINK( GetFocusObjectsHdl, void * );
+ DECL_LINK( SelectToolboxHdl, void * );
+ DECL_LINK( ClickToolboxHdl, ToolBox * );
+ DECL_LINK( DropdownClickToolBoxHdl, ToolBox * );
+ DECL_LINK( ClickPageHdl, void * );
+ DECL_LINK( ClickObjectHdl, void * );
+ DECL_LINK( SelectDocumentHdl, void * );
+ DECL_LINK( MenuSelectHdl, Menu * );
+ DECL_LINK( ShapeFilterCallback, Menu * );
+
+ virtual void DataChanged( const DataChangedEvent& rDCEvt );
+ void SetDragImage();
+ void ApplyImageList();
+};
+
+
+
+
+/*************************************************************************
+|*
+|* ControllerItem fuer Navigator
+|*
+\************************************************************************/
+
+class SdNavigatorControllerItem : public SfxControllerItem
+{
+public:
+ SdNavigatorControllerItem( sal_uInt16, SdNavigatorWin*, SfxBindings* );
+
+protected:
+ virtual void StateChanged( sal_uInt16 nSId, SfxItemState eState,
+ const SfxPoolItem* pState );
+
+private:
+ SdNavigatorWin* pNavigatorWin;
+};
+
+
+
+/*************************************************************************
+|*
+|* ControllerItem fuer Navigator zum Anzeigen der Seite in der TreeLB
+|*
+\************************************************************************/
+
+class SdPageNameControllerItem : public SfxControllerItem
+{
+public:
+ SdPageNameControllerItem( sal_uInt16, SdNavigatorWin*, SfxBindings* );
+
+protected:
+ virtual void StateChanged( sal_uInt16 nSId, SfxItemState eState,
+ const SfxPoolItem* pState );
+
+private:
+ SdNavigatorWin* pNavigatorWin;
+};
+
+#endif
diff --git a/sd/source/ui/inc/optdlg.hrc b/sd/source/ui/inc/optdlg.hrc
new file mode 100644
index 000000000000..6c50299c5ab2
--- /dev/null
+++ b/sd/source/ui/inc/optdlg.hrc
@@ -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.
+ *
+ ************************************************************************/
+#define TAB_DLG_IMPRESS_OPTIONS 842
+#define TAB_DLG_DRAW_OPTIONS 843
+
+#define TP_GENERAL 1
+#define TP_SAVE 2
+#define TP_PATH 3
+#define TP_PRINT 4
+
diff --git a/sd/source/ui/inc/optdlg.hxx b/sd/source/ui/inc/optdlg.hxx
new file mode 100755
index 000000000000..4cba8494261a
--- /dev/null
+++ b/sd/source/ui/inc/optdlg.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 SD_OPTDLG_HXX
+#define SD_OPTDLG_HXX
+
+#include <sfx2/tabdlg.hxx>
+#include "pres.hxx"
+
+class SfxItemSet;
+
+
+class SdOptionsDlg : public SfxTabDialog
+{
+private:
+ DocumentType meDocType;
+
+public:
+ SdOptionsDlg( Window* pParent, const SfxItemSet& rInAttrs,
+ DocumentType eDocType );
+ ~SdOptionsDlg();
+
+protected:
+
+ virtual void PageCreated( sal_uInt16 nId, SfxTabPage &rPage );
+// virtual SfxItemSet* CreateInputItemSet( sal_uInt16 nPageId );
+};
+
+
+
+#endif // SD_OPTDLG_HXX
+
+
diff --git a/sd/source/ui/inc/optsitem.hxx b/sd/source/ui/inc/optsitem.hxx
new file mode 100755
index 000000000000..bcc225a91621
--- /dev/null
+++ b/sd/source/ui/inc/optsitem.hxx
@@ -0,0 +1,688 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef _SD_OPTSITEM_HXX
+#define _SD_OPTSITEM_HXX
+
+#include <unotools/configitem.hxx>
+#include <sfx2/module.hxx>
+#include <sfx2/app.hxx>
+#include <sfx2/sfxsids.hrc>
+#include <svx/optgrid.hxx>
+#include <svx/dlgutil.hxx>
+#include "sddllapi.h"
+
+// -----------------
+// - Option ranges -
+// -----------------
+
+#define SD_OPTIONS_NONE 0x00000000
+#define SD_OPTIONS_ALL 0xffffffff
+
+#define SD_OPTIONS_LAYOUT 0x00000001
+#define SD_OPTIONS_CONTENTS 0x00000002
+#define SD_OPTIONS_MISC 0x00000004
+#define SD_OPTIONS_SNAP 0x00000008
+#define SD_OPTIONS_ZOOM 0x00000010
+#define SD_OPTIONS_GRID 0x00000020
+#define SD_OPTIONS_PRINT 0x00000040
+
+// ------------
+// - Forwards -
+// ------------
+
+class SfxConfigItem;
+class SdOptions;
+
+namespace sd {
+class FrameView;
+}
+
+// -----------------
+// - SdOptionsItem -
+// -----------------
+
+class SdOptionsGeneric;
+
+class SD_DLLPUBLIC SdOptionsItem : public ::utl::ConfigItem
+{
+
+private:
+
+ const SdOptionsGeneric& mrParent;
+
+
+public:
+
+ SdOptionsItem( const SdOptionsGeneric& rParent, const ::rtl::OUString rSubTree );
+ virtual ~SdOptionsItem();
+
+ virtual void Commit();
+ virtual void Notify( const com::sun::star::uno::Sequence<rtl::OUString>& aPropertyNames);
+
+ ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any > GetProperties(
+ const ::com::sun::star::uno::Sequence< ::rtl::OUString >& rNames );
+ sal_Bool PutProperties( const com::sun::star::uno::Sequence< rtl::OUString >& rNames,
+ const com::sun::star::uno::Sequence< com::sun::star::uno::Any>& rValues );
+ void SetModified();
+};
+
+// --------------------
+// - SdOptionsGeneric -
+// --------------------
+
+class SD_DLLPUBLIC SdOptionsGeneric
+{
+friend class SdOptionsItem;
+
+private:
+
+ ::rtl::OUString maSubTree;
+ SdOptionsItem* mpCfgItem;
+ sal_uInt16 mnConfigId;
+ sal_Bool mbInit : 1;
+ sal_Bool mbEnableModify : 1;
+
+ SD_DLLPRIVATE void Commit( SdOptionsItem& rCfgItem ) const;
+ SD_DLLPRIVATE ::com::sun::star::uno::Sequence< ::rtl::OUString > GetPropertyNames() const;
+
+protected:
+
+ void Init() const;
+ void OptionsChanged() { if( mpCfgItem && mbEnableModify ) mpCfgItem->SetModified(); }
+
+protected:
+
+ virtual void GetPropNameArray( const char**& ppNames, sal_uLong& rCount ) const = 0;
+ virtual sal_Bool ReadData( const ::com::sun::star::uno::Any* pValues ) = 0;
+ virtual sal_Bool WriteData( ::com::sun::star::uno::Any* pValues ) const = 0;
+
+public:
+
+ SdOptionsGeneric( sal_uInt16 nConfigId, const ::rtl::OUString& rSubTree );
+ virtual ~SdOptionsGeneric();
+
+ const ::rtl::OUString& GetSubTree() const { return maSubTree; }
+ sal_uInt16 GetConfigId() const { return mnConfigId; }
+
+ void EnableModify( sal_Bool bModify ) { mbEnableModify = bModify; }
+
+ void Store();
+
+
+ static bool isMetricSystem();
+};
+
+// -------------------
+// - SdOptionsLayout -
+// -------------------
+
+class SD_DLLPUBLIC SdOptionsLayout : public SdOptionsGeneric
+{
+private:
+
+ sal_Bool bRuler : 1; // Layout/Display/Ruler
+ sal_Bool bMoveOutline : 1; // Layout/Display/Contur
+ sal_Bool bDragStripes : 1; // Layout/Display/Guide
+ sal_Bool bHandlesBezier : 1; // Layout/Display/Bezier
+ sal_Bool bHelplines : 1; // Layout/Display/Helpline
+ sal_uInt16 nMetric; // Layout/Other/MeasureUnit
+ sal_uInt16 nDefTab; // Layout/Other/TabStop
+
+protected:
+
+ virtual void GetPropNameArray( const char**& ppNames, sal_uLong& rCount ) const;
+ virtual sal_Bool ReadData( const ::com::sun::star::uno::Any* pValues );
+ virtual sal_Bool WriteData( ::com::sun::star::uno::Any* pValues ) const;
+
+public:
+ SdOptionsLayout( sal_uInt16 nConfigId, sal_Bool bUseConfig );
+ virtual ~SdOptionsLayout() {}
+
+ sal_Bool operator==( const SdOptionsLayout& rOpt ) const;
+
+ sal_Bool IsRulerVisible() const { Init(); return (sal_Bool) bRuler; }
+ sal_Bool IsMoveOutline() const { Init(); return (sal_Bool) bMoveOutline; }
+ sal_Bool IsDragStripes() const { Init(); return (sal_Bool) bDragStripes; }
+ sal_Bool IsHandlesBezier() const { Init(); return (sal_Bool) bHandlesBezier; }
+ sal_Bool IsHelplines() const { Init(); return (sal_Bool) bHelplines; }
+ sal_uInt16 GetMetric() const { Init(); return( ( 0xffff == nMetric ) ? (sal_uInt16)SfxModule::GetCurrentFieldUnit() : nMetric ); }
+ sal_uInt16 GetDefTab() const { Init(); return nDefTab; }
+
+ void SetRulerVisible( sal_Bool bOn = sal_True ) { if( bRuler != bOn ) { OptionsChanged(); bRuler = bOn; } }
+ void SetMoveOutline( sal_Bool bOn = sal_True ) { if( bMoveOutline != bOn ) { OptionsChanged(); bMoveOutline = bOn; } }
+ void SetDragStripes( sal_Bool bOn = sal_True ) { if( bDragStripes != bOn ) { OptionsChanged(); bDragStripes = bOn; } }
+ void SetHandlesBezier( sal_Bool bOn = sal_True ) { if( bHandlesBezier != bOn ) { OptionsChanged(); bHandlesBezier = bOn; } }
+ void SetHelplines( sal_Bool bOn = sal_True ) { if( bHelplines != bOn ) { OptionsChanged(); bHelplines = bOn; } }
+ void SetMetric( sal_uInt16 nInMetric ) { if( nMetric != nInMetric ) { OptionsChanged(); nMetric = nInMetric; } }
+ void SetDefTab( sal_uInt16 nTab ) { if( nDefTab != nTab ) { OptionsChanged(); nDefTab = nTab; } }
+};
+
+// -----------------------------------------------------------------------------
+
+class SD_DLLPUBLIC SdOptionsLayoutItem : public SfxPoolItem
+{
+public:
+
+ SdOptionsLayoutItem( sal_uInt16 nWhich);
+ SdOptionsLayoutItem( sal_uInt16 nWhich, SdOptions* pOpts, ::sd::FrameView* pView = NULL );
+
+ virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const;
+ virtual int operator==( const SfxPoolItem& ) const;
+
+ void SetOptions( SdOptions* pOpts ) const;
+
+ SdOptionsLayout& GetOptionsLayout() { return maOptionsLayout; }
+private:
+ SdOptionsLayout maOptionsLayout;
+};
+
+// ---------------------
+// - SdOptionsContents -
+// ---------------------
+
+class SD_DLLPUBLIC SdOptionsContents : public SdOptionsGeneric
+{
+private:
+protected:
+
+ virtual void GetPropNameArray( const char**& ppNames, sal_uLong& rCount ) const;
+ virtual sal_Bool ReadData( const ::com::sun::star::uno::Any* pValues );
+ virtual sal_Bool WriteData( ::com::sun::star::uno::Any* pValues ) const;
+
+public:
+
+ SdOptionsContents( sal_uInt16 nConfigId, sal_Bool bUseConfig );
+ virtual ~SdOptionsContents() {}
+
+ sal_Bool operator==( const SdOptionsContents& rOpt ) const;
+};
+
+// -----------------------------------------------------------------------------
+
+class SD_DLLPUBLIC SdOptionsContentsItem : public SfxPoolItem
+{
+public:
+
+ SdOptionsContentsItem( sal_uInt16 nWhich, SdOptions* pOpts, ::sd::FrameView* pView = NULL );
+
+ virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const;
+ virtual int operator==( const SfxPoolItem& ) const;
+
+ void SetOptions( SdOptions* pOpts ) const;
+
+ SdOptionsContents& GetOptionsContents() { return maOptionsContents; }
+private:
+ SdOptionsContents maOptionsContents;
+};
+
+// -----------------
+// - SdOptionsMisc -
+// -----------------
+
+class SD_DLLPUBLIC SdOptionsMisc : public SdOptionsGeneric
+{
+private:
+
+ // #97016#
+ sal_uLong nDefaultObjectSizeWidth;
+ sal_uLong nDefaultObjectSizeHeight;
+
+ sal_Bool bStartWithTemplate : 1; // Misc/NewDoc/AutoPilot
+ sal_Bool bMarkedHitMovesAlways : 1; // Misc/ObjectMoveable
+ sal_Bool bMoveOnlyDragging : 1; // Currently, not in use !!!
+ sal_Bool bCrookNoContortion : 1; // Misc/NoDistort
+ sal_Bool bQuickEdit : 1; // Misc/TextObject/QuickEditing
+ sal_Bool bMasterPageCache : 1; // Misc/BackgroundCache
+ sal_Bool bDragWithCopy : 1; // Misc/CopyWhileMoving
+ sal_Bool bPickThrough : 1; // Misc/TextObject/Selectable
+ sal_Bool bBigHandles : 1; // Misc/BigHandles
+ sal_Bool bDoubleClickTextEdit : 1; // Misc/DclickTextedit
+ sal_Bool bClickChangeRotation : 1; // Misc/RotateClick
+ sal_Bool bStartWithActualPage : 1; // Misc/Start/CurrentPage
+ sal_Bool bSolidDragging : 1; // Misc/ModifyWithAttributes
+ sal_Bool bSolidMarkHdl : 1; // /Misc/SimpleHandles
+ sal_Bool bSummationOfParagraphs : 1; // misc/SummationOfParagraphs
+ // #90356#
+ sal_Bool bShowUndoDeleteWarning : 1; // Misc/ShowUndoDeleteWarning
+ // #i75315#
+ sal_Bool bSlideshowRespectZOrder : 1; // Misc/SlideshowRespectZOrder
+ sal_Bool bShowComments : 1; // Misc/ShowComments
+
+ sal_Bool bPreviewNewEffects;
+ sal_Bool bPreviewChangedEffects;
+ sal_Bool bPreviewTransitions;
+
+ sal_Int32 mnDisplay;
+
+ sal_Int32 mnPenColor;
+ double mnPenWidth;
+
+ /** This value controls the device to use for formatting documents.
+ The currently supported values are 0 for the current printer or 1
+ for the printer independent virtual device the can be retrieved from
+ the modules.
+ */
+ sal_uInt16 mnPrinterIndependentLayout; // Misc/Compatibility/PrinterIndependentLayout
+// Misc
+
+protected:
+
+ virtual void GetPropNameArray( const char**& ppNames, sal_uLong& rCount ) const;
+ virtual sal_Bool ReadData( const ::com::sun::star::uno::Any* pValues );
+ virtual sal_Bool WriteData( ::com::sun::star::uno::Any* pValues ) const;
+
+public:
+
+ SdOptionsMisc( sal_uInt16 nConfigId, sal_Bool bUseConfig );
+ virtual ~SdOptionsMisc() {}
+
+ sal_Bool operator==( const SdOptionsMisc& rOpt ) const;
+
+ sal_Bool IsStartWithTemplate() const { Init(); return (sal_Bool) bStartWithTemplate; }
+ sal_Bool IsMarkedHitMovesAlways() const { Init(); return (sal_Bool) bMarkedHitMovesAlways; }
+ sal_Bool IsMoveOnlyDragging() const { Init(); return (sal_Bool) bMoveOnlyDragging; }
+ sal_Bool IsCrookNoContortion() const { Init(); return (sal_Bool) bCrookNoContortion; }
+ sal_Bool IsQuickEdit() const { Init(); return (sal_Bool) bQuickEdit; }
+ sal_Bool IsMasterPagePaintCaching() const { Init(); return (sal_Bool) bMasterPageCache; }
+ sal_Bool IsDragWithCopy() const { Init(); return (sal_Bool) bDragWithCopy; }
+ sal_Bool IsPickThrough() const { Init(); return (sal_Bool) bPickThrough; }
+ sal_Bool IsBigHandles() const { Init(); return (sal_Bool) bBigHandles; }
+ sal_Bool IsDoubleClickTextEdit() const { Init(); return (sal_Bool) bDoubleClickTextEdit; }
+ sal_Bool IsClickChangeRotation() const { Init(); return (sal_Bool) bClickChangeRotation; }
+ sal_Bool IsStartWithActualPage() const { Init(); return (sal_Bool) bStartWithActualPage; }
+ sal_Bool IsSolidDragging() const { Init(); return (sal_Bool) bSolidDragging; }
+ sal_Bool IsSolidMarkHdl() const { Init(); return (sal_Bool) bSolidMarkHdl; }
+ sal_Bool IsSummationOfParagraphs() const { Init(); return bSummationOfParagraphs != 0; };
+
+ /** Return the currently selected printer independent layout mode.
+ @return
+ Returns 1 for printer independent layout enabled and 0 when it
+ is disabled. Other values are reserved for future use.
+ */
+ sal_uInt16 GetPrinterIndependentLayout() const { Init(); return mnPrinterIndependentLayout; };
+ // #90356#
+ sal_Bool IsShowUndoDeleteWarning() const { Init(); return (sal_Bool) bShowUndoDeleteWarning; }
+ sal_Bool IsSlideshowRespectZOrder() const { Init(); return (sal_Bool) bSlideshowRespectZOrder; }
+ // #97016#
+ sal_uLong GetDefaultObjectSizeWidth() const { Init(); return nDefaultObjectSizeWidth; }
+ sal_uLong GetDefaultObjectSizeHeight() const { Init(); return nDefaultObjectSizeHeight; }
+
+ sal_Bool IsPreviewNewEffects() const { Init(); return bPreviewNewEffects; }
+ sal_Bool IsPreviewChangedEffects() const { Init(); return bPreviewChangedEffects; }
+ sal_Bool IsPreviewTransitions() const { Init(); return bPreviewTransitions; }
+
+ sal_Int32 GetDisplay() const { Init(); return mnDisplay; }
+ void SetDisplay( sal_Int32 nDisplay = 0 ) { if( mnDisplay != nDisplay ) { OptionsChanged(); mnDisplay = nDisplay; } }
+
+ sal_Int32 GetPresentationPenColor() const { Init(); return mnPenColor; }
+ void SetPresentationPenColor( sal_Int32 nPenColor ) { if( mnPenColor != nPenColor ) { OptionsChanged(); mnPenColor = nPenColor; } }
+
+ double GetPresentationPenWidth() const { Init(); return mnPenWidth; }
+ void SetPresentationPenWidth( double nPenWidth ) { if( mnPenWidth != nPenWidth ) { OptionsChanged(); mnPenWidth = nPenWidth; } }
+
+ void SetStartWithTemplate( sal_Bool bOn = sal_True ) { if( bStartWithTemplate != bOn ) { OptionsChanged(); bStartWithTemplate = bOn; } }
+ void SetMarkedHitMovesAlways( sal_Bool bOn = sal_True ) { if( bMarkedHitMovesAlways != bOn ) { OptionsChanged(); bMarkedHitMovesAlways = bOn; } }
+ void SetMoveOnlyDragging( sal_Bool bOn = sal_True ) { if( bMoveOnlyDragging != bOn ) { OptionsChanged(); bMoveOnlyDragging = bOn; } }
+ void SetCrookNoContortion( sal_Bool bOn = sal_True ) { if( bCrookNoContortion != bOn ) { OptionsChanged(); bCrookNoContortion = bOn; } }
+ void SetQuickEdit( sal_Bool bOn = sal_True ) { if( bQuickEdit != bOn ) { OptionsChanged(); bQuickEdit = bOn; } }
+ void SetMasterPagePaintCaching( sal_Bool bOn = sal_True ) { if( bMasterPageCache != bOn ) { OptionsChanged(); bMasterPageCache = bOn; } }
+ void SetDragWithCopy( sal_Bool bOn = sal_True ) { if( bDragWithCopy != bOn ) { OptionsChanged(); bDragWithCopy = bOn; } }
+ void SetPickThrough( sal_Bool bOn = sal_True ) { if( bPickThrough != bOn ) { OptionsChanged(); bPickThrough = bOn; } }
+ void SetBigHandles( sal_Bool bOn = sal_True ) { if( bBigHandles != bOn ) { OptionsChanged(); bBigHandles = bOn; } }
+ void SetDoubleClickTextEdit( sal_Bool bOn = sal_True ) { if( bDoubleClickTextEdit != bOn ) { OptionsChanged(); bDoubleClickTextEdit = bOn; } }
+ void SetClickChangeRotation( sal_Bool bOn = sal_True ) { if( bClickChangeRotation != bOn ) { OptionsChanged(); bClickChangeRotation = bOn; } }
+ void SetStartWithActualPage( sal_Bool bOn = sal_True ) { if( bStartWithActualPage != bOn ) { OptionsChanged(); bStartWithActualPage = bOn; } }
+ void SetSummationOfParagraphs( sal_Bool bOn = sal_True ){ if ( bOn != bSummationOfParagraphs ) { OptionsChanged(); bSummationOfParagraphs = bOn; } }
+ /** Set the printer independent layout mode.
+ @param nOn
+ The default value is to switch printer independent layout on,
+ hence the parameters name. Use 0 for turning it off. Other
+ values are reserved for future use.
+ */
+ void SetPrinterIndependentLayout (sal_uInt16 nOn = 1 ){ if ( nOn != mnPrinterIndependentLayout ) { OptionsChanged(); mnPrinterIndependentLayout = nOn; } }
+ void SetSolidDragging( sal_Bool bOn = sal_True ) { if( bSolidDragging != bOn ) { OptionsChanged(); bSolidDragging = bOn; } }
+ void SetSolidMarkHdl( sal_Bool bOn = sal_True ) { if( bSolidMarkHdl != bOn ) { OptionsChanged(); bSolidMarkHdl = bOn; } }
+ // #90356#
+ void SetShowUndoDeleteWarning( sal_Bool bOn = sal_True ) { if( bShowUndoDeleteWarning != bOn ) { OptionsChanged(); bShowUndoDeleteWarning = bOn; } }
+ void SetSlideshowRespectZOrder( sal_Bool bOn = sal_True ) { if( bSlideshowRespectZOrder != bOn ) { OptionsChanged(); bSlideshowRespectZOrder = bOn; } }
+ // #97016#
+ void SetDefaultObjectSizeWidth( sal_uLong nWidth ) { if( nDefaultObjectSizeWidth != nWidth ) { OptionsChanged(); nDefaultObjectSizeWidth = nWidth; } }
+ void SetDefaultObjectSizeHeight( sal_uLong nHeight ) { if( nDefaultObjectSizeHeight != nHeight ) { OptionsChanged(); nDefaultObjectSizeHeight = nHeight; } }
+
+ void SetPreviewNewEffects( sal_Bool bOn ) { if( bPreviewNewEffects != bOn ) { OptionsChanged(); bPreviewNewEffects = bOn; } }
+ void SetPreviewChangedEffects( sal_Bool bOn ) { if( bPreviewChangedEffects != bOn ) { OptionsChanged(); bPreviewChangedEffects = bOn; } }
+ void SetPreviewTransitions( sal_Bool bOn ) { if( bPreviewTransitions != bOn ) { OptionsChanged(); bPreviewTransitions = bOn; } }
+
+ sal_Bool IsShowComments() const { Init(); return bShowComments; }
+ void SetShowComments( sal_Bool bShow ) { if( bShowComments != bShow ) { OptionsChanged(); bShowComments = bShow; } }
+};
+
+// -----------------------------------------------------------------------------
+
+class SD_DLLPUBLIC SdOptionsMiscItem : public SfxPoolItem
+{
+public:
+
+ SdOptionsMiscItem( sal_uInt16 nWhich);
+ SdOptionsMiscItem( sal_uInt16 nWhich, SdOptions* pOpts, ::sd::FrameView* pView = NULL );
+
+ virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const;
+ virtual int operator==( const SfxPoolItem& ) const;
+
+ void SetOptions( SdOptions* pOpts ) const;
+
+ SdOptionsMisc& GetOptionsMisc() { return maOptionsMisc; }
+ const SdOptionsMisc& GetOptionsMisc() const { return maOptionsMisc; }
+private:
+ SdOptionsMisc maOptionsMisc;
+};
+
+// -----------------
+// - SdOptionsSnap -
+// -----------------
+
+class SD_DLLPUBLIC SdOptionsSnap : public SdOptionsGeneric
+{
+private:
+
+ sal_Bool bSnapHelplines : 1; // Snap/Object/SnapLine
+ sal_Bool bSnapBorder : 1; // Snap/Object/PageMargin
+ sal_Bool bSnapFrame : 1; // Snap/Object/ObjectFrame
+ sal_Bool bSnapPoints : 1; // Snap/Object/ObjectPoint
+ sal_Bool bOrtho : 1; // Snap/Position/CreatingMoving
+ sal_Bool bBigOrtho : 1; // Snap/Position/ExtendEdges
+ sal_Bool bRotate : 1; // Snap/Position/Rotating
+ sal_Int16 nSnapArea; // Snap/Object/Range
+ sal_Int16 nAngle; // Snap/Position/RotatingValue
+ sal_Int16 nBezAngle; // Snap/Position/PointReduction
+
+protected:
+
+ virtual void GetPropNameArray( const char**& ppNames, sal_uLong& rCount ) const;
+ virtual sal_Bool ReadData( const ::com::sun::star::uno::Any* pValues );
+ virtual sal_Bool WriteData( ::com::sun::star::uno::Any* pValues ) const;
+
+public:
+
+ SdOptionsSnap( sal_uInt16 nConfigId, sal_Bool bUseConfig );
+ virtual ~SdOptionsSnap() {}
+
+ sal_Bool operator==( const SdOptionsSnap& rOpt ) const;
+
+ sal_Bool IsSnapHelplines() const { Init(); return (sal_Bool) bSnapHelplines; }
+ sal_Bool IsSnapBorder() const { Init(); return (sal_Bool) bSnapBorder; }
+ sal_Bool IsSnapFrame() const { Init(); return (sal_Bool) bSnapFrame; }
+ sal_Bool IsSnapPoints() const { Init(); return (sal_Bool) bSnapPoints; }
+ sal_Bool IsOrtho() const { Init(); return (sal_Bool) bOrtho; }
+ sal_Bool IsBigOrtho() const { Init(); return (sal_Bool) bBigOrtho; }
+ sal_Bool IsRotate() const { Init(); return (sal_Bool) bRotate; }
+ sal_Int16 GetSnapArea() const { Init(); return nSnapArea; }
+ sal_Int16 GetAngle() const { Init(); return nAngle; }
+ sal_Int16 GetEliminatePolyPointLimitAngle() const { Init(); return nBezAngle; }
+
+ void SetSnapHelplines( sal_Bool bOn = sal_True ) { if( bSnapHelplines != bOn ) { OptionsChanged(); bSnapHelplines = bOn; } }
+ void SetSnapBorder( sal_Bool bOn = sal_True ) { if( bSnapBorder != bOn ) { OptionsChanged(); bSnapBorder = bOn; } }
+ void SetSnapFrame( sal_Bool bOn = sal_True ) { if( bSnapFrame != bOn ) { OptionsChanged(); bSnapFrame = bOn; } }
+ void SetSnapPoints( sal_Bool bOn = sal_True ) { if( bSnapPoints != bOn ) { OptionsChanged(); bSnapPoints = bOn; } }
+ void SetOrtho( sal_Bool bOn = sal_True ) { if( bOrtho != bOn ) { OptionsChanged(); bOrtho = bOn; } }
+ void SetBigOrtho( sal_Bool bOn = sal_True ) { if( bBigOrtho != bOn ) { OptionsChanged(); bBigOrtho = bOn; } }
+ void SetRotate( sal_Bool bOn = sal_True ) { if( bRotate != bOn ) { OptionsChanged(); bRotate = bOn; } }
+ void SetSnapArea( sal_Int16 nIn ) { if( nSnapArea != nIn ) { OptionsChanged(); nSnapArea = nIn; } }
+ void SetAngle( sal_Int16 nIn ) { if( nAngle != nIn ) { OptionsChanged(); nAngle = nIn; } }
+ void SetEliminatePolyPointLimitAngle( sal_Int16 nIn ) { if( nBezAngle != nIn ) { OptionsChanged(); nBezAngle = nIn; } }
+};
+
+// -----------------------------------------------------------------------------
+
+class SD_DLLPUBLIC SdOptionsSnapItem : public SfxPoolItem
+{
+public:
+
+ SdOptionsSnapItem( sal_uInt16 nWhich);
+ SdOptionsSnapItem( sal_uInt16 nWhich, SdOptions* pOpts, ::sd::FrameView* pView = NULL );
+
+ virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const;
+ virtual int operator==( const SfxPoolItem& ) const;
+
+ void SetOptions( SdOptions* pOpts ) const;
+
+ SdOptionsSnap& GetOptionsSnap() { return maOptionsSnap; }
+private:
+ SdOptionsSnap maOptionsSnap;
+};
+
+// -----------------
+// - SdOptionsZoom -
+// -----------------
+
+class SdOptionsZoom : public SdOptionsGeneric
+{
+private:
+
+ sal_Int32 nX; // Zoom/ScaleX
+ sal_Int32 nY; // Zoom/ScaleY
+
+protected:
+
+ virtual void GetPropNameArray( const char**& ppNames, sal_uLong& rCount ) const;
+ virtual sal_Bool ReadData( const ::com::sun::star::uno::Any* pValues );
+ virtual sal_Bool WriteData( ::com::sun::star::uno::Any* pValues ) const;
+
+public:
+
+ SdOptionsZoom( sal_uInt16 nConfigId, sal_Bool bUseConfig );
+ virtual ~SdOptionsZoom() {}
+
+ sal_Bool operator==( const SdOptionsZoom& rOpt ) const;
+
+ void GetScale( sal_Int32& rX, sal_Int32& rY ) const { Init(); rX = nX; rY = nY; }
+ void SetScale( sal_Int32 nInX, sal_Int32 nInY ) { if( nX != nInX || nY != nInY ) { OptionsChanged(); nX = nInX; nY = nInY; } }
+};
+
+// -----------------------------------------------------------------------------
+
+// -----------------
+// - SdOptionsGrid -
+// -----------------
+
+class SdOptionsGrid : public SdOptionsGeneric, public SvxOptionsGrid
+{
+protected:
+
+ virtual void GetPropNameArray( const char**& ppNames, sal_uLong& rCount ) const;
+ virtual sal_Bool ReadData( const ::com::sun::star::uno::Any* pValues );
+ virtual sal_Bool WriteData( ::com::sun::star::uno::Any* pValues ) const;
+
+public:
+
+ SdOptionsGrid( sal_uInt16 nConfigId, sal_Bool bUseConfig );
+ virtual ~SdOptionsGrid();
+
+ void SetDefaults();
+ sal_Bool operator==( const SdOptionsGrid& rOpt ) const;
+
+ sal_uInt32 GetFldDrawX() const { Init(); return SvxOptionsGrid::GetFldDrawX(); }
+ sal_uInt32 GetFldDivisionX() const { Init(); return SvxOptionsGrid::GetFldDivisionX(); }
+ sal_uInt32 GetFldDrawY() const { Init(); return SvxOptionsGrid::GetFldDrawY(); }
+ sal_uInt32 GetFldDivisionY() const { Init(); return SvxOptionsGrid::GetFldDivisionY(); }
+ sal_uInt32 GetFldSnapX() const { Init(); return SvxOptionsGrid::GetFldSnapX(); }
+ sal_uInt32 GetFldSnapY() const { Init(); return SvxOptionsGrid::GetFldSnapY(); }
+ sal_Bool IsUseGridSnap() const { Init(); return SvxOptionsGrid::GetUseGridSnap(); }
+ sal_Bool IsSynchronize() const { Init(); return SvxOptionsGrid::GetSynchronize(); }
+ sal_Bool IsGridVisible() const { Init(); return SvxOptionsGrid::GetGridVisible(); }
+ sal_Bool IsEqualGrid() const { Init(); return SvxOptionsGrid::GetEqualGrid(); }
+
+ void SetFldDrawX( sal_uInt32 nSet ) { if( nSet != SvxOptionsGrid::GetFldDrawX() ) { OptionsChanged(); SvxOptionsGrid::SetFldDrawX( nSet ); } }
+ void SetFldDivisionX( sal_uInt32 nSet ) { if( nSet != SvxOptionsGrid::GetFldDivisionX() ) { OptionsChanged(); SvxOptionsGrid::SetFldDivisionX( nSet ); } }
+ void SetFldDrawY( sal_uInt32 nSet ) { if( nSet != SvxOptionsGrid::GetFldDrawY() ) { OptionsChanged(); SvxOptionsGrid::SetFldDrawY( nSet ); } }
+ void SetFldDivisionY( sal_uInt32 nSet ) { if( nSet != SvxOptionsGrid::GetFldDivisionY() ) { OptionsChanged(); SvxOptionsGrid::SetFldDivisionY( nSet ); } }
+ void SetFldSnapX( sal_uInt32 nSet ) { if( nSet != SvxOptionsGrid::GetFldSnapX() ) { OptionsChanged(); SvxOptionsGrid::SetFldSnapX( nSet ); } }
+ void SetFldSnapY( sal_uInt32 nSet ) { if( nSet != SvxOptionsGrid::GetFldSnapY() ) { OptionsChanged(); SvxOptionsGrid::SetFldSnapY( nSet ); } }
+ void SetUseGridSnap( sal_Bool bSet ) { if( bSet != SvxOptionsGrid::GetUseGridSnap() ) { OptionsChanged(); SvxOptionsGrid::SetUseGridSnap( bSet ); } }
+ void SetSynchronize( sal_Bool bSet ) { if( bSet != SvxOptionsGrid::GetSynchronize() ) { OptionsChanged(); SvxOptionsGrid::SetSynchronize( bSet ); } }
+ void SetGridVisible( sal_Bool bSet ) { if( bSet != SvxOptionsGrid::GetGridVisible() ) { OptionsChanged(); SvxOptionsGrid::SetGridVisible( bSet ); } }
+ void SetEqualGrid( sal_Bool bSet ) { if( bSet != SvxOptionsGrid::GetEqualGrid() ) { OptionsChanged(); SvxOptionsGrid::SetEqualGrid( bSet ); } }
+};
+
+// -----------------------------------------------
+
+class SdOptionsGridItem : public SvxGridItem
+{
+
+public:
+ SdOptionsGridItem( sal_uInt16 nWhich, SdOptions* pOpts, ::sd::FrameView* pView = NULL );
+
+ void SetOptions( SdOptions* pOpts ) const;
+};
+
+// ------------------
+// - SdOptionsPrint -
+// ------------------
+
+class SD_DLLPUBLIC SdOptionsPrint : public SdOptionsGeneric
+{
+private:
+
+ sal_Bool bDraw : 1; // Print/Content/Drawing
+ sal_Bool bNotes : 1; // Print/Content/Note
+ sal_Bool bHandout : 1; // Print/Content/Handout
+ sal_Bool bOutline : 1; // Print/Content/Outline
+ sal_Bool bDate : 1; // Print/Other/Date
+ sal_Bool bTime : 1; // Print/Other/Time
+ sal_Bool bPagename : 1; // Print/Other/PageName
+ sal_Bool bHiddenPages : 1; // Print/Other/HiddenPage
+ sal_Bool bPagesize : 1; // Print/Page/PageSize
+ sal_Bool bPagetile : 1; // Print/Page/PageTile
+ sal_Bool bWarningPrinter : 1; // These flags you get
+ sal_Bool bWarningSize : 1; // from the common options,
+ sal_Bool bWarningOrientation : 1; // currently org.openoffice.Office.Common.xml (class OfaMiscCfg ; sfx2/misccfg.hxx )
+ sal_Bool bBooklet : 1; // Print/Page/Booklet
+ sal_Bool bFront : 1; // Print/Page/BookletFront
+ sal_Bool bBack : 1; // Print/Page/BookletFront
+ sal_Bool bCutPage : 1; // NOT persistent !!!
+ sal_Bool bPaperbin : 1; // Print/Other/FromPrinterSetup
+ sal_Bool mbHandoutHorizontal : 1; // Order Page previews on Handout Pages horizontal
+ sal_uInt16 mnHandoutPages; // Number of page previews on handout page (only 1/2/4/6/9 are supported)
+ sal_uInt16 nQuality; // Print/Other/Quality
+
+protected:
+
+ virtual void GetPropNameArray( const char**& ppNames, sal_uLong& rCount ) const;
+ virtual sal_Bool ReadData( const ::com::sun::star::uno::Any* pValues );
+ virtual sal_Bool WriteData( ::com::sun::star::uno::Any* pValues ) const;
+
+public:
+
+ SdOptionsPrint( sal_uInt16 nConfigId, sal_Bool bUseConfig );
+ virtual ~SdOptionsPrint() {}
+
+ sal_Bool operator==( const SdOptionsPrint& rOpt ) const;
+
+ sal_Bool IsDraw() const { Init(); return (sal_Bool) bDraw; }
+ sal_Bool IsNotes() const { Init(); return (sal_Bool) bNotes; }
+ sal_Bool IsHandout() const { Init(); return (sal_Bool) bHandout; }
+ sal_Bool IsOutline() const { Init(); return (sal_Bool) bOutline; }
+ sal_Bool IsDate() const { Init(); return (sal_Bool) bDate; }
+ sal_Bool IsTime() const { Init(); return (sal_Bool) bTime; }
+ sal_Bool IsPagename() const { Init(); return (sal_Bool) bPagename; }
+ sal_Bool IsHiddenPages() const { Init(); return (sal_Bool) bHiddenPages; }
+ sal_Bool IsPagesize() const { Init(); return (sal_Bool) bPagesize; }
+ sal_Bool IsPagetile() const { Init(); return (sal_Bool) bPagetile; }
+ sal_Bool IsWarningPrinter() const { Init(); return (sal_Bool) bWarningPrinter; }
+ sal_Bool IsWarningSize() const { Init(); return (sal_Bool) bWarningSize; }
+ sal_Bool IsWarningOrientation() const { Init(); return (sal_Bool) bWarningOrientation; }
+ sal_Bool IsBooklet() const { Init(); return (sal_Bool) bBooklet; }
+ sal_Bool IsFrontPage() const { Init(); return (sal_Bool) bFront; }
+ sal_Bool IsBackPage() const { Init(); return (sal_Bool) bBack; }
+ sal_Bool IsCutPage() const { Init(); return (sal_Bool) bCutPage; }
+ sal_Bool IsPaperbin() const { Init(); return (sal_Bool) bPaperbin; }
+ sal_uInt16 GetOutputQuality() const { Init(); return nQuality; }
+ sal_Bool IsHandoutHorizontal() const { Init(); return mbHandoutHorizontal; }
+ sal_uInt16 GetHandoutPages() const { Init(); return mnHandoutPages; }
+
+ void SetDraw( sal_Bool bOn = sal_True ) { if( bDraw != bOn ) { OptionsChanged(); bDraw = bOn; } }
+ void SetNotes( sal_Bool bOn = sal_True ) { if( bNotes != bOn ) { OptionsChanged(); bNotes = bOn; } }
+ void SetHandout( sal_Bool bOn = sal_True ) { if( bHandout != bOn ) { OptionsChanged(); bHandout = bOn; } }
+ void SetOutline( sal_Bool bOn = sal_True ) { if( bOutline != bOn ) { OptionsChanged(); bOutline = bOn; } }
+ void SetDate( sal_Bool bOn = sal_True ) { if( bDate != bOn ) { OptionsChanged(); bDate = bOn; } }
+ void SetTime( sal_Bool bOn = sal_True ) { if( bTime != bOn ) { OptionsChanged(); bTime = bOn; } }
+ void SetPagename( sal_Bool bOn = sal_True ) { if( bPagename != bOn ) { OptionsChanged(); bPagename = bOn; } }
+ void SetHiddenPages( sal_Bool bOn = sal_True ) { if( bHiddenPages != bOn ) { OptionsChanged(); bHiddenPages = bOn; } }
+ void SetPagesize( sal_Bool bOn = sal_True ) { if( bPagesize != bOn ) { OptionsChanged(); bPagesize = bOn; } }
+ void SetPagetile( sal_Bool bOn = sal_True ) { if( bPagetile != bOn ) { OptionsChanged(); bPagetile = bOn; } }
+ void SetWarningPrinter( sal_Bool bOn = sal_True ) { if( bWarningPrinter != bOn ) { OptionsChanged(); bWarningPrinter = bOn; } }
+ void SetWarningSize( sal_Bool bOn = sal_True ) { if( bWarningSize != bOn ) { OptionsChanged(); bWarningSize = bOn; } }
+ void SetWarningOrientation( sal_Bool bOn = sal_True ) { if( bWarningOrientation != bOn ) { OptionsChanged(); bWarningOrientation = bOn; } }
+ void SetBooklet( sal_Bool bOn = sal_True ) { if( bBooklet != bOn ) { OptionsChanged(); bBooklet = bOn; } }
+ void SetFrontPage( sal_Bool bOn = sal_True ) { if( bFront != bOn ) { OptionsChanged(); bFront = bOn; } }
+ void SetBackPage( sal_Bool bOn = sal_True ) { if( bBack != bOn ) { OptionsChanged(); bBack = bOn; } }
+ void SetCutPage( sal_Bool bOn = sal_True ) { if( bCutPage != bOn ) { OptionsChanged(); bCutPage = bOn; } }
+ void SetPaperbin( sal_Bool bOn = sal_True ) { if( bPaperbin != bOn ) { OptionsChanged(); bPaperbin = bOn; } }
+ void SetOutputQuality( sal_uInt16 nInQuality ) { if( nQuality != nInQuality ) { OptionsChanged(); nQuality = nInQuality; } }
+ void SetHandoutHorizontal( sal_Bool bHandoutHorizontal ) { if( mbHandoutHorizontal != bHandoutHorizontal ) { OptionsChanged(); mbHandoutHorizontal = bHandoutHorizontal; } }
+ void SetHandoutPages( sal_uInt16 nHandoutPages ) { if( nHandoutPages != mnHandoutPages ) { OptionsChanged(); mnHandoutPages = nHandoutPages; } }
+};
+
+// -----------------------------------------------------------------------------
+
+class SD_DLLPUBLIC SdOptionsPrintItem : public SfxPoolItem
+{
+public:
+
+ SdOptionsPrintItem( sal_uInt16 nWhich);
+ SdOptionsPrintItem( sal_uInt16 nWhich, SdOptions* pOpts, ::sd::FrameView* pView = NULL );
+
+ virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const;
+ virtual int operator==( const SfxPoolItem& ) const;
+
+ void SetOptions( SdOptions* pOpts ) const;
+
+ SdOptionsPrint& GetOptionsPrint() { return maOptionsPrint; }
+ const SdOptionsPrint& GetOptionsPrint() const { return maOptionsPrint; }
+private:
+ SdOptionsPrint maOptionsPrint;
+};
+
+// -------------
+// - SdOptions -
+// -------------
+
+class SdOptions : public SdOptionsLayout, public SdOptionsContents,
+ public SdOptionsMisc, public SdOptionsSnap,
+ public SdOptionsZoom, public SdOptionsGrid,
+ public SdOptionsPrint
+{
+public:
+
+ SdOptions( sal_uInt16 nConfigId );
+ virtual ~SdOptions();
+
+ void StoreConfig( sal_uLong nOptionRange = SD_OPTIONS_ALL );
+};
+
+#endif // _SD_OPTSITEM_HXX
diff --git a/sd/source/ui/inc/packgdlg.hrc b/sd/source/ui/inc/packgdlg.hrc
new file mode 100644
index 000000000000..fe6546a7082b
--- /dev/null
+++ b/sd/source/ui/inc/packgdlg.hrc
@@ -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.
+ *
+ ************************************************************************/
+
+#define DLG_PACKNGO 939
+
+#define BTN_OK 1
+#define BTN_CANCEL 2
+#define BTN_HELP 3
+
+#define GRP_DOKU 4
+#define CBX_UNLINK 5
+#define GRP_STORE 6
+#define GRP_SEPARATOR 7
+#define CBX_SPANNING 8
+#define LB_STOREMEDIUM 9
+
+#define FT_DOKU_DESCR 10
+#define FT_STORE_DESCR 11
+#define FT_STOREMEDIUM 12
+
+#define MTR_USERDEFINED 13
+
diff --git a/sd/source/ui/inc/paragr.hrc b/sd/source/ui/inc/paragr.hrc
new file mode 100644
index 000000000000..1510325ce2e1
--- /dev/null
+++ b/sd/source/ui/inc/paragr.hrc
@@ -0,0 +1,33 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General 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 TAB_PARAGRAPH 20620
+
+#define CB_NEW_START 1
+#define CB_NUMBER_NEW_START 2
+#define NF_NEW_START 3
+
+
diff --git a/sd/source/ui/inc/paragr.hxx b/sd/source/ui/inc/paragr.hxx
new file mode 100644
index 000000000000..254294833eaf
--- /dev/null
+++ b/sd/source/ui/inc/paragr.hxx
@@ -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.
+ *
+ ************************************************************************/
+
+#ifndef _SD_PARAGR_HXX
+#define _SD_PARAGR_HXX
+
+
+#include <sfx2/tabdlg.hxx>
+
+#include "paragr.hrc"
+
+/*************************************************************************
+|*
+|* Absatz-Tab-Dialog
+|*
+\************************************************************************/
+class SdParagraphDlg : public SfxTabDialog
+{
+private:
+ const SfxItemSet& rOutAttrs;
+
+public:
+ SdParagraphDlg( Window* pParent, const SfxItemSet* pAttr );
+ ~SdParagraphDlg() {};
+};
+
+#endif // _SD_PARAGR_HXX
+
+
diff --git a/sd/source/ui/inc/pgjump.hxx b/sd/source/ui/inc/pgjump.hxx
new file mode 100644
index 000000000000..a900c89aadc0
--- /dev/null
+++ b/sd/source/ui/inc/pgjump.hxx
@@ -0,0 +1,43 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+
+#ifndef _SD_PGJUMP_HXX
+#define _SD_PGJUMP_HXX
+
+enum PageJump
+{
+ PAGE_NONE,
+ PAGE_FIRST,
+ PAGE_PREVIOUS,
+ PAGE_NEXT,
+ PAGE_LAST
+};
+
+
+#endif // _SD_PGJUMP_HXX
+
diff --git a/sd/source/ui/inc/present.hrc b/sd/source/ui/inc/present.hrc
new file mode 100644
index 000000000000..fc4d3b68d9f4
--- /dev/null
+++ b/sd/source/ui/inc/present.hrc
@@ -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 <sfx2/sfx.hrc>
+
+#define DLG_START_PRESENTATION RID_APP_START+3
+#define BTN_OK 1
+#define BTN_CANCEL 1
+#define BTN_HELP 1
+
+#define GRP_RANGE 1
+#define RBT_ALL 1
+#define RBT_AT_DIA 2
+#define RBT_CUSTOMSHOW 3
+#define LB_DIAS 1
+#define LB_CUSTOMSHOW 2
+
+#define GRP_KIND 2
+#define RBT_STANDARD 4
+#define RBT_WINDOW 5
+#define RBT_AUTO 6
+#define FT_PAUSE 1
+#define TMF_PAUSE 1
+#define CBX_AUTOLOGO 1
+
+#define GRP_OPTIONS 3
+#define CBX_MANUEL 2
+#define CBX_MOUSEPOINTER 3
+#define CBX_PEN 4
+#define CBX_NAVIGATOR 5
+#define CBX_ANIMATION_ALLOWED 6
+#define CBX_CHANGE_PAGE 7
+#define CBX_ALWAYS_ON_TOP 8
+
+#define GRP_MONITOR 9
+#define FT_MONITOR 10
+#define LB_MONITOR 11
+
+#define STR_PRIMARY_MONITOR 1
+#define STR_MONITOR 2
+#define STR_ALL_MONITORS 3
+
+// #define CBX_ENDLESS 1
+// #define CBX_WINDOW_PRESENTATION 9
diff --git a/sd/source/ui/inc/present.hxx b/sd/source/ui/inc/present.hxx
new file mode 100644
index 000000000000..8350bc114de5
--- /dev/null
+++ b/sd/source/ui/inc/present.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 _SD_PRESENT_HXX_
+#define _SD_PRESENT_HXX_
+
+#ifndef _LSTBOX_HXX //autogen
+#include <vcl/lstbox.hxx>
+#endif
+#include <vcl/fixed.hxx>
+#ifndef _BUTTON_HXX //autogen
+#include <vcl/button.hxx>
+#endif
+#ifndef _BUTTON_HXX //autogen
+#include <vcl/button.hxx>
+#endif
+#ifndef _DIALOG_HXX //autogen
+#include <vcl/dialog.hxx>
+#endif
+#ifndef _FIELD_HXX //autogen
+#include <vcl/field.hxx>
+#endif
+
+class SfxItemSet;
+class List;
+
+/*************************************************************************
+|* Dialog zum Festlegen von Optionen und Starten der Praesentation
+\************************************************************************/
+class SdStartPresentationDlg : public ModalDialog
+{
+private:
+
+ FixedLine aGrpRange;
+ RadioButton aRbtAll;
+ RadioButton aRbtAtDia;
+ RadioButton aRbtCustomshow;
+ ListBox aLbDias;
+ ListBox aLbCustomshow;
+
+ FixedLine aGrpKind;
+ RadioButton aRbtStandard;
+ RadioButton aRbtWindow;
+ RadioButton aRbtAuto;
+ TimeField aTmfPause;
+ CheckBox aCbxAutoLogo;
+
+ FixedLine aGrpOptions;
+ CheckBox aCbxManuel;
+ CheckBox aCbxMousepointer;
+ CheckBox aCbxPen;
+ CheckBox aCbxNavigator;
+ CheckBox aCbxAnimationAllowed;
+ CheckBox aCbxChangePage;
+ CheckBox aCbxAlwaysOnTop;
+
+ FixedLine maGrpMonitor;
+ FixedText maFtMonitor;
+ ListBox maLBMonitor;
+
+ OKButton aBtnOK;
+ CancelButton aBtnCancel;
+ HelpButton aBtnHelp;
+
+ List* pCustomShowList;
+ const SfxItemSet& rOutAttrs;
+ sal_Int32 mnMonitors;
+
+ String msPrimaryMonitor;
+ String msMonitor;
+ String msAllMonitors;
+
+ DECL_LINK( ChangeRangeHdl, void * );
+ DECL_LINK( ClickWindowPresentationHdl, void * );
+ DECL_LINK( ChangePauseHdl, void * );
+
+ void InitMonitorSettings();
+
+public:
+ SdStartPresentationDlg( Window* pWindow,
+ const SfxItemSet& rInAttrs,
+ List& rPageNames,
+ List* pCSList );
+
+ void GetAttr( SfxItemSet& rOutAttrs );
+};
+
+#endif // _SD_PRESENT_HXX_
+
diff --git a/sd/source/ui/inc/preview.hrc b/sd/source/ui/inc/preview.hrc
new file mode 100644
index 000000000000..dd9f8756161a
--- /dev/null
+++ b/sd/source/ui/inc/preview.hrc
@@ -0,0 +1,28 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General 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 FLT_WIN_PREVIEW 783
+#define CTL_PREVIEW 1
diff --git a/sd/source/ui/inc/prltempl.hrc b/sd/source/ui/inc/prltempl.hrc
new file mode 100644
index 000000000000..97529b7d9068
--- /dev/null
+++ b/sd/source/ui/inc/prltempl.hrc
@@ -0,0 +1,31 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#include <sfx2/sfx.hrc>
+/* #define TAB_PRES_LAYOUT_TEMPLATE RID_APP_START+??? */
+#define TAB_PRES_LAYOUT_TEMPLATE 844
+#define TAB_PRES_LAYOUT_TEMPLATE_BACKGROUND 846
+#define TAB_CONTROL 1
diff --git a/sd/source/ui/inc/prltempl.hxx b/sd/source/ui/inc/prltempl.hxx
new file mode 100755
index 000000000000..5e8479ce4562
--- /dev/null
+++ b/sd/source/ui/inc/prltempl.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 SD_PRLTEMPL_HXX
+#define SD_PRLTEMPL_HXX
+
+#ifndef _SD_SDRESID_HXX
+#include "sdresid.hxx"
+#endif
+#include <sfx2/tabdlg.hxx>
+#include <svx/tabarea.hxx>
+
+#include "prlayout.hxx" // fuer enum PresentationObjects
+
+
+class XColorTable;
+class XGradientList;
+class XHatchList;
+class XBitmapList;
+class XDashList;
+class XLineEndList;
+class SfxObjectShell;
+class SfxStyleSheetBase;
+class SfxStyleSheetBasePool;
+
+/*************************************************************************
+|*
+|* Vorlagen-Tab-Dialog
+|*
+\************************************************************************/
+class SdPresLayoutTemplateDlg : public SfxTabDialog
+{
+private:
+ const SfxObjectShell* mpDocShell;
+
+ XColorTable* pColorTab;
+ XGradientList* pGradientList;
+ XHatchList* pHatchingList;
+ XBitmapList* pBitmapList;
+ XDashList* pDashList;
+ XLineEndList* pLineEndList;
+
+ sal_uInt16 nPageType;
+ sal_uInt16 nDlgType;
+ sal_uInt16 nPos;
+
+ ChangeType nColorTableState;
+ ChangeType nBitmapListState;
+ ChangeType nGradientListState;
+ ChangeType nHatchingListState;
+ ChangeType nLineEndListState;
+ ChangeType nDashListState;
+
+ PresentationObjects ePO;
+
+ virtual void PageCreated( sal_uInt16 nId, SfxTabPage &rPage );
+
+ // fuers Maping mit dem neuen SvxNumBulletItem
+ SfxItemSet aInputSet;
+ SfxItemSet* pOutSet;
+ const SfxItemSet* pOrgSet;
+
+ sal_uInt16 GetOutlineLevel() const;
+
+ using SfxTabDialog::GetOutputItemSet;
+
+public:
+ SdPresLayoutTemplateDlg( SfxObjectShell* pDocSh, Window* pParent, SdResId DlgId, SfxStyleSheetBase& rStyleBase, PresentationObjects ePO, SfxStyleSheetBasePool* pSSPool );
+ ~SdPresLayoutTemplateDlg();
+
+ const SfxItemSet* GetOutputItemSet() const;
+};
+
+
+#endif // SD_PRLTEMPL_HXX
+
diff --git a/sd/source/ui/inc/prntopts.hrc b/sd/source/ui/inc/prntopts.hrc
new file mode 100644
index 000000000000..04d155f6730d
--- /dev/null
+++ b/sd/source/ui/inc/prntopts.hrc
@@ -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.
+ *
+ ************************************************************************/
+#define TP_PRINT_OPTIONS 549
+#define LB_PRINT 1
+#define CBX_PAGENAME 2
+#define CBX_HIDDEN_PAGES 1
+#define GRP_PRINT 1
+#define GRP_PAGE 2
+#define CBX_DATE 3
+#define CBX_TIME 4
+#define CBX_DRAW 6
+#define CBX_NOTES 7
+#define CBX_HANDOUTS 8
+#define CBX_OUTLINE 9
+#define GRP_WARNINGS 4
+#define CBX_PAPERBIN 10
+#define CBX_FRONT 12
+#define CBX_BACK 13
+#define RBT_DEFAULT 1
+#define RBT_PAGESIZE 2
+#define RBT_PAGETILE 3
+#define RBT_BOOKLET 4
+#define GRP_PRINT_EXT 3
+#define GRP_PAPERBIN 4
+
+#define RBT_COLOR 5
+#define RBT_GRAYSCALE 6
+#define RBT_BLACKWHITE 7
+#define GRP_OUTPUT 5
+#define FL_SEPARATOR1 6
+#define FL_SEPARATOR2 7
+
diff --git a/sd/source/ui/inc/prntopts.hxx b/sd/source/ui/inc/prntopts.hxx
new file mode 100755
index 000000000000..9ee90a522ac7
--- /dev/null
+++ b/sd/source/ui/inc/prntopts.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 _SD_PRNTOPTS_HXX
+#define _SD_PRNTOPTS_HXX
+
+#include <vcl/group.hxx>
+
+#ifndef _SV_BUTTON_HXX //autogen
+#include <vcl/button.hxx>
+#endif
+#include <sfx2/tabdlg.hxx>
+#include <vcl/fixed.hxx>
+
+/*
+enum PrintType
+{
+ PT_DRAWING,
+ PT_NOTES,
+ PT_HANDOUT,
+ PT_OUTLINE
+};
+*/
+class SdModule;
+class SdPrintOptions : public SfxTabPage
+{
+ friend class SdOptionsDlg;
+ friend class SdModule;
+
+private:
+ FixedLine aGrpPrint;
+ CheckBox aCbxDraw;
+ CheckBox aCbxNotes;
+ CheckBox aCbxHandout;
+ CheckBox aCbxOutline;
+
+ FixedLine aSeparator1FL;
+ FixedLine aGrpOutput;
+ RadioButton aRbtColor;
+ RadioButton aRbtGrayscale;
+ RadioButton aRbtBlackWhite;
+
+ FixedLine aGrpPrintExt;
+ CheckBox aCbxPagename;
+ CheckBox aCbxDate;
+ CheckBox aCbxTime;
+ CheckBox aCbxHiddenPages;
+
+ FixedLine aSeparator2FL;
+ FixedLine aGrpPageoptions;
+ RadioButton aRbtDefault;
+ RadioButton aRbtPagesize;
+ RadioButton aRbtPagetile;
+ RadioButton aRbtBooklet;
+ CheckBox aCbxFront;
+ CheckBox aCbxBack;
+
+ CheckBox aCbxPaperbin;
+
+ const SfxItemSet& rOutAttrs;
+
+ DECL_LINK( ClickCheckboxHdl, CheckBox * );
+ DECL_LINK( ClickBookletHdl, CheckBox * );
+
+ void updateControls();
+
+ using OutputDevice::SetDrawMode;
+public:
+ SdPrintOptions( Window* pParent, const SfxItemSet& rInAttrs);
+ ~SdPrintOptions();
+
+ static SfxTabPage* Create( Window*, const SfxItemSet& );
+
+ virtual sal_Bool FillItemSet( SfxItemSet& );
+ virtual void Reset( const SfxItemSet & );
+
+ void SetDrawMode();
+ virtual void PageCreated (SfxAllItemSet aSet);
+};
+
+
+
+#endif // _SD_PRNTOPTS_HXX
+
+
diff --git a/sd/source/ui/inc/pubdlg.hrc b/sd/source/ui/inc/pubdlg.hrc
new file mode 100644
index 000000000000..8e3c1be2111d
--- /dev/null
+++ b/sd/source/ui/inc/pubdlg.hrc
@@ -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.
+ *
+ ************************************************************************/
+
+
+#define PAGE1_BMP 1
+#define PAGE1_TITEL 2
+#define PAGE1_NEW_DESIGN 3
+#define PAGE1_OLD_DESIGN 4
+#define PAGE1_DESIGNS 5
+#define PAGE1_DEL_DESIGN 6
+#define PAGE1_DESC 7
+
+//////////////////////////////
+
+#define PAGE2_BMP 20
+#define PAGE2_TITEL 21
+#define PAGE2_STANDARD 22
+#define PAGE2_FRAMES 23
+#define PAGE2_KIOSK 24
+#define PAGE2_WEBCAST 25
+
+#define PAGE2_NOFRAMES_FB 26
+#define PAGE2_FRAMES_FB 27
+#define PAGE2_KIOSK_FB 28
+#define PAGE2_WEBCAST_FB 29
+
+#define PAGE2_TITEL_HTML 30
+#define PAGE2_CONTENT 31
+#define PAGE2_NOTES 32
+
+#define PAGE2_TITEL_KIOSK 33
+#define PAGE2_CHG_DEFAULT 34
+#define PAGE2_CHG_AUTO 35
+#define PAGE2_DURATION_TXT 36
+#define PAGE2_DURATION_TMF 37
+#define PAGE2_ENDLESS 38
+
+#define PAGE2_TITEL_WEBCAST 40
+#define PAGE2_ASP 41
+#define PAGE2_PERL 42
+#define PAGE2_INDEX_TXT 43
+#define PAGE2_INDEX 44
+#define PAGE2_URL_TXT 45
+#define PAGE2_URL 46
+#define PAGE2_CGI_TXT 47
+#define PAGE2_CGI 48
+#define PAGE2_VERT 49
+
+//////////////////////////////
+
+#define PAGE3_BMP 50
+#define PAGE3_TITEL_1 51
+#define PAGE3_PNG 51
+#define PAGE3_GIF 52
+#define PAGE3_JPG 53
+#define PAGE3_QUALITY_TXT 54
+#define PAGE3_QUALITY 55
+#define PAGE3_TITEL_2 56
+#define PAGE3_RESOLUTION_1 57
+#define PAGE3_RESOLUTION_2 58
+#define PAGE3_RESOLUTION_3 59
+#define PAGE3_TITEL_3 60
+#define PAGE3_SLD_SOUND 61
+#define PAGE3_VERT 62
+#define PAGE3_HIDDEN_SLIDES 63
+
+//////////////////////////////
+
+#define PAGE4_BMP 65
+#define PAGE4_TITEL_1 66
+#define PAGE4_AUTHOR_TXT 67
+#define PAGE4_AUTHOR 68
+#define PAGE4_EMAIL_TXT 69
+#define PAGE4_EMAIL_EDIT 70
+#define PAGE4_WWW_TXT 71
+#define PAGE4_WWW_EDIT 72
+#define PAGE4_TITEL_2 73
+#define PAGE4_MISC 74
+#define PAGE4_DOWNLOAD 75
+#define PAGE4_CREATED 76
+
+//////////////////////////////
+
+#define PAGE5_BMP 80
+#define PAGE5_TITEL 81
+#define PAGE5_TEXTONLY 82
+#define PAGE5_BUTTONS 83
+#define PAGE5_TITEL_2 84
+#define PAGE5_NOBACK 85
+#define PAGE5_BACKS 86
+
+//////////////////////////////
+
+#define PAGE6_BMP 100
+#define PAGE6_TITEL 101
+#define PAGE6_DEFAULT 102
+#define PAGE6_USER 103
+#define PAGE6_BACK 104
+#define PAGE6_TEXT 105
+#define PAGE6_LINK 106
+#define PAGE6_VLINK 107
+#define PAGE6_ALINK 108
+#define PAGE6_DOCCOLORS 109
+#define PAGE6_USECOLOR 110
+#define PAGE6_PREVIEW 111
+
+//////////////////////////////
+
+//#define PAGE6_PAGE_SND 128
+
+//////////////////////////////
+
+#define BUT_LAST 200
+#define BUT_NEXT 201
+#define BUT_FINISH 202
+#define BUT_CANCEL 203
+#define BUT_HELP 204
+#define BOTTOM_LINE 205
+
+//////////////////////////////
+
+#define DLG_PUBLISHING 739
+
+//////////////////////////////
+
+#define BTN_SAVE 1
+#define BTN_NOSAVE 2
+#define EDT_NAME 3
+#define DLG_DESIGNNAME 740
diff --git a/sd/source/ui/inc/pubdlg.hxx b/sd/source/ui/inc/pubdlg.hxx
new file mode 100755
index 000000000000..2f14066021ed
--- /dev/null
+++ b/sd/source/ui/inc/pubdlg.hxx
@@ -0,0 +1,235 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef _SD_PUBDLG_HXX
+#define _SD_PUBDLG_HXX
+
+#include <com/sun/star/beans/PropertyValue.hpp>
+#include <vcl/fixed.hxx>
+#ifndef _GROUP_HXX //autogen
+#include <vcl/group.hxx>
+#endif
+#ifndef _BUTTON_HXX //autogen
+#include <vcl/button.hxx>
+#endif
+#ifndef _BUTTON_HXX //autogen
+#include <vcl/button.hxx>
+#endif
+#ifndef _FIELD_HXX //autogen
+#include <vcl/field.hxx>
+#endif
+#ifndef _DIALOG_HXX //autogen
+#include <vcl/dialog.hxx>
+#endif
+#include "resltn.hxx" // enum PublishingResolution
+#include "pres.hxx"
+#include "assclass.hxx"
+
+#include <boost/scoped_ptr.hpp>
+
+#define NOOFPAGES 6
+
+enum HtmlPublishMode { PUBLISH_HTML, PUBLISH_FRAMES, PUBLISH_WEBCAST, PUBLISH_KIOSK };
+
+class SfxItemSet;
+
+class FixedText;
+class RadioButton;
+class ListBox;
+class ComboBox;
+class Edit;
+class MultiLineEdit;
+class ValueSet;
+class SdHtmlAttrPreview;
+class List;
+class SdPublishingDesign;
+class ButtonSet;
+
+// *********************************************************************
+// Html-Export Autopilot
+// *********************************************************************
+
+class SdPublishingDlg : public ModalDialog
+{
+private:
+ // page 1 controls
+ FixedBitmap* pPage1_Bmp;
+ FixedLine* pPage1_Titel;
+ RadioButton* pPage1_NewDesign;
+ RadioButton* pPage1_OldDesign;
+ ListBox* pPage1_Designs;
+ PushButton* pPage1_DelDesign;
+ FixedText* pPage1_Desc;
+
+ // page 2 controls
+ FixedBitmap* pPage2_Bmp;
+ FixedLine* pPage2_Titel;
+ RadioButton* pPage2_Standard;
+ RadioButton* pPage2_Frames;
+ RadioButton* pPage2_Kiosk;
+ RadioButton* pPage2_WebCast;
+ FixedBitmap* pPage2_Standard_FB;
+ FixedBitmap* pPage2_Frames_FB;
+ FixedBitmap* pPage2_Kiosk_FB;
+ FixedBitmap* pPage2_WebCast_FB;
+
+ FixedLine* pPage2_Titel_Html;
+ CheckBox* pPage2_Content;
+ CheckBox* pPage2_Notes;
+
+ FixedLine* pPage2_Titel_WebCast;
+ RadioButton* pPage2_ASP;
+ RadioButton* pPage2_PERL;
+ FixedText* pPage2_URL_txt;
+ Edit* pPage2_URL;
+ FixedText* pPage2_CGI_txt;
+ Edit* pPage2_CGI;
+ FixedText* pPage2_Index_txt;
+ Edit* pPage2_Index;
+ FixedLine* pPage2_Vert;
+ FixedLine* pPage2_Titel_Kiosk;
+ RadioButton* pPage2_ChgDefault;
+ RadioButton* pPage2_ChgAuto;
+ FixedText* pPage2_Duration_txt;
+ TimeField* pPage2_Duration;
+ CheckBox* pPage2_Endless;
+
+ // page 3 controls
+ FixedBitmap* pPage3_Bmp;
+ FixedLine* pPage3_Titel1;
+ RadioButton* pPage3_Png;
+ RadioButton* pPage3_Gif;
+ RadioButton* pPage3_Jpg;
+ FixedText* pPage3_Quality_txt;
+ ComboBox* pPage3_Quality;
+ FixedLine* pPage3_Vert;
+ FixedLine* pPage3_Titel2;
+ RadioButton* pPage3_Resolution_1;
+ RadioButton* pPage3_Resolution_2;
+ RadioButton* pPage3_Resolution_3;
+ FixedLine* pPage3_Titel3;
+ CheckBox* pPage3_SldSound;
+ CheckBox* pPage3_HiddenSlides;
+ // page 4 controls
+
+ FixedBitmap* pPage4_Bmp;
+ FixedLine* pPage4_Titel1;
+ FixedText* pPage4_Author_txt;
+ Edit* pPage4_Author;
+ FixedText* pPage4_Email_txt;
+ Edit* pPage4_Email;
+ FixedText* pPage4_WWW_txt;
+ Edit* pPage4_WWW;
+ FixedText* pPage4_Titel2;
+ MultiLineEdit* pPage4_Misc;
+ CheckBox* pPage4_Download;
+//-/ CheckBox* pPage4_Created;
+
+ // page 5 controls
+
+ FixedBitmap* pPage5_Bmp;
+ FixedLine* pPage5_Titel;
+ CheckBox* pPage5_TextOnly;
+ ValueSet* pPage5_Buttons;
+
+ // page 6 controls
+
+ FixedBitmap* pPage6_Bmp;
+ FixedLine* pPage6_Titel;
+ RadioButton* pPage6_Default;
+ RadioButton* pPage6_User;
+ PushButton* pPage6_Back;
+ PushButton* pPage6_Text;
+ PushButton* pPage6_Link;
+ PushButton* pPage6_VLink;
+ PushButton* pPage6_ALink;
+ RadioButton* pPage6_DocColors;
+ SdHtmlAttrPreview* pPage6_Preview;
+
+ boost::scoped_ptr< ButtonSet > mpButtonSet;
+
+// CheckBox* pPage6_Sound;
+
+ // standard controls
+ FixedLine aBottomLine;
+ HelpButton aHelpButton;
+ CancelButton aCancelButton;
+ PushButton aLastPageButton;
+ PushButton aNextPageButton;
+ OKButton aFinishButton;
+
+ Assistent aAssistentFunc;
+
+ sal_Bool m_bImpress;
+ sal_Bool m_bButtonsDirty;
+
+ void SetDefaults();
+ void CreatePages();
+ void RemovePages();
+
+ Color m_aBackColor, m_aTextColor, m_aLinkColor;
+ Color m_aVLinkColor, m_aALinkColor;
+
+ void ChangePage();
+ void UpdatePage();
+
+ List* m_pDesignList;
+ sal_Bool m_bDesignListDirty;
+ SdPublishingDesign* m_pDesign;
+ sal_Bool Load();
+ sal_Bool Save();
+
+ void GetDesign( SdPublishingDesign* pDesign );
+ void SetDesign( SdPublishingDesign* pDesign );
+
+ void LoadPreviewButtons();
+
+ DECL_LINK( FinishHdl, OKButton * );
+ DECL_LINK( NextPageHdl, PushButton * );
+ DECL_LINK( LastPageHdl, PushButton * );
+
+ DECL_LINK( DesignHdl, RadioButton * );
+ DECL_LINK( DesignSelectHdl, ListBox * );
+ DECL_LINK( DesignDeleteHdl, PushButton * );
+ DECL_LINK( BaseHdl, RadioButton * );
+ DECL_LINK( ContentHdl, RadioButton * );
+ DECL_LINK( GfxFormatHdl, RadioButton * );
+ DECL_LINK( ResolutionHdl, RadioButton * );
+ DECL_LINK( ButtonsHdl, ValueSet* );
+ DECL_LINK( ColorHdl, PushButton * );
+ DECL_LINK( WebServerHdl, RadioButton * );
+ DECL_LINK( SlideChgHdl, RadioButton* );
+
+public:
+
+ SdPublishingDlg(Window* pWindow, DocumentType eDocType);
+ ~SdPublishingDlg();
+
+ void GetParameterSequence( ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& rParams );
+};
+
+#endif // _SD_PUBDLG_HXX
diff --git a/sd/source/ui/inc/res_bmp.hrc b/sd/source/ui/inc/res_bmp.hrc
new file mode 100755
index 000000000000..1602dc698f3f
--- /dev/null
+++ b/sd/source/ui/inc/res_bmp.hrc
@@ -0,0 +1,341 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#include "sfx2/sfx.hrc"
+#include "cfgids.hxx"
+
+// -----------
+// - Defines -
+// -----------
+
+#define IMAGE_MASK_STDCOLOR Color{ Red = 0xff00; Green = 0x0000; Blue = 0xff00; }
+#define IMAGE_MASK_STDCOLOR_HC IMAGE_MASK_STDCOLOR
+#define IMAGE_STDBTN_COLOR_HC COL_LIGHTMAGENTA
+
+#define RID_ALIGNMENT RID_APP_START+1
+#define RID_ZOOM RID_APP_START+2
+#define RID_CONTROLS RID_APP_START+3
+#define RID_IMPRESS_DOCWINDOWICON RID_APP_START+4
+
+#define RID_ALIGNMENT_TBX RID_APP_START+5
+#define RID_ZOOM_TBX RID_APP_START+6
+#define RID_CHOOSE_MODE RID_APP_START+7
+#define RID_CHOOSE_MODE_TBX RID_APP_START+8
+
+#define RID_TEXT RID_APP_START+10
+#define RID_TEXT_TBX RID_APP_START+11
+#define RID_RECTANGLES RID_APP_START+12
+#define RID_RECTANGLES_TBX RID_APP_START+13
+#define RID_ELLIPSES RID_APP_START+14
+#define RID_ELLIPSES_TBX RID_APP_START+15
+#define RID_LINES RID_APP_START+16
+#define RID_LINES_TBX RID_APP_START+17
+#define RID_3D_OBJECTS RID_APP_START+18
+#define RID_3D_OBJECTS_TBX RID_APP_START+19
+#define RID_INSERT RID_APP_START+20
+#define RID_INSERT_TBX RID_APP_START+21
+#define RID_POSITION RID_APP_START+22
+#define RID_POSITION_TBX RID_APP_START+23
+#define RID_CONNECTORS RID_APP_START+24
+#define RID_CONNECTORS_TBX RID_APP_START+25
+#define RID_ARROWS RID_APP_START+26
+#define RID_ARROWS_TBX RID_APP_START+27
+#define RID_DRAW_DOCWINDOWICON RID_APP_START+28
+#define RID_GRAFFILTERS RID_APP_START+29
+#define RID_GRAFFILTERS_TBX RID_APP_START+30
+
+// Bitmaps fuer Tree-ListBox im Effekte-TabDialog
+#define BMP_PAGE RID_APP_START+42
+#define BMP_PAGEOBJS RID_APP_START+43
+#define BMP_OBJECTS RID_APP_START+44
+#define BMP_DOC_OPEN RID_APP_START+45
+#define BMP_DOC_CLOSED RID_APP_START+46
+#define BMP_DOC_TEXT RID_APP_START+47
+#define BMP_OLE RID_APP_START+48
+#define BMP_PAGE_EXCLUDED RID_APP_START+49
+#define BMP_PAGEOBJS_EXCLUDED RID_APP_START+50
+#define BMP_EXPAND RID_APP_START+51
+#define BMP_COLLAPSE RID_APP_START+52
+#define BMP_GRAPHIC RID_APP_START+53
+
+// Bimaps fuer ValueSet im EffekteWindow
+#define BMP_EFFECT_NONE RID_APP_START+105
+#define BMP_TEXTEFFECT_DISCARD_FROM_T RID_APP_START+106
+#define BMP_TEXTEFFECT_FADE_FROM_CENTER RID_APP_START+107
+#define BMP_EFFECT_HIDE RID_APP_START+108
+#define BMP_EFFECT_APPEAR RID_APP_START+109
+
+// -----------------------------------------------------------------------------
+
+#define BMP_FOIL_NONE RID_APP_START+120
+#define BMP_GROUP RID_APP_START+121
+#define BMP_WAIT_ICON RID_APP_START+124
+
+// -----------------------------------------------------------------------------
+// additional effects
+#define BMP_EFFECT_DISCARD_FROM_UL RID_APP_START+130
+#define BMP_EFFECT_DISCARD_FROM_UR RID_APP_START+131
+#define BMP_EFFECT_DISCARD_FROM_LR RID_APP_START+132
+#define BMP_EFFECT_DISCARD_FROM_LL RID_APP_START+133
+#define BMP_EFFECT_DISCARD_S_FROM_L RID_APP_START+134
+#define BMP_EFFECT_DISCARD_S_FROM_UL RID_APP_START+135
+#define BMP_EFFECT_DISCARD_S_FROM_T RID_APP_START+136
+#define BMP_EFFECT_DISCARD_S_FROM_UR RID_APP_START+137
+#define BMP_EFFECT_DISCARD_S_FROM_R RID_APP_START+138
+#define BMP_EFFECT_DISCARD_S_FROM_LR RID_APP_START+139
+#define BMP_EFFECT_DISCARD_S_FROM_B RID_APP_START+140
+#define BMP_EFFECT_DISCARD_S_FROM_LL RID_APP_START+141
+#define BMP_EFFECT_VERTICAL_CHECKERBOARD RID_APP_START+142
+#define BMP_EFFECT_HORIZONTAL_CHECKERBOARD RID_APP_START+143
+#define BMP_EFFECT_STRTCH_FROM_L RID_APP_START+144
+#define BMP_EFFECT_STRTCH_FROM_UL RID_APP_START+145
+#define BMP_EFFECT_STRTCH_FROM_T RID_APP_START+146
+#define BMP_EFFECT_STRTCH_FROM_UR RID_APP_START+147
+#define BMP_EFFECT_STRTCH_FROM_R RID_APP_START+148
+#define BMP_EFFECT_STRTCH_FROM_LR RID_APP_START+149
+#define BMP_EFFECT_STRTCH_FROM_B RID_APP_START+150
+#define BMP_EFFECT_STRTCH_FROM_LL RID_APP_START+151
+
+#define BMP_EFFECT_STRTCH_HORIZONTAL RID_APP_START+152
+#define BMP_EFFECT_STRTCH_VERTICAL RID_APP_START+153
+#define BMP_EFFECT_ROTATE_HORIZONTAL RID_APP_START+154
+#define BMP_EFFECT_ROTATE_VERTICAL RID_APP_START+155
+
+#define BMP_FOIL_21 RID_APP_START+156
+#define BMP_FOIL_22 RID_APP_START+157
+#define BMP_FOIL_23 RID_APP_START+158
+#define BMP_FOIL_24 RID_APP_START+159
+
+#define BMP_EFFECT_UNCOVER_TO_L RID_APP_START+165
+#define BMP_EFFECT_UNCOVER_TO_UL RID_APP_START+166
+#define BMP_EFFECT_UNCOVER_TO_T RID_APP_START+167
+#define BMP_EFFECT_UNCOVER_TO_UR RID_APP_START+168
+#define BMP_EFFECT_UNCOVER_TO_R RID_APP_START+169
+#define BMP_EFFECT_UNCOVER_TO_LR RID_APP_START+170
+#define BMP_EFFECT_UNCOVER_TO_B RID_APP_START+171
+#define BMP_EFFECT_UNCOVER_TO_LL RID_APP_START+172
+
+#define BMP_PAGE_H RID_SD_START+213
+#define BMP_PAGEOBJS_H RID_SD_START+214
+#define BMP_OBJECTS_H RID_SD_START+215
+#define BMP_DOC_OPEN_H RID_SD_START+216
+#define BMP_DOC_CLOSED_H RID_SD_START+217
+#define BMP_DOC_TEXT_H RID_SD_START+218
+#define BMP_OLE_H RID_SD_START+219
+#define BMP_PAGE_EXCLUDED_H RID_SD_START+220
+#define BMP_PAGEOBJS_EXCLUDED_H RID_SD_START+221
+#define BMP_EXPAND_H RID_SD_START+222
+#define BMP_COLLAPSE_H RID_SD_START+223
+#define BMP_GRAPHIC_H RID_SD_START+224
+
+#define BMP_FOIL_NONE_H RID_SD_START+225
+#define BMP_GROUP_H RID_SD_START+226
+#define BMP_WAIT_ICON_H RID_SD_START+229
+
+#define BMP_FADE_EFFECT_INDICATOR RID_SD_START+331
+#define BMP_FADE_EFFECT_INDICATOR_H RID_SD_START+332
+
+#define BMP_COMMENTS_INDICATOR RID_SD_START+338
+#define BMP_COMMENTS_INDICATOR_H RID_SD_START+339
+
+#define BMP_LAYOUT_EMPTY RID_SD_START+340
+#define BMP_LAYOUT_EMPTY_H RID_SD_START+341
+#define BMP_LAYOUT_HEAD01 RID_SD_START+342
+#define BMP_LAYOUT_HEAD01_H RID_SD_START+343
+#define BMP_LAYOUT_HEAD02 RID_SD_START+344
+#define BMP_LAYOUT_HEAD02_H RID_SD_START+345
+#define BMP_LAYOUT_HEAD02A RID_SD_START+346
+#define BMP_LAYOUT_HEAD02A_H RID_SD_START+347
+#define BMP_LAYOUT_HEAD02B RID_SD_START+348
+#define BMP_LAYOUT_HEAD02B_H RID_SD_START+349
+#define BMP_LAYOUT_HEAD03 RID_SD_START+350
+#define BMP_LAYOUT_HEAD03_H RID_SD_START+351
+#define BMP_LAYOUT_HEAD03A RID_SD_START+352
+#define BMP_LAYOUT_HEAD03A_H RID_SD_START+353
+#define BMP_LAYOUT_HEAD03B RID_SD_START+354
+#define BMP_LAYOUT_HEAD03B_H RID_SD_START+355
+#define BMP_LAYOUT_HEAD03C RID_SD_START+356
+#define BMP_LAYOUT_HEAD03C_H RID_SD_START+357
+#define BMP_LAYOUT_HEAD04 RID_SD_START+358
+#define BMP_LAYOUT_HEAD04_H RID_SD_START+359
+#define BMP_LAYOUT_HEAD06 RID_SD_START+360
+#define BMP_LAYOUT_HEAD06_H RID_SD_START+361
+#define BMP_LAYOUT_TEXTONLY RID_SD_START+362
+#define BMP_LAYOUT_TEXTONLY_H RID_SD_START+363
+#define BMP_LAYOUT_VERTICAL01 RID_SD_START+364
+#define BMP_LAYOUT_VERTICAL01_H RID_SD_START+365
+#define BMP_LAYOUT_VERTICAL02 RID_SD_START+366
+#define BMP_LAYOUT_VERTICAL02_H RID_SD_START+367
+
+#define BMP_FOILH_01 RID_SD_START+388
+#define BMP_FOILH_01_H RID_SD_START+389
+#define BMP_FOILH_02 RID_SD_START+390
+#define BMP_FOILH_02_H RID_SD_START+391
+#define BMP_FOILH_03 RID_SD_START+392
+#define BMP_FOILH_03_H RID_SD_START+393
+#define BMP_FOILH_04 RID_SD_START+394
+#define BMP_FOILH_04_H RID_SD_START+395
+#define BMP_FOILH_06 RID_SD_START+396
+#define BMP_FOILH_06_H RID_SD_START+397
+#define BMP_FOILH_09 RID_SD_START+398
+#define BMP_FOILH_09_H RID_SD_START+399
+
+#define BMP_FOILN_01 RID_SD_START+400
+#define BMP_FOILN_01_H RID_SD_START+401
+
+#define BMP_PLACEHOLDER_SMALL_START (RID_SD_START+402) // these ids must stay in order!
+#define BMP_PLACEHOLDER_TABLE_SMALL (RID_SD_START+402)
+#define BMP_PLACEHOLDER_CHART_SMALL (RID_SD_START+403)
+#define BMP_PLACEHOLDER_IMAGE_SMALL (RID_SD_START+404)
+#define BMP_PLACEHOLDER_MOVIE_SMALL (RID_SD_START+405)
+#define BMP_PLACEHOLDER_TABLE_SMALL_HOVER (RID_SD_START+406)
+#define BMP_PLACEHOLDER_CHART_SMALL_HOVER (RID_SD_START+407)
+#define BMP_PLACEHOLDER_IMAGE_SMALL_HOVER (RID_SD_START+408)
+#define BMP_PLACEHOLDER_MOVIE_SMALL_HOVER (RID_SD_START+409)
+#define BMP_PLACEHOLDER_SMALL_END (RID_SD_START+410)
+#define BMP_PLACEHOLDER_LARGE_START (RID_SD_START+410)
+#define BMP_PLACEHOLDER_TABLE_LARGE (RID_SD_START+410)
+#define BMP_PLACEHOLDER_CHART_LARGE (RID_SD_START+411)
+#define BMP_PLACEHOLDER_IMAGE_LARGE (RID_SD_START+412)
+#define BMP_PLACEHOLDER_MOVIE_LARGE (RID_SD_START+413)
+#define BMP_PLACEHOLDER_TABLE_LARGE_HOVER (RID_SD_START+414)
+#define BMP_PLACEHOLDER_CHART_LARGE_HOVER (RID_SD_START+415)
+#define BMP_PLACEHOLDER_IMAGE_LARGE_HOVER (RID_SD_START+416)
+#define BMP_PLACEHOLDER_MOVIE_LARGE_HOVER (RID_SD_START+417)
+#define BMP_PLACEHOLDER_LARGE_END (RID_SD_START+418) // until here!
+
+// -----------------------------------------------------------------------------
+
+#define IMG_PIPETTE_H RID_APP_START+21
+#define IMG_GET1OBJECT_H RID_APP_START+22
+#define IMG_GETALLOBJECT_H RID_APP_START+23
+#define IMG_REMOVEBMP_H RID_APP_START+24
+#define IMG_REMOVEALLBMP_H RID_APP_START+25
+
+/*
+ * ResourceIDs fuer Popup-Menues brauchen keinen Dummy-String !!!
+ */
+
+#define RID_DRAW_TEXTOBJ_POPUP RID_APP_START+43
+#define RID_DRAW_GEOMOBJ_POPUP RID_APP_START+44
+#define RID_DRAW_NOSEL_POPUP RID_APP_START+45
+#define RID_SLIDE_SORTER_IMPRESS_SEL_POPUP RID_APP_START+46
+#define RID_BEZIER_POPUP RID_APP_START+47
+#define RID_DRAW_LINEOBJ_POPUP RID_APP_START+48
+#define RID_DRAW_MULTISELECTION_POPUP RID_APP_START+49
+#define RID_DRAW_PAGETAB_POPUP RID_APP_START+50
+#define RID_LAYERTAB_POPUP RID_APP_START+51
+#define RID_DRAW_GRAPHIC_POPUP RID_APP_START+52
+#define RID_DRAW_OLE2_POPUP RID_APP_START+53
+#define RID_DRAW_TEXTOBJ_INSIDE_POPUP RID_APP_START+54
+#define RID_SLIDE_SORTER_IMPRESS_NOSEL_POPUP RID_APP_START+55
+#define RID_OUTLINE_POPUP RID_APP_START+56
+#define RID_MASTERPAGE_POPUP RID_APP_START+57
+#define RID_DRAW_GROUPOBJ_POPUP RID_APP_START+58
+#define RID_DRAW_3DOBJ_POPUP RID_APP_START+59
+#define RID_DRAW_MEASUREOBJ_POPUP RID_APP_START+60
+#define RID_DRAW_EDGEOBJ_POPUP RID_APP_START+61
+#define RID_DRAW_BMP_CONVERT_POPUP RID_APP_START+62
+#define RID_DRAW_POLYLINEOBJ_POPUP RID_APP_START+63
+#define RID_DRAW_3DSCENE_POPUP RID_APP_START+64
+#define RID_DRAW_3DSCENE2_POPUP RID_APP_START+65
+#define RID_DRAW_CUSTOMSHAPE_POPUP RID_APP_START+66
+#define RID_TASKPANE_MASTERPAGESSELECTOR_POPUP RID_APP_START+67
+#define RID_TASKPANE_LAYOUTMENU_POPUP RID_APP_START+68
+#define RID_DRAW_MEDIA_POPUP RID_APP_START+69
+
+// Draw (Graphic)
+#define RID_GRAPHIC_TEXTOBJ_POPUP RID_APP_START+70
+#define RID_GRAPHIC_GEOMOBJ_POPUP RID_APP_START+71
+#define RID_GRAPHIC_NOSEL_POPUP RID_APP_START+72
+#define RID_GRAPHIC_LINEOBJ_POPUP RID_APP_START+73
+#define RID_GRAPHIC_MULTISELECTION_POPUP RID_APP_START+74
+#define RID_GRAPHIC_PAGETAB_POPUP RID_APP_START+75
+#define RID_GRAPHIC_GRAPHIC_POPUP RID_APP_START+76
+#define RID_GRAPHIC_OLE2_POPUP RID_APP_START+77
+#define RID_GRAPHIC_GROUPOBJ_POPUP RID_APP_START+78
+#define RID_GRAPHIC_3DOBJ_POPUP RID_APP_START+79
+#define RID_GRAPHIC_MEASUREOBJ_POPUP RID_APP_START+80
+#define RID_GRAPHIC_EDGEOBJ_POPUP RID_APP_START+81
+#define RID_GRAPHIC_POLYLINEOBJ_POPUP RID_APP_START+82
+#define RID_GRAPHIC_3DSCENE_POPUP RID_APP_START+83
+#define RID_GRAPHIC_3DSCENE2_POPUP RID_APP_START+84
+#define RID_GRAPHIC_CUSTOMSHAPE_POPUP RID_APP_START+85
+#define RID_GRAPHIC_MEDIA_POPUP RID_APP_START+86
+
+#define RID_SLIDE_SORTER_DRAW_SEL_POPUP RID_APP_START+87
+#define RID_SLIDE_SORTER_DRAW_NOSEL_POPUP RID_APP_START+88
+#define RID_SLIDE_SORTER_MASTER_SEL_POPUP RID_APP_START+89
+#define RID_SLIDE_SORTER_MASTER_NOSEL_POPUP RID_APP_START+90
+
+#define RID_DRAW_TABLE_POPUP RID_APP_START+91
+#define RID_GRAPHIC_TABLE_POPUP RID_APP_START+92
+
+#define RID_TASKPANE_CURRENT_MASTERPAGESSELECTOR_POPUP RID_APP_START+93
+
+#define RID_DRAW_TABLEOBJ_INSIDE_POPUP RID_APP_START+94
+
+/*
+ * Pointer (Mauszeiger)
+ */
+#define PTR_WATERCAN RID_APP_START+100
+#define PTR_PENCIL RID_APP_START+101
+
+
+/*
+ * Globale Dialog-IDs
+ */
+#define DLG_FONTWORK RID_APP_START+150
+
+/*
+ * ResourceIDs fuer Toolboxen nicht aendern, ohne die Strings in
+ * strings.hrc auf die selben IDs zu setzen (eine Toolbox und sein
+ * Konfigurationsstring muessen dieselbe ResourceID haben!).
+ */
+
+// --> Jetzt in cfgids.hxx
+/*
+#define _RID_DRAW_TOOLBOX RID_APP_START+200
+#define _RID_SLIDE_TOOLBOX RID_APP_START+201
+#define _RID_DRAW_OBJ_TOOLBOX RID_APP_START+202
+#define _RID_SLIDE_OBJ_TOOLBOX RID_APP_START+203
+#define _RID_BEZIER_TOOLBOX RID_APP_START+204
+#define _RID_TEXT_TOOLBOX RID_APP_START+205
+#define _RID_OUTLINE_TOOLBOX RID_APP_START+206
+#define _RID_DRAW_POLYLINEOBJ_POPUP RID_APP_START+207
+#define _RID_GLUEPOINTS_TOOLBOX RID_APP_START+208
+*/
+
+
+#define RID_DRAW_SNAPOBJECT_POPUP RID_APP_START+390
+#define RID_DRAW_GLUEPOINT_POPUP RID_APP_START+392
+#define RID_DRAW_CONTROL_POPUP RID_APP_START+393
+#define RID_FORM_CONTROL_POPUP RID_APP_START+394
+
+#define RID_GRAPHICSTYLEFAMILY RID_APP_START+395
+#define RID_PRESENTATIONSTYLEFAMILY RID_APP_START+396
+#define RID_GRAPHICSCELLFAMILY RID_APP_START+397
+
diff --git a/sd/source/ui/inc/sdpopup.hxx b/sd/source/ui/inc/sdpopup.hxx
new file mode 100644
index 000000000000..407d63ac4c8c
--- /dev/null
+++ b/sd/source/ui/inc/sdpopup.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 _SD_SDPOPUP_HXX
+#define _SD_SDPOPUP_HXX
+
+
+#include <vcl/menu.hxx>
+
+class SvxFieldData;
+
+/*************************************************************************
+|*
+|* PopupMenu zum Bearbeiten von Feldbefehlen
+|*
+\************************************************************************/
+
+class SdFieldPopup : public PopupMenu
+{
+private:
+ const SvxFieldData* pField;
+
+ void Fill( LanguageType eLanguage );
+
+public:
+ SdFieldPopup( const SvxFieldData* pInField, LanguageType eLanguage );
+ ~SdFieldPopup();
+
+ //virtual void Select();
+
+ SvxFieldData* GetField();
+};
+
+
+
+#endif // _SD_SDPOPUP_HXX
diff --git a/sd/source/ui/inc/sdpreslt.hrc b/sd/source/ui/inc/sdpreslt.hrc
new file mode 100644
index 000000000000..19c3ded484fb
--- /dev/null
+++ b/sd/source/ui/inc/sdpreslt.hrc
@@ -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.
+ *
+ ************************************************************************/
+#define DLG_PRESLT 868
+#define BTN_OK 1
+#define BTN_CANCEL 1
+#define BTN_LOAD 2
+#define BTN_HELP 1
+#define VS_LAYOUT 1
+#define FT_LAYOUT 1
+#define CBX_MASTER_PAGE 1
+#define CBX_CHECK_MASTERS 2
+
diff --git a/sd/source/ui/inc/sdpreslt.hxx b/sd/source/ui/inc/sdpreslt.hxx
new file mode 100644
index 000000000000..d3f2f5039526
--- /dev/null
+++ b/sd/source/ui/inc/sdpreslt.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 SD_PRES_LAYOUT_DLG_HXX
+#define SD_PRES_LAYOUT_DLG_HXX
+
+#include <vcl/dialog.hxx>
+#ifndef _SV_BUTTON_HXX //autogen
+#include <vcl/button.hxx>
+#endif
+#include <vcl/fixed.hxx>
+#include <svtools/valueset.hxx>
+
+class SfxItemSet;
+
+namespace sd {
+class DrawDocShell;
+class ViewShell;
+}
+
+
+
+class SdPresLayoutDlg
+ : public ModalDialog
+{
+public:
+ SdPresLayoutDlg(
+ ::sd::DrawDocShell* pDocShell,
+ ::sd::ViewShell* pViewShell,
+ ::Window* pWindow,
+ const SfxItemSet& rInAttrs);
+
+ virtual ~SdPresLayoutDlg (void);
+
+ void GetAttr(SfxItemSet& rOutAttrs);
+
+ DECL_LINK(ClickLayoutHdl, void *);
+ DECL_LINK(ClickLoadHdl, void *);
+
+private:
+ ::sd::DrawDocShell* mpDocSh;
+ ::sd::ViewShell* mpViewSh;
+ FixedText maFtLayout;
+ ValueSet maVS;
+ OKButton maBtnOK;
+ CancelButton maBtnCancel;
+ HelpButton maBtnHelp;
+ CheckBox maCbxMasterPage;
+ CheckBox maCbxCheckMasters;
+ PushButton maBtnLoad;
+
+ const SfxItemSet& mrOutAttrs;
+
+ List* mpLayoutNames;
+
+ String maName; // Layoutname oder Dateiname
+ long mnLayoutCount; // Anzahl, der im Dokument vorhandenen MasterPages
+ const String maStrNone;
+
+ void FillValueSet();
+ void Reset();
+};
+
+#endif
+
diff --git a/sd/source/ui/inc/sdstring.hrc b/sd/source/ui/inc/sdstring.hrc
new file mode 100644
index 000000000000..0646da058faf
--- /dev/null
+++ b/sd/source/ui/inc/sdstring.hrc
@@ -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.
+ *
+ ************************************************************************/
+#include <sfx2/sfx.hrc>
+#define SID_SD_STRING_START RID_APP_START+300
+
+// Texts for search and replace info and question boxes.
+#define STR_SAR_NOT_FOUND SID_SD_STRING_START+23
+#define STR_SAR_WRAP_FORWARD SID_SD_STRING_START+24
+#define STR_SAR_WRAP_BACKWARD SID_SD_STRING_START+25
+#define STR_SAR_WRAP_FORWARD_DRAW SID_SD_STRING_START+26
+#define STR_SAR_WRAP_BACKWARD_DRAW SID_SD_STRING_START+27
diff --git a/sd/source/ui/inc/sdtreelb.hxx b/sd/source/ui/inc/sdtreelb.hxx
new file mode 100755
index 000000000000..9681e9ba4230
--- /dev/null
+++ b/sd/source/ui/inc/sdtreelb.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 _SDTREELB_HXX
+#define _SDTREELB_HXX
+
+#include <svtools/transfer.hxx>
+
+#ifndef _SD_SDRESID_HXX
+#include "sdresid.hxx"
+#endif
+#include "pres.hxx"
+#include "sddllapi.h"
+#include <tools/string.hxx>
+#include <svtools/svtreebx.hxx>
+#include <svl/urlbmk.hxx>
+#include <tools/ref.hxx>
+#include "sdxfer.hxx"
+
+class SdDrawDocument;
+class SfxMedium;
+class SfxViewFrame;
+class SdNavigatorWin;
+class SdrObject;
+class SdrObjList;
+class SdPage;
+class SvLBoxEntry;
+
+namespace sd {
+class DrawDocShell;
+#ifndef SV_DECL_DRAW_DOC_SHELL_DEFINED
+#define SV_DECL_DRAW_DOC_SHELL_DEFINED
+SV_DECL_REF(DrawDocShell)
+#endif
+}
+
+/*************************************************************************
+|*
+|* Effekte-Tab-Dialog
+|*
+\************************************************************************/
+
+class SD_DLLPUBLIC SdPageObjsTLB : public SvTreeListBox
+{
+private:
+
+ static sal_Bool SD_DLLPRIVATE bIsInDrag; // static, falls der Navigator im ExecuteDrag geloescht wird
+
+public:
+
+ // nested class to implement the TransferableHelper
+ class SdPageObjsTransferable : public SdTransferable
+ {
+ public:
+ SdPageObjsTransferable(
+ SdPageObjsTLB& rParent,
+ const INetBookmark& rBookmark,
+ ::sd::DrawDocShell& rDocShell,
+ NavigatorDragType eDragType,
+ const ::com::sun::star::uno::Any& rTreeListBoxData );
+ ::sd::DrawDocShell& GetDocShell() const;
+ NavigatorDragType GetDragType() const;
+
+ static const ::com::sun::star::uno::Sequence< sal_Int8 >& getUnoTunnelId();
+ static SdPageObjsTransferable* getImplementation( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& rxData ) throw();
+ /** Return a temporary transferable data flavor that is used
+ internally in the navigator for reordering entries. Its
+ lifetime ends with the office application.
+ */
+ static sal_uInt32 GetListBoxDropFormatId (void);
+
+ private:
+ /** Temporary drop flavor id that is used internally in the
+ navigator.
+ */
+ static sal_uInt32 mnListBoxDropFormatId;
+
+ SdPageObjsTLB& mrParent;
+ INetBookmark maBookmark;
+ ::sd::DrawDocShell& mrDocShell;
+ NavigatorDragType meDragType;
+ const ::com::sun::star::uno::Any maTreeListBoxData;
+
+ SD_DLLPRIVATE virtual ~SdPageObjsTransferable();
+
+ SD_DLLPRIVATE virtual void AddSupportedFormats();
+ SD_DLLPRIVATE virtual sal_Bool GetData( const ::com::sun::star::datatransfer::DataFlavor& rFlavor );
+ SD_DLLPRIVATE virtual void DragFinished( sal_Int8 nDropAction );
+
+ SD_DLLPRIVATE virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< sal_Int8 >& rId ) throw( ::com::sun::star::uno::RuntimeException );
+ };
+
+ friend class SdPageObjsTLB::SdPageObjsTransferable;
+
+ /** Determine whether the specified page belongs to the current show
+ which is either the standard show or a custom show.
+ @param pPage
+ Pointer to the page for which to check whether it belongs to the
+ show.
+ @return
+ Returns <FALSE/> if there is no custom show or if the current
+ show does not contain the specified page at least once.
+ */
+ bool PageBelongsToCurrentShow (const SdPage* pPage) const;
+
+protected:
+
+ Window* mpParent;
+ const SdDrawDocument* mpDoc;
+ SdDrawDocument* mpBookmarkDoc;
+ SfxMedium* mpMedium;
+ SfxMedium* mpOwnMedium;
+ Image maImgOle;
+ Image maImgGraphic;
+ Image maImgOleH;
+ Image maImgGraphicH;
+ sal_Bool mbLinkableSelected;
+ sal_Bool mbDragEnabled;
+ String maDocName;
+ ::sd::DrawDocShellRef mxBookmarkDocShRef; // Zum Laden von Bookmarks
+ ::sd::DrawDocShell* mpDropDocSh;
+ SdNavigatorWin* mpDropNavWin;
+ SfxViewFrame* mpFrame;
+
+ // DragSourceHelper
+ virtual void StartDrag( sal_Int8 nAction, const Point& rPosPixel );
+
+ // DropTargetHelper
+ virtual sal_Int8 AcceptDrop( const AcceptDropEvent& rEvt );
+ virtual sal_Int8 ExecuteDrop( const ExecuteDropEvent& rEvt );
+
+ virtual void RequestingChilds( SvLBoxEntry* pParent );
+
+ void DoDrag();
+ void OnDragFinished( sal_uInt8 nDropAction );
+
+ /** Return the name of the object. When the object has no user supplied
+ name and the bCreate flag is <TRUE/> then a name is created
+ automatically. Additionally the mbShowAllShapes flag is taken into
+ account when there is no user supplied name. When this flag is
+ <FALSE/> then no name is created.
+ @param pObject
+ When this is NULL then an empty string is returned, regardless
+ of the value of bCreate.
+ @param bCreate
+ This flag controls for objects without user supplied name
+ whether a name is created. When a name is created then this
+ name is not stored in the object.
+ */
+ String GetObjectName (
+ const SdrObject* pObject,
+ const bool bCreate = true) const;
+ void CloseBookmarkDoc();
+ DECL_STATIC_LINK(SdPageObjsTLB, ExecDragHdl, void*);
+
+ /** Handle the reordering of entries in the navigator. This method
+ reorders both the involved shapes in their page as well as the
+ associated list box entries.
+ */
+ virtual sal_Bool NotifyMoving(
+ SvLBoxEntry* pTarget,
+ SvLBoxEntry* pEntry,
+ SvLBoxEntry*& rpNewParent,
+ sal_uLong& rNewChildPos);
+
+ using Window::GetDropTarget;
+ virtual SvLBoxEntry* GetDropTarget (const Point& rLocation);
+
+public:
+
+ SdPageObjsTLB( Window* pParent, const SdResId& rSdResId );
+ ~SdPageObjsTLB();
+
+ virtual void SelectHdl();
+ virtual void KeyInput( const KeyEvent& rKEvt );
+
+ void SetViewFrame( SfxViewFrame* pViewFrame ) { mpFrame = pViewFrame; }
+ SfxViewFrame* GetViewFrame() const { return mpFrame; }
+
+ void Fill( const SdDrawDocument*, sal_Bool bAllPages, const String& rDocName );
+ void Fill( const SdDrawDocument*, SfxMedium* pSfxMedium, const String& rDocName );
+ void SetShowAllShapes (const bool bShowAllShapes, const bool bFill);
+ bool GetShowAllShapes (void) const;
+ sal_Bool IsEqualToDoc( const SdDrawDocument* pInDoc = NULL );
+ sal_Bool HasSelectedChilds( const String& rName );
+ sal_Bool SelectEntry( const String& rName );
+ String GetSelectEntry();
+ List* GetSelectEntryList( sal_uInt16 nDepth );
+ SdDrawDocument* GetBookmarkDoc(SfxMedium* pMedium = NULL);
+ ::sd::DrawDocShell* GetDropDocSh() { return(mpDropDocSh); }
+
+ sal_Bool IsLinkableSelected() const { return mbLinkableSelected; }
+
+ static sal_Bool IsInDrag();
+ using SvLBox::ExecuteDrop;
+
+ using SvTreeListBox::SelectEntry;
+private:
+ /** This flag controls whether all shapes are shown as children of pages
+ and group shapes or only the named shapes.
+ */
+ bool mbShowAllShapes;
+ /** This flag controls whether to show all pages.
+ */
+ bool mbShowAllPages;
+
+ /** Return <TRUE/> when the current transferable may be dropped at the
+ given list box entry.
+ */
+ bool IsDropAllowed (SvLBoxEntry* pEntry);
+
+ /** This inner class is defined in sdtreelb.cxx and is basically a
+ container for the icons used in the list box for the entries.
+ */
+ class IconProvider;
+
+ /** Add one list box entry for the parent of the given shapes and one child entry for
+ each of the given shapes.
+ @param rList
+ The container of shapes that are to be inserted.
+ @param pShape
+ The parent shape or NULL when the parent is a page.
+ @param rsName
+ The name to be displayed for the new parent node.
+ @param bIsExcluded
+ Some pages can be excluded (from the show?).
+ @param pParentEntry
+ The parent entry of the new parent entry.
+ @param rIconProvider
+ Icons used to visualize the different shape and page types.
+ */
+ void AddShapeList (
+ const SdrObjList& rList,
+ SdrObject* pShape,
+ const ::rtl::OUString& rsName,
+ const bool bIsExcluded,
+ SvLBoxEntry* pParentEntry,
+ const IconProvider& rIconProvider);
+
+ /** Add the given object to a transferable object so that the object can
+ be dragged and dropped without having a name.
+ */
+ void AddShapeToTransferable (
+ SdTransferable& rTransferable,
+ SdrObject& rObject) const;
+};
+
+#endif // _SDTREELB_HXX
diff --git a/sd/source/ui/inc/sdundogr.hxx b/sd/source/ui/inc/sdundogr.hxx
new file mode 100755
index 000000000000..5bc8da7c0ec3
--- /dev/null
+++ b/sd/source/ui/inc/sdundogr.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 _SD_SDUNDOGR_HXX
+#define _SD_SDUNDOGR_HXX
+
+#include <tools/contnr.hxx>
+#include "sdundo.hxx"
+#include "sddllapi.h"
+
+class SD_DLLPUBLIC SdUndoGroup : public SdUndoAction
+{
+ Container aCtn;
+public:
+ TYPEINFO();
+ SdUndoGroup(SdDrawDocument* pSdDrawDocument)
+ : SdUndoAction(pSdDrawDocument),
+ aCtn(16, 16, 16) {}
+ virtual ~SdUndoGroup();
+
+ virtual sal_Bool Merge( SfxUndoAction* pNextAction );
+
+ virtual void Undo();
+ virtual void Redo();
+
+ void AddAction(SdUndoAction* pAction);
+ sal_uLong Count() const { return aCtn.Count(); }
+
+};
+
+#endif // _SD_SDUNDOGR_HXX
diff --git a/sd/source/ui/inc/sdxfer.hxx b/sd/source/ui/inc/sdxfer.hxx
new file mode 100755
index 000000000000..f29b1d28936a
--- /dev/null
+++ b/sd/source/ui/inc/sdxfer.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 _SD_SDXFER_HXX
+#define _SD_SDXFER_HXX
+
+#include <svtools/transfer.hxx>
+#include <vcl/graph.hxx>
+#include <sfx2/objsh.hxx>
+#include <svl/lstner.hxx>
+
+// ------------------
+// - SdTransferable -
+// ------------------
+
+class SdDrawDocument;
+class SdrObject;
+class INetBookmark;
+class ImageMap;
+class VirtualDevice;
+
+namespace sd {
+class DrawDocShell;
+class View;
+}
+
+class SfxObjectShellRef;
+class SdTransferable : public TransferableHelper, public SfxListener
+{
+public:
+
+ SdTransferable( SdDrawDocument* pSrcDoc, ::sd::View* pWorkView, sal_Bool bInitOnGetData );
+ ~SdTransferable();
+
+ void SetDocShell( const SfxObjectShellRef& rRef ) { maDocShellRef = rRef; }
+ const SfxObjectShellRef& GetDocShell() const { return maDocShellRef; }
+
+ void SetWorkDocument( const SdDrawDocument* pWorkDoc ) { mpSdDrawDocument = mpSdDrawDocumentIntern = (SdDrawDocument*) pWorkDoc; }
+ const SdDrawDocument* GetWorkDocument() const { return mpSdDrawDocument; }
+
+ void SetView( const ::sd::View* pView ) { mpSdView = pView; }
+ const ::sd::View* GetView() const { return mpSdView; }
+
+ void SetObjectDescriptor( const TransferableObjectDescriptor& rObjDesc );
+
+ void SetStartPos( const Point& rStartPos ) { maStartPos = rStartPos; }
+ const Point& GetStartPos() const { return maStartPos; }
+
+ void SetInternalMove( sal_Bool bSet ) { mbInternalMove = bSet; }
+ sal_Bool IsInternalMove() const { return mbInternalMove; }
+
+ sal_Bool HasSourceDoc( const SdDrawDocument* pDoc ) const { return( mpSourceDoc == pDoc ); }
+
+ void SetPageBookmarks( const List& rPageBookmarks, sal_Bool bPersistent );
+ sal_Bool IsPageTransferable() const { return mbPageTransferable; }
+ sal_Bool HasPageBookmarks() const { return( mpPageDocShell && ( maPageBookmarks.Count() > 0 ) ); }
+ const List& GetPageBookmarks() const { return maPageBookmarks; }
+ ::sd::DrawDocShell* GetPageDocShell() const { return mpPageDocShell; }
+
+ sal_Bool SetTableRTF( SdDrawDocument*, const ::com::sun::star::datatransfer::DataFlavor& );
+
+ static const ::com::sun::star::uno::Sequence< sal_Int8 >& getUnoTunnelId();
+ static SdTransferable* getImplementation( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& rxData ) throw();
+
+ // SfxListener
+ virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
+
+protected:
+
+ virtual void AddSupportedFormats();
+ virtual sal_Bool GetData( const ::com::sun::star::datatransfer::DataFlavor& rFlavor );
+ virtual sal_Bool WriteObject( SotStorageStreamRef& rxOStm, void* pUserObject, sal_uInt32 nUserObjectId, const ::com::sun::star::datatransfer::DataFlavor& rFlavor );
+ virtual void DragFinished( sal_Int8 nDropAction );
+ virtual void ObjectReleased();
+
+ virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< sal_Int8 >& rId ) throw( ::com::sun::star::uno::RuntimeException );
+
+private:
+
+ SfxObjectShellRef maDocShellRef;
+ ::sd::DrawDocShell* mpPageDocShell;
+ List maPageBookmarks;
+ TransferableDataHelper* mpOLEDataHelper;
+ TransferableObjectDescriptor* mpObjDesc;
+ const ::sd::View* mpSdView;
+ ::sd::View* mpSdViewIntern;
+ SdDrawDocument* mpSdDrawDocument;
+ SdDrawDocument* mpSdDrawDocumentIntern;
+ SdDrawDocument* mpSourceDoc;
+ VirtualDevice* mpVDev;
+ INetBookmark* mpBookmark;
+ Graphic* mpGraphic;
+ ImageMap* mpImageMap;
+ Rectangle maVisArea;
+ Point maStartPos;
+ sal_Bool mbInternalMove : 1;
+ sal_Bool mbOwnDocument : 1;
+ sal_Bool mbOwnView : 1;
+ sal_Bool mbLateInit : 1;
+ sal_Bool mbPageTransferable : 1;
+ sal_Bool mbPageTransferablePersistent : 1;
+ bool mbIsUnoObj : 1;
+
+ // not available
+ SdTransferable();
+ SdTransferable( const SdTransferable& );
+ SdTransferable& operator=( const SdTransferable& );
+
+ void CreateObjectReplacement( SdrObject* pObj );
+ void CreateData();
+
+};
+
+#endif // _SD_SDXFER_HXX
diff --git a/sd/source/ui/inc/slideshow.hxx b/sd/source/ui/inc/slideshow.hxx
new file mode 100755
index 000000000000..eda80feeb825
--- /dev/null
+++ b/sd/source/ui/inc/slideshow.hxx
@@ -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.
+ *
+ ************************************************************************/
+
+#ifndef _SD_SLIDESHOW_HXX
+#define _SD_SLIDESHOW_HXX
+
+#include <com/sun/star/presentation/XPresentation2.hpp>
+#include <com/sun/star/lang/XServiceInfo.hpp>
+
+#include <rtl/ref.hxx>
+
+#include <tools/link.hxx>
+
+#include <cppuhelper/compbase2.hxx>
+#include <cppuhelper/basemutex.hxx>
+
+#include <editeng/unoipset.hxx>
+
+#include <memory>
+#include <boost/shared_ptr.hpp>
+
+namespace com { namespace sun { namespace star {
+
+ namespace drawing {
+ class XDrawPage;
+ }
+ namespace animations {
+ class XAnimationNode;
+ }
+} } }
+
+class SdDrawDocument;
+class KeyEvent;
+class HelpEvent;
+class MouseEvent;
+class Size;
+class CommandEvent;
+class Rectangle;
+class Window;
+class SfxRequest;
+
+// TODO: Remove
+#define PAGE_NO_END 65535
+#define PAGE_NO_SOFTEND (PAGE_NO_END - 1)
+#define PAGE_NO_PAUSE (PAGE_NO_SOFTEND - 1)
+#define PAGE_NO_FIRSTDEF PAGE_NO_PAUSE // immer mit anpassen
+
+/* Definition of SlideShow class */
+
+namespace sd
+{
+
+class SlideshowImpl;
+class ShowWindow;
+class Window;
+class View;
+class ViewShell;
+struct PresentationSettings;
+class EffectSequenceHelper;
+class ViewShellBase;
+struct PresentationSettingsEx;
+class FrameView;
+
+enum AnimationMode
+{
+ ANIMATIONMODE_SHOW,
+ ANIMATIONMODE_VIEW,
+ ANIMATIONMODE_PREVIEW
+};
+
+typedef ::cppu::WeakComponentImplHelper2< ::com::sun::star::presentation::XPresentation2, ::com::sun::star::lang::XServiceInfo > SlideshowBase;
+
+class SlideShow : private ::cppu::BaseMutex, public SlideshowBase
+{
+public:
+ /// used by the model to create a slideshow for it
+ static rtl::Reference< SlideShow > Create( SdDrawDocument* pDoc );
+
+ // static helper api
+ static rtl::Reference< SlideShow > GetSlideShow( SdDrawDocument* pDocument );
+ static rtl::Reference< SlideShow > GetSlideShow( ViewShellBase& rBase );
+
+ static ::com::sun::star::uno::Reference< ::com::sun::star::presentation::XSlideShowController > GetSlideShowController(ViewShellBase& rBase );
+
+ static bool StartPreview( ViewShellBase& rBase,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XDrawPage >& xDrawPage,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::animations::XAnimationNode >& xAnimationNode,
+ ::Window* pParent = 0 );
+
+ static void Stop( ViewShellBase& rBase );
+
+ /// returns true if there is a running presentation for the given ViewShellBase
+ static bool IsRunning( ViewShellBase& rBase );
+
+ /// returns true if there is a running presentation inside the given ViewShell
+ /// returns false even if there is a running presentation but in another ViewShell
+ static bool IsRunning( ViewShell& rViewShell );
+
+ // helper api
+
+ bool startPreview(
+ const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XDrawPage >& xDrawPage,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::animations::XAnimationNode >& xAnimationNode,
+ ::Window* pParent = 0 );
+
+ // uno api
+
+ virtual void SAL_CALL disposing (void);
+
+ // 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);
+
+ // XPropertySet
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Any& aValue ) throw (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( const ::rtl::OUString& PropertyName ) throw (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& xListener ) throw (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& aListener ) throw (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener ) throw (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener ) throw (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+
+ // XPresentation
+ virtual void SAL_CALL start( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL end( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL rehearseTimings( ) throw (::com::sun::star::uno::RuntimeException);
+
+ // XPresentation2
+ virtual void SAL_CALL startWithArguments( const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& Arguments ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::sal_Bool SAL_CALL isRunning( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::presentation::XSlideShowController > SAL_CALL getController( ) throw (::com::sun::star::uno::RuntimeException);
+
+ // legacy api
+
+ // actions
+ void jumpToPageNumber( sal_Int32 nPage ); // a.k.a. FuSlideShow::JumpToPage()
+ void jumpToPageIndex( sal_Int32 nIndex );
+ void jumpToBookmark( const ::rtl::OUString& sBookmark ); // a.k.a. FuSlideShow::JumpToBookmark()
+
+ /** sets or clears the pause state of the running slideshow.
+ !!!! This should only be called by the SdShowWindow !!!!*/
+ bool pause( bool bPause );
+
+
+ // settings
+ bool isFullScreen(); // a.k.a. FuSlideShow::IsFullScreen()
+ bool isAlwaysOnTop(); // a.k.a. FuSlideShow::IsAlwaysOnTop();
+ ShowWindow* getShowWindow(); // a.k.a. FuSlideShow::GetShowWindow()
+ int getAnimationMode(); // a.k.a. FuSlideShow::GetAnimationMode()
+ sal_Int32 getCurrentPageNumber(); // a.k.a. FuSlideShow::GetCurrentPage()
+ sal_Int32 getFirstPageNumber();
+ sal_Int32 getLastPageNumber();
+ bool isEndless();
+ bool isDrawingPossible();
+
+ // events
+ void resize( const Size &rSize );
+ void activate(ViewShellBase& rBase);
+ void deactivate(ViewShellBase& rBase);
+ void paint( const Rectangle& rRect );
+
+ bool keyInput(const KeyEvent& rKEvt);
+
+ void receiveRequest(SfxRequest& rReq);
+
+ bool dependsOn( ViewShellBase* pViewShellBase );
+
+ static sal_Int32 GetDisplay();
+
+private:
+ SlideShow( SdDrawDocument* pDoc );
+
+ DECL_LINK( StartInPlacePresentationConfigurationHdl, void * );
+ void StartInPlacePresentationConfigurationCallback();
+
+ void StartInPlacePresentation();
+ void StartFullscreenPresentation();
+
+ void ThrowIfDisposed() throw (::com::sun::star::uno::RuntimeException);
+
+ void CreateController( ViewShell* pViewSh, ::sd::View* pView, ::Window* pParentWindow );
+
+ // default: disabled copy/assignment
+ SlideShow(const SlideShow&);
+ SlideShow& operator=( const SlideShow& );
+
+ SvxItemPropertySet maPropSet;
+
+ rtl::Reference< SlideshowImpl > mxController;
+ /** This flag is used together with mxController.is() to prevent
+ multiple instances of the slide show for one document. The flag
+ covers the time before mxController is set.
+ */
+ bool mbIsInStartup;
+ SdDrawDocument* mpDoc;
+
+ boost::shared_ptr< PresentationSettingsEx > mxCurrentSettings;
+
+ ViewShellBase* mpCurrentViewShellBase;
+ ViewShellBase* mpFullScreenViewShellBase;
+ FrameView* mpFullScreenFrameView;
+ sal_Int32 mnInPlaceConfigEvent;
+};
+
+}
+
+#endif /* _SD_SLIDESHOW_HXX */
diff --git a/sd/source/ui/inc/smarttag.hxx b/sd/source/ui/inc/smarttag.hxx
new file mode 100755
index 000000000000..f24de66f144d
--- /dev/null
+++ b/sd/source/ui/inc/smarttag.hxx
@@ -0,0 +1,188 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef _SD_SMARTTAG_HXX_
+#define _SD_SMARTTAG_HXX_
+
+#include "helper/simplereferencecomponent.hxx"
+#include <rtl/ref.hxx>
+#include <set>
+#include <svx/svdhdl.hxx>
+#include <svx/svdview.hxx>
+
+class KeyEvent;
+class MouseEvent;
+class SdrHdlList;
+
+namespace sd {
+
+class View;
+class SmartHdl;
+
+/** a smart tag represents a visual user interface element on the documents edit view
+ that is not part of the document. It uses derivations from SmartHdl for its visuals.
+ A SmartTag adds himself to the given view if created. It removes himself if it
+ is disposed before the view is disposed.
+
+ Derive from this class to implement your own smart tag.
+*/
+class SmartTag : public SimpleReferenceComponent
+{
+ friend class SmartTagSet;
+
+public:
+ explicit SmartTag( ::sd::View& rView );
+ virtual ~SmartTag();
+
+ /** returns true if the SmartTag consumes this event. */
+ virtual bool MouseButtonDown( const MouseEvent&, SmartHdl& );
+
+ /** returns true if the SmartTag consumes this event. */
+ virtual bool KeyInput( const KeyEvent& rKEvt );
+
+ /** returns true if the SmartTag consumes this event. */
+ virtual bool RequestHelp( const HelpEvent& rHEvt );
+
+ /** returns true if the SmartTag consumes this event. */
+ virtual bool Command( const CommandEvent& rCEvt );
+
+ /** returns true if this smart tag is currently selected */
+ bool isSelected() const;
+
+ ::sd::View& getView() const { return mrView; }
+
+protected:
+ virtual sal_uLong GetMarkablePointCount() const;
+ virtual sal_uLong GetMarkedPointCount() const;
+ virtual sal_Bool MarkPoint(SdrHdl& rHdl, sal_Bool bUnmark=sal_False);
+ virtual void CheckPossibilities();
+ virtual sal_Bool MarkPoints(const Rectangle* pRect, sal_Bool bUnmark);
+
+ virtual void addCustomHandles( SdrHdlList& rHandlerList );
+ virtual void select();
+ virtual void deselect();
+ virtual bool getContext( SdrViewContext& rContext );
+
+ virtual void disposing();
+
+ ::sd::View& mrView;
+ bool mbSelected;
+
+private:
+ SmartTag( const SmartTag& ); // not implemented
+ SmartTag& operator=( const SmartTag& ); // not implemented
+};
+
+typedef rtl::Reference< SmartTag > SmartTagReference;
+
+/** class to administrate the available smart tags for a single view. */
+class SmartTagSet
+{
+ friend class SmartTag;
+public:
+ explicit SmartTagSet( ::sd::View& rView );
+ ~SmartTagSet();
+
+ /** selects the given smart tag and updates all handles */
+ void select( const SmartTagReference& xTag );
+
+ /** deselects the current selected smart tag and updates all handles */
+ void deselect();
+
+ /** returns the currently selected tag or an empty reference. */
+ const SmartTagReference& getSelected() const { return mxSelectedTag; }
+
+ /** returns true if a SmartTag consumes this event. */
+ bool MouseButtonDown( const MouseEvent& );
+
+ /** returns true if a SmartTag consumes this event. */
+ bool KeyInput( const KeyEvent& rKEvt );
+
+ /** returns true if a SmartTag consumes this event. */
+ bool RequestHelp( const HelpEvent& rHEvt );
+
+ /** returns true if a SmartTag consumes this event. */
+ bool Command( const CommandEvent& rCEvt );
+
+ /** disposes all smart tags and clears the set */
+ void Dispose();
+
+ /** addes the handles from all smart tags to the given list */
+ void addCustomHandles( SdrHdlList& rHandlerList );
+
+ /** returns true if the currently selected smart tag has
+ a special context, returned in rContext. */
+ bool getContext( SdrViewContext& rContext ) const;
+
+ // support point editing
+ sal_Bool HasMarkablePoints() const;
+ sal_uLong GetMarkablePointCount() const;
+ sal_Bool HasMarkedPoints() const;
+ sal_uLong GetMarkedPointCount() const;
+ sal_Bool IsPointMarkable(const SdrHdl& rHdl) const;
+ sal_Bool MarkPoint(SdrHdl& rHdl, sal_Bool bUnmark=sal_False);
+ sal_Bool MarkPoints(const Rectangle* pRect, sal_Bool bUnmark);
+
+ void CheckPossibilities();
+
+private:
+ SmartTagSet( const SmartTagSet& ); // not implemented
+ SmartTagSet& operator=( const SmartTagSet& ); // not implemented
+
+ /** adds a new smart tag to this set */
+ void add( const SmartTagReference& xTag );
+
+ /** removes the given smart tag from this set */
+ void remove( const SmartTagReference& xTag );
+
+ std::set< SmartTagReference > maSet;
+
+ ::sd::View& mrView;
+ SmartTagReference mxSelectedTag;
+ SmartTagReference mxMouseOverTag;
+};
+
+/** a derivation from this handle is the visual representation for a smart tag.
+ One smart tag can have more than one handle.
+*/
+class SmartHdl : public SdrHdl
+{
+public:
+ SmartHdl( const SmartTagReference& xTag, SdrObject* pObject, const Point& rPnt, SdrHdlKind eNewKind=HDL_SMARTTAG );
+ SmartHdl( const SmartTagReference& xTag, const Point& rPnt, SdrHdlKind eNewKind=HDL_SMARTTAG );
+
+ const SmartTagReference& getTag() const { return mxTag; }
+
+ virtual bool isMarkable() const;
+protected:
+ SmartTagReference mxTag;
+};
+
+} // end of namespace sd
+
+#endif // _SD_SMARTTAG_HXX_
+
diff --git a/sd/source/ui/inc/sprite.hxx b/sd/source/ui/inc/sprite.hxx
new file mode 100755
index 000000000000..9df19b96501e
--- /dev/null
+++ b/sd/source/ui/inc/sprite.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 SD_SPRITE_HXX
+#define SD_SPRITE_HXX
+
+#include <vcl/virdev.hxx>
+#include <vcl/region.hxx>
+#include <vcl/mapmod.hxx>
+#include <vcl/image.hxx>
+#include <vcl/bitmapex.hxx>
+
+// ----------
+// - Sprite -
+// ----------
+
+
+namespace sd {
+
+class Marker;
+class MetaFile;
+
+class Sprite
+{
+public:
+ Sprite( List* pListOfBmpEx );
+ ~Sprite();
+
+ sal_Bool StartMoving( OutputDevice* pOut,
+ OutputDevice* pBottomLayer = NULL,
+ BitmapEx* pTopLayer = NULL,
+ MetaFile** ppTopMtf = NULL,
+ Marker* pObjStartMarker = NULL,
+ Marker* pObjEndMarker = NULL );
+ void MoveTo( OutputDevice* pOut, const Point& rPt, const Size* pSz = NULL );
+ void MoveTo( OutputDevice* pOut, const Point& rPt, const double& rScaleX, const double& rScaleY );
+ void EndMoving( OutputDevice* pOut );
+
+protected:
+ MapMode aOldMap;
+ Region aOldClip;
+ Rectangle aPaintRect;
+ Point aPt;
+ Size aSz;
+ Point aLayerOffsetPix;
+ VirtualDevice* pPaintDev;
+ VirtualDevice* pBottomLayer;
+ BitmapEx* pActBmpEx;
+ BitmapEx* pTopLayer;
+ MetaFile** ppTopMtf;
+ Marker* pObjStartMarker;
+ Marker* pObjEndMarker;
+ List* pListOfBmpEx;
+ sal_uLong nLastTime;
+ sal_Bool bClipRegion;
+
+ sal_Bool ImplPrepareMoveTo();
+ void ImplDrawSprite( OutputDevice* pOut, const Point& rPt, const Size& rSz );
+
+};
+
+}
+
+#endif
diff --git a/sd/source/ui/inc/strings.hrc b/sd/source/ui/inc/strings.hrc
new file mode 100755
index 000000000000..97693308ee07
--- /dev/null
+++ b/sd/source/ui/inc/strings.hrc
@@ -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.
+ *
+ ************************************************************************/
+#include "sfx2/sfx.hrc"
+#ifndef _SD_CFGID_HXX
+#include "cfgids.hxx"
+#endif
+#define STR_NULL (RID_APP_START+3)
+#define STR_INSERTPAGE (RID_APP_START+35)
+#define STR_INSERTLAYER (RID_APP_START+37)
+#define STR_MODIFYLAYER (RID_APP_START+38)
+#define STR_UNDO_SLIDE_MOVE (RID_APP_START+41)
+#define STR_UNDO_REPLACE (RID_APP_START+42)
+
+/*
+ * Dummy-Strings, diese ResourceIDs duerfen nicht an andere Strings vergeben
+ * werden, da sie fuer Popup-Menues benutzt werden (ein Popup-Menue und sein
+ * Konfigurationsstring muessen dieselbe ResourceID haben!).
+ * siehe auch: res_bmp.hrc, popup.src
+ */
+
+#define STR_DRAW_TEXTOBJ_POPUP (RID_APP_START+43)
+#define STR_DRAW_GEOMOBJ_POPUP (RID_APP_START+44)
+#define STR_DRAW_NOSEL_POPUP (RID_APP_START+45)
+#define STR_SLIDETABLE_POPUP (RID_APP_START+46)
+#define STR_BEZIER_POPUP (RID_APP_START+47)
+#define STR_DRAW_LINEOBJ_POPUP (RID_APP_START+48)
+#define STR_DRAW_MULTISELECTION_POPUP (RID_APP_START+49)
+#define STR_PAGETAB_POPUP (RID_APP_START+50)
+#define STR_LAYERTAB_POPUP (RID_APP_START+51)
+#define STR_DRAW_GRAPHIC_POPUP (RID_APP_START+52)
+#define STR_DRAW_OLE2_POPUP (RID_APP_START+53)
+#define STR_DRAW_TEXTOBJ_INSIDE_POPUP (RID_APP_START+54)
+#define STR_SLIDE_NOSEL_POPUP (RID_APP_START+55)
+#define STR_OUTLINE_POPUP (RID_APP_START+56)
+#define STR_MASTERPAGE_POPUP (RID_APP_START+57)
+#define STR_DRAW_GROUPOBJ_POPUP (RID_APP_START+58)
+
+#define STR_UNDO_CUT (RID_APP_START+59)
+#define STR_UNDO_DRAGDROP (RID_APP_START+66)
+#define STR_INSERTGRAPHIC (RID_APP_START+67)
+
+/*
+ * Ueberblendeffekte: sollten nach hinten offen bleiben,
+ * da FadeEffectLB mit variabler Anzahl arbeitet
+ * (Jetzt ueber STR_EFFECT_...)
+ */
+#define STR_DRAGTYPE_URL (RID_APP_START+70)
+#define STR_DRAGTYPE_EMBEDDED (RID_APP_START+71)
+#define STR_DRAGTYPE_LINK (RID_APP_START+72)
+#define STR_GLUE_ESCDIR_SMART (RID_APP_START+73)
+#define STR_GLUE_ESCDIR_LEFT (RID_APP_START+74)
+#define STR_GLUE_ESCDIR_RIGHT (RID_APP_START+75)
+#define STR_GLUE_ESCDIR_TOP (RID_APP_START+76)
+#define STR_GLUE_ESCDIR_BOTTOM (RID_APP_START+77)
+#define STR_GLUE_ESCDIR_LO (RID_APP_START+78)
+#define STR_GLUE_ESCDIR_LU (RID_APP_START+79)
+#define STR_GLUE_ESCDIR_RO (RID_APP_START+80)
+#define STR_GLUE_ESCDIR_RU (RID_APP_START+81)
+#define STR_GLUE_ESCDIR_HORZ (RID_APP_START+82)
+#define STR_GLUE_ESCDIR_VERT (RID_APP_START+83)
+#define STR_GLUE_ESCDIR_ALL (RID_APP_START+84)
+
+#define STR_CANT_PERFORM_IN_LIVEMODE (RID_APP_START+85)
+#define STR_PUBLISH_BACK (RID_APP_START+86)
+#define STR_PUBLISH_NEXT (RID_APP_START+87)
+#define STR_PUBLISH_OUTLINE (RID_APP_START+88)
+#define STR_UNDO_COLORRESOLUTION (RID_APP_START+89)
+
+/* Von 90 - 100 fuer Popups freihalten */
+#define STR_DRAW_3DOBJ_POPUP (RID_APP_START+90)
+#define STR_DRAW_MEASUREOBJ_POPUP (RID_APP_START+91)
+#define STR_ASK_DELETE_ALL_PICTURES (RID_APP_START+92)
+#define STR_WARN_PAGE_EXISTS (RID_APP_START+93)
+
+#define STR_SLOW (RID_APP_START+112)
+#define STR_MEDIUM (RID_APP_START+113)
+#define STR_FAST (RID_APP_START+114)
+
+#define STR_SLIDE_MODE (RID_APP_START+121)
+#define STR_DRAW_MODE (RID_APP_START+122)
+#define STR_OUTLINE_MODE (RID_APP_START+123)
+
+#define STR_UNDO_BEZCLOSE (RID_APP_START+127)
+
+#define STR_END_SPELLING_OBJ (RID_APP_START+129)
+#define STR_NOTES_MODE (RID_APP_START+135)
+#define STR_HANDOUT_MODE (RID_APP_START+136)
+
+#define STR_LINEEND (RID_APP_START+137)
+#define STR_DESC_LINEEND (RID_APP_START+138)
+#define STR_WARN_NAME_DUPLICATE (RID_APP_START+139)
+#define STR_UNDO_COPYOBJECTS (RID_APP_START+140)
+#define STR_DESC_NAMEGROUP (RID_APP_START+141)
+#define STR_TITLE_NAMEGROUP (RID_APP_START+143)
+
+#define STR_SNAPDLG_SETLINE (RID_APP_START+144)
+#define STR_SNAPDLG_SETPOINT (RID_APP_START+145)
+#define STR_POPUP_EDIT_SNAPLINE (RID_APP_START+146)
+#define STR_POPUP_EDIT_SNAPPOINT (RID_APP_START+147)
+
+#define STR_IMPRESS (RID_APP_START+149)
+#define STR_IMPRESS_DOCUMENT (RID_APP_START+154)
+#define STR_LAYER (RID_APP_START+158)
+// #define (RID_APP_START+159)
+
+#define STR_POPUP_DELETE_SNAPLINE (RID_APP_START+160)
+#define STR_POPUP_DELETE_SNAPPOINT (RID_APP_START+161)
+
+#define STR_SCALE_OBJS_TO_PAGE (RID_APP_START+162)
+
+#define STR_EYEDROPPER (RID_APP_START+163)
+
+#define STR_UNDO_MORPHING (RID_APP_START+164)
+
+#define STR_IMPRESS_DOCUMENT_FULLTYPE_60 (RID_APP_START+170)
+
+/*
+ * ResourceIDs fuer Toolboxen nicht aendern, ohne die Strings in
+ * strings.hrc auf die selben IDs zu setzen (eine Toolbox und sein
+ * Konfigurationsstring muessen dieselbe ResourceID haben!).
+ */
+
+#define STR_PLUGIN_TOOLBOX RID_PLUGINTOOLBOX
+#define STR_DRAW_TOOLBOX RID_DRAW_TOOLBOX
+#define STR_SLIDE_TOOLBOX RID_SLIDE_TOOLBOX
+#define STR_DRAW_OBJ_TOOLBOX RID_DRAW_OBJ_TOOLBOX
+#define STR_SLIDE_OBJ_TOOLBOX RID_SLIDE_OBJ_TOOLBOX
+#define STR_BEZIER_TOOLBOX RID_BEZIER_TOOLBOX
+#define STR_DRAW_TEXT_TOOLBOX RID_DRAW_TEXT_TOOLBOX
+#define STR_DRAW_TABLE_TOOLBOX RID_DRAW_TABLE_TOOLBOX
+#define STR_OUTLINE_TOOLBOX RID_OUTLINE_TOOLBOX
+#define STR_DRAW_POLYLINEOBJ_POPUP RID_DRAW_POLYLINEOBJ_POPUP
+#define STR_GLUEPOINTS_TOOLBOX RID_GLUEPOINTS_TOOLBOX
+#define STR_DRAW_OPTIONS_TOOLBOX RID_DRAW_OPTIONS_TOOLBOX
+#define STR_DRAW_COMMONTASK_TOOLBOX RID_DRAW_COMMONTASK_TOOLBOX
+
+#define STR_GRAPHIC_TOOLBOX RID_GRAPHIC_TOOLBOX
+#define STR_GRAPHIC_OPTIONS_TOOLBOX RID_GRAPHIC_OPTIONS_TOOLBOX
+#define STR_GRAPHIC_OBJ_TOOLBOX RID_GRAPHIC_OBJ_TOOLBOX
+#define STR_GRAPHIC_TEXT_TOOLBOX RID_GRAPHIC_TEXT_TOOLBOX
+
+#define STR_DRAW_GRAF_TOOLBOX RID_DRAW_GRAF_TOOLBOX
+#define STR_DRAW_MEDIA_TOOLBOX RID_DRAW_MEDIA_TOOLBOX
+
+// IDs fuer Praesentationsfolien
+#define STR_AUTOLAYOUT_NONE (RID_APP_START+210)
+#define STR_AUTOLAYOUT_ONLY_TITLE (RID_APP_START+211)
+#define STR_AUTOLAYOUT_ONLY_TEXT (RID_APP_START+212)
+#define STR_AUTOLAYOUT_TITLE (RID_APP_START+213)
+#define STR_AUTOLAYOUT_CONTENT (RID_APP_START+214)
+#define STR_AUTOLAYOUT_2CONTENT (RID_APP_START+215)
+#define STR_AUTOLAYOUT_CONTENT_2CONTENT (RID_APP_START+217)
+#define STR_AUTOLAYOUT_2CONTENT_CONTENT (RID_APP_START+218)
+#define STR_AUTOLAYOUT_CONTENT_OVER_2CONTENT (RID_APP_START+219)
+#define STR_AUTOLAYOUT_2CONTENT_OVER_CONTENT (RID_APP_START+220)
+#define STR_AUTOLAYOUT_CONTENT_OVER_CONTENT (RID_APP_START+221)
+#define STR_AUTOLAYOUT_4CONTENT (RID_APP_START+222)
+#define STR_AUTOLAYOUT_6CONTENT (RID_APP_START+223)
+
+#define STR_AUTOLAYOUT_HANDOUT1 (RID_APP_START+231)
+#define STR_AUTOLAYOUT_HANDOUT2 (RID_APP_START+232)
+#define STR_AUTOLAYOUT_HANDOUT3 (RID_APP_START+233)
+#define STR_AUTOLAYOUT_HANDOUT4 (RID_APP_START+234)
+#define STR_AUTOLAYOUT_HANDOUT6 (RID_APP_START+235)
+#define STR_AUTOLAYOUT_NOTES (RID_APP_START+236)
+#define STR_AUTOLAYOUT_HANDOUT9 (RID_APP_START+237)
+
+#define STR_TRANSFORM (RID_APP_START+240)
+
+#define STR_EXPORT_HTML_NAME (RID_APP_START+244)
+#define STR_EXPORT_HTML_FILTER (RID_APP_START+245)
+#define STR_EXPORT_DIALOG_TITLE (RID_APP_START+261)
+#define STR_TWAIN_NO_SOURCE_UNX (RID_APP_START+262)
+#define STR_UNDO_DELETEPAGES (RID_APP_START+265)
+#define STR_UNDO_INSERTPAGES (RID_APP_START+266)
+//free (RID_APP_START+267)
+#define STR_ASK_DELETE_LAYER (RID_APP_START+268)
+#define STR_UNDO_CHANGE_TITLE_AND_LAYOUT (RID_APP_START+269)
+#define STR_WAV_FILE (RID_APP_START+270)
+#define STR_MIDI_FILE (RID_APP_START+271)
+#define STR_SD_PAGE (RID_APP_START+272)
+#define STR_ALL_FILES (RID_APP_START+274)
+#define STR_UNDO_INSERT_TEXTFRAME (RID_APP_START+275)
+#define STR_ACTION_NOTPOSSIBLE (RID_APP_START+278)
+#define STR_DLG_INSERT_PAGES_FROM_FILE (RID_APP_START+279)
+#define STR_SCALE_OBJECTS (RID_APP_START+281)
+#define STR_CREATE_PAGES (RID_APP_START+282)
+
+#define STR_UNDO_CHANGE_PAGEFORMAT (RID_APP_START+283)
+#define STR_UNDO_CHANGE_PAGEBORDER (RID_APP_START+284)
+
+#define STR_EDIT_OBJ (RID_APP_START+288)
+
+#define STR_READ_DATA_ERROR (RID_APP_START+290)
+
+/******************************************************************************
+* Ab (RID_APP_START+300 beginnen die Ids in sdstring.hrc!
+******************************************************************************/
+
+#define STR_DELETE_PAGES (RID_APP_START+332)
+#define STR_WARN_PRINTFORMAT_FAILURE (RID_APP_START+333)
+#define STR_REMOVE_LINK (RID_APP_START+334)
+
+#define STR_IMPORT_GRFILTER_OPENERROR (RID_APP_START+335)
+#define STR_IMPORT_GRFILTER_IOERROR (RID_APP_START+336)
+#define STR_IMPORT_GRFILTER_FORMATERROR (RID_APP_START+337)
+#define STR_IMPORT_GRFILTER_VERSIONERROR (RID_APP_START+338)
+#define STR_IMPORT_GRFILTER_FILTERERROR (RID_APP_START+339)
+#define STR_IMPORT_GRFILTER_TOOBIG (RID_APP_START+340)
+
+#define STR_OBJECTS (RID_APP_START+341)
+#define STR_END_SEARCHING (RID_APP_START+342)
+#define STR_END_SPELLING (RID_APP_START+343)
+#define STR_NOLANGUAGE (RID_APP_START+344)
+#define STR_ASK_FOR_CONVERT_TO_BEZIER (RID_APP_START+347)
+#define STR_UNDO_CHANGE_PRES_OBJECT (RID_APP_START+349)
+#define STR_UNDO_MODIFY_PAGE (RID_APP_START+350)
+#define STR_STATSTR_PRINT (RID_APP_START+351)
+#define STR_UNDO_INSERT_FILE (RID_APP_START+352)
+#define STR_UNDO_INSERT_SPECCHAR (RID_APP_START+353)
+#define STR_UNDO_SET_PRESLAYOUT (RID_APP_START+354)
+#define STR_STRING_NOTFOUND (RID_APP_START+355)
+#define STR_PLAY (RID_APP_START+356)
+#define STR_STOP (RID_APP_START+357)
+#define STR_UNDO_ORIGINALSIZE (RID_APP_START+359)
+#define STR_PRINT_DRAWING (RID_APP_START+361)
+#define STR_PRINT_NOTES (RID_APP_START+362)
+#define STR_PRINT_HANDOUT (RID_APP_START+363)
+#define STR_PRINT_OUTLINE (RID_APP_START+364)
+#define STR_WARN_SCALE_FAIL (RID_APP_START+365)
+
+// Strings fuer Klick-Effekte (Reihenfolge beibehalten)
+#define STR_CLICK_ACTION_NONE (RID_APP_START+366)
+#define STR_CLICK_ACTION_PREVPAGE (RID_APP_START+367)
+#define STR_CLICK_ACTION_NEXTPAGE (RID_APP_START+368)
+#define STR_CLICK_ACTION_FIRSTPAGE (RID_APP_START+369)
+#define STR_CLICK_ACTION_LASTPAGE (RID_APP_START+370)
+#define STR_CLICK_ACTION_BOOKMARK (RID_APP_START+371)
+#define STR_CLICK_ACTION_DOCUMENT (RID_APP_START+372)
+#define STR_CLICK_ACTION_VANISH (RID_APP_START+373)
+#define STR_CLICK_ACTION_INVISIBLE (RID_APP_START+374)
+#define STR_CLICK_ACTION_SOUND (RID_APP_START+375)
+#define STR_CLICK_ACTION_VERB (RID_APP_START+376)
+#define STR_CLICK_ACTION_PROGRAM (RID_APP_START+377)
+#define STR_CLICK_ACTION_MACRO (RID_APP_START+378)
+// Mind. bis 380 freihalten
+
+#define STR_EFFECTDLG_SOUND (RID_APP_START+380)
+#define STR_EFFECTDLG_PAGE_OBJECT (RID_APP_START+382)
+#define STR_EFFECTDLG_DOCUMENT (RID_APP_START+383)
+#define STR_EFFECTDLG_PROGRAM (RID_APP_START+384)
+#define STR_EFFECTDLG_MACRO (RID_APP_START+385)
+#define STR_EFFECTDLG_JUMP (RID_APP_START+386)
+#define STR_EFFECTDLG_ACTION (RID_APP_START+387)
+
+/* Fortsetzung von RID_APP_START+43 bis RID_APP_START+58:
+ * Dummy-Strings, diese ResourceIDs duerfen nicht an andere Strings vergeben
+ * werden, da sie fuer Popup-Menues benutzt werden (ein Popup-Menue und sein
+ * Konfigurationsstring muessen dieselbe ResourceID haben!).
+ * siehe auch: res_bmp.hrc, popup.src
+ */
+
+#define STR_DRAW_SNAPOBJECT_POPUP (RID_APP_START+390)
+#define STR_DRAW_GLUEPOINT_POPUP (RID_APP_START+392)
+#define STR_DRAW_CONTROL_POPUP (RID_APP_START+393)
+
+
+#define STR_EFFECT_NONE (RID_APP_START+400)
+
+
+#define STR_INSERT_TEXT (RID_APP_START+432)
+#define STR_SLIDE_SINGULAR (RID_APP_START+433)
+#define STR_SLIDE_PLURAL (RID_APP_START+434)
+#define STR_AU_FILE (RID_APP_START+435)
+#define STR_VOC_FILE (RID_APP_START+436)
+#define STR_AIFF_FILE (RID_APP_START+437)
+#define STR_SVX_FILE (RID_APP_START+438)
+
+/* Stringdefinitionen fuer die Chartbeschriftung
+*/
+#define STR_LOAD_PRESENTATION_LAYOUT (RID_APP_START+448)
+
+#define STR_CLICK_ACTION_STOPPRESENTATION (RID_APP_START+475)
+
+#define STR_UNDO_EXPAND_PAGE (RID_APP_START+493)
+#define STR_UNDO_SUMMARY_PAGE (RID_APP_START+494)
+
+#define STR_GRAPHIC_DOCUMENT (RID_APP_START+499)
+#define STR_GRAPHIC_DOCUMENT_FULLTYPE_60 (RID_APP_START+501)
+
+#define STR_FIX (RID_APP_START+502)
+#define STR_VAR (RID_APP_START+503)
+#define STR_STANDARD_NORMAL (RID_APP_START+504)
+#define STR_STANDARD_SMALL (RID_APP_START+505)
+#define STR_STANDARD_BIG (RID_APP_START+506)
+#define STR_FILEFORMAT_NAME_EXT (RID_APP_START+507)
+#define STR_FILEFORMAT_FULLPATH (RID_APP_START+508)
+#define STR_FILEFORMAT_PATH (RID_APP_START+509)
+#define STR_FILEFORMAT_NAME (RID_APP_START+510)
+
+#define STR_RELEASE_GRAPHICLINK (RID_APP_START+511)
+
+#define STR_NEW_CUSTOMSHOW (RID_APP_START+512)
+#define STR_COPY_CUSTOMSHOW (RID_APP_START+513)
+
+#define STR_VIEWTYPE_DUMMY (RID_APP_START+518)
+
+#define STR_BREAK_METAFILE (RID_APP_START+521)
+#define STR_BREAK_FAIL (RID_APP_START+522)
+
+#define STR_PUBDLG_SAMENAME (RID_APP_START+523)
+
+#define STR_HTMLATTR_TEXT (RID_APP_START+524)
+#define STR_HTMLATTR_LINK (RID_APP_START+525)
+#define STR_HTMLATTR_VLINK (RID_APP_START+526)
+#define STR_HTMLATTR_ALINK (RID_APP_START+527)
+
+#define STR_HTMLEXP_NOTES (RID_APP_START+528)
+#define STR_HTMLEXP_CONTENTS (RID_APP_START+529)
+#define STR_HTMLEXP_CLICKSTART (RID_APP_START+530)
+#define STR_HTMLEXP_AUTHOR (RID_APP_START+531)
+#define STR_HTMLEXP_EMAIL (RID_APP_START+532)
+#define STR_HTMLEXP_HOMEPAGE (RID_APP_START+533)
+#define STR_HTMLEXP_INFO (RID_APP_START+534)
+#define STR_HTMLEXP_DOWNLOAD (RID_APP_START+536)
+#define STR_HTMLEXP_NOFRAMES (RID_APP_START+537)
+#define STR_HTMLEXP_FIRSTPAGE (RID_APP_START+538)
+#define STR_HTMLEXP_LASTPAGE (RID_APP_START+539)
+#define STR_HTMLEXP_SETTEXT (RID_APP_START+540)
+#define STR_HTMLEXP_SETGRAPHIC (RID_APP_START+541)
+#define STR_HTMLEXP_OUTLINE (RID_APP_START+542)
+#define STR_HTMLEXP_NOOUTLINE (RID_APP_START+543)
+
+#define STR_PRES_SOFTEND (RID_APP_START+550)
+#define STR_PRES_PAUSE (RID_APP_START+551)
+
+#define STR_WIZARD_ORIGINAL (RID_APP_START+552)
+
+#define STR_ISLOADING (RID_APP_START+554)
+
+#define STR_WEBVIEW_SAVE (RID_APP_START+555)
+
+#define STR_UNDO_APPLY_3D_FAVOURITE (RID_APP_START+556)
+
+//free (RID_APP_START+557)
+
+#define RID_UNDO_DELETE_WARNING (RID_APP_START+558)
+#define IMG_UNDO_DELETE_WARNING (RID_APP_START+559)
+#define FT_UNDO_DELETE_WARNING (RID_APP_START+560)
+#define CB_UNDO_DELETE_DISABLE (RID_APP_START+561)
+#define BTN_UNDO_DELETE_YES (RID_APP_START+562)
+#define BTN_UNDO_DELETE_NO (RID_APP_START+564)
+
+#define STR_WARNING_NOSOUNDFILE (RID_APP_START+565)
+
+#define STR_UNDO_GRAFFILTER (RID_APP_START+570)
+
+#define STR_UNDO_CONVERT_TO_METAFILE (RID_APP_START+571)
+#define STR_UNDO_CONVERT_TO_BITMAP (RID_APP_START+572)
+
+#define STR_HTMLEXP_ERROR_CREATE_FILE (RID_APP_START+578)
+#define STR_HTMLEXP_ERROR_OPEN_FILE (RID_APP_START+579)
+#define STR_HTMLEXP_ERROR_COPY_FILE (RID_APP_START+580)
+
+#define STR_PAGE_BACKGROUND_TXT (RID_APP_START+583)
+#define STR_PAGE_BACKGROUND_TITLE (RID_APP_START+584)
+
+// additional effects
+#define STR_EFFECT_DISCARD_SHORT (RID_APP_START+598)
+
+#define STR_EFFECT_DISCARD_FROM_UL (RID_APP_START+600)
+#define STR_EFFECT_DISCARD_FROM_UR (RID_APP_START+601)
+#define STR_EFFECT_DISCARD_FROM_LR (RID_APP_START+602)
+#define STR_EFFECT_DISCARD_FROM_LL (RID_APP_START+603)
+#define STR_EFFECT_DISCARD_S_FROM_L (RID_APP_START+604)
+#define STR_EFFECT_DISCARD_S_FROM_UL (RID_APP_START+605)
+#define STR_EFFECT_DISCARD_S_FROM_T (RID_APP_START+606)
+#define STR_EFFECT_DISCARD_S_FROM_UR (RID_APP_START+607)
+#define STR_EFFECT_DISCARD_S_FROM_R (RID_APP_START+608)
+#define STR_EFFECT_DISCARD_S_FROM_LR (RID_APP_START+609)
+#define STR_EFFECT_DISCARD_S_FROM_B (RID_APP_START+610)
+#define STR_EFFECT_DISCARD_S_FROM_LL (RID_APP_START+611)
+#define STR_EFFECT_VERTICAL_CHECKERBOARD (RID_APP_START+612)
+#define STR_EFFECT_HORIZONTAL_CHECKERBOARD (RID_APP_START+613)
+
+#define STR_EFFECT_MOVE_TO_UL (RID_APP_START+620)
+#define STR_EFFECT_MOVE_TO_UR (RID_APP_START+621)
+#define STR_EFFECT_MOVE_TO_LR (RID_APP_START+622)
+#define STR_EFFECT_MOVE_TO_LL (RID_APP_START+623)
+#define STR_EFFECT_MOVE_S_TO_L (RID_APP_START+625)
+#define STR_EFFECT_MOVE_S_TO_UL (RID_APP_START+626)
+#define STR_EFFECT_MOVE_S_TO_T (RID_APP_START+627)
+#define STR_EFFECT_MOVE_S_TO_UR (RID_APP_START+628)
+#define STR_EFFECT_MOVE_S_TO_R (RID_APP_START+629)
+#define STR_EFFECT_MOVE_S_TO_LR (RID_APP_START+630)
+#define STR_EFFECT_MOVE_S_TO_B (RID_APP_START+631)
+#define STR_EFFECT_MOVE_S_TO_LL (RID_APP_START+632)
+
+#define STR_EFFECT_STRTCH (RID_APP_START+634)
+#define STR_EFFECT_STRTCH_FROM_L (RID_APP_START+635)
+#define STR_EFFECT_STRTCH_FROM_UL (RID_APP_START+636)
+#define STR_EFFECT_STRTCH_FROM_T (RID_APP_START+637)
+#define STR_EFFECT_STRTCH_FROM_UR (RID_APP_START+638)
+#define STR_EFFECT_STRTCH_FROM_R (RID_APP_START+639)
+#define STR_EFFECT_STRTCH_FROM_LR (RID_APP_START+640)
+#define STR_EFFECT_STRTCH_FROM_B (RID_APP_START+641)
+#define STR_EFFECT_STRTCH_FROM_LL (RID_APP_START+642)
+
+#define STR_EFFECT_STRTCH_ROTATE (RID_APP_START+643)
+#define STR_EFFECT_STRTCH_HORIZONTAL (RID_APP_START+644)
+#define STR_EFFECT_STRTCH_VERTICAL (RID_APP_START+645)
+#define STR_EFFECT_ROTATE_HORIZONTAL (RID_APP_START+646)
+#define STR_EFFECT_ROTATE_VERTICAL (RID_APP_START+647)
+
+#define STR_EFFECT_UNCOVER (RID_APP_START+650)
+#define STR_EFFECT_UNCOVER_TO_L (RID_APP_START+651)
+#define STR_EFFECT_UNCOVER_TO_UL (RID_APP_START+652)
+#define STR_EFFECT_UNCOVER_TO_T (RID_APP_START+653)
+#define STR_EFFECT_UNCOVER_TO_UR (RID_APP_START+654)
+#define STR_EFFECT_UNCOVER_TO_R (RID_APP_START+655)
+#define STR_EFFECT_UNCOVER_TO_LR (RID_APP_START+656)
+#define STR_EFFECT_UNCOVER_TO_B (RID_APP_START+657)
+#define STR_EFFECT_UNCOVER_TO_LL (RID_APP_START+658)
+
+#define STR_TWAIN_NO_SOURCE (RID_APP_START+670)
+#define STR_UNDO_VECTORIZE (RID_APP_START+671)
+
+#define STR_AL_VERT_TITLE_TEXT_CHART (RID_APP_START+672)
+#define STR_AL_VERT_TITLE_VERT_OUTLINE (RID_APP_START+673)
+#define STR_AL_TITLE_VERT_OUTLINE (RID_APP_START+674)
+#define STR_AL_TITLE_VERT_OUTLINE_CLIPART (RID_APP_START+675)
+
+#define STR_HTMLEXP_DEFAULT_EXTENSION (RID_APP_START+680)
+
+#define STR_SET_BACKGROUND_PICTURE (RID_APP_START+681)
+
+#define STR_DESC_RENAMESLIDE (RID_APP_START+682)
+#define STR_TITLE_RENAMESLIDE (RID_APP_START+683)
+
+#define STR_PLACEHOLDER_DESCRIPTION_TITLE (RID_APP_START+684)
+#define STR_PLACEHOLDER_DESCRIPTION_OUTLINE (RID_APP_START+685)
+#define STR_PLACEHOLDER_DESCRIPTION_FOOTER (RID_APP_START+686)
+#define STR_PLACEHOLDER_DESCRIPTION_HEADER (RID_APP_START+687)
+#define STR_PLACEHOLDER_DESCRIPTION_DATETIME (RID_APP_START+688)
+#define STR_PLACEHOLDER_DESCRIPTION_NUMBER (RID_APP_START+689)
+#define STR_PLACEHOLDER_DESCRIPTION_SLIDE (RID_APP_START+690)
+#define STR_PLACEHOLDER_DESCRIPTION_NOTES (RID_APP_START+691)
+
+#define STR_FIELD_PLACEHOLDER_HEADER (RID_APP_START+692)
+#define STR_FIELD_PLACEHOLDER_FOOTER (RID_APP_START+693)
+#define STR_FIELD_PLACEHOLDER_DATETIME (RID_APP_START+694)
+#define STR_FIELD_PLACEHOLDER_NUMBER (RID_APP_START+695)
+
+#define STR_UNDO_HANGULHANJACONVERSION (RID_APP_START+696)
+#define STR_FIELD_PLACEHOLDER_COUNT (RID_APP_START+697)
+
+#define STR_LEFT_PANE_DRAW_TITLE (RID_APP_START+700)
+#define STR_LEFT_PANE_IMPRESS_TITLE (RID_APP_START+701)
+#define STR_RIGHT_PANE_TITLE (RID_APP_START+702)
+#define STR_TASKPANEL_MASTER_PAGE_TITLE (RID_APP_START+703)
+#define STR_TASKPANEL_MASTER_PAGE_MENU_TITLE (RID_APP_START+704)
+#define STR_TASKPANEL_MASTER_PAGE_MENU_LOCK (RID_APP_START+705)
+#define STR_TASKPANEL_MASTER_PAGE_MENU_UNLOCK (RID_APP_START+706)
+#define STR_TASKPANEL_CURRENT_MASTER_PAGES_TITLE (RID_APP_START+708)
+#define STR_TASKPANEL_RECENT_MASTER_PAGES_TITLE (RID_APP_START+709)
+#define STR_TASKPANEL_ALL_MASTER_PAGES_TITLE (RID_APP_START+710)
+#define STR_TASKPANEL_NOT_AVAILABLE_SUBSTITUTION (RID_APP_START+711)
+#define STR_TASKPANEL_PREPARING_PREVIEW_SUBSTITUTION (RID_APP_START+712)
+#define STR_TASKPANEL_LAYOUT_MENU_TITLE (RID_APP_START+713)
+#define STR_RESTORE_DRAW_MODE (RID_APP_START+714)
+#define STR_GRAPHICS_STYLE_FAMILY (RID_APP_START+715)
+
+#define STR_TITLE_SAVE_AS_PICTURE (RID_APP_START+716)
+#define STR_CELL_STYLE_FAMILY (RID_APP_START+717)
+
+#define STR_NAVIGATOR_SHOW_NAMED_SHAPES (RID_APP_START+718)
+#define STR_NAVIGATOR_SHOW_ALL_SHAPES (RID_APP_START+719)
+#define STR_NAVIGATOR_SHAPE_BASE_NAME (RID_APP_START+720)
+//IAccessibility2 Implementation 2009-----
+#define STR_ACC_DIALOG_DESC (RID_APP_START + 730)
+//-----IAccessibility2 Implementation 2009
+
+#define STR_RESET_LAYOUT (RID_APP_START+721)
+#define STR_INSERT_TABLE (RID_APP_START+722)
+#define STR_INSERT_CHART (RID_APP_START+723)
+#define STR_INSERT_PICTURE (RID_APP_START+724)
+#define STR_INSERT_MOVIE (RID_APP_START+725)
+
+/******************************************************************************
+* The ids in glob.hrc start at RID_APP_START+750!
+******************************************************************************/
diff --git a/sd/source/ui/inc/tabtempl.hrc b/sd/source/ui/inc/tabtempl.hrc
new file mode 100644
index 000000000000..19fd9105b318
--- /dev/null
+++ b/sd/source/ui/inc/tabtempl.hrc
@@ -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.
+ *
+ ************************************************************************/
+#include <sfx2/sfx.hrc>
+/* #define TAB_TEMPLATE RID_APP_START+??? */
+#define TAB_TEMPLATE 637
+#define TAB_CONTROL 1
diff --git a/sd/source/ui/inc/tabtempl.hxx b/sd/source/ui/inc/tabtempl.hxx
new file mode 100755
index 000000000000..3637ee3565fc
--- /dev/null
+++ b/sd/source/ui/inc/tabtempl.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 SD_TABTEMPL_HXX
+#define SD_TABTEMPL_HXX
+
+#include <svx/tabarea.hxx>
+#include <sfx2/styledlg.hxx>
+class SdrModel;
+class SfxObjectShell;
+class SdrView;
+class XColorTable;
+class XGradientList;
+class XBitmapList;
+class XDashList;
+class XHatchList;
+class XLineEndList;
+
+
+/*************************************************************************
+|*
+|* Vorlagen-Tab-Dialog
+|*
+\************************************************************************/
+class SdTabTemplateDlg : public SfxStyleDialog
+{
+private:
+ const SfxObjectShell& rDocShell;
+ SdrView* pSdrView;
+
+ XColorTable* pColorTab;
+ XGradientList* pGradientList;
+ XHatchList* pHatchingList;
+ XBitmapList* pBitmapList;
+ XDashList* pDashList;
+ XLineEndList* pLineEndList;
+
+ sal_uInt16 nPageType;
+ sal_uInt16 nDlgType;
+ sal_uInt16 nPos;
+ ChangeType nColorTableState;
+ ChangeType nBitmapListState;
+ ChangeType nGradientListState;
+ ChangeType nHatchingListState;
+
+ virtual void PageCreated( sal_uInt16 nId, SfxTabPage &rPage );
+ virtual const SfxItemSet* GetRefreshedSet();
+
+public:
+ SdTabTemplateDlg( Window* pParent,
+ const SfxObjectShell* pDocShell,
+ SfxStyleSheetBase& rStyleBase,
+ SdrModel* pModel,
+ SdrView* pView );
+ ~SdTabTemplateDlg();
+
+};
+
+
+#endif // SD_TABTEMPL_HXX
+
diff --git a/sd/source/ui/inc/taskpane/ControlContainer.hxx b/sd/source/ui/inc/taskpane/ControlContainer.hxx
new file mode 100755
index 000000000000..c4df3cfe4dc6
--- /dev/null
+++ b/sd/source/ui/inc/taskpane/ControlContainer.hxx
@@ -0,0 +1,197 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef SD_TOOLPANEL_CONTROL_CONTAINER_HXX
+#define SD_TOOLPANEL_CONTROL_CONTAINER_HXX
+
+#include <osl/mutex.hxx>
+
+#include <vector>
+#include <memory>
+
+class Window;
+
+namespace sd { namespace toolpanel {
+
+class TreeNode;
+
+/** This container manages the children of a TreeNode. It handles the
+ expansion and visibility state of its child controls. The container
+ does not do the layouting or painting of the controls. Instead it asks
+ its owner to do that.
+
+ The difference between expansion state and visibility is that when a
+ control is collapsed at least a title bar is shown for it. When it is
+ not visible then even this title bar is not shown. In that case the
+ user can not expand the control. A control has to be visible in order
+ to be expanded or collapsed.
+
+ Whenever you expand or collapse, show or hide a child control then use
+ this container class. Do not call the respective methods of the child
+ directly.
+*/
+class ControlContainer
+{
+public:
+ enum VisibilityState { VS_SHOW, VS_HIDE, VS_TOGGLE };
+ enum ExpansionState { ES_EXPAND, ES_COLLAPSE, ES_TOGGLE };
+
+ /** Create a new control container.
+ @param pParent
+ This node is asked to re-calculate the size of its children when
+ a child of this container is expanded or collapsed.
+ */
+ ControlContainer (TreeNode* pNode);
+
+ virtual ~ControlContainer (void);
+
+ /** This is function makes sure that all children are deleted. Call
+ this function from the destructor of a sub class to have all child
+ windows deleted before the destructor of another base class of that
+ sub class is called. When that other base class is some kind of a
+ window it would otherwise complain that there are living children.
+ */
+ void DeleteChildren (void);
+
+ /** Add the given control to the set of controls managed by the
+ container. This control is then expanded.
+ @return
+ Return the index under which the control has been inserted in
+ the container. It is the same index that is returned by
+ GetControlIndex().
+ */
+ sal_uInt32 AddControl (::std::auto_ptr<TreeNode> pControl);
+
+ /** Expand (default) or collapse the specified control. When
+ expanding a control in a single expansion environment then all
+ other controls are collapsed. The specified control is being
+ made the active control as returned by GetActiveControl().
+ */
+ virtual void SetExpansionState (
+ sal_uInt32 nIndex,
+ ExpansionState aState);
+ virtual void SetExpansionState (
+ TreeNode* pControl,
+ ExpansionState aState);
+ virtual void SetVisibilityState (
+ sal_uInt32 nIndex,
+ VisibilityState aState);
+
+ /** Return the index of the given control.
+ */
+ sal_uInt32 GetControlIndex (TreeNode* pControl) const;
+
+ /** Return the number of controls in the container.
+ */
+ sal_uInt32 GetControlCount (void) const;
+
+ /** Return the number of visible controls in the container.
+ */
+ sal_uInt32 GetVisibleControlCount (void) const;
+
+ /** Return the control with the specified index regardless of whether
+ that control is hidden or visible.
+ */
+ TreeNode* GetControl (sal_uInt32 nIndex) const;
+
+ /** Return the index of the control previous to that that is specified
+ by the given index.
+ @param nIndex
+ Index of the control for which to return the index of the
+ previous control. This index is guaranteed not to be returned.
+ @param bIncludeHidden
+ This flag tells the method whether to include the controls that
+ are not visible in the search for the previous control. When it
+ is <FALSE/> the hidden controls are skipped.
+ @param bCycle
+ When this flag is <TRUE/> then the search for the previous
+ control wraps arround when reaching the first control.
+ @return
+ Returns the index to the previous control or (sal_uInt32)-1 when
+ there is no previous control. This would be the case when there
+ is only one (visible) child.
+ */
+ sal_uInt32 GetPreviousIndex (
+ sal_uInt32 nIndex,
+ bool bIncludeHidden=false,
+ bool bCycle=false) const;
+
+ /** Return the index of the control next to that that is specified by
+ the given index.
+ @param nIndex
+ Index of the control for which to return the index of the next
+ control. This index is guaranteed not to be returned.
+ @param bIncludeHidden
+ This flag tells the method whether to include the controls that
+ are not visible in the search for the next control. When it is
+ <FALSE/> the hidden controls are skipped.
+ @param bCycle
+ When this flag is <TRUE/> then the search for the next control
+ wraps arround when reaching the last control.
+ @return
+ Returns the index to the next control or (sal_uInt32)-1 when
+ there is no next control. This would be the case when there is
+ only one (visible) child.
+ */
+ sal_uInt32 GetNextIndex (
+ sal_uInt32 nIndex,
+ bool bIncludeHidden=false,
+ bool bCycle=false) const;
+
+ void SetMultiSelection (bool bFlag);
+
+ /** This is method is called when the list of controls has changed,
+ i.e. a new control has been added. The default implementation is
+ empty. Overwrite this method in derived classes in order to react to
+ such changes.
+ */
+ virtual void ListHasChanged (void);
+
+private:
+ osl::Mutex maMutex;
+
+ /// List of controls managed by a container.
+ typedef ::std::vector<TreeNode*> ControlList;
+ ControlList maControlList;
+
+ /** This parent is used for resize requests when children are expanded
+ or collapsed.
+ */
+ TreeNode* mpNode;
+
+ /** The index of the currently expanded control. A value of
+ (sal_uInt32)-1 indicates that no control is active. This may be the
+ case after adding controls to the container.
+ */
+ sal_uInt32 mnActiveControlIndex;
+
+ bool mbMultiSelection;
+};
+
+} } // end of namespace ::sd::toolpanel
+
+#endif
diff --git a/sd/source/ui/inc/taskpane/ILayoutableWindow.hxx b/sd/source/ui/inc/taskpane/ILayoutableWindow.hxx
new file mode 100755
index 000000000000..5aad9fa29f78
--- /dev/null
+++ b/sd/source/ui/inc/taskpane/ILayoutableWindow.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 SD_TOOLPANEL_I_LAYOUTABLE_WINDOW_HXX
+#define SD_TOOLPANEL_I_LAYOUTABLE_WINDOW_HXX
+
+#include <tools/gen.hxx>
+#include <sal/types.h>
+
+class Window;
+
+namespace sd { namespace toolpanel {
+
+
+class ILayouter
+{
+public:
+ /** This method is called by layoutable controls when they have to be
+ resized.
+ */
+ virtual void RequestResize (void) = 0;
+};
+
+
+
+/** This interface has to be implemented by windows that want to be
+ layouted by a SubToolPanel or ScrollablePanel object.
+*/
+class ILayoutableWindow
+{
+public:
+ virtual ~ILayoutableWindow (void) {};
+
+ /** Return the preferred size without constraints on either the
+ height or the width.
+ The size the window will later be set to may but does not have
+ to be equal to this size.
+ */
+ virtual Size GetPreferredSize (void) = 0;
+
+ /** Return the preferred width with the constraint, that the
+ window will be set to the given height.
+ The width the window will later be set to may but does not have
+ to be equal to this width.
+ */
+ virtual sal_Int32 GetPreferredWidth (sal_Int32 nHeight) = 0;
+
+ /** Return the preferred height with the constraint, that the
+ window will be set to the given width.
+ The height the window will later be set to may but does not have
+ to be equal to this height.
+ */
+ virtual sal_Int32 GetPreferredHeight (sal_Int32 nWidth) = 0;
+
+ /** Return wether the window is generally resizable. When used by
+ a VerticalLayouter then the width will always be resized and
+ the return value of this method determines whether the height
+ may be modified as well.
+ */
+ virtual bool IsResizable (void) = 0;
+
+ /** Return the window so that its size and position can be set.
+ @return
+ Returns the window which is layouted or NULL to indicate
+ that the object is in an invalid state.
+ */
+ virtual ::Window* GetWindow (void) = 0;
+
+ /** Return the minimal width of the window.
+ */
+ virtual sal_Int32 GetMinimumWidth (void) = 0;
+};
+
+
+
+} } // end of namespace ::sd::toolpanel
+
+#endif
diff --git a/sd/source/ui/inc/taskpane/PanelId.hxx b/sd/source/ui/inc/taskpane/PanelId.hxx
new file mode 100644
index 000000000000..565745f97140
--- /dev/null
+++ b/sd/source/ui/inc/taskpane/PanelId.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 SD_UI_TASKPANE_PANELID_HXX
+#define SD_UI_TASKPANE_PANELID_HXX
+
+namespace rtl
+{
+ class OUString;
+}
+
+//......................................................................................................................
+namespace sd { namespace toolpanel
+{
+//......................................................................................................................
+
+ //==================================================================================================================
+ //= PanelId
+ //==================================================================================================================
+ /** List of top level panels that can be shown in the task pane.
+ */
+ enum PanelId
+ {
+ PID_MASTER_PAGES = 0,
+ PID_LAYOUT = 1,
+ PID_TABLE_DESIGN = 2,
+ PID_CUSTOM_ANIMATION = 3,
+ PID_SLIDE_TRANSITION = 4,
+
+ PID_UNKNOWN = 5
+ };
+
+ PanelId GetStandardPanelId( const ::rtl::OUString& i_rTaskPanelResourceURL );
+
+//......................................................................................................................
+} } // namespace sd::toolpanel
+//......................................................................................................................
+
+#endif // SD_UI_TASKPANE_PANELID_HXX
diff --git a/sd/source/ui/inc/taskpane/ScrollPanel.hxx b/sd/source/ui/inc/taskpane/ScrollPanel.hxx
new file mode 100755
index 000000000000..f8ce5dccc242
--- /dev/null
+++ b/sd/source/ui/inc/taskpane/ScrollPanel.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 SD_TOOLPANEL_SCROLL_PANEL_HXX
+#define SD_TOOLPANEL_SCROLL_PANEL_HXX
+
+#include "taskpane/TaskPaneTreeNode.hxx"
+
+#include <vcl/ctrl.hxx>
+#include <vcl/scrbar.hxx>
+#include <memory>
+#include <vector>
+
+namespace sd { namespace toolpanel {
+
+class TitledControl;
+
+/** The scroll panel shows its controls one above the other. When their
+ total height is larger than the height of the scroll area then only a
+ part of the controls is visible. Scroll bars control which part that
+ is.
+
+ The scroll panel registers itself as window event listener at the
+ controls and their title bars (conceptually; it really is the
+ TitledControl) to track changes of the selection and focus rectangles.
+ On such a change it tries to move the selected or focused part into the
+ visible area. At the moment this moving into view only works with
+ valuesets and TitleBars.
+*/
+class ScrollPanel
+ : public ::Control,
+ public TreeNode
+{
+public:
+ /** Create a new scroll panel which itself is the root of a TreeNode hierarchy
+ parent. This will usually be a child window.
+ */
+ ScrollPanel (::Window& i_rParentWindow);
+ virtual ~ScrollPanel (void);
+
+ /** Add a control to the sub panel. An title bar is added above the
+ control.
+ @param rTitle
+ The title that will be shown in the two title bars that
+ belong to the control.
+ @param nHelpId
+ The help id is set at the title bar not the actual control.
+ @return
+ The new titled control that contains the given control and a new
+ title bar as children is returned.
+ */
+ TitledControl* AddControl (
+ ::std::auto_ptr<TreeNode> pControl,
+ const String& rTitle,
+ const rtl::OString& sHelpId);
+
+ /** Add a control to the sub panel without a title bar.
+ */
+ void AddControl (::std::auto_ptr<TreeNode> pControl);
+
+ virtual void Paint (const Rectangle& rRect);
+
+ /** Initiate a rearrangement of the controls and title bars.
+ */
+ virtual void Resize (void);
+
+ virtual void RequestResize (void);
+
+ virtual Size GetPreferredSize (void);
+ virtual sal_Int32 GetPreferredWidth (sal_Int32 nHeight);
+ virtual sal_Int32 GetPreferredHeight (sal_Int32 nWidth);
+ virtual bool IsResizable (void);
+ virtual ::Window* GetWindow (void);
+ virtual sal_Int32 GetMinimumWidth (void);
+
+ virtual void ExpandControl (
+ TreeNode* pControl,
+ bool bExpansionState);
+
+ bool IsVerticalScrollBarVisible (void) const;
+ bool IsHorizontalScrollBarVisible (void) const;
+ ScrollBar& GetVerticalScrollBar (void);
+ ScrollBar& GetHorizontalScrollBar (void);
+
+ // ::Window
+ virtual long Notify( NotifyEvent& rNEvt );
+
+ virtual ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible> CreateAccessibleObject (
+ const ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible>& rxParent);
+
+ /** Scroll the given rectangle into the visible area.
+ @param aRectangle
+ The box to move into the visible area in pixel coordinates
+ relative to the given window.
+ @param pWindow
+ This window is used to translate the given coordinates into ones
+ that are relative to the scroll panel.
+
+ */
+ void MakeRectangleVisible (
+ Rectangle& aRectangle,
+ ::Window* pWindow);
+
+private:
+ ::Control maScrollWindow;
+ ScrollBar maVerticalScrollBar;
+ ScrollBar maHorizontalScrollBar;
+ ::Window maScrollBarFiller;
+ ::Window maScrollWindowFiller;
+ Point maScrollOffset;
+ bool mbIsRearrangePending;
+ bool mbIsLayoutPending;
+ sal_uInt32 mnChildrenWidth;
+ /// Border above top-most and below bottom-most control.
+ const int mnVerticalBorder;
+ /// Gap between two controls.
+ const int mnVerticalGap;
+ /// Border at the left and right of the controls.
+ const int mnHorizontalBorder;
+ /** List of horizontal stripes that is created from the gaps between
+ children when they are layouted. The stripes are painted in Paint()
+ to fill the space arround the children.
+ */
+ typedef ::std::vector< ::std::pair<int,int> > StripeList;
+ StripeList maStripeList;
+
+ /** Calculate position, size, and visibility of the controls.
+ Call this method after the list of controls, their expansion
+ state, or the size of the sub panel has changed.
+ */
+ void Rearrange (void);
+
+ /** Determine the minimal size that is necessary to show the controls
+ one over the other. It may be smaller than the available area.
+ */
+ Size GetRequiredSize (void);
+
+ /** Place the child windows one above the other and return the size of
+ the bounding box.
+ */
+ sal_Int32 LayoutChildren (void);
+
+ /** ctor-impl
+ */
+ void Construct();
+
+ Size SetupScrollBars (const Size& rRequiresSize);
+ sal_Int32 SetupVerticalScrollBar (bool bShow, sal_Int32 nRange);
+ sal_Int32 SetupHorizontalScrollBar (bool bShow, sal_Int32 nRange);
+
+ DECL_LINK(ScrollBarHandler, ScrollBar*);
+ DECL_LINK(WindowEventListener, VclSimpleEvent*);
+
+ using Window::GetWindow;
+};
+
+} } // end of namespace ::sd::toolpanel
+
+#endif
diff --git a/sd/source/ui/inc/taskpane/SlideSorterCacheDisplay.hxx b/sd/source/ui/inc/taskpane/SlideSorterCacheDisplay.hxx
new file mode 100755
index 000000000000..933a25f4067d
--- /dev/null
+++ b/sd/source/ui/inc/taskpane/SlideSorterCacheDisplay.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 SD_TASKPANE_SLIDE_SORTER_CACHE_DISPLAY_HXX
+#define SD_TASKPANE_SLIDE_SORTER_CACHE_DISPLAY_HXX
+
+// Uncomment the define below to activate the slide sorter cache display in
+// the task pane. Visible slide previews are displayed as large rectangles,
+// off-screen previews as smaller rectangles. The color shows the state:
+// green for no action, different shades of yellow for a request being in
+// the queue, pink for currently being rendered. A diagonal line indicates
+// that the preview is not up-to-date.
+#ifdef DEBUG
+//#define USE_SLIDE_SORTER_CACHE_DISPLAY
+#endif
+
+
+#ifdef USE_SLIDE_SORTER_CACHE_DISPLAY
+#include <taskpane/TaskPaneTreeNode.hxx>
+
+#include <map>
+#include <vector>
+#include <memory>
+
+class Window;
+
+#include "svx/svdpage.hxx"
+#include "drawdoc.hxx"
+
+
+namespace sd { namespace toolpanel {
+
+class TreeNode;
+
+/** This panel demonstrates how to create a panel for the task pane.
+*/
+class SlideSorterCacheDisplay
+ : public TreeNode
+{
+public:
+ SlideSorterCacheDisplay (const SdDrawDocument* pDocument);
+ virtual ~SlideSorterCacheDisplay (void);
+
+ void SetParentWindow (::Window* pParentWindow);
+
+ virtual void Paint (const Rectangle& rBoundingBox);
+ virtual void Resize (void);
+
+ static SlideSorterCacheDisplay* Instance (const SdDrawDocument* pDocument);
+
+ void SetPageCount (sal_Int32 nPageCount);
+ enum PageStatus {
+ NONE,
+ IN_QUEUE_PRIORITY_0,
+ IN_QUEUE_PRIORITY_1,
+ IN_QUEUE_PRIORITY_2,
+ RENDERING
+ };
+ void SetPageStatus (sal_Int32 nPageIndex, PageStatus eStatus);
+ void SetPageVisibility (sal_Int32 nPageIndex, bool bVisible);
+ void SetUpToDate (sal_Int32 nPageIndex, bool bUpToDate);
+
+ virtual Size GetPreferredSize (void);
+ virtual sal_Int32 GetPreferredWidth (sal_Int32 nHeigh);
+ virtual sal_Int32 GetPreferredHeight (sal_Int32 nWidth);
+ virtual ::Window* GetWindow (void);
+ virtual bool IsResizable (void);
+ virtual bool IsExpandable (void) const;
+ virtual bool IsExpanded (void) const;
+
+private:
+ static ::std::map<const SdDrawDocument*, SlideSorterCacheDisplay*> maDisplays;
+ static void AddInstance (const SdDrawDocument* pDocument, SlideSorterCacheDisplay* pControl);
+ static void RemoveInstance (SlideSorterCacheDisplay* pControl);
+
+ ::Window* mpWindow;
+ sal_Int32 mnPageCount;
+ sal_Int32 mnColumnCount;
+ sal_Int32 mnRowCount;
+ Size maCellSize;
+ sal_Int32 mnHorizontalBorder;
+ sal_Int32 mnVerticalBorder;
+ sal_Int32 mnHorizontalGap;
+ sal_Int32 mnVerticalGap;
+
+ class PageDescriptor
+ {
+ public:
+ PageStatus meStatus;
+ bool mbVisible;
+ bool mbUpToDate;
+ };
+ typedef ::std::vector<PageDescriptor> PageDescriptorList;
+ PageDescriptorList maPageDescriptors;
+
+ Rectangle GetPageBox (sal_Int32 nPageIndex);
+
+ void ProvideSize (sal_Int32 nPageIndex);
+
+ void PaintPage (sal_Int32 nPageIndex);
+};
+
+} } // end of namespace ::sd::toolpanel
+
+namespace {
+
+void SscdSetStatus (const SdrPage* pPage,
+ ::sd::toolpanel::SlideSorterCacheDisplay::PageStatus eStatus)
+{
+ ::sd::toolpanel::SlideSorterCacheDisplay* pDisplay
+ = ::sd::toolpanel::SlideSorterCacheDisplay::Instance(
+ dynamic_cast<SdDrawDocument*>(pPage->GetModel()));
+ if (pDisplay != NULL)
+ pDisplay->SetPageStatus((pPage->GetPageNum()-1)/2, eStatus);
+}
+
+void SscdSetRequestClass (const SdrPage* pPage, sal_Int32 nClass)
+{
+ sd::toolpanel::SlideSorterCacheDisplay::PageStatus eStatus;
+ switch (nClass)
+ {
+ case 0:
+ eStatus = ::sd::toolpanel::SlideSorterCacheDisplay::IN_QUEUE_PRIORITY_0; break;
+ case 1:
+ eStatus = ::sd::toolpanel::SlideSorterCacheDisplay::IN_QUEUE_PRIORITY_1; break;
+ case 2:
+ eStatus = ::sd::toolpanel::SlideSorterCacheDisplay::IN_QUEUE_PRIORITY_2; break;
+ default:
+ eStatus = ::sd::toolpanel::SlideSorterCacheDisplay::NONE; break;
+ }
+ SscdSetStatus(pPage,eStatus);
+}
+
+void SscdSetVisibility (const SdrModel* pModel, sal_Int32 nIndex, bool bVisible)
+{
+ ::sd::toolpanel::SlideSorterCacheDisplay* pDisplay
+ = ::sd::toolpanel::SlideSorterCacheDisplay::Instance(
+ dynamic_cast<const SdDrawDocument*>(pModel));
+ if (pDisplay != NULL)
+ pDisplay->SetPageVisibility(nIndex, bVisible);
+}
+
+
+
+void SscdSetUpToDate (const SdrPage* pPage, bool bUpToDate)
+{
+ ::sd::toolpanel::SlideSorterCacheDisplay* pDisplay
+ = ::sd::toolpanel::SlideSorterCacheDisplay::Instance(
+ dynamic_cast<const SdDrawDocument*>(pPage->GetModel()));
+ if (pDisplay != NULL)
+ pDisplay->SetUpToDate((pPage->GetPageNum()-1)/2, bUpToDate);
+}
+
+
+
+#define SSCD_SET_REQUEST_CLASS(Page,RequestClass) \
+ SscdSetRequestClass(Page,RequestClass)
+#define SSCD_SET_STATUS(RequestData,Status) \
+ SscdSetStatus(RequestData,::sd::toolpanel::SlideSorterCacheDisplay::Status)
+#define SSCD_SET_VISIBILITY(Model,Index,Visible) \
+ SscdSetVisibility(Model,Index,Visible)
+#define SSCD_SET_UPTODATE(Page,UpToDate) \
+ SscdSetUpToDate(Page,UpToDate)
+
+
+}
+
+#else
+
+#define SSCD_SET_REQUEST_CLASS(Page,RequestClass)
+#define SSCD_SET_STATUS(RequestData,Status)
+#define SSCD_SET_VISIBILITY(Model,Index,Visible)
+#define SSCD_SET_UPTODATE(Page,UpToDate)
+
+#endif
+
+#endif
diff --git a/sd/source/ui/inc/taskpane/SubToolPanel.hxx b/sd/source/ui/inc/taskpane/SubToolPanel.hxx
new file mode 100755
index 000000000000..468fd079f565
--- /dev/null
+++ b/sd/source/ui/inc/taskpane/SubToolPanel.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 SD_TASKPANE_SUB_TOOL_PANEL_HXX
+#define SD_TASKPANE_SUB_TOOL_PANEL_HXX
+
+#include "taskpane/TaskPaneTreeNode.hxx"
+
+#include <vcl/ctrl.hxx>
+#include <vcl/scrbar.hxx>
+#include <memory>
+#include <vector>
+
+
+class Window;
+
+namespace sd { namespace toolpanel {
+
+/** The sub tool panel is in function similar to the tool panel. It
+ differes in two points. First, it is a control that can be used
+ as element in a tool panel and thus is actually a nested tool
+ panel.
+
+ <p>Secondly, it formats its elements differently. The actual controls
+ are placed one below the other with a title bar above each control.
+ Clicking on the title bar expands or collapses the control. When there
+ is not enough space then scroll bars are shown.</p>
+
+ <p>To avoid flickering when painting the sub tool panel the background
+ is made transparent and painting it is done by this class. While
+ layouting its children it remembers the gaps between children and stores
+ them in maStripeList. In Paint() those gaps as well as the border
+ arround all children are painted in the background color.</p>
+*/
+class SubToolPanel
+ : public Control,
+ public TreeNode
+{
+public:
+ /** Create a new sub tool panel with the given window as its
+ parent. This will usually be a child window.
+ */
+ SubToolPanel (Window& i_rParentWindow);
+ virtual ~SubToolPanel (void);
+
+ virtual void Paint (const Rectangle& rRect);
+
+ /** Initiate a rearrangement of the controls and title bars.
+ */
+ virtual void Resize (void);
+
+ virtual void RequestResize (void);
+
+ virtual Size GetPreferredSize (void);
+ virtual sal_Int32 GetPreferredWidth (sal_Int32 nHeight);
+ virtual sal_Int32 GetPreferredHeight (sal_Int32 nWidth);
+ virtual bool IsResizable (void);
+ virtual ::Window* GetWindow (void);
+ virtual sal_Int32 GetMinimumWidth (void);
+
+ virtual void ExpandControl (
+ TreeNode* pControl,
+ bool bExpansionState);
+
+ virtual ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible> CreateAccessibleObject (
+ const ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible>& rxParent);
+
+ using Window::GetWindow;
+private:
+ ::Window maWindowFiller;
+ bool mbIsRearrangePending;
+ bool mbIsLayoutPending;
+ sal_uInt32 mnChildrenWidth;
+ /// Border above top-most and below bottom-most control.
+ const int mnVerticalBorder;
+ /// Gap between two controls.
+ const int mnVerticalGap;
+ /// Border at the left and right of the controls.
+ const int mnHorizontalBorder;
+ /** List of horizontal stripes that is created from the gaps between
+ children when they are layouted. The stripes are painted in Paint()
+ to fill the space arround the children.
+ */
+ typedef ::std::vector< ::std::pair<int,int> > StripeList;
+ StripeList maStripeList;
+
+ /** Calculate position, size, and visibility of the controls.
+ Call this method after the list of controls, their expansion
+ state, or the size of the sub panel has changed.
+ */
+ void Rearrange (void);
+
+ /** Determine the minimal size that is necessary to show the controls
+ one over the other. It may be smaller than the available area.
+ */
+ Size GetRequiredSize (void);
+
+ /** Place the child windows one above the other and return the size of
+ the bounding box.
+ */
+ sal_Int32 LayoutChildren (void);
+
+ DECL_LINK(WindowEventListener, VclSimpleEvent*);
+};
+
+} } // end of namespace ::sd::toolpanel
+
+#endif
diff --git a/sd/source/ui/inc/taskpane/TaskPaneControlFactory.hxx b/sd/source/ui/inc/taskpane/TaskPaneControlFactory.hxx
new file mode 100755
index 000000000000..c86c496a770d
--- /dev/null
+++ b/sd/source/ui/inc/taskpane/TaskPaneControlFactory.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 SD_TASKPANE_CONTROL_FACTORY_HXX
+#define SD_TASKPANE_CONTROL_FACTORY_HXX
+
+#include "taskpane/TaskPaneTreeNode.hxx"
+
+#include <memory>
+
+namespace sd {
+class ViewShellBase;
+}
+
+namespace sd { namespace toolpanel {
+class TreeNode;
+} }
+
+
+
+
+namespace sd { namespace toolpanel {
+
+/** A simple factory base class defines the interface that is used by
+ some of the control containers of the task pane to create controls on
+ demand when they are about to be displayed for the first time.
+
+ It provides the InternalCreateControl() method as hook that can be
+ overloaded by derived classes to provide a new control.
+*/
+class ControlFactory
+{
+public:
+ ControlFactory (void);
+ virtual ~ControlFactory (void);
+
+ /** creates a tree node which acts as root of an own tree
+
+ Derived classes should overload InternalCreateControl.
+ */
+ ::std::auto_ptr<TreeNode> CreateControl( ::Window& i_rParent );
+
+protected:
+ virtual TreeNode* InternalCreateControl( ::Window& i_rParent ) = 0;
+};
+
+
+
+/** A simple helper class that realizes a ControlFactory that is able to create root controls, providing
+ the to-be-created control with an additional parameter.
+*/
+template<class ControlType, class ArgumentType>
+class RootControlFactoryWithArg
+ : public ControlFactory
+{
+public:
+ RootControlFactoryWithArg (ArgumentType& rArgument)
+ : mrArgument(rArgument)
+ {}
+
+protected:
+ virtual TreeNode* InternalCreateControl( ::Window& i_rParent )
+ {
+ return new ControlType( i_rParent, mrArgument );
+ }
+
+private:
+ ArgumentType& mrArgument;
+};
+
+
+} } // end of namespace ::sd::toolpanel
+
+#endif
diff --git a/sd/source/ui/inc/taskpane/TaskPaneTreeNode.hxx b/sd/source/ui/inc/taskpane/TaskPaneTreeNode.hxx
new file mode 100755
index 000000000000..a1a430c49328
--- /dev/null
+++ b/sd/source/ui/inc/taskpane/TaskPaneTreeNode.hxx
@@ -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.
+ *
+ ************************************************************************/
+
+#ifndef SD_TASKPANE_TREE_NODE_HXX
+#define SD_TASKPANE_TREE_NODE_HXX
+
+#include "ILayoutableWindow.hxx"
+#include <memory>
+#include <vector>
+#include <com/sun/star/accessibility/XAccessible.hpp>
+#include <tools/link.hxx>
+
+namespace sd {
+class ObjectBarManager;
+}
+
+namespace sd { namespace toolpanel {
+
+class ControlContainer;
+class TaskPaneShellManager;
+
+enum TreeNodeStateChangeEventId {
+ EID_CHILD_ADDED,
+ EID_ALL_CHILDREN_REMOVED,
+ EID_EXPANSION_STATE_CHANGED,
+ EID_FOCUSED_STATE_CHANGED,
+ EID_SHOWING_STATE_CHANGED
+};
+
+
+/** Base class for all members of the object hierarchy that makes up the
+ tool panel. In the task pane, there are multiple hierarchies of such nodes,
+ with every panel having an own tree. The pane node is the root of the tree, below
+ that there are SubToolPanels and Window/Control objects. At the
+ lowest level there are only Window or Control objects.
+
+ This class provides the means of communication between objects on
+ different levels.
+*/
+class TreeNode
+ : public ILayoutableWindow,
+ public ILayouter
+{
+public:
+ TreeNode (TreeNode* pParent);
+ virtual ~TreeNode (void);
+
+ void SetParentNode (TreeNode* pNewParent);
+ TreeNode* GetParentNode (void);
+
+ /** Return the Window pointer of a tree node.
+ */
+ virtual ::Window* GetWindow (void);
+
+ /** Return a const pointer to the window of a tree node.
+ */
+ virtual const ::Window* GetConstWindow (void) const;
+
+ /** Return the joined minimum width of all children, i.e. the largest of
+ the minimum widths.
+ */
+ virtual sal_Int32 GetMinimumWidth (void);
+
+ /** The default implementaion always returns <FALSE/>
+ */
+ virtual bool IsResizable (void);
+
+ /** Call this method whenever the size of one of the children of the
+ called node has to be changed, e.g. when the layout menu shows more
+ or less items than before. As a typical result the node will layout
+ and resize its children according to their size requirements.
+
+ Please remember that the size of the children can be changed in the
+ first place because scroll bars can give a node the space it needs.
+
+ The default implementation passes this call to its parent.
+ */
+ virtual void RequestResize (void);
+
+ /** The default implementation shows the window (when it exists) when
+ bExpansionState is <TRUE/>. It hides the window otherwise.
+ @return
+ Returns <TRUE/> when the expansion state changes. When an
+ expansion state is requested that is already in place then
+ <FALSE/> is returned.
+ */
+ virtual bool Expand (bool bExpansionState);
+
+ /** The default implementation returns whether the window is showing.
+ When there is no window then it returns <FALSE/>.
+ */
+ virtual bool IsExpanded (void) const;
+
+ /** Return whether the node can be expanded or collapsed. The default
+ implementation always returns <TRUE/> when there is window and
+ <FALSE/> otherwise. If <FALSE/> is returned
+ then Expand() may be called but it will not change the expansion
+ state.
+ */
+ virtual bool IsExpandable (void) const;
+
+ /** The default implementation calls GetWindow()->Show().
+ */
+ virtual void Show (bool bVisibilityState);
+
+ /** The default implementation returns GetWindow()->IsVisible().
+ */
+ virtual bool IsShowing (void) const;
+
+ ControlContainer& GetControlContainer (void);
+
+ /** Give each node access to a shell manage. This usually is the shell
+ manager of the ToolPanelViewShell.
+
+ At least the root node has to overwrite this method since the
+ default implementation simply returns the shell manager of its
+ parent.
+ */
+ virtual TaskPaneShellManager* GetShellManager (void);
+
+ /** You will rarely need to overload this method. To supply your own
+ accessible object you should overload CreateAccessible() instead.
+ */
+ virtual ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible> GetAccessibleObject (void);
+
+ /** Overload this method in order to supply a class specific accessible
+ object.
+ The default implementation will return a new instance of
+ AccessibleTreeNode.
+ @param rxParent
+ The accessible parent of the accessible object to create. It is
+ not necessaryly the accessible object of the parent window of
+ GetWindow().
+
+ */
+ virtual ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible> CreateAccessibleObject (
+ const ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible>&rxParent);
+
+ /** Add a listener that will be informated in the future about state
+ changes of the tree node. This includes adding and removing
+ children as well as focus, visibility, and expansion state.
+ Multiple calls are ignored. Each listener is added only once.
+ */
+ void AddStateChangeListener (const Link& rListener);
+
+ /** Call the state change listeners and pass a state change event with
+ the specified event id. The source field is set to this.
+ @param pChild
+ This optional parameter makes sense only with the
+ EID_CHILD_ADDED event.
+ */
+ void FireStateChangeEvent (
+ TreeNodeStateChangeEventId eEventId,
+ TreeNode* pChild = NULL) const;
+
+protected:
+ ::std::auto_ptr<ControlContainer> mpControlContainer;
+
+private:
+ TreeNode* mpParent;
+ typedef ::std::vector<Link> StateChangeListenerContainer;
+ StateChangeListenerContainer maStateChangeListeners;
+};
+
+
+
+
+/** Objects of this class are sent to listeners to notify them about state
+ changes of a tree node.
+*/
+class TreeNodeStateChangeEvent
+{
+public:
+
+ TreeNodeStateChangeEvent (
+ const TreeNode& rNode,
+ TreeNodeStateChangeEventId eEventId,
+ TreeNode* pChild = NULL);
+
+ const TreeNode& mrSource;
+ TreeNodeStateChangeEventId meEventId;
+ TreeNode* mpChild;
+};
+
+} } // end of namespace ::sd::toolpanel
+
+#endif
diff --git a/sd/source/ui/inc/taskpane/TitleBar.hxx b/sd/source/ui/inc/taskpane/TitleBar.hxx
new file mode 100755
index 000000000000..466330ff86cc
--- /dev/null
+++ b/sd/source/ui/inc/taskpane/TitleBar.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 SD_TASKPANE_TITLE_BAR_HXX
+#define SD_TASKPANE_TITLE_BAR_HXX
+
+#include "taskpane/TaskPaneTreeNode.hxx"
+#include <vcl/image.hxx>
+#include <tools/string.hxx>
+#include <vcl/window.hxx>
+#include <memory>
+
+class Rectangle;
+class String;
+class VirtualDevice;
+
+namespace sd { namespace toolpanel {
+
+
+/** The title bar above a control in a sub tool panel.
+
+ <p>The title bar shows two kinds of indicators: 1) Expansion is
+ displayed by two sets of two bitmaps, a triangle pointing to the right
+ resp. a minus in a square indicates that the control is collapsed, a
+ triangle pointing down resp. a plus in a square stands for an expanded
+ control. 2) Keyboard focus is indicated by a dotted rectangle.
+*/
+class TitleBar
+ : public ::Window,
+ public TreeNode
+{
+public:
+ enum TitleBarType {
+ TBT_SUB_CONTROL_HEADLINE
+ };
+
+ /** Create a new title bar whose content, the given title string,
+ will be formatted according to the given type.
+ */
+ TitleBar (
+ ::Window* pParent,
+ const String& rsTitle,
+ TitleBarType eType,
+ bool bIsExpandable);
+ virtual ~TitleBar (void);
+
+ virtual Size GetPreferredSize (void);
+ virtual sal_Int32 GetPreferredWidth (sal_Int32 nHeight);
+ virtual sal_Int32 GetPreferredHeight (sal_Int32 nWidth);
+ virtual bool IsResizable (void);
+ virtual ::Window* GetWindow (void);
+ virtual sal_Int32 GetMinimumWidth (void);
+
+ virtual void Paint (const Rectangle& rBoundingBox);
+ virtual bool Expand (bool bFlag = true);
+ virtual bool IsExpanded (void) const;
+ virtual void SetEnabledState(bool bFlag);
+ virtual void GetFocus (void);
+ virtual void LoseFocus (void);
+
+ virtual void MouseMove(const MouseEvent& rEvent);
+ /** Empty implementation prevents forwarding to docking window.
+ */
+ virtual void MouseButtonDown (const MouseEvent& rEvent);
+ /** Empty implementation prevents forwarding to docking window.
+ */
+ virtual void MouseButtonUp (const MouseEvent& rEvent);
+
+ virtual void DataChanged (const DataChangedEvent& rEvent);
+
+ String GetTitle (void) const;
+
+ ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible > CreateAccessibleObject (
+ const ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible>& rxParent);
+
+private:
+ TitleBarType meType;
+ String msTitle;
+ bool mbExpanded;
+ bool mbFocused;
+ // Size of the bounding box that encloses the title string.
+ ::std::auto_ptr<VirtualDevice> mpDevice;
+ bool mbIsExpandable;
+
+ /** Return whether this TitleBar object has an expansion indicator
+ bitmap. It is safe to call GetExpansionIndicator() when this method
+ returns <FALSE/> but unnecessary.
+ */
+ bool HasExpansionIndicator (void) const;
+
+ /** Return the image of the expansion indicator.
+ @return
+ When there is no expansion indictor for this TitleBar object,
+ then an empty Image is returned. You better call
+ HasExpansionIndicator() to prevent this.
+ */
+ Image GetExpansionIndicator (void) const;
+
+ /** Calculate the bounding box of the title text. This takes into
+ account indentation due to an expansion indicator and the given
+ available width. When the text can not be displayed on one line, it
+ is broken into multiple lines.
+ @param nAvailableWidth
+ When 0 is given then the natural text width is used, i.e. the
+ text is not broken into multiple lines.
+ */
+ Rectangle CalculateTextBoundingBox (
+ int nAvailableWidth,
+ bool bEmphasizeExpanded);
+
+ /** Add some space to the given text box and return the bounding box of
+ the title bar.
+ */
+ Rectangle CalculateTitleBarBox (
+ const Rectangle& rTextBox,
+ int nTitleBarWidth);
+
+ void PaintSubPanelHeadLineBar (void);
+
+ void PaintBackground (const Rectangle& rTextBox);
+
+ /// Paint a focus indicator that encloses the given rectangle.
+ void PaintFocusIndicator (const Rectangle& rIndicatorBox);
+
+ Rectangle PaintExpansionIndicator (const Rectangle& rTextBox);
+
+ void PaintText (const Rectangle& rTextBox);
+
+ sal_uInt16 GetTextStyle (void);
+
+ const static int snIndentationWidth;
+
+ // Default constructor, copy constructor, and assignment are not supported.
+ TitleBar (void);
+ TitleBar (const TitleBar&);
+ TitleBar& operator= (const TitleBar&);
+
+ using Window::GetWindow;
+};
+
+} } // end of namespace ::sd::toolpanel
+
+#endif
diff --git a/sd/source/ui/inc/taskpane/TitledControl.hxx b/sd/source/ui/inc/taskpane/TitledControl.hxx
new file mode 100755
index 000000000000..cb7cd3b2159c
--- /dev/null
+++ b/sd/source/ui/inc/taskpane/TitledControl.hxx
@@ -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.
+ *
+ ************************************************************************/
+
+#ifndef SD_TASKPANE_TITLED_CONTROL_HXX
+#define SD_TASKPANE_TITLED_CONTROL_HXX
+
+#include "taskpane/TaskPaneTreeNode.hxx"
+#include "taskpane/ControlContainer.hxx"
+#include "TitleBar.hxx"
+#include <com/sun/star/drawing/framework/XResourceId.hpp>
+#include <tools/string.hxx>
+#include <tools/gen.hxx>
+#ifndef SD_WINDOW_HXX
+#include <vcl/window.hxx>
+#endif
+#include <memory>
+#include <boost/function.hpp>
+
+class Window;
+
+namespace sd { namespace toolpanel {
+
+class ControlContainer;
+
+/** This wrapper adds a title bar to a control. Both title bar and
+ control are child windows.
+*/
+class TitledControl
+ : public ::Window,
+ public TreeNode
+{
+public:
+ typedef ::boost::function1<void, TitledControl&> ClickHandler;
+
+ /** Create a new descriptor for the given control.
+ @param pParent
+ The parent window of the new descriptor.
+ @param pControl
+ The control that is shown when being in the expanded
+ state.
+ @param rTitle
+ String that is shown as title in the title area above the
+ control.
+ @param rClickHandler
+ The typical action of the click handler is to expand the control.
+ @param eType
+ Type of the title bar. This specifies how the title bar
+ will be formated. For more information see TitleBar.
+
+ */
+ TitledControl (
+ TreeNode* pParent,
+ ::std::auto_ptr<TreeNode> pControl,
+ const String& rTitle,
+ const ClickHandler& rClickHandler,
+ TitleBar::TitleBarType eType);
+
+ virtual ~TitledControl (void);
+
+
+ virtual Size GetPreferredSize (void);
+ virtual sal_Int32 GetPreferredWidth (sal_Int32 nHeight);
+ virtual sal_Int32 GetPreferredHeight (sal_Int32 nWidth);
+ virtual bool IsResizable (void);
+ virtual ::Window* GetWindow (void);
+
+ virtual void Resize (void);
+ virtual void GetFocus (void);
+ virtual void KeyInput (const KeyEvent& rEvent);
+
+ // void Select (bool bExpansionState);
+
+ TitleBar* GetTitleBar (void);
+ /** Return the control child. When a control factory has been given and
+ the control has not yet been created and the given flag is <TRUE/>
+ then the control is created.
+ */
+ TreeNode* GetControl (void);
+ const TreeNode* GetConstControl () const;
+
+ const String& GetTitle (void) const;
+
+ /** Expand the control without informing its container. This
+ method ususally is called by the container as a result of a
+ higher level expand command. You may want to use
+ ExpandViaContainer() instead.
+ @param bExpanded
+ When <TRUE/> then the control is expanded, otherwise it is
+ collapsed.
+ */
+ virtual bool Expand (bool bExpanded = true);
+
+ /** Return whether the control is currently expanded (<TRUE/>) or
+ not (<FALSE/>).
+ */
+ virtual bool IsExpanded (void) const;
+
+ /** Returns the value of the control.
+ */
+ virtual bool IsExpandable (void) const;
+
+ virtual void SetEnabledState(bool bFlag);
+
+ virtual bool IsShowing (void) const;
+ virtual void Show (bool bVisible);
+
+ virtual ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible > CreateAccessibleObject (
+ const ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible>& rxParent);
+
+ using Window::GetWindow;
+ using Window::Show;
+
+private:
+ String msTitle;
+ bool mbVisible;
+ void* mpUserData;
+ ::std::auto_ptr<ClickHandler> mpClickHandler;
+
+ /// Do not use! Assignment operator is not supported.
+ const TitledControl& operator= (
+ const TitledControl& aDescriptor);
+
+ void UpdateStates (void);
+
+ DECL_LINK(WindowEventListener, VclSimpleEvent*);
+};
+
+
+
+
+/** This standard implementation of the ClickHandler expands, or toggles the
+ expansion state, of the control, whose title was clicked.
+*/
+class TitledControlStandardClickHandler
+{
+public:
+ /** Create a new instance of this class.
+ @param rControlContainer
+ The container of which the TitledControl is part of.
+ @param eExpansionState
+ This specifies whether to always expand the titled control or to
+ toggle its expansion state.
+ */
+ TitledControlStandardClickHandler (
+ ControlContainer& rControlContainer,
+ ControlContainer::ExpansionState eExpansionState);
+ void operator () (TitledControl& rTitledControl);
+private:
+ ControlContainer& mrControlContainer;
+ ControlContainer::ExpansionState meExpansionState;
+};
+
+} } // end of namespace ::sd::toolpanel
+
+#endif
diff --git a/sd/source/ui/inc/taskpane/ToolPanelViewShell.hxx b/sd/source/ui/inc/taskpane/ToolPanelViewShell.hxx
new file mode 100644
index 000000000000..431932fc01f6
--- /dev/null
+++ b/sd/source/ui/inc/taskpane/ToolPanelViewShell.hxx
@@ -0,0 +1,172 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: ToolPanelViewShell.hxx,v $
+ * $Revision: 1.12 $
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef SD_TOOL_PANEL_VIEW_SHELL_HXX
+#define SD_TOOL_PANEL_VIEW_SHELL_HXX
+
+#include "ViewShell.hxx"
+#include "glob.hxx"
+#include "taskpane/PanelId.hxx"
+#include "framework/FrameworkHelper.hxx"
+#include <vcl/button.hxx>
+#include <sfx2/shell.hxx>
+#include <sfx2/viewfac.hxx>
+#include <sfx2/dockwin.hxx>
+
+#include <boost/shared_ptr.hpp>
+#include <boost/scoped_ptr.hpp>
+
+class PopupMenu;
+
+namespace com { namespace sun { namespace star { namespace ui {
+ class XUIElement;
+} } } }
+
+namespace sd {
+class PaneDockingWindow;
+
+namespace toolpanel {
+class TaskPaneShellManager;
+class TitleToolBox;
+class TitleBar;
+class TitledControl;
+class ToolPanelViewShell_Impl;
+/** The tool panel is a view shell for some very specific reasons:
+ - It fits better into the concept of panes being docking windows whose
+ content, a view shell, can be exchanged on runtime.
+ - A control in the tool panel that wants to show a context menu has to
+ do that over the dispatcher of a shell. These shells, usually
+ implemented by the controls themselves, have to be managed by someone.
+ If interpreted as object bars this can be handled by the
+ ObjectBarManager of the ViewShell.
+*/
+class ToolPanelViewShell
+ : public ViewShell
+{
+public:
+ TYPEINFO();
+ SFX_DECL_INTERFACE(SD_IF_SDTOOLPANELSHELL)
+
+ ToolPanelViewShell (
+ SfxViewFrame* pFrame,
+ ViewShellBase& rViewShellBase,
+ ::Window* pParentWindow,
+ FrameView* pFrameView);
+ virtual ~ToolPanelViewShell (void);
+
+ /** Register the SFX interfaces so that (some of) the controls can be
+ pushed as SFX shells on the shell stack and process slot calls and
+ so on.
+ */
+ static void RegisterControls (void);
+
+ virtual void GetFocus (void);
+ virtual void LoseFocus (void);
+ virtual void KeyInput (const KeyEvent& rEvent);
+ using sd::ViewShell::KeyInput;
+
+ virtual SdPage* GetActualPage (void);
+ virtual SdPage* getCurrentPage (void) const;
+
+ virtual void ArrangeGUIElements (void);
+
+ TaskPaneShellManager& GetSubShellManager (void) const;
+
+ /** deactivates the given panel, bypassing the configuration controller. Only valid for tool panels which are
+ not under the drawing framework's control.
+ */
+ void ActivatePanel( const ::rtl::OUString& i_rPanelResourceURL );
+
+ /** deactivates the given panel, bypassing the configuration controller
+ */
+ void DeactivatePanel( const ::rtl::OUString& i_rPanelResourceURL );
+
+ /** Return a pointer to the docking window that is the parent or a
+ predecessor of the content window.
+ @return
+ When the view shell is not placed in a docking window, e.g. when
+ shown in the center pane, then <NULL?> is returned.
+ */
+ DockingWindow* GetDockingWindow (void);
+
+ virtual ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible>
+ CreateAccessibleDocumentView (::sd::Window* pWindow);
+
+ virtual css::uno::Reference<css::drawing::XDrawSubController> CreateSubController (void);
+
+ /** Relocate all toplevel controls to the given parent window.
+ */
+ virtual bool RelocateToParentWindow (::Window* pParentWindow);
+
+ /// returns <TRUE/> if and only if the given window is the panel anchor window of our ToolPanelDeck
+ bool IsPanelAnchorWindow( const ::Window& i_rWindow ) const;
+
+ /** creates an XUIElement for the given standard panel
+ */
+ ::com::sun::star::uno::Reference< ::com::sun::star::ui::XUIElement >
+ CreatePanelUIElement(
+ const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& i_rDocFrame,
+ const ::rtl::OUString& i_rPanelResourceURL
+ );
+
+private:
+ ::boost::scoped_ptr< ToolPanelViewShell_Impl > mpImpl;
+
+ ::boost::shared_ptr<TaskPaneShellManager> mpSubShellManager;
+
+ /** The id of the menu in the menu bar/tool box of the parent docking
+ window.
+ */
+ sal_uInt16 mnMenuId;
+
+ /** Create a popup menu. it contains two sections, one for
+ docking or un-docking the tool panel, one for toggling the
+ visibility state of the tool panel items.
+ @param bIsDocking
+ According to this flag one of the lock/unlock entries is
+ made disabled.
+ */
+ ::std::auto_ptr<PopupMenu> CreatePopupMenu (bool bIsDocking);
+
+
+ /** Initialize the task pane view shell if that has not yet been done
+ before. If mbIsInitialized is already set to <TRUE/> then this
+ method returns immediately.
+ */
+ void Initialize (void);
+};
+
+
+
+
+} } // end of namespace ::sd::toolpanel
+
+#endif
diff --git a/sd/source/ui/inc/tbx_ww.hrc b/sd/source/ui/inc/tbx_ww.hrc
new file mode 100644
index 000000000000..0189eecf2739
--- /dev/null
+++ b/sd/source/ui/inc/tbx_ww.hrc
@@ -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.
+ *
+ ************************************************************************/
+#define TBX_ALIGNMENT 1
+#define TBX_ZOOM 1
+#define TBX_CONTROLS 1
diff --git a/sd/source/ui/inc/tbx_ww.hxx b/sd/source/ui/inc/tbx_ww.hxx
new file mode 100755
index 000000000000..b59290883328
--- /dev/null
+++ b/sd/source/ui/inc/tbx_ww.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 _SD_TBX_WW_HXX
+#define _SD_TBX_WW_HXX
+
+#include <sdresid.hxx>
+#include <sfx2/tbxctrl.hxx>
+
+//------------------------------------------------------------------------
+
+/*
+class SdPopupWindowTbx : public SfxPopupWindow
+{
+private:
+ SfxToolBoxManager aTbx;
+ SdResId aSdResIdWin;
+ SdResId aSdResIdTbx;
+ WindowAlign eTbxAlign;
+ Link aSelectLink;
+
+ DECL_LINK( TbxSelectHdl, ToolBox * );
+
+public:
+ SdPopupWindowTbx( sal_uInt16 nId, WindowAlign eAlign,
+ SdResId aRIdWin, SdResId aRIdTbx, SfxBindings& rBindings );
+ ~SdPopupWindowTbx();
+
+ virtual SfxPopupWindow* Clone() const;
+
+ virtual void PopupModeEnd();
+
+ void StartSelection() { aTbx.GetToolBox().StartSelection(); }
+ void Update();
+
+private:
+
+ // Adapt the toolbox to whether CTL is active or not. If CTL is not
+ // active then all toolbox items that describe CTL specific shapes are
+ // deleted from it and its size is re-calculated.
+ void AdaptToCTL (void);
+};
+*/
+//------------------------------------------------------------------------
+
+class SdTbxControl : public SfxToolBoxControl
+{
+private:
+ sal_Bool IsCheckable( sal_uInt16 nSId );
+
+public:
+ SFX_DECL_TOOLBOX_CONTROL();
+
+ SdTbxControl(sal_uInt16 nSlotId, sal_uInt16 nId, ToolBox& rTbx );
+ ~SdTbxControl() {}
+
+ virtual SfxPopupWindowType GetPopupWindowType() const;
+ virtual SfxPopupWindow* CreatePopupWindow();
+ virtual void StateChanged( sal_uInt16 nSId, SfxItemState eState,
+ const SfxPoolItem* pState );
+};
+
+#endif // _SD_TBX_WW_HXX
+
diff --git a/sd/source/ui/inc/tmplctrl.hxx b/sd/source/ui/inc/tmplctrl.hxx
new file mode 100755
index 000000000000..ab0aac07dabe
--- /dev/null
+++ b/sd/source/ui/inc/tmplctrl.hxx
@@ -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.
+ *
+ ************************************************************************/
+#ifndef _SD_TMPLCTRL_HXX
+#define _SD_TMPLCTRL_HXX
+
+#include <sfx2/stbitem.hxx>
+#include <tools/string.hxx>
+
+class SdTemplateControl : public SfxStatusBarControl
+{
+public:
+ SdTemplateControl( sal_uInt16 nSlotId, sal_uInt16 nId, StatusBar& rStb );
+ ~SdTemplateControl();
+
+ virtual void StateChanged( sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem* pState );
+ virtual void Paint( const UserDrawEvent& rEvt );
+
+ SFX_DECL_STATUSBAR_CONTROL();
+
+protected:
+ virtual void Command( const CommandEvent& rCEvt );
+
+private:
+ String msTemplate;
+};
+
+
+#endif
+
diff --git a/sd/source/ui/inc/tools/AsynchronousCall.hxx b/sd/source/ui/inc/tools/AsynchronousCall.hxx
new file mode 100644
index 000000000000..e123afaa06fe
--- /dev/null
+++ b/sd/source/ui/inc/tools/AsynchronousCall.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 SD_ASYNCHRONOUS_CALL_HXX
+#define SD_ASYNCHRONOUS_CALL_HXX
+
+#include <vcl/timer.hxx>
+#include <memory>
+#include <boost/function.hpp>
+
+namespace sd { namespace tools {
+
+
+/** Store a function object and execute it asynchronous.
+
+ The features of this class are:
+ a) It provides a wrapper around a VCL Timer so that generic function
+ objects can be used.
+ b) When more than one function objects are posted to be executed later
+ then the pending ones are erased and only the last one will actually be
+ executed.
+
+ Use this class like this:
+ aInstanceOfAsynchronousCall.Post(
+ ::boost::bind(
+ ::std::mem_fun(&DrawViewShell::SwitchPage),
+ pDrawViewShell,
+ 11));
+*/
+class AsynchronousCall
+{
+public:
+ /** Create a new asynchronous call. Each object of this class processes
+ one (semantical) type of call.
+ */
+ AsynchronousCall (void);
+
+ ~AsynchronousCall (void);
+
+ /** Post a function object that is to be executed asynchronously. When
+ this method is called while the current function object has not bee
+ executed then the later is destroyed and only the given function
+ object will be executed.
+ @param rFunction
+ The function object that may be called asynchronously in the
+ near future.
+ @param nTimeoutInMilliseconds
+ The timeout in milliseconds until the function object is
+ executed.
+ */
+ typedef ::boost::function0<void> AsynchronousFunction;
+ void Post (
+ const AsynchronousFunction& rFunction,
+ sal_uInt32 nTimeoutInMilliseconds=10);
+
+private:
+ Timer maTimer;
+ /** The function object that will be executed when the TimerCallback
+ function is called the next time. This pointer may be NULL.
+ */
+ ::std::auto_ptr<AsynchronousFunction> mpFunction;
+ DECL_LINK(TimerCallback,Timer*);
+};
+
+
+} } // end of namespace ::sd::tools
+
+#endif
diff --git a/sd/source/ui/inc/tools/AsynchronousTask.hxx b/sd/source/ui/inc/tools/AsynchronousTask.hxx
new file mode 100755
index 000000000000..f3135d3fcce7
--- /dev/null
+++ b/sd/source/ui/inc/tools/AsynchronousTask.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 SD_ASYNCHRONOUS_TASK_HXX
+#define SD_ASYNCHRONOUS_TASK_HXX
+
+namespace sd { namespace tools {
+
+/** Interface for the asynchronous execution of a task. This interface
+ allows an controller to run the task either timer based with a fixed
+ amount of time between the steps or thread based one step right after
+ the other.
+*/
+class AsynchronousTask
+{
+public:
+ /** Run the next step of the task. After HasNextStep() returns false
+ this method should ignore further calls.
+ */
+ virtual void RunNextStep (void) = 0;
+
+ /** Return <TRUE/> when there is at least one more step to execute.
+ When the task has been executed completely then <FALSE/> is
+ returned.
+ */
+ virtual bool HasNextStep (void) = 0;
+};
+
+} } // end of namespace ::sd::tools
+
+#endif
diff --git a/sd/source/ui/inc/tools/ConfigurationAccess.hxx b/sd/source/ui/inc/tools/ConfigurationAccess.hxx
new file mode 100644
index 000000000000..953012dfa668
--- /dev/null
+++ b/sd/source/ui/inc/tools/ConfigurationAccess.hxx
@@ -0,0 +1,152 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef SD_TOOLS_CONFIGURATION_ACCESS_HXX
+#define SD_TOOLS_CONFIGURATION_ACCESS_HXX
+
+#include <rtl/ustring.hxx>
+#include <com/sun/star/container/XNameAccess.hpp>
+#include <com/sun/star/container/XHierarchicalNameAccess.hpp>
+#include <com/sun/star/uno/XComponentContext.hpp>
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+#include <vector>
+#include <boost/function.hpp>
+
+namespace css = ::com::sun::star;
+
+namespace sd { namespace tools {
+
+/** This class gives access to the configuration. Create an object of this
+ class for one node of the configuration. This will be the root node.
+ Its children are then accessible through the new ConfigurationAccess
+ object.
+*/
+class ConfigurationAccess
+{
+public:
+ enum WriteMode { READ_WRITE, READ_ONLY };
+
+ /** Create a new object to access the configuration entries below the
+ given root.
+ @param rsRootName
+ Name of the root.
+ @param eMode
+ This flag specifies whether to give read-write or read-only
+ access.
+ */
+ ConfigurationAccess(
+ const ::rtl::OUString& rsRootName,
+ const WriteMode eMode);
+
+ ConfigurationAccess(
+ const css::uno::Reference<css::uno::XComponentContext>& rxContext,
+ const ::rtl::OUString& rsRootName,
+ const WriteMode eMode);
+
+ /** Return a configuration node below the root of the called object.
+ @param rsPathToNode
+ The relative path from the root (as given the constructor) to
+ the node.
+ @return
+ The type of the returned node varies with the requested node.
+ It is empty when the node was not found.
+ */
+ css::uno::Any GetConfigurationNode (
+ const ::rtl::OUString& rsPathToNode);
+
+ /** Return a configuration node below the given node.
+ @param rxNode
+ The node that acts as root to the given relative path.
+ @param rsPathToNode
+ The relative path from the given node to the requested node.
+ @return
+ The type of the returned node varies with the requested node.
+ It is empty when the node was not found.
+ */
+ static css::uno::Any GetConfigurationNode (
+ const css::uno::Reference<css::container::XHierarchicalNameAccess>& rxNode,
+ const ::rtl::OUString& rsPathToNode);
+
+ /** Write any changes that have been made back to the configuration.
+ This call is ignored when the called ConfigurationAccess object was
+ not create with read-write mode.
+ */
+ void CommitChanges (void);
+
+ /** This functor is typically called for every item in a set. Its two
+ parameters are the name of key item (often of no further interest)
+ and the value of the item.
+ */
+ typedef ::boost::function<void(
+ const ::rtl::OUString&,
+ const std::vector<css::uno::Any>&) > Functor;
+
+ /** Execute a functor for all elements of the given container.
+ @param rxContainer
+ The container is a XNameAccess to a list of the configuration.
+ This can be a node returned by GetConfigurationNode().
+ @param rArguments
+ The functor is called with arguments that are children of each
+ element of the container. The set of children is specified this
+ list.
+ @param rFunctor
+ The functor to be executed for some or all of the elements in
+ the given container.
+ */
+ static void ForAll (
+ const css::uno::Reference<css::container::XNameAccess>& rxContainer,
+ const ::std::vector<rtl::OUString>& rArguments,
+ const Functor& rFunctor);
+
+ /** Fill a list with the string contents of all sub-elements in the given container.
+ @param rxContainer
+ The container is a XNameAccess to a list of the configuration.
+ This can be a node returned by GetConfigurationNode().
+ @param rsArgument
+ This specifies which string children of the elements in the
+ container are to be inserted into the list. The specified child
+ has to be of type string.
+ @param rList
+ The list to be filled.
+ */
+ static void FillList(
+ const css::uno::Reference<css::container::XNameAccess>& rxContainer,
+ const ::rtl::OUString& rsArgument,
+ ::std::vector<rtl::OUString>& rList);
+
+private:
+ css::uno::Reference<css::uno::XInterface> mxRoot;
+
+ void Initialize (
+ const css::uno::Reference<css::lang::XMultiServiceFactory>& rxProvider,
+ const ::rtl::OUString& rsRootName,
+ const WriteMode eMode);
+};
+
+} } // end of namespace sd::tools
+
+#endif
diff --git a/sd/source/ui/inc/tools/IconCache.hxx b/sd/source/ui/inc/tools/IconCache.hxx
new file mode 100755
index 000000000000..b0619ea4b2d7
--- /dev/null
+++ b/sd/source/ui/inc/tools/IconCache.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 SD_ICON_CACHE_HXX
+#define SD_ICON_CACHE_HXX
+
+#include "SdGlobalResourceContainer.hxx"
+#include <vcl/image.hxx>
+
+namespace sd {
+
+/** This simple class stores frequently used icons so that the classes that
+ use the icons do not have to store them in every one of their
+ instances.
+
+ Icons are adressed over their resource id and are loaded on demand.
+
+ This cache acts like a singleton with a lifetime equal to that of the sd
+ module.
+*/
+class IconCache
+ : public SdGlobalResource
+{
+public:
+ /** The lifetime of the returned reference is limited to that of the sd
+ module.
+ */
+ static IconCache& Instance (void);
+
+ /** Return the icon with the given resource id.
+ @return
+ The returned Image may be empty when there is no icon for the
+ given id or an error occured. Should not happen under normal
+ circumstances.
+ */
+ Image GetIcon (sal_uInt16 nResourceId);
+
+private:
+ class Implementation;
+ ::std::auto_ptr<Implementation> mpImpl;
+
+ /** The constructor creates the one instance of the cache and registers
+ it at the SdGlobalResourceContainer to limit is lifetime to that of
+ the sd module.
+ */
+ IconCache (void);
+
+ /** This destructor is called by SdGlobalResourceContainer.
+ */
+ virtual ~IconCache (void);
+};
+
+} // end of namespace sd
+
+#endif
diff --git a/sd/source/ui/inc/tools/IdleDetection.hxx b/sd/source/ui/inc/tools/IdleDetection.hxx
new file mode 100644
index 000000000000..3369dc1dd177
--- /dev/null
+++ b/sd/source/ui/inc/tools/IdleDetection.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 SD_IDLE_DETECTION_HXX
+#define SD_IDLE_DETECTION_HXX
+
+#include <sal/types.h>
+
+class Window;
+
+namespace sd { namespace tools {
+
+/** Detect whether the system is idle and some time consuming operation may
+ be carried out. This class ditinguishes between different states of
+ idle-ness.
+*/
+class IdleDetection
+{
+public:
+ /** When GetIdleState() returns this value, then the system is idle.
+ */
+ static const sal_Int32 IDET_IDLE = 0x0000;
+
+ /** There are system event pending.
+ */
+ static const sal_Int32 IDET_SYSTEM_EVENT_PENDING = 0x0001;
+
+ /** A full screen slide show is running and is active. In contrast
+ there may be a full screen show be running in an inactive window,
+ i.e. in the background.
+ */
+ static const sal_Int32 IDET_FULL_SCREEN_SHOW_ACTIVE = 0x0002;
+
+ /** A slide show is running in a window.
+ */
+ static const sal_Int32 IDET_WINDOW_SHOW_ACTIVE = 0x0004;
+
+ /** A window is being painted.
+ */
+ static const sal_Int32 IDET_WINDOW_PAINTING = 0x0008;
+
+ /** Determine whether the system is idle.
+ @param pWindow
+ When a valid Window pointer is given then it is checked
+ whether the window is currently being painting.
+ @return
+ This method either returns IDET_IDLE or a combination of
+ IdleStates values or-ed together that describe what the system
+ is currently doing so that the caller can decide what to do.
+ */
+ static sal_Int32 GetIdleState (const ::Window* pWindow = NULL);
+
+private:
+ /** Check whether there are input events pending.
+ */
+ static sal_Int32 CheckInputPending (void);
+
+ /** Check whether a slide show is running full screen or in a window.
+ */
+ static sal_Int32 CheckSlideShowRunning (void);
+
+ static sal_Int32 CheckWindowPainting (const ::Window& rWindow);
+};
+
+} } // end of namespace ::sd::tools
+
+#endif
diff --git a/sd/source/ui/inc/tools/PropertySet.hxx b/sd/source/ui/inc/tools/PropertySet.hxx
new file mode 100755
index 000000000000..998b4f0e2142
--- /dev/null
+++ b/sd/source/ui/inc/tools/PropertySet.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 SD_TOOLS_PROPERTY_SET_HXX
+#define SD_TOOLS_PROPERTY_SET_HXX
+
+#include <cppuhelper/basemutex.hxx>
+#include <cppuhelper/compbase1.hxx>
+#include <com/sun/star/beans/XPropertySet.hpp>
+#include <boost/scoped_ptr.hpp>
+#include <map>
+
+namespace css = ::com::sun::star;
+
+namespace sd { namespace tools {
+
+namespace {
+ typedef ::cppu::WeakComponentImplHelper1 <
+ css::beans::XPropertySet
+ > PropertySetInterfaceBase;
+}
+
+
+/** A very simple implementation of the XPropertySet interface. It does not
+ support constrained properties and thus does not support vetoable
+ listeners. It does not support the optional property set info.
+
+ In order to use it you have to derive from this class and implement the
+ GetPropertyValue() and SetPropertyValue() methods.
+*/
+class PropertySet
+ : protected ::cppu::BaseMutex,
+ public PropertySetInterfaceBase
+{
+public:
+ explicit PropertySet (void);
+ virtual ~PropertySet (void);
+
+ virtual void SAL_CALL disposing (void);
+
+ // XPropertySet
+
+ virtual css::uno::Reference<css::beans::XPropertySetInfo>
+ SAL_CALL getPropertySetInfo (void)
+ throw(css::uno::RuntimeException);
+
+ virtual void SAL_CALL setPropertyValue (
+ const rtl::OUString& rsPropertyName,
+ const css::uno::Any& rsPropertyValue)
+ throw(css::beans::UnknownPropertyException,
+ css::beans::PropertyVetoException,
+ css::lang::IllegalArgumentException,
+ css::lang::WrappedTargetException,
+ css::uno::RuntimeException);
+
+ virtual css::uno::Any SAL_CALL getPropertyValue (const rtl::OUString& rsPropertyName)
+ throw(css::beans::UnknownPropertyException,
+ css::lang::WrappedTargetException,
+ css::uno::RuntimeException);
+
+ virtual void SAL_CALL addPropertyChangeListener (
+ const rtl::OUString& rsPropertyName,
+ const css::uno::Reference<css::beans::XPropertyChangeListener>& rxListener)
+ throw(css::beans::UnknownPropertyException,
+ css::lang::WrappedTargetException,
+ css::uno::RuntimeException);
+
+ virtual void SAL_CALL removePropertyChangeListener (
+ const rtl::OUString& rsPropertyName,
+ const css::uno::Reference<css::beans::XPropertyChangeListener>& rxListener)
+ throw(css::beans::UnknownPropertyException,
+ css::lang::WrappedTargetException,
+ css::uno::RuntimeException);
+
+ virtual void SAL_CALL addVetoableChangeListener (
+ const rtl::OUString& rsPropertyName,
+ const css::uno::Reference<css::beans::XVetoableChangeListener>& rxListener)
+ throw(css::beans::UnknownPropertyException,
+ css::lang::WrappedTargetException,
+ css::uno::RuntimeException);
+
+ virtual void SAL_CALL removeVetoableChangeListener (
+ const rtl::OUString& rsPropertyName,
+ const css::uno::Reference<css::beans::XVetoableChangeListener>& rxListener)
+ throw(css::beans::UnknownPropertyException,
+ css::lang::WrappedTargetException,
+ css::uno::RuntimeException);
+
+protected:
+ /** Return the requested property value.
+ @throw com::sun::star::beans::UnknownPropertyException when the
+ property is not supported.
+ */
+ virtual css::uno::Any GetPropertyValue (const ::rtl::OUString& rsPropertyName) = 0;
+ /** Set the given property value.
+ @return the old value.
+ @throw com::sun::star::beans::UnknownPropertyException when the
+ property is not supported.
+ */
+ virtual css::uno::Any SetPropertyValue (
+ const ::rtl::OUString& rsPropertyName,
+ const css::uno::Any& rValue) = 0;
+
+private:
+ typedef ::std::multimap<rtl::OUString,
+ css::uno::Reference<css::beans::XPropertyChangeListener> > ChangeListenerContainer;
+ ::boost::scoped_ptr<ChangeListenerContainer> mpChangeListeners;
+
+ /** Call all listeners that are registered for the given property name.
+ Call this method with an empty property name to call listeners that
+ are registered for all properties.
+ */
+ void CallListeners (
+ const rtl::OUString& rsPropertyName,
+ const css::beans::PropertyChangeEvent& rEvent);
+
+ /** This method throws a DisposedException when the object has already been
+ disposed.
+ */
+ void ThrowIfDisposed (void)
+ throw (css::lang::DisposedException);
+};
+
+} } // end of namespace ::sd::tools
+
+#endif
diff --git a/sd/source/ui/inc/tools/SdGlobalResourceContainer.hxx b/sd/source/ui/inc/tools/SdGlobalResourceContainer.hxx
new file mode 100755
index 000000000000..d0661a61636b
--- /dev/null
+++ b/sd/source/ui/inc/tools/SdGlobalResourceContainer.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 SD_GLOBAL_RESOURCE_CONTAINER_HXX
+#define SD_GLOBAL_RESOURCE_CONTAINER_HXX
+
+#include "sdmod.hxx"
+#include <memory>
+#include <boost/shared_ptr.hpp>
+#include <com/sun/star/uno/XInterface.hpp>
+
+namespace css = ::com::sun::star;
+
+namespace sd {
+
+class SdGlobalResource
+{
+public:
+ virtual ~SdGlobalResource (void) {};
+};
+
+/** The purpose of this container is to hold references to resources that
+ are globally available to all interested objects and to destroy them
+ when the sd module is destroyed. Examples for resources can be
+ containers of bitmaps or the container of master pages used by the
+ MasterPagesSelector objects in the task panel.
+
+ It works like a singleton in that there is one instance per sd module.
+ Resources can be added (by themselves or their owners) to the
+ container. The main task of the container is the destruction of all
+ resources that have been added to it.
+
+ As you may note, there is no method to get a resource from the
+ container. It is the task of the resource to provide other means of
+ access to it.
+
+ The reason for this design is not to have to change the SdModule
+ destructor every time when there is a new resource. This is done by
+ reversing the dependency between module and resource: the resource knows
+ about the module--this container class to be more precisely--and tells
+ it to destroy the resource when the sd module is at the end of its
+ lifetime.
+*/
+class SdGlobalResourceContainer
+{
+public:
+ static SdGlobalResourceContainer& Instance (void);
+
+ /** Add a resource to the container. The ownership of the resource is
+ transferred to the container. The resource is destroyed when the
+ container is destroyed, i.e. when the sd module is destroyed.
+
+ When in doubt, use the shared_ptr variant of this method.
+ */
+ void AddResource (::std::auto_ptr<SdGlobalResource> pResource);
+
+ /** Add a resource to the container. By using a shared_ptr and
+ releasing it only when the SgGlobalResourceContainer is destroyed
+ the given resource is kept alive at least that long. When at the
+ time of the destruction of SgGlobalResourceContainer no other
+ references exist the resource is destroyed as well.
+ */
+ void AddResource (::boost::shared_ptr<SdGlobalResource> pResource);
+
+ /** Add a resource that is implemented as UNO object. Destruction
+ (when the sd modules is unloaded) is done by a) calling dispose()
+ when the XComponent is supported and by b) releasing the reference.
+ */
+ void AddResource (const ::css::uno::Reference<css::uno::XInterface>& rxResource);
+
+protected:
+ friend class ::SdModule;
+ friend class ::std::auto_ptr<SdGlobalResourceContainer>;
+
+ class Implementation;
+ ::std::auto_ptr<Implementation> mpImpl;
+
+ SdGlobalResourceContainer (void);
+ ~SdGlobalResourceContainer (void);
+};
+
+} // end of namespace sd
+
+#endif
diff --git a/sd/source/ui/inc/tools/SlotStateListener.hxx b/sd/source/ui/inc/tools/SlotStateListener.hxx
new file mode 100755
index 000000000000..1f45aef331ab
--- /dev/null
+++ b/sd/source/ui/inc/tools/SlotStateListener.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 SD_TOOLS_SLOT_STATE_LISTENER_HXX
+#define SD_TOOLS_SLOT_STATE_LISTENER_HXX
+
+#include "MutexOwner.hxx"
+#include <com/sun/star/frame/XStatusListener.hpp>
+#include <com/sun/star/frame/XFrame.hpp>
+#include <com/sun/star/frame/FeatureStateEvent.hpp>
+#include <com/sun/star/frame/XDispatchProvider.hpp>
+#ifndef _COM_SUN_STAR_LANG_DISPOSEDEXCEPTIOIN_HPP_
+#include <com/sun/star/lang/DisposedException.hpp>
+#endif
+#include <com/sun/star/lang/XComponent.hpp>
+#include <cppuhelper/compbase1.hxx>
+#include <tools/link.hxx>
+
+namespace sd { namespace tools {
+
+
+typedef cppu::WeakComponentImplHelper1<
+ ::com::sun::star::frame::XStatusListener
+ > SlotStateListenerInterfaceBase;
+
+
+/** Listen for state changes of slots. This class has been created in order
+ to be informed when the support for vertical writing changes but it can
+ be used to relay state changes of other slots as well.
+*/
+class SlotStateListener
+ : protected MutexOwner,
+ public SlotStateListenerInterfaceBase
+{
+public:
+ /** This convenience version of the constructor takes all parameters
+ that are necessary to observe a single slot. See descriptions of
+ the SetCallback(), ConnectToFrame(), and ObserveSlot() methods for
+ explanations about the parameters.
+ */
+ SlotStateListener (
+ Link& rCallback,
+ const ::com::sun::star::uno::Reference<
+ ::com::sun::star::frame::XDispatchProvider>& rxDispatchProvider,
+ const ::rtl::OUString& rSlotName);
+
+ /** The constructor de-registers all remaining listeners. Usually a prior
+ dispose() call should have done that already.
+ */
+ virtual ~SlotStateListener (void);
+
+ /** Set the callback to the given value. Whenever one of the observed
+ slots changes its state this callback is informed about it.
+ Changing the callback does not release the listeners.
+ @throws DisposedException
+ */
+ void SetCallback (const Link& rCallback);
+
+ /** Set the frame whose slots shall be observed. When an object of this
+ class is already observing slots of another frame then these
+ listeners are released first.
+ @throws DisposedException
+ */
+ void ConnectToDispatchProvider (
+ const ::com::sun::star::uno::Reference<
+ ::com::sun::star::frame::XDispatchProvider>& rxDispatchProvider);
+
+ /** Observe the slot specified by the given name. Note that
+ ConnectToFrame() has to have been called earlier.
+ @param rSlotName
+ The name of the slot to observe. An example is
+ ".uno:VerticalTextState".
+ @throws DisposedException
+ */
+ void ObserveSlot (const ::rtl::OUString& rSlotName);
+
+ //===== frame::XStatusListener ==========================================
+
+ /** Called by slot state change broadcasters. In turn the callback is
+ informed about the state chage.
+ @throws DisposedException
+ */
+ virtual void SAL_CALL
+ statusChanged (
+ const ::com::sun::star::frame::FeatureStateEvent& rState)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ //===== lang::XEventListener ============================================
+
+ virtual void SAL_CALL
+ disposing(const com::sun::star::lang::EventObject& rEvent)
+ throw(com::sun::star::uno::RuntimeException);
+
+protected:
+ /** This method is called by the WeakComponentImplHelper base class in
+ reaction to a XComponent::dispose() call. It releases all currently
+ active listeners.
+ */
+ virtual void SAL_CALL disposing (void);
+
+private:
+ Link maCallback;
+
+ /** Remember the URLs that describe slots whose state changes we are
+ listening to.
+ */
+ typedef ::std::vector<com::sun::star::util::URL> RegisteredURLList;
+ RegisteredURLList maRegisteredURLList;
+
+ ::com::sun::star::uno::WeakReference<
+ ::com::sun::star::frame::XDispatchProvider> mxDispatchProviderWeak;
+
+ /** Deregister all currently active state change listeners.
+ */
+ void ReleaseListeners (void);
+
+ /** This method throws a DisposedException when the object has already been
+ disposed.
+ */
+ void ThrowIfDisposed (void)
+ throw (::com::sun::star::lang::DisposedException);
+
+ /** Transform the given string into a URL object.
+ */
+ ::com::sun::star::util::URL MakeURL (const ::rtl::OUString& rSlotName) const;
+
+ /** Return an XDispatch object for the given URL.
+ */
+ ::com::sun::star::uno::Reference<com::sun::star::frame::XDispatch>
+ GetDispatch (
+ const ::com::sun::star::util::URL& rURL) const;
+};
+
+} } // end of namespace ::sd::tools
+
+#endif
diff --git a/sd/source/ui/inc/tools/TimerBasedTaskExecution.hxx b/sd/source/ui/inc/tools/TimerBasedTaskExecution.hxx
new file mode 100755
index 000000000000..33ec3ccd9993
--- /dev/null
+++ b/sd/source/ui/inc/tools/TimerBasedTaskExecution.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 SD_TIMER_BASED_TASK_EXECUTION_HXX
+#define SD_TIMER_BASED_TASK_EXECUTION_HXX
+
+#include <vcl/timer.hxx>
+
+#include <boost/shared_ptr.hpp>
+
+namespace sd { namespace tools {
+
+class AsynchronousTask;
+
+/** Execute an AsynchronousTask timer based, i.e. every
+ nMillisecondsBetweenSteps milliseconds as much steps are executed as fit
+ into a nMaxTimePerStep millisecond intervall.
+
+ When a task is executed completely, i.e. HasNextStep() returns <FALSE/>,
+ the TimerBasedTaskExecution destroys itself. This, of course, works
+ only if the creating instance does not hold a shared_ptr to that object.
+*/
+class TimerBasedTaskExecution
+{
+public:
+ /** Create a new object of this class.
+ @param rpTask
+ The AsynchronousTask that is to be executed.
+ @param nMillisecondsBetweenSteps
+ Wait at least this long between the execution of steps. Note
+ that more than one step may be executed in succession.
+ @param nMaxTimePerStep
+ The maximal time for executing steps without yielding control.
+ */
+ static ::boost::shared_ptr<TimerBasedTaskExecution> Create (
+ const ::boost::shared_ptr<AsynchronousTask>& rpTask,
+ sal_uInt32 nMillisecondsBetweenSteps,
+ sal_uInt32 nMaxTimePerStep);
+
+ /** Stop the execution of the task and release the shared pointer to
+ itself so that it will eventually be destroyed.
+ */
+ void Release (void);
+
+ /** Convenience method that calls Release() on the given task. It
+ checks the given weak_ptr for being expired and catches bad_weak_ptr
+ exceptions.
+ */
+ static void ReleaseTask (const ::boost::weak_ptr<TimerBasedTaskExecution>& rpTask);
+
+private:
+ ::boost::shared_ptr<AsynchronousTask> mpTask;
+ Timer maTimer;
+ /** This shared_ptr to this is used to destroy a TimerBasedTaskExecution
+ object when its task has been executed completely.
+ */
+ ::boost::shared_ptr<TimerBasedTaskExecution> mpSelf;
+ sal_uInt32 mnMaxTimePerStep;
+
+ TimerBasedTaskExecution (
+ const ::boost::shared_ptr<AsynchronousTask>& rpTask,
+ sal_uInt32 nMillisecondsBetweenSteps,
+ sal_uInt32 nMaxTimePerStep);
+ ~TimerBasedTaskExecution (void);
+ void SetSelf (const ::boost::shared_ptr<TimerBasedTaskExecution>& rpSelf);
+
+ class Deleter;
+ friend class Deleter;
+
+ DECL_LINK(TimerCallback,Timer*);
+};
+
+} } // end of namespace ::sd::tools
+
+#endif
diff --git a/sd/source/ui/inc/tpaction.hrc b/sd/source/ui/inc/tpaction.hrc
new file mode 100755
index 000000000000..0c4fe8a265d9
--- /dev/null
+++ b/sd/source/ui/inc/tpaction.hrc
@@ -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.
+ *
+ ************************************************************************/
+#define LB_EFFECT 1
+#define LB_ACTION 3
+#define LB_OLE_ACTION 4
+#define LB_TREE 5
+#define LB_TREE_DOCUMENT 6
+#define BTN_SEARCH 1
+#define BTN_SEEK 2
+#define TSB_SOUND 1
+#define TSB_PLAY_FULL 2
+#define FL_EFFECT 1
+#define FL_SEPARATOR 2
+#define RBT_SLOW 1
+#define RBT_MEDIUM 2
+#define RBT_FAST 3
+#define EDT_SOUND 1
+#define EDT_BOOKMARK 2
+#define EDT_DOCUMENT 3
+#define EDT_PROGRAM 4
+#define EDT_MACRO 5
+#define FT_ACTION 2
+#define FT_ANIMATION 3
+#define FT_SPEED 4
+#define FT_TREE 5
+#define TP_ANIMATION 787
+#define TP_ANIMATION_ACTION 789
+//IAccessibility2 Implementation 2009-----
+#define STR_PATHNAME 1
+ //-----IAccessibility2 Implementation 2009
diff --git a/sd/source/ui/inc/tpaction.hxx b/sd/source/ui/inc/tpaction.hxx
new file mode 100755
index 000000000000..d4b746762def
--- /dev/null
+++ b/sd/source/ui/inc/tpaction.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 _SD_TPACTION_HXX
+#define _SD_TPACTION_HXX
+
+#include <com/sun/star/presentation/ClickAction.hpp>
+#include <com/sun/star/presentation/AnimationEffect.hpp>
+#include <svtools/filedlg.hxx>
+#include <vcl/group.hxx>
+#include <vcl/fixed.hxx>
+#include <svx/dlgctrl.hxx>
+#include <sfx2/tabdlg.hxx>
+#include <sfx2/basedlgs.hxx>
+#include <sfx2/tabdlg.hxx>
+#include "sdtreelb.hxx"
+#include "anmdef.hxx"
+
+#include <vector>
+
+namespace sd {
+ class View;
+}
+class SdDrawDocument;
+
+/*************************************************************************
+|*
+|* Effekte-SingleTab-Dialog
+|*
+\************************************************************************/
+class SdActionDlg : public SfxSingleTabDialog
+{
+private:
+ const SfxItemSet& rOutAttrs;
+
+public:
+
+ SdActionDlg( Window* pParent, const SfxItemSet* pAttr, ::sd::View* pView );
+ ~SdActionDlg() {};
+};
+
+/*************************************************************************
+|*
+|* Interaktions-Tab-Page
+|*
+\************************************************************************/
+
+class SdTPAction : public SfxTabPage
+{
+private:
+ FixedText aFtAction; // always visible
+ ListBox aLbAction;
+
+ FixedText aFtTree; // jump destination controls
+ SdPageObjsTLB aLbTree;
+ SdPageObjsTLB aLbTreeDocument;
+ ListBox aLbOLEAction;
+
+ FixedLine aFlSeparator;
+ Edit aEdtSound;
+ Edit aEdtBookmark;
+ Edit aEdtDocument;
+ Edit aEdtProgram;
+ Edit aEdtMacro;
+ PushButton aBtnSearch;
+ PushButton aBtnSeek;
+
+ const SfxItemSet& rOutAttrs;
+ const ::sd::View* mpView;
+ SdDrawDocument* mpDoc;
+ XColorTable* pColTab;
+
+ sal_Bool bTreeUpdated;
+ List* pCurrentActions;
+ String aLastFile;
+ ::std::vector< long > aVerbVector;
+
+ //------------------------------------
+
+ DECL_LINK( ClickSearchHdl, void * );
+ DECL_LINK( ClickActionHdl, void * );
+ DECL_LINK( SelectTreeHdl, void * );
+ DECL_LINK( CheckFileHdl, void * );
+
+ void UpdateTree();
+ virtual void OpenFileDialog();
+ ::com::sun::star::presentation::ClickAction GetActualClickAction();
+ void SetActualClickAction( ::com::sun::star::presentation::ClickAction eCA );
+ void SetActualAnimationEffect( ::com::sun::star::presentation::AnimationEffect eAE );
+ void SetEditText( String const & rStr );
+ String GetEditText( sal_Bool bURL = sal_False );
+ sal_uInt16 GetClickActionSdResId( ::com::sun::star::presentation::ClickAction eCA );
+ sal_uInt16 GetAnimationEffectSdResId( ::com::sun::star::presentation::AnimationEffect eAE );
+
+public:
+ SdTPAction( Window* pParent, const SfxItemSet& rInAttrs );
+ ~SdTPAction();
+
+ static SfxTabPage* Create( Window*, const SfxItemSet& );
+
+ virtual sal_Bool FillItemSet( SfxItemSet& );
+ virtual void Reset( const SfxItemSet & );
+
+ virtual void ActivatePage( const SfxItemSet& rSet );
+ virtual int DeactivatePage( SfxItemSet* pSet );
+
+ void Construct();
+
+ void SetView( const ::sd::View* pSdView );
+
+ using TabPage::ActivatePage;
+ using TabPage::DeactivatePage;
+};
+
+#endif // _SD_TPACTION_HXX
+
diff --git a/sd/source/ui/inc/tpoption.hrc b/sd/source/ui/inc/tpoption.hrc
new file mode 100644
index 000000000000..caa1ca0f3812
--- /dev/null
+++ b/sd/source/ui/inc/tpoption.hrc
@@ -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.
+ *
+ ************************************************************************/
+#define TP_OPTIONS_LAYOUT 596
+#define TP_OPTIONS_CONTENTS 597
+#define TP_OPTIONS_SNAP 598
+#define TP_OPTIONS_MISC 599
+#define GRP_OTHER 1
+#define FT_METRIC 2
+#define GRP_PROGRAMSTART 3
+#define GRP_DISPLAY 4
+#define GRP_SETTINGS 5
+#define GRP_TEXT 6
+#define FT_TABSTOP 7
+//#i80528##define GRP_VIEW_SUBSTITUTE 8
+#define CBX_COPY 13
+#define CBX_RULER 14
+#define CBX_HELPLINES 1
+#define CBX_MOVE_OUTLINE 15
+//#i80528##define CBX_OUTLINEMODE 11
+//#i80528##define CBX_HAIRLINEMODE 12
+#define CBX_MARKED_HIT_MOVES_ALWAYS 19
+#define CBX_CROOK_NO_CONTORTION 21
+#define CBX_SLANT_BUT_SHEAR 22
+#//#i80528#define CBX_EXTERN_GRAPHIC 10
+#define CBX_HANDLES_BEZIER 2
+#define GRP_SNAP 1
+#define GRP_ORTHO 2
+#define FT_SNAP_AREA 1
+#define FI_ORTHO 2
+#define FI_SNAP 3
+#define FT_BEZ_ANGLE 4
+//#define FT_METRIC 5
+#define LB_METRIC 1
+#define MTR_FLD_SNAP_AREA 1
+#define MTR_FLD_ANGLE 2
+#define MTR_FLD_BEZ_ANGLE 3
+#define MTR_FLD_TABSTOP 4
+#define CBX_ROTATE 8
+#define CBX_ORTHO 6
+#define CBX_BIGORTHO 7
+#define CBX_SNAPGRID 1
+#define CBX_SNAP_HELPLINES 2
+#define CBX_SNAP_GRID 1
+#define CBX_SNAP_BORDER 3
+#define CBX_SNAP_FRAME 4
+#define CBX_SNAP_POINTS 5
+#define CBX_START_WITH_TEMPLATE 6
+#define CBX_START_WITH_LAYOUT 7
+#define CBX_PICKTHROUGH 9
+//#i80528##define CBX_NOTEXT 23
+#define CBX_QUICKEDIT 24
+#define CBX_MASTERPAGE_CACHE 25
+
+#define CBX_START_WITH_ACTUAL_PAGE 26
+#define GRP_START_WITH_ACTUAL_PAGE 8
+#define FT_COMPATIBILITY 27
+#define CB_MERGE_PARA_DIST 28
+
+#define CB_SCALE 29
+#define FT_ORIGINAL 30
+#define MTR_FLD_ORIGINAL_WIDTH 31
+#define FT_EQUIVALENT 32
+#define MTR_FLD_ORIGINAL_HEIGHT 33
+#define GRP_SCALE 34
+#define FI_INFO_1 35
+#define FI_INFO_2 36
+#define FT_PAGEWIDTH 37
+#define FT_PAGEHEIGHT 38
+#define FT_SCALE 39
+
+#define CB_USE_PRINTER_METRICS 40
diff --git a/sd/source/ui/inc/tpoption.hxx b/sd/source/ui/inc/tpoption.hxx
new file mode 100755
index 000000000000..83d8479b29c5
--- /dev/null
+++ b/sd/source/ui/inc/tpoption.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 _SD_TPOPTION_HXX
+#define _SD_TPOPTION_HXX
+
+
+#ifndef _LSTBOX_HXX //autogen
+#include <vcl/lstbox.hxx>
+#endif
+#ifndef _GROUP_HXX //autogen
+#include <vcl/group.hxx>
+#endif
+#ifndef _FIXED_HXX //autogen
+#include <vcl/fixed.hxx>
+#endif
+#ifndef _FIELD_HXX //autogen
+#include <vcl/field.hxx>
+#endif
+#ifndef _BUTTON_HXX //autogen
+#include <vcl/button.hxx>
+#endif
+#include <svtools/stdctrl.hxx>
+#include <sfx2/tabdlg.hxx>
+#include <svx/optgrid.hxx>
+
+/*************************************************************************
+|*
+|* Optionen-Tab-Page: Snap
+|*
+\************************************************************************/
+class SdTpOptionsSnap : public SvxGridTabPage
+{
+public:
+ SdTpOptionsSnap( Window* pParent, const SfxItemSet& rInAttrs );
+ ~SdTpOptionsSnap();
+
+ static SfxTabPage* Create( Window*, const SfxItemSet& );
+ virtual sal_Bool FillItemSet( SfxItemSet& );
+ virtual void Reset( const SfxItemSet & );
+
+// virtual void ActivatePage( const SfxItemSet& rSet );
+// virtual int DeactivatePage( SfxItemSet* pSet );
+};
+/*************************************************************************
+|*
+|* Optionen-Tab-Page: Contents (Inhalte)
+|*
+\************************************************************************/
+class SdTpOptionsContents : public SfxTabPage
+{
+private:
+ FixedLine aGrpDisplay;
+ CheckBox aCbxRuler;
+ CheckBox aCbxDragStripes;
+ CheckBox aCbxHandlesBezier;
+ CheckBox aCbxMoveOutline;
+
+
+public:
+ SdTpOptionsContents( Window* pParent, const SfxItemSet& rInAttrs );
+ ~SdTpOptionsContents();
+
+ static SfxTabPage* Create( Window*, const SfxItemSet& );
+ virtual sal_Bool FillItemSet( SfxItemSet& );
+ virtual void Reset( const SfxItemSet & );
+};
+
+/*************************************************************************
+|*
+|* Optionen-Tab-Page: View
+|*
+\************************************************************************/
+class SdModule;
+class SdTpOptionsMisc : public SfxTabPage
+{
+ friend class SdOptionsDlg;
+ friend class SdModule;
+
+private:
+ FixedLine aGrpText;
+ CheckBox aCbxQuickEdit;
+ CheckBox aCbxPickThrough;
+
+ FixedLine aGrpProgramStart;
+ CheckBox aCbxStartWithTemplate;
+
+ FixedLine aGrpSettings;
+ CheckBox aCbxMasterPageCache;
+ CheckBox aCbxCopy;
+ CheckBox aCbxMarkedHitMovesAlways;
+ CheckBox aCbxCrookNoContortion;
+
+ FixedText aTxtMetric;
+ ListBox aLbMetric;
+ FixedText aTxtTabstop;
+ MetricField aMtrFldTabstop;
+
+ CheckBox aCbxStartWithActualPage;
+ FixedLine aGrpStartWithActualPage;
+ FixedLine aTxtCompatibility;
+ CheckBox aCbxUsePrinterMetrics;
+ CheckBox aCbxCompatibility;
+
+ //Scale
+ FixedLine aGrpScale;
+ FixedText aFtScale;
+ ComboBox aCbScale;
+
+ FixedText aFtOriginal;
+ FixedText aFtEquivalent;
+
+ FixedText aFtPageWidth;
+ FixedInfo aFiInfo1;
+ MetricField aMtrFldOriginalWidth;
+
+ FixedText aFtPageHeight;
+ FixedInfo aFiInfo2;
+ MetricField aMtrFldOriginalHeight;
+
+ MetricField aMtrFldInfo1;
+ MetricField aMtrFldInfo2;
+
+ sal_uInt32 nWidth;
+ sal_uInt32 nHeight;
+ String aInfo1;
+ String aInfo2;
+
+ SfxMapUnit ePoolUnit;
+
+ String GetScale( sal_Int32 nX, sal_Int32 nY );
+ sal_Bool SetScale( const String& aScale, sal_Int32& rX, sal_Int32& rY );
+
+ DECL_LINK( ModifyScaleHdl, void * );
+ DECL_LINK( ModifyOriginalScaleHdl, void * );
+ DECL_LINK( SelectMetricHdl_Impl, ListBox * );
+
+ /** Enable or disable the controls in the compatibility section of the
+ 'general' tab page depending on whether there is at least one
+ document.
+ */
+ void UpdateCompatibilityControls (void);
+
+protected:
+ virtual void ActivatePage( const SfxItemSet& rSet );
+ virtual int DeactivatePage( SfxItemSet* pSet );
+
+public:
+ SdTpOptionsMisc( Window* pParent, const SfxItemSet& rInAttrs );
+ ~SdTpOptionsMisc();
+
+ static SfxTabPage* Create( Window*, const SfxItemSet& );
+ virtual sal_Bool FillItemSet( SfxItemSet& );
+ virtual void Reset( const SfxItemSet & );
+
+ /** Hide Impress specific controls, make Draw specific controls visible
+ and arrange the visible controls. Do not call this method or the
+ <member>SetImpressMode()</member> method more than once.
+ */
+ void SetDrawMode (void);
+
+ /** Hide Draw specific controls, make Impress specific controls visible
+ and arrange the visible controls. Do not call this method or the
+ <member>SetDrawMode()</member> method more than once.
+ */
+ void SetImpressMode (void);
+ virtual void PageCreated (SfxAllItemSet aSet);
+
+ using TabPage::ActivatePage;
+ using TabPage::DeactivatePage;
+ using OutputDevice::SetDrawMode;
+
+};
+
+
+#endif // _SD_TPOPTION_HXX
+
diff --git a/sd/source/ui/inc/unchss.hxx b/sd/source/ui/inc/unchss.hxx
new file mode 100644
index 000000000000..d607182aa20e
--- /dev/null
+++ b/sd/source/ui/inc/unchss.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 _SD_UNCHSS_HXX
+#define _SD_UNCHSS_HXX
+
+#include "sdundo.hxx"
+
+class SfxItemSet;
+class SfxStyleSheet;
+class SdDrawDocument;
+
+class StyleSheetUndoAction : public SdUndoAction
+{
+ SfxStyleSheet* pStyleSheet;
+
+ SfxItemSet* pNewSet;
+ SfxItemSet* pOldSet;
+ String aComment;
+
+public:
+ TYPEINFO();
+ StyleSheetUndoAction(SdDrawDocument* pTheDoc,
+ SfxStyleSheet* pTheStyleSheet,
+ const SfxItemSet* pTheNewItemSet);
+
+ virtual ~StyleSheetUndoAction();
+ virtual void Undo();
+ virtual void Redo();
+
+ virtual String GetComment() const;
+};
+
+#endif // _SD_UNCHSS_HXX
+
diff --git a/sd/source/ui/inc/undoback.hxx b/sd/source/ui/inc/undoback.hxx
new file mode 100644
index 000000000000..ca62c6cae0b0
--- /dev/null
+++ b/sd/source/ui/inc/undoback.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 _SD_UNDOBACK_HXX
+#define _SD_UNDOBACK_HXX
+
+#include "sdundo.hxx"
+
+class SdDrawDocument;
+class SdPage;
+class SfxItemSet;
+
+// -----------------------------
+// - SdBackgroundObjUndoAction -
+// -----------------------------
+
+class SdBackgroundObjUndoAction : public SdUndoAction
+{
+private:
+
+ SdPage& mrPage;
+ SfxItemSet* mpItemSet;
+
+ void ImplRestoreBackgroundObj();
+
+public:
+
+ TYPEINFO();
+
+ SdBackgroundObjUndoAction(
+ SdDrawDocument& rDoc,
+ SdPage& rPage,
+ const SfxItemSet& rItenSet);
+ virtual ~SdBackgroundObjUndoAction();
+
+ virtual void Undo();
+ virtual void Redo();
+
+ virtual SdUndoAction* Clone() const;
+};
+
+#endif // _SD_UNDOBACK_HXX
diff --git a/sd/source/ui/inc/undoheaderfooter.hxx b/sd/source/ui/inc/undoheaderfooter.hxx
new file mode 100644
index 000000000000..a61030b753f7
--- /dev/null
+++ b/sd/source/ui/inc/undoheaderfooter.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 _SD_UNDOHEADERFOOTER_HXX
+#define _SD_UNDOHEADERFOOTER_HXX
+
+#include <tools/gen.hxx>
+#include "sdundo.hxx"
+#include "sdpage.hxx"
+#include "sddllapi.h"
+
+class SdDrawDocument;
+
+/************************************************************************/
+
+class SD_DLLPUBLIC SdHeaderFooterUndoAction : public SdUndoAction
+{
+ SdPage* mpPage;
+
+ const sd::HeaderFooterSettings maOldSettings;
+ const sd::HeaderFooterSettings maNewSettings;
+
+public:
+ TYPEINFO();
+ SdHeaderFooterUndoAction( SdDrawDocument* pDoc, SdPage* pPage, const sd::HeaderFooterSettings& rNewSettings );
+ virtual ~SdHeaderFooterUndoAction();
+
+ virtual void Undo();
+ virtual void Redo();
+};
+
+#endif // _SD_UNDOHEADERFOOTER_HXX
+
diff --git a/sd/source/ui/inc/undolayer.hxx b/sd/source/ui/inc/undolayer.hxx
new file mode 100644
index 000000000000..9abe2ee54c91
--- /dev/null
+++ b/sd/source/ui/inc/undolayer.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 _SD_UNDOLAYER_HXX
+#define _SD_UNDOLAYER_HXX
+
+#include "sdundo.hxx"
+
+class SdDrawDocument;
+class SdrLayer;
+
+/************************************************************************/
+
+class SdLayerModifyUndoAction : public SdUndoAction
+{
+
+public:
+ TYPEINFO();
+ SdLayerModifyUndoAction( SdDrawDocument* _pDoc, SdrLayer* pLayer,
+ const String& rOldLayerName, const String& rOldLayerTitle, const String& rOldLayerDesc, bool bOldIsVisible, bool bOldIsLocked, bool bOldIsPrintable,
+ const String& rNewLayerName, const String& rNewLayerTitle, const String& rNewLayerDesc, bool bNewIsVisible, bool bNewIsLocked, bool bNewIsPrintable );
+
+ virtual void Undo();
+ virtual void Redo();
+
+private:
+ SdrLayer* mpLayer;
+ String maOldLayerName;
+ String maOldLayerTitle;
+ String maOldLayerDesc;
+ bool mbOldIsVisible;
+ bool mbOldIsLocked;
+ bool mbOldIsPrintable;
+ String maNewLayerName;
+ String maNewLayerTitle;
+ String maNewLayerDesc;
+ bool mbNewIsVisible;
+ bool mbNewIsLocked;
+ bool mbNewIsPrintable;
+};
+
+#endif // _SD_UNDOLAYER_HXX
+
diff --git a/sd/source/ui/inc/undopage.hxx b/sd/source/ui/inc/undopage.hxx
new file mode 100755
index 000000000000..4cb695cb98f8
--- /dev/null
+++ b/sd/source/ui/inc/undopage.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 _SD_UNDOPAGE_HXX
+#define _SD_UNDOPAGE_HXX
+
+#include <tools/gen.hxx>
+#include <vcl/prntypes.hxx>
+
+#include "sdundo.hxx"
+
+class SdDrawDocument;
+class SdPage;
+
+/************************************************************************/
+
+class SdPageFormatUndoAction : public SdUndoAction
+{
+ SdPage* mpPage;
+
+ Size maOldSize;
+ sal_Int32 mnOldLeft;
+ sal_Int32 mnOldRight;
+ sal_Int32 mnOldUpper;
+ sal_Int32 mnOldLower;
+ sal_Bool mbOldScale;
+ Orientation meOldOrientation;
+ sal_uInt16 mnOldPaperBin;
+ sal_Bool mbOldFullSize;
+
+ Size maNewSize;
+ sal_Int32 mnNewLeft;
+ sal_Int32 mnNewRight;
+ sal_Int32 mnNewUpper;
+ sal_Int32 mnNewLower;
+ sal_Bool mbNewScale;
+ Orientation meNewOrientation;
+ sal_uInt16 mnNewPaperBin;
+ sal_Bool mbNewFullSize;
+
+public:
+ TYPEINFO();
+ SdPageFormatUndoAction( SdDrawDocument* pDoc,
+ SdPage* pThePage,
+ const Size& rOldSz,
+ sal_Int32 nOldLft,
+ sal_Int32 nOldRgt,
+ sal_Int32 nOldUpr,
+ sal_Int32 nOldLwr,
+ sal_Bool bOldScl,
+ Orientation eOldOrient,
+ sal_uInt16 nOPaperBin,
+ sal_Bool bOFullSize,
+
+ const Size& rNewSz,
+ sal_Int32 nNewLft,
+ sal_Int32 nNewRgt,
+ sal_Int32 nNewUpr,
+ sal_Int32 nNewLwr,
+ sal_Bool bNewScl,
+ Orientation eNewOrient,
+ sal_uInt16 nNPaperBin,
+ sal_Bool bNFullSize
+ ) :
+ SdUndoAction(pDoc),
+ mpPage (pThePage),
+ maOldSize (rOldSz),
+ mnOldLeft (nOldLft),
+ mnOldRight (nOldRgt),
+ mnOldUpper (nOldUpr),
+ mnOldLower (nOldLwr),
+ mbOldScale (bOldScl),
+ meOldOrientation(eOldOrient),
+ mnOldPaperBin (nOPaperBin),
+ mbOldFullSize (bOFullSize),
+
+
+ maNewSize (rNewSz),
+ mnNewLeft (nNewLft),
+ mnNewRight (nNewRgt),
+ mnNewUpper (nNewUpr),
+ mnNewLower (nNewLwr),
+ mbNewScale (bNewScl),
+ meNewOrientation(eNewOrient),
+ mnNewPaperBin (nNPaperBin),
+ mbNewFullSize (bNFullSize)
+
+ {}
+ virtual ~SdPageFormatUndoAction();
+
+ virtual void Undo();
+ virtual void Redo();
+};
+
+/************************************************************************/
+
+class SdPageLRUndoAction : public SdUndoAction
+{
+ SdPage* mpPage;
+
+ sal_Int32 mnOldLeft;
+ sal_Int32 mnOldRight;
+ sal_Int32 mnNewLeft;
+ sal_Int32 mnNewRight;
+
+public:
+ TYPEINFO();
+ SdPageLRUndoAction( SdDrawDocument* pDoc, SdPage* pThePage,
+ sal_Int32 nOldLft, sal_Int32 nOldRgt,
+ sal_Int32 nNewLft, sal_Int32 nNewRgt ) :
+ SdUndoAction(pDoc),
+ mpPage (pThePage),
+ mnOldLeft (nOldLft),
+ mnOldRight (nOldRgt),
+ mnNewLeft (nNewLft),
+ mnNewRight (nNewRgt)
+ {}
+ virtual ~SdPageLRUndoAction();
+
+ virtual void Undo();
+ virtual void Redo();
+};
+
+/************************************************************************/
+
+class SdPageULUndoAction : public SdUndoAction
+{
+ SdPage* mpPage;
+
+ sal_Int32 mnOldUpper;
+ sal_Int32 mnOldLower;
+ sal_Int32 mnNewUpper;
+ sal_Int32 mnNewLower;
+
+public:
+ TYPEINFO();
+ SdPageULUndoAction( SdDrawDocument* pDoc, SdPage* pThePage,
+ sal_Int32 nOldUpr, sal_Int32 nOldLwr,
+ sal_Int32 nNewUpr, sal_Int32 nNewLwr ) :
+ SdUndoAction(pDoc),
+ mpPage (pThePage),
+ mnOldUpper (nOldUpr),
+ mnOldLower (nOldLwr),
+ mnNewUpper (nNewUpr),
+ mnNewLower (nNewLwr)
+ {}
+ virtual ~SdPageULUndoAction();
+
+ virtual void Undo();
+ virtual void Redo();
+};
+
+
+
+#endif // _SD_UNDOPAGE_HXX
+
diff --git a/sd/source/ui/inc/unmodpg.hxx b/sd/source/ui/inc/unmodpg.hxx
new file mode 100755
index 000000000000..ceafa4cd8992
--- /dev/null
+++ b/sd/source/ui/inc/unmodpg.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 _SD_UNMODPG_HXX
+#define _SD_UNMODPG_HXX
+
+#include "sdundo.hxx"
+#include "pres.hxx"
+
+class SdDrawDocument;
+class SdPage;
+
+class ModifyPageUndoAction : public SdUndoAction
+{
+ SdPage* mpPage;
+ String maOldName;
+ String maNewName;
+ AutoLayout meOldAutoLayout;
+ AutoLayout meNewAutoLayout;
+ sal_Bool mbOldBckgrndVisible;
+ sal_Bool mbNewBckgrndVisible;
+ sal_Bool mbOldBckgrndObjsVisible;
+ sal_Bool mbNewBckgrndObjsVisible;
+
+ String maComment;
+
+public:
+ TYPEINFO();
+ ModifyPageUndoAction(
+ SdDrawDocument* pTheDoc,
+ SdPage* pThePage,
+ String aTheNewName,
+ AutoLayout eTheNewAutoLayout,
+ sal_Bool bTheNewBckgrndVisible,
+ sal_Bool bTheNewBckgrndObjsVisible);
+
+ virtual ~ModifyPageUndoAction();
+ virtual void Undo();
+ virtual void Redo();
+
+ virtual String GetComment() const;
+};
+
+// --------------------------------------------------------------------
+
+class RenameLayoutTemplateUndoAction : public SdUndoAction
+{
+public:
+ RenameLayoutTemplateUndoAction( SdDrawDocument* pDocument, const String& rOldLayoutName, const String& rNewLayoutName );
+
+ virtual void Undo();
+ virtual void Redo();
+
+ virtual String GetComment() const;
+
+private:
+ String maOldName;
+ String maNewName;
+ const String maComment;
+};
+
+#endif // _SD_UNMODPG_HXX
+
diff --git a/sd/source/ui/inc/unmovss.hxx b/sd/source/ui/inc/unmovss.hxx
new file mode 100644
index 000000000000..dc1d47099a53
--- /dev/null
+++ b/sd/source/ui/inc/unmovss.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 _SD_UNMOVSS_HXX
+#define _SD_UNMOVSS_HXX
+
+#include "sdundo.hxx"
+#include <stlsheet.hxx>
+#include <vector>
+
+class SdDrawDocument;
+
+class SdMoveStyleSheetsUndoAction : public SdUndoAction
+{
+ SdStyleSheetVector maStyles;
+ std::vector< SdStyleSheetVector > maListOfChildLists;
+ bool mbMySheets;
+
+public:
+ SdMoveStyleSheetsUndoAction(SdDrawDocument* pTheDoc, SdStyleSheetVector& rTheStyles, bool bInserted);
+
+ virtual ~SdMoveStyleSheetsUndoAction();
+ virtual void Undo();
+ virtual void Redo();
+
+ virtual String GetComment() const;
+};
+
+#endif // _SD_UNMOVSS_HXX
+
diff --git a/sd/source/ui/inc/unoaprms.hxx b/sd/source/ui/inc/unoaprms.hxx
new file mode 100755
index 000000000000..7ad39a7d37b1
--- /dev/null
+++ b/sd/source/ui/inc/unoaprms.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 _SD_UNOAPRMS_HXX
+#define _SD_UNOAPRMS_HXX
+
+#include <com/sun/star/presentation/AnimationEffect.hpp>
+#include <com/sun/star/presentation/AnimationSpeed.hpp>
+#include <com/sun/star/presentation/ClickAction.hpp>
+#include "sdundo.hxx"
+#include "anmdef.hxx"
+#include <svx/svdopath.hxx>
+#include <tools/color.hxx>
+
+
+class SdDrawDocument;
+class SdrObject;
+
+class SdAnimationPrmsUndoAction : public SdUndoAction
+{
+ SdrObject* pObject;
+ sal_Bool bOldActive;
+ sal_Bool bNewActive;
+ sal_Bool bOldDimPrevious;
+ sal_Bool bNewDimPrevious;
+ sal_Bool bOldDimHide;
+ sal_Bool bNewDimHide;
+ sal_Bool bOldSoundOn;
+ sal_Bool bNewSoundOn;
+ sal_Bool bOldSecondSoundOn;
+ sal_Bool bNewSecondSoundOn;
+ sal_Bool bOldPlayFull;
+ sal_Bool bNewPlayFull;
+ sal_Bool bOldSecondPlayFull;
+ sal_Bool bNewSecondPlayFull;
+ ::com::sun::star::presentation::AnimationEffect eOldEffect;
+ ::com::sun::star::presentation::AnimationEffect eNewEffect;
+ ::com::sun::star::presentation::AnimationEffect eOldTextEffect;
+ ::com::sun::star::presentation::AnimationEffect eNewTextEffect;
+ ::com::sun::star::presentation::AnimationSpeed eOldSpeed;
+ ::com::sun::star::presentation::AnimationSpeed eNewSpeed;
+ ::com::sun::star::presentation::AnimationEffect eOldSecondEffect;
+ ::com::sun::star::presentation::AnimationEffect eNewSecondEffect;
+ ::com::sun::star::presentation::AnimationSpeed eOldSecondSpeed;
+ ::com::sun::star::presentation::AnimationSpeed eNewSecondSpeed;
+ Color aOldDimColor;
+ Color aNewDimColor;
+ Color aOldBlueScreen;
+ Color aNewBlueScreen;
+ String aOldSoundFile;
+ String aNewSoundFile;
+ SdrPathObj* pOldPathObj;
+ SdrPathObj* pNewPathObj;
+ ::com::sun::star::presentation::ClickAction eOldClickAction;
+ ::com::sun::star::presentation::ClickAction eNewClickAction;
+ String aOldBookmark;
+ String aNewBookmark;
+ sal_Bool bOldInvisibleInPres;
+ sal_Bool bNewInvisibleInPres;
+ sal_uInt16 nOldVerb;
+ sal_uInt16 nNewVerb;
+ sal_uLong nOldPresOrder;
+ sal_uLong nNewPresOrder;
+
+ sal_Bool bInfoCreated;
+
+public:
+ TYPEINFO();
+ SdAnimationPrmsUndoAction(SdDrawDocument* pTheDoc, SdrObject* pObj,
+ sal_Bool bCreated):
+ SdUndoAction (pTheDoc),
+ pObject (pObj),
+ bInfoCreated (bCreated)
+ {}
+
+ void SetActive(sal_Bool bTheOldActive, sal_Bool bTheNewActive)
+ { bOldActive = bTheOldActive; bNewActive = bTheNewActive; }
+ void SetEffect(::com::sun::star::presentation::AnimationEffect eTheOldEffect, ::com::sun::star::presentation::AnimationEffect eTheNewEffect)
+ { eOldEffect = eTheOldEffect; eNewEffect = eTheNewEffect; }
+ void SetTextEffect(::com::sun::star::presentation::AnimationEffect eTheOldEffect, ::com::sun::star::presentation::AnimationEffect eTheNewEffect)
+ { eOldTextEffect = eTheOldEffect; eNewTextEffect = eTheNewEffect; }
+ void SetSpeed(::com::sun::star::presentation::AnimationSpeed eTheOldSpeed, ::com::sun::star::presentation::AnimationSpeed eTheNewSpeed)
+ { eOldSpeed = eTheOldSpeed; eNewSpeed = eTheNewSpeed; }
+ void SetDim(sal_Bool bTheOldDim, sal_Bool bTheNewDim)
+ { bOldDimPrevious = bTheOldDim; bNewDimPrevious = bTheNewDim; }
+ void SetDimColor(Color aTheOldDimColor, Color aTheNewDimColor)
+ { aOldDimColor = aTheOldDimColor; aNewDimColor = aTheNewDimColor; }
+ void SetDimHide(sal_Bool bTheOldDimHide, sal_Bool bTheNewDimHide)
+ { bOldDimHide = bTheOldDimHide; bNewDimHide = bTheNewDimHide; }
+ void SetSoundOn(sal_Bool bTheOldSoundOn, sal_Bool bTheNewSoundOn)
+ { bOldSoundOn = bTheOldSoundOn; bNewSoundOn = bTheNewSoundOn; }
+ void SetSound(String aTheOldSound, String aTheNewSound)
+ { aOldSoundFile = aTheOldSound; aNewSoundFile = aTheNewSound; }
+ void SetBlueScreen(Color aTheOldBlueScreen, Color aTheNewBlueScreen)
+ { aOldBlueScreen = aTheOldBlueScreen; aNewBlueScreen = aTheNewBlueScreen; }
+ void SetPlayFull(sal_Bool bTheOldPlayFull, sal_Bool bTheNewPlayFull)
+ { bOldPlayFull = bTheOldPlayFull; bNewPlayFull = bTheNewPlayFull; }
+ void SetPathObj(SdrPathObj* pTheOldPath, SdrPathObj* pTheNewPath)
+ { pOldPathObj = pTheOldPath; pNewPathObj = pTheNewPath; }
+ void SetClickAction(::com::sun::star::presentation::ClickAction eTheOldAction, ::com::sun::star::presentation::ClickAction eTheNewAction)
+ { eOldClickAction = eTheOldAction; eNewClickAction = eTheNewAction; }
+ void SetBookmark(String aTheOldBookmark, String aTheNewBookmark)
+ { aOldBookmark = aTheOldBookmark; aNewBookmark = aTheNewBookmark; }
+ void SetInvisibleInPres(sal_Bool bTheOldInvisibleInPres, sal_Bool bTheNewInvisibleInPres)
+ { bOldInvisibleInPres = bTheOldInvisibleInPres; bNewInvisibleInPres = bTheNewInvisibleInPres; }
+ void SetVerb(sal_uInt16 nTheOldVerb, sal_uInt16 nTheNewVerb)
+ { nOldVerb = nTheOldVerb; nNewVerb = nTheNewVerb; }
+ void SetSecondEffect(::com::sun::star::presentation::AnimationEffect eTheOldEffect, ::com::sun::star::presentation::AnimationEffect eTheNewEffect)
+ { eOldSecondEffect = eTheOldEffect; eNewSecondEffect = eTheNewEffect; }
+ void SetSecondSpeed(::com::sun::star::presentation::AnimationSpeed eTheOldSpeed, ::com::sun::star::presentation::AnimationSpeed eTheNewSpeed)
+ { eOldSecondSpeed = eTheOldSpeed; eNewSecondSpeed = eTheNewSpeed; }
+ void SetSecondSoundOn(sal_Bool bTheOldSoundOn, sal_Bool bTheNewSoundOn)
+ { bOldSecondSoundOn = bTheOldSoundOn; bNewSecondSoundOn = bTheNewSoundOn; }
+ void SetSecondPlayFull(sal_Bool bTheOldPlayFull, sal_Bool bTheNewPlayFull)
+ { bOldSecondPlayFull = bTheOldPlayFull; bNewSecondPlayFull = bTheNewPlayFull; }
+ void SetPresOrder(sal_uLong nTheOldPresOrder, sal_uLong nTheNewPresOrder)
+ { nOldPresOrder = nTheOldPresOrder; nNewPresOrder = nTheNewPresOrder; }
+
+ virtual ~SdAnimationPrmsUndoAction();
+ virtual void Undo();
+ virtual void Redo();
+};
+
+#endif // _SD_UNOAPRMS_HXX
+
diff --git a/sd/source/ui/inc/unokywds.hxx b/sd/source/ui/inc/unokywds.hxx
new file mode 100644
index 000000000000..161653616f60
--- /dev/null
+++ b/sd/source/ui/inc/unokywds.hxx
@@ -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.
+ *
+ ************************************************************************/
+
+#ifndef _SD_UNOKYWDS_HXX_
+#define _SD_UNOKYWDS_HXX_
+
+#include <tools/string.hxx>
+#include <tools/solar.h>
+
+#ifndef SD_DEFINE_KEYWORDS
+#define SD_CONSTASCII_ACTION( n, s ) extern sal_Char __FAR_DATA n[sizeof(s)]
+#else
+#define SD_CONSTASCII_ACTION( n, s ) sal_Char __FAR_DATA n[sizeof(s)] = s
+#endif
+
+#define UNO_PREFIX "com.sun.star."
+
+// SdXImpressDocument
+SD_CONSTASCII_ACTION( sUNO_Service_DrawingDocument, UNO_PREFIX "drawing.DrawingDocument" );
+SD_CONSTASCII_ACTION( sUNO_Service_PresentationDocument, UNO_PREFIX "drawing.PresentationDocument" );
+
+// SdUnoStyleFamilies
+SD_CONSTASCII_ACTION( sUNO_SdUnoStyleFamilies, "SdUnoStyleFamilies" );
+SD_CONSTASCII_ACTION( sUNO_Graphic_Style_Family_Name, "graphics" );
+
+// SdUnoPseudoStyleFamily
+SD_CONSTASCII_ACTION( sUNO_SdUnoPseudoStyleFamily, "SdUnoPseudoStyleFamily" );
+SD_CONSTASCII_ACTION( sUNO_PseudoSheet_Title, "title" );
+SD_CONSTASCII_ACTION( sUNO_PseudoSheet_SubTitle, "subtitle" );
+SD_CONSTASCII_ACTION( sUNO_PseudoSheet_Background, "background" );
+SD_CONSTASCII_ACTION( sUNO_PseudoSheet_Background_Objects, "backgroundobjects" );
+SD_CONSTASCII_ACTION( sUNO_PseudoSheet_Notes, "notes" );
+SD_CONSTASCII_ACTION( sUNO_PseudoSheet_Outline1, "outline1" );
+SD_CONSTASCII_ACTION( sUNO_PseudoSheet_Outline2, "outline2" );
+SD_CONSTASCII_ACTION( sUNO_PseudoSheet_Outline3, "outline3" );
+SD_CONSTASCII_ACTION( sUNO_PseudoSheet_Outline4, "outline4" );
+SD_CONSTASCII_ACTION( sUNO_PseudoSheet_Outline5, "outline5" );
+SD_CONSTASCII_ACTION( sUNO_PseudoSheet_Outline6, "outline6" );
+SD_CONSTASCII_ACTION( sUNO_PseudoSheet_Outline7, "outline7" );
+SD_CONSTASCII_ACTION( sUNO_PseudoSheet_Outline8, "outline8" );
+SD_CONSTASCII_ACTION( sUNO_PseudoSheet_Outline9, "outline9" );
+
+// SdUnoPseudoStyle
+SD_CONSTASCII_ACTION( sUNO_SdUnoPseudoStyle, "SdUnoPseudoStyle" );
+
+// SdUnoGraphicStyleFamily
+SD_CONSTASCII_ACTION( sUNO_SdUnoGraphicStyleFamily, "SdUnoGraphicStyleFamily" );
+SD_CONSTASCII_ACTION( sUNO_StyleName_standard, "standard" );
+SD_CONSTASCII_ACTION( sUNO_StyleName_objwitharrow, "objectwitharrow" );
+SD_CONSTASCII_ACTION( sUNO_StyleName_objwithshadow, "objectwithshadow" );
+SD_CONSTASCII_ACTION( sUNO_StyleName_objwithoutfill, "objectwithoutfill" );
+SD_CONSTASCII_ACTION( sUNO_StyleName_text, "text" );
+SD_CONSTASCII_ACTION( sUNO_StyleName_textbody, "textbody" );
+SD_CONSTASCII_ACTION( sUNO_StyleName_textbodyjust, "textbodyjustfied" );
+SD_CONSTASCII_ACTION( sUNO_StyleName_textbodyindent, "textbodyindent" );
+SD_CONSTASCII_ACTION( sUNO_StyleName_title, "title" );
+SD_CONSTASCII_ACTION( sUNO_StyleName_title1, "title1" );
+SD_CONSTASCII_ACTION( sUNO_StyleName_title2, "title2" );
+SD_CONSTASCII_ACTION( sUNO_StyleName_headline, "headline" );
+SD_CONSTASCII_ACTION( sUNO_StyleName_headline1, "headline1" );
+SD_CONSTASCII_ACTION( sUNO_StyleName_headline2, "headline2" );
+SD_CONSTASCII_ACTION( sUNO_StyleName_measure, "measure" );
+
+// SdUnoGraphicStyle
+SD_CONSTASCII_ACTION( sUNO_SdUnoGraphicStyle, "SdUnoGraphicStyle" );
+
+// SdUnoPageBackground
+SD_CONSTASCII_ACTION( sUNO_SdUnoPageBackground, "SdUnoPageBackground" );
+
+// SdLayerManager
+SD_CONSTASCII_ACTION( sUNO_SdLayerManager, "SdUnoLayerManager" );
+
+// SdLayer
+SD_CONSTASCII_ACTION( sUNO_SdLayer, "SdUnoLayer" );
+SD_CONSTASCII_ACTION( sUNO_LayerName_background, "background" );
+SD_CONSTASCII_ACTION( sUNO_LayerName_background_objects, "backgroundobjects" );
+SD_CONSTASCII_ACTION( sUNO_LayerName_layout, "layout" );
+SD_CONSTASCII_ACTION( sUNO_LayerName_controls, "controls" );
+SD_CONSTASCII_ACTION( sUNO_LayerName_measurelines, "measurelines" );
+
+// SdXShape
+SD_CONSTASCII_ACTION( sUNO_shape_style, "Style" );
+SD_CONSTASCII_ACTION( sUNO_shape_layername, "LayerName" );
+SD_CONSTASCII_ACTION( sUNO_shape_zorder, "ZOrder" );
+
+// services
+SD_CONSTASCII_ACTION( sUNO_Service_StyleFamily, UNO_PREFIX "style.StyleFamily" );
+SD_CONSTASCII_ACTION( sUNO_Service_StyleFamilies, UNO_PREFIX "style.StyleFamilies" );
+SD_CONSTASCII_ACTION( sUNO_Service_Style, UNO_PREFIX "style.Style" );
+SD_CONSTASCII_ACTION( sUNO_Service_FillProperties, UNO_PREFIX "drawing.FillProperties" );
+SD_CONSTASCII_ACTION( sUNO_Service_LineProperties, UNO_PREFIX "drawing.LineProperties" );
+SD_CONSTASCII_ACTION( sUNO_Service_ParagraphProperties, UNO_PREFIX "style.ParagraphProperties" );
+SD_CONSTASCII_ACTION( sUNO_Service_CharacterProperties, UNO_PREFIX "style.CharacterProperties" );
+SD_CONSTASCII_ACTION( sUNO_Service_Text, UNO_PREFIX "drawing.Text" );
+SD_CONSTASCII_ACTION( sUNO_Service_TextProperties, UNO_PREFIX "drawing.TextProperties" );
+SD_CONSTASCII_ACTION( sUNO_Service_ShadowProperties, UNO_PREFIX "drawing.ShadowProperties" );
+SD_CONSTASCII_ACTION( sUNO_Service_ConnectorProperties, UNO_PREFIX "drawing.ConnectorProperties" );
+SD_CONSTASCII_ACTION( sUNO_Service_MeasureProperties, UNO_PREFIX "drawing.MeasureProperties" );
+SD_CONSTASCII_ACTION( sUNO_Service_PageBackground, UNO_PREFIX "drawing.PageBackground" );
+SD_CONSTASCII_ACTION( sUNO_Service_DrawingLayer, UNO_PREFIX "drawing.Layer" );
+SD_CONSTASCII_ACTION( sUNO_Service_DrawingLayerManager, UNO_PREFIX "drawing.LayerManager" );
+SD_CONSTASCII_ACTION( sUNO_Service_GraphicObjectShape, UNO_PREFIX "drawing.GraphicObjectShape" );
+SD_CONSTASCII_ACTION( sUNO_Service_ImageMapRectangleObject, UNO_PREFIX "image.ImageMapRectangleObject" );
+SD_CONSTASCII_ACTION( sUNO_Service_ImageMapCircleObject, UNO_PREFIX "image.ImageMapCircleObject" );
+SD_CONSTASCII_ACTION( sUNO_Service_ImageMapPolygonObject, UNO_PREFIX "image.ImageMapPolygonObject" );
+
+// properties
+SD_CONSTASCII_ACTION( sUNO_Prop_Background, "Background" );
+SD_CONSTASCII_ACTION( sUNO_Prop_ForbiddenCharacters, "ForbiddenCharacters" );
+SD_CONSTASCII_ACTION( sUNO_Prop_MapUnit, "MapUnit" );
+SD_CONSTASCII_ACTION( sUNO_Prop_VisibleArea, "VisibleArea" );
+SD_CONSTASCII_ACTION( sUNO_Prop_Aspect, "Aspect" );
+SD_CONSTASCII_ACTION( sUNO_Prop_TabStop, "TabStop" );
+SD_CONSTASCII_ACTION( sUNO_Prop_CharLocale, "CharLocale" );
+SD_CONSTASCII_ACTION( sUNO_Prop_AutomContFocus, "AutomaticControlFocus" );
+SD_CONSTASCII_ACTION( sUNO_Prop_ApplyFrmDsgnMode, "ApplyFormDesignMode" );
+SD_CONSTASCII_ACTION( sUNO_Prop_IsBackgroundVisible, "IsBackgroundVisible" );
+SD_CONSTASCII_ACTION( sUNO_Prop_IsBackgroundObjectsVisible, "IsBackgroundObjectsVisible" );
+SD_CONSTASCII_ACTION( sUNO_Prop_UserDefinedAttributes, "UserDefinedAttributes" );
+SD_CONSTASCII_ACTION( sUNO_Prop_BookmarkURL, "BookmarkURL" );
+SD_CONSTASCII_ACTION( sUNO_Prop_RuntimeUID, "RuntimeUID" );
+SD_CONSTASCII_ACTION( sUNO_Prop_HasValidSignatures, "HasValidSignatures" );
+
+// view settings
+SD_CONSTASCII_ACTION( sUNO_View_ViewId, "ViewId" );
+SD_CONSTASCII_ACTION( sUNO_View_SnapLinesDrawing, "SnapLinesDrawing" );
+SD_CONSTASCII_ACTION( sUNO_View_SnapLinesNotes, "SnapLinesNotes" );
+SD_CONSTASCII_ACTION( sUNO_View_SnapLinesHandout, "SnapLinesHandout" );
+SD_CONSTASCII_ACTION( sUNO_View_RulerIsVisible, "RulerIsVisible" );
+SD_CONSTASCII_ACTION( sUNO_View_PageKind, "PageKind" );
+SD_CONSTASCII_ACTION( sUNO_View_SelectedPage, "SelectedPage" );
+SD_CONSTASCII_ACTION( sUNO_View_IsLayerMode, "IsLayerMode" );
+SD_CONSTASCII_ACTION( sUNO_View_IsQuickEdit, "IsQuickEdit" );
+SD_CONSTASCII_ACTION( sUNO_View_IsBigHandles, "IsBigHandles" );
+SD_CONSTASCII_ACTION( sUNO_View_IsDoubleClickTextEdit, "IsDoubleClickTextEdit" );
+SD_CONSTASCII_ACTION( sUNO_View_IsClickChangeRotation, "IsClickChangeRotation" );
+SD_CONSTASCII_ACTION( sUNO_View_IsDragWithCopy, "IsDragWithCopy" );
+SD_CONSTASCII_ACTION( sUNO_View_SlidesPerRow, "SlidesPerRow" );
+SD_CONSTASCII_ACTION( sUNO_View_DrawMode, "DrawMode" );
+SD_CONSTASCII_ACTION( sUNO_View_PreviewDrawMode, "PreviewDrawMode" );
+SD_CONSTASCII_ACTION( sUNO_View_IsShowPreviewInPageMode, "IsShowPreviewInPageMode" );
+SD_CONSTASCII_ACTION( sUNO_View_IsShowPreviewInMasterPageMode, "IsShowPreviewInMasterPageMode" );
+SD_CONSTASCII_ACTION( sUNO_View_SetShowPreviewInOutlineMode, "SetShowPreviewInOutlineMode" );
+SD_CONSTASCII_ACTION( sUNO_View_EditModeStandard, "EditModeStandard" );
+SD_CONSTASCII_ACTION( sUNO_View_EditModeNotes, "EditModeNotes" );
+SD_CONSTASCII_ACTION( sUNO_View_EditModeHandout, "EditModeHandout" );
+SD_CONSTASCII_ACTION( sUNO_View_VisArea, "VisArea" );
+
+SD_CONSTASCII_ACTION( sUNO_View_GridIsVisible, "GridIsVisible" );
+SD_CONSTASCII_ACTION( sUNO_View_GridIsFront, "GridIsFront" );
+SD_CONSTASCII_ACTION( sUNO_View_IsSnapToGrid, "IsSnapToGrid" );
+SD_CONSTASCII_ACTION( sUNO_View_IsSnapToPageMargins, "IsSnapToPageMargins" );
+SD_CONSTASCII_ACTION( sUNO_View_IsSnapToSnapLines, "IsSnapToSnapLines" );
+SD_CONSTASCII_ACTION( sUNO_View_IsSnapToObjectFrame, "IsSnapToObjectFrame" );
+SD_CONSTASCII_ACTION( sUNO_View_IsSnapToObjectPoints, "IsSnapToObjectPoints" );
+SD_CONSTASCII_ACTION( sUNO_View_IsSnapLinesVisible, "IsSnapLinesVisible" );
+SD_CONSTASCII_ACTION( sUNO_View_IsDragStripes, "IsDragStripes" );
+SD_CONSTASCII_ACTION( sUNO_View_IsPlusHandlesAlwaysVisible, "IsPlusHandlesAlwaysVisible" );
+SD_CONSTASCII_ACTION( sUNO_View_IsFrameDragSingles, "IsFrameDragSingles" );
+SD_CONSTASCII_ACTION( sUNO_View_IsMarkedHitMovesAlways, "IsMarkedHitMovesAlways" );
+SD_CONSTASCII_ACTION( sUNO_View_EliminatePolyPointLimitAngle, "EliminatePolyPointLimitAngle" );
+SD_CONSTASCII_ACTION( sUNO_View_IsEliminatePolyPoints, "IsEliminatePolyPoints" );
+SD_CONSTASCII_ACTION( sUNO_View_IsLineDraft, "IsLineDraft" );
+SD_CONSTASCII_ACTION( sUNO_View_IsFillDraft, "IsFillDraft" );
+SD_CONSTASCII_ACTION( sUNO_View_IsTextDraft, "IsTextDraft" );
+SD_CONSTASCII_ACTION( sUNO_View_IsGrafDraft, "IsGrafDraft" );
+SD_CONSTASCII_ACTION( sUNO_View_ActiveLayer, "ActiveLayer" );
+SD_CONSTASCII_ACTION( sUNO_View_NoAttribs, "NoAttribs" );
+SD_CONSTASCII_ACTION( sUNO_View_NoColors, "NoColors" );
+SD_CONSTASCII_ACTION( sUNO_View_GridCoarseWidth, "GridCoarseWidth" );
+SD_CONSTASCII_ACTION( sUNO_View_GridCoarseHeight, "GridCoarseHeight" );
+SD_CONSTASCII_ACTION( sUNO_View_GridFineWidth, "GridFineWidth" );
+SD_CONSTASCII_ACTION( sUNO_View_GridFineHeight, "GridFineHeight" );
+SD_CONSTASCII_ACTION( sUNO_View_IsAngleSnapEnabled, "IsAngleSnapEnabled" );
+SD_CONSTASCII_ACTION( sUNO_View_SnapAngle, "SnapAngle" );
+SD_CONSTASCII_ACTION( sUNO_View_GridSnapWidthXNumerator, "GridSnapWidthXNumerator" );
+SD_CONSTASCII_ACTION( sUNO_View_GridSnapWidthXDenominator, "GridSnapWidthXDenominator" );
+SD_CONSTASCII_ACTION( sUNO_View_GridSnapWidthYNumerator, "GridSnapWidthYNumerator" );
+SD_CONSTASCII_ACTION( sUNO_View_GridSnapWidthYDenominator, "GridSnapWidthYDenominator" );
+SD_CONSTASCII_ACTION( sUNO_View_VisibleLayers, "VisibleLayers" );
+SD_CONSTASCII_ACTION( sUNO_View_PrintableLayers, "PrintableLayers" );
+SD_CONSTASCII_ACTION( sUNO_View_LockedLayers, "LockedLayers" );
+
+SD_CONSTASCII_ACTION( sUNO_View_VisibleAreaTop, "VisibleAreaTop" );
+SD_CONSTASCII_ACTION( sUNO_View_VisibleAreaLeft, "VisibleAreaLeft" );
+SD_CONSTASCII_ACTION( sUNO_View_VisibleAreaWidth, "VisibleAreaWidth" );
+SD_CONSTASCII_ACTION( sUNO_View_VisibleAreaHeight, "VisibleAreaHeight" );
+
+SD_CONSTASCII_ACTION( sUNO_View_ZoomOnPage, "ZoomOnPage" );
+#endif
+
diff --git a/sd/source/ui/inc/unomodel.hxx b/sd/source/ui/inc/unomodel.hxx
new file mode 100644
index 000000000000..4881a053aaff
--- /dev/null
+++ b/sd/source/ui/inc/unomodel.hxx
@@ -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.
+ *
+ ************************************************************************/
+#ifndef SD_UNO_MODEL_HXX
+#define SD_UNO_MODEL_HXX
+
+#include <com/sun/star/style/XStyleFamiliesSupplier.hpp>
+#include <com/sun/star/document/XLinkTargetSupplier.hpp>
+#include <com/sun/star/drawing/XDrawPagesSupplier.hpp>
+#include <com/sun/star/drawing/XDrawPageSummarizer.hpp>
+#include <com/sun/star/drawing/XDrawPageDuplicator.hpp>
+#include <com/sun/star/drawing/XLayerSupplier.hpp>
+#include <com/sun/star/drawing/XMasterPagesSupplier.hpp>
+#include <com/sun/star/presentation/XPresentationSupplier.hpp>
+#include <com/sun/star/presentation/XCustomPresentationSupplier.hpp>
+#include <com/sun/star/drawing/XLayerManager.hpp>
+#include <com/sun/star/container/XNameContainer.hpp>
+#include <com/sun/star/presentation/XPresentation.hpp>
+#include <com/sun/star/lang/XServiceInfo.hpp>
+#include <com/sun/star/drawing/XDrawPages.hpp>
+#include <com/sun/star/ucb/XAnyCompareFactory.hpp>
+#include <com/sun/star/i18n/XForbiddenCharacters.hpp>
+#include <com/sun/star/presentation/XHandoutMasterSupplier.hpp>
+#include <com/sun/star/view/XRenderable.hpp>
+#include <com/sun/star/util/MeasureUnit.hpp>
+
+#include <rtl/ref.hxx>
+
+#include <svl/lstner.hxx>
+#include <sfx2/sfxbasemodel.hxx>
+#include <svx/fmdmod.hxx>
+
+#include <editeng/unoipset.hxx>
+
+#include <comphelper/servicehelper.hxx>
+
+class SdDrawDocument;
+class SdPage;
+class List;
+class SdXCustomPresentations;
+
+namespace sd {
+class DrawDocShell;
+}
+
+extern ::rtl::OUString getPageApiName( SdPage* pPage );
+extern ::rtl::OUString getPageApiNameFromUiName( const String& rUIName );
+
+/***********************************************************************
+* *
+***********************************************************************/
+class SdXImpressDocument : public SfxBaseModel, // implements SfxListener, OWEAKOBJECT & other
+ public SvxFmMSFactory,
+ public ::com::sun::star::drawing::XDrawPageDuplicator,
+ public ::com::sun::star::drawing::XLayerSupplier,
+ public ::com::sun::star::drawing::XMasterPagesSupplier,
+ public ::com::sun::star::drawing::XDrawPagesSupplier,
+ public ::com::sun::star::presentation::XPresentationSupplier,
+ public ::com::sun::star::presentation::XCustomPresentationSupplier,
+ public ::com::sun::star::document::XLinkTargetSupplier,
+ public ::com::sun::star::beans::XPropertySet,
+ public ::com::sun::star::style::XStyleFamiliesSupplier,
+ public ::com::sun::star::lang::XServiceInfo,
+ public ::com::sun::star::ucb::XAnyCompareFactory,
+ public ::com::sun::star::presentation::XHandoutMasterSupplier,
+ public ::com::sun::star::view::XRenderable
+{
+ friend class SdDrawPagesAccess;
+ friend class SdMasterPagesAccess;
+ friend class SdLayerManager;
+
+private:
+ ::sd::DrawDocShell* mpDocShell;
+ SdDrawDocument* mpDoc;
+ bool mbDisposed;
+
+ SdPage* InsertSdPage( sal_uInt16 nPage, sal_Bool bDuplicate = sal_False ) throw();
+
+ const sal_Bool mbImpressDoc;
+ bool mbClipBoard;
+
+ ::com::sun::star::uno::WeakReference< ::com::sun::star::drawing::XDrawPages > mxDrawPagesAccess;
+ ::com::sun::star::uno::WeakReference< ::com::sun::star::drawing::XDrawPages > mxMasterPagesAccess;
+ ::com::sun::star::uno::WeakReference< ::com::sun::star::container::XNameAccess > mxLayerManager;
+ ::com::sun::star::uno::WeakReference< ::com::sun::star::container::XNameContainer > mxCustomPresentationAccess;
+ ::com::sun::star::uno::WeakReference< ::com::sun::star::container::XNameAccess > mxStyleFamilies;
+ ::com::sun::star::uno::WeakReference< ::com::sun::star::presentation::XPresentation > mxPresentation;
+ ::com::sun::star::uno::WeakReference< ::com::sun::star::i18n::XForbiddenCharacters > mxForbidenCharacters;
+ ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > mxLinks;
+
+ ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > mxDashTable;
+ ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > mxGradientTable;
+ ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > mxHatchTable;
+ ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > mxBitmapTable;
+ ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > mxTransGradientTable;
+ ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > mxMarkerTable;
+ ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > mxDrawingPool;
+
+ const SvxItemPropertySet* mpPropSet;
+
+ ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > maTypeSequence;
+
+ rtl::OUString maBuildId;
+
+ void initializeDocument();
+public:
+ SdXImpressDocument( ::sd::DrawDocShell* pShell, bool bClipBoard = false ) throw();
+ SdXImpressDocument( SdDrawDocument* pDoc, bool bClipBoard = false ) throw();
+ virtual ~SdXImpressDocument() throw();
+
+ static rtl::Reference< SdXImpressDocument > GetModel( SdDrawDocument* pDoc );
+
+ // intern
+ virtual int operator==( const SdXImpressDocument& rModel ) const { return mpDoc == rModel.mpDoc; }
+ virtual int operator!=( const SdXImpressDocument& rModel ) const { return mpDoc != rModel.mpDoc; }
+
+ ::sd::DrawDocShell* GetDocShell() const { return mpDocShell; }
+ SdDrawDocument* GetDoc() const { return mpDoc; }
+ sal_Bool IsImpressDocument() const { return mbImpressDoc; }
+
+ void SetModified( sal_Bool bModified = sal_True ) throw();
+
+ ::com::sun::star::uno::Reference< ::com::sun::star::i18n::XForbiddenCharacters > getForbiddenCharsTable();
+
+ // SfxListener
+ virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
+
+ UNO3_GETIMPLEMENTATION_DECL(SdXImpressDocument)
+
+ // XInterface
+ virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type & rType ) throw(::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL acquire() throw();
+ virtual void SAL_CALL release() throw();
+
+ // XModel
+ virtual void SAL_CALL lockControllers( ) throw(::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL unlockControllers( ) throw(::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL hasControllersLocked( ) throw(::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference < ::com::sun::star::container::XIndexAccess > SAL_CALL getViewData() throw(::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL setViewData( const ::com::sun::star::uno::Reference < ::com::sun::star::container::XIndexAccess >& aData ) throw(::com::sun::star::uno::RuntimeException);
+
+ // 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);
+
+ // XDrawPageDuplicator
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XDrawPage > SAL_CALL duplicate( const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XDrawPage >& xPage ) throw(::com::sun::star::uno::RuntimeException);
+
+ // XDrawPagesSupplier
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XDrawPages > SAL_CALL getDrawPages( ) throw(::com::sun::star::uno::RuntimeException);
+
+ // XMasterPagesSupplier
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XDrawPages > SAL_CALL getMasterPages( ) throw(::com::sun::star::uno::RuntimeException);
+
+ // XLayerManagerSupplier
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > SAL_CALL getLayerManager( ) throw(::com::sun::star::uno::RuntimeException);
+
+ // XCustomPresentationSupplier
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer > SAL_CALL getCustomPresentations( ) throw(::com::sun::star::uno::RuntimeException);
+
+ // XHandoutMasterSupplier
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XDrawPage > SAL_CALL getHandoutMasterPage( ) throw (::com::sun::star::uno::RuntimeException);
+
+ // XPresentationSupplier
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::presentation::XPresentation > SAL_CALL getPresentation( ) throw(::com::sun::star::uno::RuntimeException);
+
+ // XMultiServiceFactory ( SvxFmMSFactory )
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL createInstance( const ::rtl::OUString& aServiceSpecifier ) throw(::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getAvailableServiceNames( ) 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);
+
+ // XPropertySet
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo( ) throw(::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Any& aValue ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& xListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& aListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+
+ // XLinkTargetSupplier
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > SAL_CALL getLinks( ) throw(::com::sun::star::uno::RuntimeException);
+
+ // XStyleFamiliesSupplier
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > SAL_CALL getStyleFamilies( ) throw(::com::sun::star::uno::RuntimeException);
+
+ // XAnyCompareFactory
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::ucb::XAnyCompare > SAL_CALL createAnyCompareByName( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::uno::RuntimeException);
+
+ // XRenderable
+ virtual sal_Int32 SAL_CALL getRendererCount( const ::com::sun::star::uno::Any& aSelection, const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& xOptions ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > SAL_CALL getRenderer( sal_Int32 nRenderer, const ::com::sun::star::uno::Any& aSelection, const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& xOptions ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL render( sal_Int32 nRenderer, const ::com::sun::star::uno::Any& aSelection, const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& xOptions ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
+
+ // XComponent
+
+ /** This dispose implementation releases the resources held by the
+ called object and forwards the call to its base class.
+ When close() has not yet been called then this is done first. As a
+ consequence the implementation has to cope with being called twice
+ and still has to forward the second call to the base class.
+ See also comments of issue 27847.
+ */
+ virtual void SAL_CALL dispose() throw (::com::sun::star::uno::RuntimeException);
+};
+
+/***********************************************************************
+* *
+***********************************************************************/
+
+#include <cppuhelper/implbase4.hxx>
+
+class SdDrawPagesAccess : public ::cppu::WeakImplHelper4< ::com::sun::star::drawing::XDrawPages, ::com::sun::star::container::XNameAccess, ::com::sun::star::lang::XServiceInfo, ::com::sun::star::lang::XComponent >
+{
+private:
+ SdXImpressDocument* mpModel;
+
+public:
+ SdDrawPagesAccess( SdXImpressDocument& rMyModel ) throw();
+ virtual ~SdDrawPagesAccess() throw();
+
+ // XDrawPages
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XDrawPage > SAL_CALL insertNewByIndex( sal_Int32 nIndex ) throw(::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL remove( const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XDrawPage >& xPage ) throw(::com::sun::star::uno::RuntimeException);
+
+ // XNameAccess
+ virtual ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName ) throw(::com::sun::star::container::NoSuchElementException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames() throw(::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName ) throw(::com::sun::star::uno::RuntimeException);
+
+ // XIndexAccess
+ virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException) ;
+ virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index ) throw(::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+
+ // XElementAccess
+ virtual ::com::sun::star::uno::Type SAL_CALL getElementType() throw(::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL hasElements() 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);
+
+ // XComponent
+ virtual void SAL_CALL dispose( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL addEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL removeEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& aListener ) throw (::com::sun::star::uno::RuntimeException);
+};
+
+/***********************************************************************
+* *
+***********************************************************************/
+
+#include <cppuhelper/implbase3.hxx>
+
+class SdMasterPagesAccess : public ::cppu::WeakImplHelper3< ::com::sun::star::drawing::XDrawPages, ::com::sun::star::lang::XServiceInfo, ::com::sun::star::lang::XComponent >
+{
+private:
+ SdXImpressDocument* mpModel;
+
+public:
+ SdMasterPagesAccess( SdXImpressDocument& rMyModel ) throw();
+ virtual ~SdMasterPagesAccess() throw();
+
+ // XDrawPages
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XDrawPage > SAL_CALL insertNewByIndex( sal_Int32 nIndex ) throw(::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL remove( const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XDrawPage >& xPage ) throw(::com::sun::star::uno::RuntimeException);
+
+ // XIndexAccess
+ virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException) ;
+ virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index ) throw(::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+
+ // XElementAccess
+ virtual ::com::sun::star::uno::Type SAL_CALL getElementType() throw(::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL hasElements() 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);
+
+ // XComponent
+ virtual void SAL_CALL dispose( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL addEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL removeEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& aListener ) throw (::com::sun::star::uno::RuntimeException);
+};
+
+/***********************************************************************
+* *
+***********************************************************************/
+
+class SdDocLinkTargets : public ::cppu::WeakImplHelper3< ::com::sun::star::container::XNameAccess,
+ ::com::sun::star::lang::XServiceInfo , ::com::sun::star::lang::XComponent >
+{
+private:
+ SdXImpressDocument* mpModel;
+
+public:
+ SdDocLinkTargets( SdXImpressDocument& rMyModel ) throw();
+ virtual ~SdDocLinkTargets() throw();
+
+ // XNameAccess
+ virtual ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName ) throw(::com::sun::star::container::NoSuchElementException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames() throw(::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName ) throw(::com::sun::star::uno::RuntimeException);
+
+ // XElementAccess
+ virtual ::com::sun::star::uno::Type SAL_CALL getElementType() throw(::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL hasElements() 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);
+
+ // XComponent
+ virtual void SAL_CALL dispose( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL addEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL removeEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& aListener ) throw (::com::sun::star::uno::RuntimeException);
+
+ // intern
+ SdPage* FindPage( const ::rtl::OUString& rName ) const throw();
+};
+
+#endif
+
+
diff --git a/sd/source/ui/inc/unoprnms.hxx b/sd/source/ui/inc/unoprnms.hxx
new file mode 100644
index 000000000000..4bf30c307ded
--- /dev/null
+++ b/sd/source/ui/inc/unoprnms.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 _SD_UNOPRNMS_HXX
+#define _SD_UNOPRNMS_HXX
+
+#define UNO_NAME_MODEL_LANGUAGE "CharLocale"
+#define UNO_NAME_MODEL_TABSTOP "TabStop"
+
+#define UNO_NAME_PAGE_BACKGROUND "Background"
+#define UNO_NAME_PAGE_LEFT "BorderLeft"
+#define UNO_NAME_PAGE_RIGHT "BorderRight"
+#define UNO_NAME_PAGE_TOP "BorderTop"
+#define UNO_NAME_PAGE_BOTTOM "BorderBottom"
+#define UNO_NAME_PAGE_CHANGE "Change"
+#define UNO_NAME_PAGE_DURATION "Duration"
+#define UNO_NAME_PAGE_EFFECT "Effect"
+#define UNO_NAME_PAGE_HEIGHT "Height"
+#define UNO_NAME_PAGE_LAYOUT "Layout"
+#define UNO_NAME_PAGE_NUMBER "Number"
+#define UNO_NAME_PAGE_OBJECTS "Objects"
+#define UNO_NAME_PAGE_ORIENTATION "Orientation"
+#define UNO_NAME_PAGE_SPEED "Speed"
+#define UNO_NAME_PAGE_WIDTH "Width"
+#define UNO_NAME_PAGE_PREVIEW "Preview"
+#define UNO_NAME_PAGE_PREVIEWBITMAP "PreviewBitmap"
+#define UNO_NAME_PAGE_VISIBLE "Visible"
+
+#define UNO_NAME_OBJ_BOOKMARK "Bookmark"
+#define UNO_NAME_OBJ_DIMCOLOR "DimColor"
+#define UNO_NAME_OBJ_DIMHIDE "DimHide"
+#define UNO_NAME_OBJ_DIMPREV "DimPrevious"
+#define UNO_NAME_OBJ_EFFECT "Effect"
+#define UNO_NAME_OBJ_ISEMPTYPRESOBJ "IsEmptyPresentationObject"
+#define UNO_NAME_OBJ_ISPRESOBJ "IsPresentationObject"
+#define UNO_NAME_OBJ_CLICKACTION "OnClick"
+#define UNO_NAME_OBJ_PLAYFULL "PlayFull"
+#define UNO_NAME_OBJ_PRESORDER "PresentationOrder"
+#define UNO_NAME_OBJ_SOUNDFILE "Sound"
+#define UNO_NAME_OBJ_SOUNDON "SoundOn"
+#define UNO_NAME_OBJ_SPEED "Speed"
+#define UNO_NAME_OBJ_TEXTEFFECT "TextEffect"
+#define UNO_NAME_OBJ_BLUESCREEN "TransparentColor"
+#define UNO_NAME_OBJ_VERB "Verb"
+#define UNO_NAME_OBJ_STYLE "Style"
+#define UNO_NAME_OBJ_MASTERDEPENDENT "IsPlaceholderDependent"
+#define UNO_NAME_OBJ_ANIMATIONPATH "AnimationPath"
+
+#define UNO_NAME_LAYER_LOCKED "IsLocked"
+#define UNO_NAME_LAYER_PRINTABLE "IsPrintable"
+#define UNO_NAME_LAYER_VISIBLE "IsVisible"
+#define UNO_NAME_LAYER_NAME "Name"
+
+#define UNO_NAME_SHOW_ALLOWANIM "AllowAnimations"
+#define UNO_NAME_SHOW_CUSTOMSHOW "CustomShow"
+#define UNO_NAME_SHOW_FIRSTPAGE "FirstPage"
+#define UNO_NAME_SHOW_ONTOP "IsAlwaysOnTop"
+#define UNO_NAME_SHOW_AUTOMATIC "IsAutomatic"
+#define UNO_NAME_SHOW_ENDLESS "IsEndless"
+#define UNO_NAME_SHOW_FULLSCREEN "IsFullScreen"
+#define UNO_NAME_SHOW_MOUSEVISIBLE "IsMouseVisible"
+#define UNO_NAME_SHOW_PAGERANGE "PageRange"
+#define UNO_NAME_SHOW_PAUSE "Pause"
+#define UNO_NAME_SHOW_STARTWITHNAV "StartWithNavigator"
+#define UNO_NAME_SHOW_USEPEN "UsePen"
+
+#define UNO_NAME_SEARCH_BACKWARDS "SearchBackwards"
+#define UNO_NAME_SEARCH_CASE "SearchCaseSensitive"
+#define UNO_NAME_SEARCH_WORDS "SearchWords"
+
+#define UNO_NAME_LINKDISPLAYNAME "LinkDisplayName"
+#define UNO_NAME_LINKDISPLAYBITMAP "LinkDisplayBitmap"
+
+#define UNO_NAME_STYLE_FAMILY "Family"
+#endif
+
+
diff --git a/sd/source/ui/inc/unosrch.hxx b/sd/source/ui/inc/unosrch.hxx
new file mode 100755
index 000000000000..b19f3751e836
--- /dev/null
+++ b/sd/source/ui/inc/unosrch.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.
+ *
+ ************************************************************************/
+
+#include <com/sun/star/drawing/XShape.hpp>
+#include <com/sun/star/drawing/XDrawPage.hpp>
+#include <com/sun/star/text/XTextRange.hpp>
+#include <com/sun/star/drawing/XShapes.hpp>
+#include <com/sun/star/util/XReplaceable.hpp>
+#include <com/sun/star/util/XSearchable.hpp>
+#include <com/sun/star/util/XSearchDescriptor.hpp>
+#include <com/sun/star/util/XReplaceDescriptor.hpp>
+#include <com/sun/star/lang/XUnoTunnel.hpp>
+
+#include <comphelper/servicehelper.hxx>
+#include <editeng/editdata.hxx>
+#include <editeng/unoipset.hxx>
+
+class SdrObject;
+class SvxItemPropertySet;
+class SdUnoSearchReplaceDescriptor;
+
+/** this class implements a search or replace operation on a given page or a given sdrobj */
+class SdUnoSearchReplaceShape : public ::com::sun::star::util::XReplaceable
+{
+protected:
+ ::com::sun::star::drawing::XShape* mpShape;
+ ::com::sun::star::drawing::XDrawPage* mpPage;
+
+ ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange > Search( ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange > xText, SdUnoSearchReplaceDescriptor* pDescr ) throw();
+ sal_Bool Search( const ::rtl::OUString& rText, sal_Int32& nStartPos, sal_Int32& nEndPos, SdUnoSearchReplaceDescriptor* pDescr ) throw();
+ ESelection GetSelection( ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange > xTextRange ) throw();
+ ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > GetShape( ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange > xTextRange ) throw();
+ ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > GetNextShape( ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess > xShapes, ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > xCurrentShape ) throw();
+ ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > GetCurrentShape() const throw();
+
+public:
+ // danger, this c'tor is only usable if the given shape or page is derived
+ // from this class!!!
+ SdUnoSearchReplaceShape( ::com::sun::star::drawing::XDrawPage* xPage ) throw();
+ virtual ~SdUnoSearchReplaceShape() throw();
+
+ // XReplaceable
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::util::XReplaceDescriptor > SAL_CALL createReplaceDescriptor( ) throw(::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL replaceAll( const ::com::sun::star::uno::Reference< ::com::sun::star::util::XSearchDescriptor >& xDesc ) throw(::com::sun::star::uno::RuntimeException);
+
+ // XSearchable
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::util::XSearchDescriptor > SAL_CALL createSearchDescriptor( ) throw(::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess > SAL_CALL findAll( const ::com::sun::star::uno::Reference< ::com::sun::star::util::XSearchDescriptor >& xDesc ) throw(::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL findFirst( const ::com::sun::star::uno::Reference< ::com::sun::star::util::XSearchDescriptor >& xDesc ) throw(::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL findNext( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& xStartAt, const ::com::sun::star::uno::Reference< ::com::sun::star::util::XSearchDescriptor >& xDesc ) throw(::com::sun::star::uno::RuntimeException);
+};
+
+/* ================================================================= */
+
+/** this class holds the parameters and status of a search or replace operation performed
+ by class SdUnoSearchReplaceShape */
+
+#include <cppuhelper/implbase2.hxx>
+
+class SdUnoSearchReplaceDescriptor : public ::cppu::WeakImplHelper2< ::com::sun::star::lang::XUnoTunnel, ::com::sun::star::util::XReplaceDescriptor > // public ::com::sun::star::util::XSearchDescriptor, ::com::sun::star::beans::XPropertySet
+{
+protected:
+ SvxItemPropertySet* mpPropSet;
+
+ sal_Bool mbBackwards;
+ sal_Bool mbCaseSensitive;
+ sal_Bool mbWords;
+
+ sal_Bool mbReplace;
+
+ ::rtl::OUString maSearchStr;
+ ::rtl::OUString maReplaceStr;
+
+public:
+ SdUnoSearchReplaceDescriptor( sal_Bool bReplace ) throw();
+ virtual ~SdUnoSearchReplaceDescriptor() throw();
+
+ sal_Bool IsBackwards() const throw() { return mbBackwards; }
+ sal_Bool IsCaseSensitive() const throw() { return mbCaseSensitive; }
+ sal_Bool IsWords() const throw() { return mbWords; }
+
+ UNO3_GETIMPLEMENTATION_DECL( SdUnoSearchReplaceDescriptor )
+
+ // XSearchDescriptor
+ virtual ::rtl::OUString SAL_CALL getSearchString( ) throw(::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL setSearchString( const ::rtl::OUString& aString ) throw(::com::sun::star::uno::RuntimeException);
+
+ // XReplaceDescriptor
+ virtual ::rtl::OUString SAL_CALL getReplaceString( ) throw(::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL setReplaceString( const ::rtl::OUString& aReplaceString ) throw(::com::sun::star::uno::RuntimeException);
+
+ // XPropertySet
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo( ) throw(::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Any& aValue ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& xListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& aListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+};
+
+/* ================================================================= */
+
+#include <cppuhelper/implbase1.hxx>
+
+/** this class holds a sequence that is a result from a find all and
+ lets people access it through the XIndexAccess Interface. */
+class SdUnoFindAllAccess : public ::cppu::WeakImplHelper1< ::com::sun::star::container::XIndexAccess > // public ::com::sun::star::container::XElementAccess
+{
+protected:
+ ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > > maSequence;
+
+public:
+ SdUnoFindAllAccess( ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > >& rSequence ) throw();
+ virtual ~SdUnoFindAllAccess() throw();
+
+ // XIndexAccess
+ virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException) ;
+ virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index ) throw(::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+
+ // XElementAccess
+ virtual ::com::sun::star::uno::Type SAL_CALL getElementType() throw(::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException);
+};
+
diff --git a/sd/source/ui/inc/unprlout.hxx b/sd/source/ui/inc/unprlout.hxx
new file mode 100755
index 000000000000..de4fce3ea988
--- /dev/null
+++ b/sd/source/ui/inc/unprlout.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 _SD_UNPRLOUT_HXX
+#define _SD_UNPRLOUT_HXX
+
+#include "sdundo.hxx"
+#include "pres.hxx" // enum AutoLayout
+
+class SdDrawDocument;
+class SdPage;
+
+class SdPresentationLayoutUndoAction : public SdUndoAction
+{
+ String aOldLayoutName;
+ String aNewLayoutName;
+ AutoLayout eOldAutoLayout;
+ AutoLayout eNewAutoLayout;
+ sal_Bool bSetAutoLayout; // sal_True: AutoLayout aendern
+ SdPage* pPage;
+ String aComment;
+
+public:
+ TYPEINFO();
+ SdPresentationLayoutUndoAction(SdDrawDocument* pTheDoc,
+ String aTheOldLayoutName,
+ String aTheNewLayoutName,
+ AutoLayout eTheOldAutoLayout,
+ AutoLayout eTheNewAutoLayout,
+ sal_Bool bSet,
+ SdPage* pThePage);
+
+ virtual ~SdPresentationLayoutUndoAction();
+ virtual void Undo();
+ virtual void Redo();
+
+ virtual String GetComment() const;
+};
+
+#endif // _SD_UNPRLOUT_HXX
+
diff --git a/sd/source/ui/inc/unslsel.hxx b/sd/source/ui/inc/unslsel.hxx
new file mode 100644
index 000000000000..acb653677b5e
--- /dev/null
+++ b/sd/source/ui/inc/unslsel.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 _SD_UNSLSEL_HXX
+#define _SD_UNSLSEL_HXX
+
+#include "sdundo.hxx"
+
+class SlideSelectionUndoAction : public SdUndoAction
+{
+ Container* pOldOrder;
+ Container* pNewOrder;
+
+public:
+ TYPEINFO();
+ SlideSelectionUndoAction(SdDrawDocument* pTheDoc,
+ Container* pOld, Container* pNew)
+ : SdUndoAction(pTheDoc),
+ pOldOrder(pOld),
+ pNewOrder(pNew) {}
+ virtual ~SlideSelectionUndoAction() {}
+ virtual void Undo();
+ virtual void Redo();
+};
+
+#endif // _SD_UNSLSEL_HXX
diff --git a/sd/source/ui/inc/vectdlg.hrc b/sd/source/ui/inc/vectdlg.hrc
new file mode 100644
index 000000000000..ca84ae2746db
--- /dev/null
+++ b/sd/source/ui/inc/vectdlg.hrc
@@ -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.
+ *
+ ************************************************************************/
+
+#define DLG_VECTORIZE 654
+
+#define BTN_OK 1
+#define BTN_CANCEL 1
+#define BTN_HELP 1
+
+#define BTN_PREVIEW 1
+
+#define GRP_SETTINGS 1
+#define GRP_PRGS 2
+
+#define CTL_BMP 1
+#define CTL_WMF 2
+#define WND_PRGS 3
+
+#define FT_LAYERS 1
+#define FT_REDUCE 3
+#define FT_FILLHOLES 4
+#define FT_ORIGINAL 5
+#define FT_VECTORIZED 6
+
+#define NM_LAYERS 1
+#define MT_REDUCE 3
+#define MT_FILLHOLES 4
+
+#define CB_FILLHOLES 1
diff --git a/sd/source/ui/inc/vectdlg.hxx b/sd/source/ui/inc/vectdlg.hxx
new file mode 100755
index 000000000000..310926fd49b3
--- /dev/null
+++ b/sd/source/ui/inc/vectdlg.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 _SD_VECTDLG_HXX
+#define _SD_VECTDLG_HXX
+
+#include <vcl/button.hxx>
+#include <vcl/group.hxx>
+#include <vcl/fixed.hxx>
+#include <vcl/field.hxx>
+#include <vcl/dialog.hxx>
+#include <vcl/gdimtf.hxx>
+#include <svx/graphctl.hxx>
+#include <svtools/prgsbar.hxx>
+
+namespace sd {
+class DrawDocShell;
+}
+
+/******************************************************************************
+|*
+|* SdVectorizeDlg
+|*
+\******************************************************************************/
+
+class SdVectorizeDlg : public ModalDialog
+{
+ ::sd::DrawDocShell * mpDocSh;
+ FixedLine aGrpSettings;
+ FixedText aFtLayers;
+ NumericField aNmLayers;
+ FixedText aFtReduce;
+ MetricField aMtReduce;
+ FixedText aFtFillHoles;
+ MetricField aMtFillHoles;
+ CheckBox aCbFillHoles;
+
+ FixedText aFtOriginal;
+ GraphCtrl aBmpWin;
+
+ FixedText aFtVectorized;
+ GraphCtrl aMtfWin;
+
+ FixedText aGrpPrgs;
+ ProgressBar aPrgs;
+
+ OKButton aBtnOK;
+ CancelButton aBtnCancel;
+ HelpButton aBtnHelp;
+ PushButton aBtnPreview;
+
+ Bitmap aBmp;
+ Bitmap aPreviewBmp;
+ GDIMetaFile aMtf;
+
+ void LoadSettings();
+ void SaveSettings() const;
+ void InitPreviewBmp();
+ void UpdatePreviewMtf();
+
+ Rectangle GetRect( const Size& rDispSize, const Size& rBmpSize ) const;
+ Bitmap GetPreparedBitmap( Bitmap& rBmp, Fraction& rScale );
+ void Calculate( Bitmap& rBmp, GDIMetaFile& rMtf );
+ void AddTile( BitmapReadAccess* pRAcc, GDIMetaFile& rMtf,
+ long nPosX, long nPosY, long nWidth, long nHeight );
+
+ DECL_LINK( ProgressHdl, void* );
+ DECL_LINK( ClickPreviewHdl, PushButton* );
+ DECL_LINK( ClickOKHdl, OKButton* );
+ DECL_LINK( ToggleHdl, CheckBox* );
+ DECL_LINK( ModifyHdl, void* );
+
+public:
+
+ SdVectorizeDlg( Window* pParent, const Bitmap& rBmp, ::sd::DrawDocShell* pDocShell );
+ ~SdVectorizeDlg();
+
+ const GDIMetaFile& GetGDIMetaFile() const { return aMtf; }
+};
+
+#endif
+
diff --git a/sd/source/ui/inc/view/viewoverlaymanager.hxx b/sd/source/ui/inc/view/viewoverlaymanager.hxx
new file mode 100755
index 000000000000..7702dafa4d80
--- /dev/null
+++ b/sd/source/ui/inc/view/viewoverlaymanager.hxx
@@ -0,0 +1,71 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: $
+ * $Revision: $
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef _SD_VIEWOVERLAYMANAGER_HXX
+#define _SD_VIEWOVERLAYMANAGER_HXX
+
+#include <vcl/image.hxx>
+#include <svl/lstner.hxx>
+#include "EventMultiplexer.hxx"
+#include "ViewShellBase.hxx"
+#include "res_bmp.hrc"
+
+namespace sd
+{
+
+typedef std::vector< rtl::Reference< SmartTag > > ViewTagVector;
+
+class ViewOverlayManager : public SfxListener
+{
+public:
+ ViewOverlayManager( ViewShellBase& rViewShellBase );
+ virtual ~ViewOverlayManager();
+
+ void onZoomChanged();
+ void UpdateTags();
+
+ DECL_LINK(EventMultiplexerListener, tools::EventMultiplexerEvent*);
+ DECL_LINK(UpdateTagsHdl, void *);
+
+ bool CreateTags();
+ bool DisposeTags();
+
+ virtual void Notify(SfxBroadcaster& rBC, const SfxHint& rHint);
+
+private:
+ ViewShellBase& mrBase;
+ sal_uLong mnUpdateTagsEvent;
+
+ ViewTagVector maTagVector;
+};
+
+}
+
+#endif // _SD_VIEWOVERLAYMANAGER_HXX
diff --git a/sd/source/ui/inc/zoomlist.hxx b/sd/source/ui/inc/zoomlist.hxx
new file mode 100755
index 000000000000..13f3d6fe83bb
--- /dev/null
+++ b/sd/source/ui/inc/zoomlist.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 SD_ZOOM_LIST_HXX
+#define SD_ZOOM_LIST_HXX
+
+
+#include <tools/gen.hxx>
+#include <tools/list.hxx>
+
+
+namespace sd {
+
+class ViewShell;
+
+class ZoomList : public List
+{
+public:
+ ZoomList(ViewShell* pViewShell);
+ virtual ~ZoomList();
+
+ void InsertZoomRect(const Rectangle& rRect);
+ Rectangle GetNextZoomRect();
+ Rectangle GetPreviousZoomRect();
+ sal_Bool IsNextPossible() const;
+ sal_Bool IsPreviousPossible() const;
+
+private:
+ ViewShell* mpViewShell;
+ sal_uLong mnCurPos;
+};
+
+} // end of namespace sd
+
+#endif
+
+