summaryrefslogtreecommitdiffstats
path: root/offapi/com/sun/star/view
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 09:06:44 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 09:06:44 +0000
commited5640d8b587fbcfed7dd7967f3de04b37a76f26 (patch)
tree7a5f7c6c9d02226d7471cb3cc8fbbf631b415303 /offapi/com/sun/star/view
parentInitial commit. (diff)
downloadlibreoffice-upstream.tar.xz
libreoffice-upstream.zip
Adding upstream version 4:7.4.7.upstream/4%7.4.7upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'offapi/com/sun/star/view')
-rw-r--r--offapi/com/sun/star/view/DocumentZoomType.idl58
-rw-r--r--offapi/com/sun/star/view/DuplexMode.idl53
-rw-r--r--offapi/com/sun/star/view/OfficeDocumentView.idl65
-rw-r--r--offapi/com/sun/star/view/PaperFormat.idl74
-rw-r--r--offapi/com/sun/star/view/PaperOrientation.idl46
-rw-r--r--offapi/com/sun/star/view/PrintJobEvent.idl48
-rw-r--r--offapi/com/sun/star/view/PrintOptions.idl90
-rw-r--r--offapi/com/sun/star/view/PrintSettings.idl91
-rw-r--r--offapi/com/sun/star/view/PrintableState.idl69
-rw-r--r--offapi/com/sun/star/view/PrintableStateEvent.idl46
-rw-r--r--offapi/com/sun/star/view/PrinterDescriptor.idl95
-rw-r--r--offapi/com/sun/star/view/RenderDescriptor.idl47
-rw-r--r--offapi/com/sun/star/view/RenderOptions.idl96
-rw-r--r--offapi/com/sun/star/view/SelectionType.idl59
-rw-r--r--offapi/com/sun/star/view/ViewSettings.idl60
-rw-r--r--offapi/com/sun/star/view/XControlAccess.idl53
-rw-r--r--offapi/com/sun/star/view/XFormLayerAccess.idl91
-rw-r--r--offapi/com/sun/star/view/XLineCursor.idl68
-rw-r--r--offapi/com/sun/star/view/XMultiSelectionSupplier.idl113
-rw-r--r--offapi/com/sun/star/view/XPrintJob.idl61
-rw-r--r--offapi/com/sun/star/view/XPrintJobBroadcaster.idl53
-rw-r--r--offapi/com/sun/star/view/XPrintJobListener.idl51
-rw-r--r--offapi/com/sun/star/view/XPrintSettingsSupplier.idl51
-rw-r--r--offapi/com/sun/star/view/XPrintable.idl73
-rw-r--r--offapi/com/sun/star/view/XPrintableBroadcaster.idl51
-rw-r--r--offapi/com/sun/star/view/XPrintableListener.idl51
-rw-r--r--offapi/com/sun/star/view/XRenderable.idl92
-rw-r--r--offapi/com/sun/star/view/XScreenCursor.idl48
-rw-r--r--offapi/com/sun/star/view/XSelectionChangeListener.idl53
-rw-r--r--offapi/com/sun/star/view/XSelectionSupplier.idl70
-rw-r--r--offapi/com/sun/star/view/XViewCursor.idl101
-rw-r--r--offapi/com/sun/star/view/XViewSettingsSupplier.idl50
32 files changed, 2127 insertions, 0 deletions
diff --git a/offapi/com/sun/star/view/DocumentZoomType.idl b/offapi/com/sun/star/view/DocumentZoomType.idl
new file mode 100644
index 000000000..98e3a9c93
--- /dev/null
+++ b/offapi/com/sun/star/view/DocumentZoomType.idl
@@ -0,0 +1,58 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_view_DocumentZoomType_idl__
+#define __com_sun_star_view_DocumentZoomType_idl__
+
+
+
+module com { module sun { module star { module view {
+
+
+/** These constants specify how the document content is zoomed into the document view.
+ */
+published constants DocumentZoomType
+{
+ /** The page content width (excluding margins) at the current selection is fit into the view.
+ */
+ const short OPTIMAL = 0;
+
+ /** The page width at the current selection is fit into the view.
+ */
+ const short PAGE_WIDTH = 1;
+
+ /** A complete page of the document is fit into the view.
+ */
+ const short ENTIRE_PAGE = 2;
+
+ /** The zoom is relative and is to be set via the property
+ ViewSettings::ZoomValue.
+ */
+ const short BY_VALUE = 3;
+ /** The page width at the current selection is fit into the view,
+ with the view ends exactly at the end of the page.
+ */
+ const short PAGE_WIDTH_EXACT = 4;
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/view/DuplexMode.idl b/offapi/com/sun/star/view/DuplexMode.idl
new file mode 100644
index 000000000..4c05ec695
--- /dev/null
+++ b/offapi/com/sun/star/view/DuplexMode.idl
@@ -0,0 +1,53 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_view_DuplexMode_idl__
+#define __com_sun_star_view_DuplexMode_idl__
+
+
+
+module com { module sun { module star { module view {
+
+
+/** These constants specify available duplex modes
+ */
+constants DuplexMode
+{
+ /** specifies an unknown duplex mode.
+ */
+ const short UNKNOWN = 0;
+
+ /** specifies that there is no duplex mode enabled
+ */
+ const short OFF = 1;
+
+ /** specifies a long edge duplex mode
+ */
+ const short LONGEDGE = 2;
+
+ /** specifies a short edge duplex mode
+ */
+ const short SHORTEDGE = 3;
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/view/OfficeDocumentView.idl b/offapi/com/sun/star/view/OfficeDocumentView.idl
new file mode 100644
index 000000000..1485ad73c
--- /dev/null
+++ b/offapi/com/sun/star/view/OfficeDocumentView.idl
@@ -0,0 +1,65 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_view_OfficeDocumentView_idl__
+#define __com_sun_star_view_OfficeDocumentView_idl__
+
+#include <com/sun/star/view/XSelectionSupplier.idl>
+
+#include <com/sun/star/view/XViewSettingsSupplier.idl>
+
+#include <com/sun/star/view/XControlAccess.idl>
+
+
+
+module com { module sun { module star { module view {
+
+
+/** specifies a view of a standard office document.
+ */
+published service OfficeDocumentView
+{
+ /** This mandatory interface gives access to the current user selection
+ within this office document view.
+
+ <p>The type of the selection depends on the actual document type.</p>
+ */
+ interface com::sun::star::view::XSelectionSupplier;
+
+
+ /** This optional interface gives access to the view properties within this
+ control for an office document.
+
+ @see ViewSettings
+ */
+ [optional] interface com::sun::star::view::XViewSettingsSupplier;
+
+
+ /** Within this office document view, this optional interface gives
+ access to the controls which belong to specified control models.
+ */
+ [optional] interface com::sun::star::view::XControlAccess;
+
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/view/PaperFormat.idl b/offapi/com/sun/star/view/PaperFormat.idl
new file mode 100644
index 000000000..247a2a876
--- /dev/null
+++ b/offapi/com/sun/star/view/PaperFormat.idl
@@ -0,0 +1,74 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_view_PaperFormat_idl__
+#define __com_sun_star_view_PaperFormat_idl__
+
+
+
+module com { module sun { module star { module view {
+
+
+/** specifies the format (size) of the paper on a text document.
+ */
+published enum PaperFormat
+{
+ /** specifies the paper format as A3.
+ */
+ A3,
+
+ /** specifies the paper format as A4.
+ */
+ A4,
+
+ /** specifies the paper format as A5.
+ */
+ A5,
+
+ /** specifies the paper format as B4.
+ */
+ B4,
+
+ /** specifies the paper format as B5.
+ */
+ B5,
+
+ /** specifies the paper format as Letter.
+ */
+ LETTER,
+
+ /** specifies the paper format as Legal.
+ */
+ LEGAL,
+
+ /** specifies the paper format as Tabloid.
+ */
+ TABLOID,
+
+ /** The real paper size is user defined in 100th mm.
+ */
+ USER
+
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/view/PaperOrientation.idl b/offapi/com/sun/star/view/PaperOrientation.idl
new file mode 100644
index 000000000..91901a769
--- /dev/null
+++ b/offapi/com/sun/star/view/PaperOrientation.idl
@@ -0,0 +1,46 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_view_PaperOrientation_idl__
+#define __com_sun_star_view_PaperOrientation_idl__
+
+
+
+module com { module sun { module star { module view {
+
+
+/** specifies the orientation of the paper.
+ */
+published enum PaperOrientation
+{
+ /** set the paper orientation to portrait.
+ */
+ PORTRAIT,
+
+ /** set the paper orientation to landscape.
+ */
+ LANDSCAPE
+
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/view/PrintJobEvent.idl b/offapi/com/sun/star/view/PrintJobEvent.idl
new file mode 100644
index 000000000..8359f8312
--- /dev/null
+++ b/offapi/com/sun/star/view/PrintJobEvent.idl
@@ -0,0 +1,48 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_view_PrintJobEvent_idl__
+#define __com_sun_star_view_PrintJobEvent_idl__
+
+#include <com/sun/star/lang/EventObject.idl>
+#include <com/sun/star/view/PrintableState.idl>
+
+
+module com { module sun { module star { module view {
+
+
+/** specifies the print progress of an XPrintJob.
+
+ <p>com::sun::star::lang::EventObject::Source
+ contains the XPrintJob having changed its state</p>.
+
+ @since OOo 1.1.2
+
+ */
+published struct PrintJobEvent : com::sun::star::lang::EventObject
+{
+ /// contains the current state.
+ PrintableState State;
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/view/PrintOptions.idl b/offapi/com/sun/star/view/PrintOptions.idl
new file mode 100644
index 000000000..4ed8b23ba
--- /dev/null
+++ b/offapi/com/sun/star/view/PrintOptions.idl
@@ -0,0 +1,90 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_view_PrintOptions_idl__
+#define __com_sun_star_view_PrintOptions_idl__
+
+
+
+module com { module sun { module star { module view {
+
+
+/** describes the options for print jobs.
+
+ <p>These options are only valid for a single print job. They do not
+ change layout or formatting of the document.
+ */
+published service PrintOptions
+{
+ /** specifies the number of copies to print.
+ */
+ [property] short CopyCount;
+
+ /** if set, specifies the name of a file to print to.
+ */
+ [property] string FileName;
+
+ /** advises the printer to collate the pages of the copies.
+ */
+ [property] boolean Collate;
+
+ /** advises the printer to sort the pages of the copies.
+
+ @deprecated
+ Use Collate instead.
+ */
+ [property] boolean Sort;
+
+ /** specifies which pages to print.
+
+ <p>This range is given as at the user interface. For example: "1-4;10"
+ to print the pages 1 to 4 and 10. </p>
+ */
+ [property] string Pages;
+
+ /** if set to TRUE, the corresponding XPrintable.print() request will
+ be executed synchronous.
+
+ <p>Default is the asynchronous print mode.</p>
+
+ @attention Using of this property with TRUE as value is highly recommended.
+ Otherwise following actions (as e.g. closing the corresponding model) can fail.
+ */
+ [optional, property] boolean Wait;
+
+ /** determines the duplex mode for the print job.
+
+ @see DuplexMode for more information about supported values
+ */
+ [optional, property] short DuplexMode;
+
+ /** if set, specifies name of the printer to use.
+ */
+ [optional, property] string PrinterName;
+
+ /** advises the printer to create a single print job for each copy.
+ */
+ [optional, property] boolean SinglePrintJobs;
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/view/PrintSettings.idl b/offapi/com/sun/star/view/PrintSettings.idl
new file mode 100644
index 000000000..e7671ea69
--- /dev/null
+++ b/offapi/com/sun/star/view/PrintSettings.idl
@@ -0,0 +1,91 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_view_PrintSettings_idl__
+#define __com_sun_star_view_PrintSettings_idl__
+
+
+
+module com { module sun { module star { module view {
+
+
+/** provides access to the settings for printing documents.
+
+ <p>These settings are printer independent but affect the rendering of
+ the document.
+ */
+published service PrintSettings
+{
+ /** If `TRUE`, all characters are printed in black.
+
+ <p>It is useful for printing colored text on a b/w printer.</p>
+ */
+ [property] boolean PrintBlackFonts;
+
+ /** If `TRUE`, control shapes are included in printing.
+ */
+ [property] boolean PrintControls;
+
+ /** If `TRUE`, drawing objects (shapes) are included in printing.
+ */
+ [property] boolean PrintDrawings;
+
+ /** If `TRUE`, graphic objects are included in printing.
+ */
+ [property] boolean PrintGraphics;
+
+ /** If `TRUE`, left pages are included in printing.
+ */
+ [property] boolean PrintLeftPages;
+
+ /** If `TRUE`, right pages are included in printing.
+ */
+ [property] boolean PrintRightPages;
+
+ /** If `TRUE`, tables are included in printing.
+ */
+ [property] boolean PrintTables;
+
+ /** If `TRUE`, the pages are printed in reverse order.
+
+ <p>The last page is printed first.</p>
+ */
+ [property] boolean PrintReversed;
+
+ /** If `TRUE`, the pages are printed in the order of prospects.
+ */
+ [property] boolean PrintProspect;
+
+ /** If `TRUE`, the background of the page is printed.
+ */
+ [property] boolean PrintPageBackground;
+
+ /** determines how annotations are printed.
+
+ @see NotePrintMode
+ */
+ [property] short PrintAnnotationMode;
+
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/view/PrintableState.idl b/offapi/com/sun/star/view/PrintableState.idl
new file mode 100644
index 000000000..b687d8174
--- /dev/null
+++ b/offapi/com/sun/star/view/PrintableState.idl
@@ -0,0 +1,69 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_view_PrintableState_idl__
+#define __com_sun_star_view_PrintableState_idl__
+
+
+
+module com { module sun { module star { module view {
+
+
+/** specifies the print progress of an XPrintable.
+
+ <p>Printing consists of two abstract phases: rendering the document
+ for the printer and then sending it to the printer (spooling).
+ PrintableState describes which phase is currently
+ progressing or has failed.</p>
+
+ @see PrintableStateEvent
+ */
+published enum PrintableState
+{
+ /** printing (rendering the document) has begun
+ */
+ JOB_STARTED,
+
+ /** printing (rendering the document) has finished, spooling has begun
+ */
+ JOB_COMPLETED,
+
+ /** spooling has finished successfully. This is the only state
+ that can be considered as "success" for a print job.
+ */
+ JOB_SPOOLED,
+
+ /** printing was aborted (e.g., by the user) while either printing or spooling.
+ */
+ JOB_ABORTED,
+
+ /** printing ran into an error.
+ */
+ JOB_FAILED,
+
+ /** the document could be printed but not spooled.
+ */
+ JOB_SPOOLING_FAILED
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/view/PrintableStateEvent.idl b/offapi/com/sun/star/view/PrintableStateEvent.idl
new file mode 100644
index 000000000..41a3fa5f5
--- /dev/null
+++ b/offapi/com/sun/star/view/PrintableStateEvent.idl
@@ -0,0 +1,46 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_view_PrintableStateEvent_idl__
+#define __com_sun_star_view_PrintableStateEvent_idl__
+
+#include <com/sun/star/lang/EventObject.idl>
+#include <com/sun/star/view/PrintableState.idl>
+
+
+module com { module sun { module star { module view {
+
+
+/** specifies the print progress of an XPrintable.
+
+ <p>com::sun::star::lang::EventObject::Source
+ contains the XPrintable having changed its state</p>.
+
+ */
+published struct PrintableStateEvent : com::sun::star::lang::EventObject
+{
+ /// contains the current state.
+ PrintableState State;
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/view/PrinterDescriptor.idl b/offapi/com/sun/star/view/PrinterDescriptor.idl
new file mode 100644
index 000000000..29f2b1360
--- /dev/null
+++ b/offapi/com/sun/star/view/PrinterDescriptor.idl
@@ -0,0 +1,95 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_view_PrinterDescriptor_idl__
+#define __com_sun_star_view_PrinterDescriptor_idl__
+
+#include <com/sun/star/view/PaperOrientation.idl>
+
+#include <com/sun/star/view/PaperFormat.idl>
+
+#include <com/sun/star/awt/Size.idl>
+
+
+
+module com { module sun { module star { module view {
+
+
+/** describes a printer by specifying the queue name and some settings.
+
+ <p>This service may be represented by a
+ com::sun::star::beans::PropertyValue[].
+
+ @see com::sun::star::beans::PropertyValue
+ */
+published service PrinterDescriptor
+{
+ /** specifies the name of the printer queue to be used.
+
+ <p>Which printer queues are available, can be figured out with the
+ system library of the used programming language/environment.
+ */
+ [property] string Name;
+
+ /** specifies the orientation of the paper.
+ */
+ [property] com::sun::star::view::PaperOrientation PaperOrientation;
+
+ /** specifies a predefined paper size or if the paper size
+ is a user-defined size.
+
+ <p>Setting this property may change the value of
+ PrinterDescriptor::PaperSize.</p>
+ */
+ [property] com::sun::star::view::PaperFormat PaperFormat;
+
+ /** specifies the size of the paper in 100th mm.
+
+ <p>Setting this property may change the value of
+ PrinterDescriptor::PaperFormat.</p>
+ */
+ [property] com::sun::star::awt::Size PaperSize;
+
+ /** indicates, whether the printer is busy or not.
+ */
+ [readonly, property] boolean IsBusy;
+
+ /** indicates, whether the printer allows changes to
+ PrinterDescriptor::PaperOrientation.
+ */
+ [readonly, property] boolean CanSetPaperOrientation;
+
+ /** indicates, whether the printer allows changes to
+ PrinterDescriptor::PaperFormat.
+ */
+ [readonly, property] boolean CanSetPaperFormat;
+
+
+ /** indicates if the printer allows changes to
+ PrinterDescriptor::PaperSize.
+ */
+ [readonly, property] boolean CanSetPaperSize;
+
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/view/RenderDescriptor.idl b/offapi/com/sun/star/view/RenderDescriptor.idl
new file mode 100644
index 000000000..ec35bee8a
--- /dev/null
+++ b/offapi/com/sun/star/view/RenderDescriptor.idl
@@ -0,0 +1,47 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_view_RenderDescriptor_idl__
+#define __com_sun_star_view_RenderDescriptor_idl__
+
+#include <com/sun/star/awt/Size.idl>
+
+
+module com { module sun { module star { module view {
+
+
+/** describes the options for Render jobs.
+
+ @since OOo 1.1.2
+ */
+published service RenderDescriptor
+{
+
+ /** specifies the page size for the current renderer. The unit of this page
+ size is 1/100th mm.
+ */
+ [property] com::sun::star::awt::Size PageSize;
+};
+
+
+}; }; }; };
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/view/RenderOptions.idl b/offapi/com/sun/star/view/RenderOptions.idl
new file mode 100644
index 000000000..747315584
--- /dev/null
+++ b/offapi/com/sun/star/view/RenderOptions.idl
@@ -0,0 +1,96 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_view_RenderOptions_idl__
+#define __com_sun_star_view_RenderOptions_idl__
+
+#include <com/sun/star/awt/XDevice.idl>
+
+
+module com { module sun { module star { module view {
+
+
+/** describes the options for Render jobs.
+
+ @since OOo 1.1.2
+ */
+published service RenderOptions
+{
+
+ /** specifies the device the page should be rendered to
+ */
+ [property] com::sun::star::awt::XDevice RenderDevice;
+
+
+ /** indicates that the current page is the first page to be exported.
+
+ <p>Hyperlinks, notes, and outlines cannot be exported on a per
+ page base. They have to be exported once *before* the first page
+ is exported. Therefore the IsFirstPage property has been introduced.
+ It is evaluated in the render function and indicates that the
+ current page is the first page to be exported.
+ </p>
+
+ @see XRenderable
+ */
+ [optional, property] boolean IsFirstPage;
+
+ /** indicates that the current page is the last page to be exported.
+
+ <p>Hyperlinks from the EditEngine have to be exported once *after*
+ the last page has been processed. Therefore the IsLastPage property
+ has been introduced. It is evaluated in the render function and
+ indicates that the current page is the last page to be exported.
+ </p>
+
+ @see XRenderable
+ */
+ [optional, property] boolean IsLastPage;
+
+ /** specifies if empty pages should be skipped.
+
+ <p>Tells the PDF export to skip empty pages. This flag also has
+ to be passed to the render function, in order to calculate to
+ correct page numbers during the export of hyperlinks, notes, and
+ outlines.
+ </p>
+
+ @see XRenderable
+ */
+ [optional, property] boolean IsSkipEmptyPages;
+
+ /** specifies the page ranges to be rendered.
+
+ <p>Tells the PDF export to skip empty pages. This flag also has
+ to be passed to the render function, in order to calculate to
+ correct page numbers during the export of hyperlinks, notes,
+ and outlines.
+ </p>
+
+ @see XRenderable
+ */
+ [optional, property] string PageRange;
+};
+
+
+}; }; }; };
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/view/SelectionType.idl b/offapi/com/sun/star/view/SelectionType.idl
new file mode 100644
index 000000000..5cf828945
--- /dev/null
+++ b/offapi/com/sun/star/view/SelectionType.idl
@@ -0,0 +1,59 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_view_SelectionType_idl__
+#define __com_sun_star_view_SelectionType_idl__
+
+
+module com { module sun { module star { module view {
+
+
+/** Specifies a selection type for a view that supports a selection model.
+ */
+published enum SelectionType
+{
+
+ /** No selection is possible.
+ <p>The selection is always empty.</p>
+ */
+ NONE,
+
+
+ /** The selection can only contain one or zero objects.
+ */
+ SINGLE,
+
+
+ /** The selection can contain zero or more objects.
+ */
+ MULTI,
+
+
+ /** The selection can contain zero or more objects.
+ <p>all selected objects must be part of a continues range</p>
+ */
+ RANGE
+};
+
+
+}; }; }; };
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/view/ViewSettings.idl b/offapi/com/sun/star/view/ViewSettings.idl
new file mode 100644
index 000000000..788a195e3
--- /dev/null
+++ b/offapi/com/sun/star/view/ViewSettings.idl
@@ -0,0 +1,60 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_view_ViewSettings_idl__
+#define __com_sun_star_view_ViewSettings_idl__
+
+#include <com/sun/star/beans/XPropertySet.idl>
+
+
+module com { module sun { module star { module view {
+
+
+/** provides access to the settings of the controller of an office document.
+ */
+published service ViewSettings
+{
+ interface com::sun::star::beans::XPropertySet;
+
+ /** If this property is `TRUE`, the horizontal ruler is displayed.
+ */
+ [optional, property] boolean ShowHoriRuler;
+
+ /** If this property is `TRUE`, the horizontal scroll bar is displayed.
+ */
+ [optional, property] boolean ShowHoriScrollBar;
+
+ /** specifies the zoom-value in percent.
+ */
+ [optional, property] short ZoomValue;
+
+ /** If this property is `TRUE`, the vertical ruler is displayed.
+ */
+ [optional, property] boolean ShowVertRuler;
+
+ /** If this property is `TRUE`, the vertical scroll bar is displayed.
+ */
+ [optional, property] boolean ShowVertScrollBar;
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/view/XControlAccess.idl b/offapi/com/sun/star/view/XControlAccess.idl
new file mode 100644
index 000000000..19060b184
--- /dev/null
+++ b/offapi/com/sun/star/view/XControlAccess.idl
@@ -0,0 +1,53 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_view_XControlAccess_idl__
+#define __com_sun_star_view_XControlAccess_idl__
+
+#include <com/sun/star/uno/XInterface.idl>
+
+#include <com/sun/star/awt/XControl.idl>
+
+#include <com/sun/star/awt/XControlModel.idl>
+
+#include <com/sun/star/container/NoSuchElementException.idl>
+
+
+
+module com { module sun { module star { module view {
+
+
+/** provides access to the controls in a view.
+
+ @see com::sun::star::frame::XController
+ */
+published interface XControlAccess: com::sun::star::uno::XInterface
+{
+ /** is called to get the control from the specified control model.
+ */
+ com::sun::star::awt::XControl getControl( [in] com::sun::star::awt::XControlModel xModel )
+ raises( com::sun::star::container::NoSuchElementException );
+
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/view/XFormLayerAccess.idl b/offapi/com/sun/star/view/XFormLayerAccess.idl
new file mode 100644
index 000000000..f498f688c
--- /dev/null
+++ b/offapi/com/sun/star/view/XFormLayerAccess.idl
@@ -0,0 +1,91 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#ifndef __com_sun_star_view_XFormLayerAccess_idl__
+#define __com_sun_star_view_XFormLayerAccess_idl__
+
+#include <com/sun/star/view/XControlAccess.idl>
+#include <com/sun/star/form/XForm.idl>
+#include <com/sun/star/form/runtime/XFormController.idl>
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+
+
+module com { module sun { module star { module view {
+
+
+/** provides access to the form layer elements in a view
+
+ @since OOo 2.3
+ */
+interface XFormLayerAccess
+{
+ /// provides access to form controls contained in the view
+ interface XControlAccess;
+
+ /** returns the com::sun::star::form::FormController
+ instance which operates on a given form.
+
+ <p>A form controller is a component which controls the user interaction
+ with the form layer, as long as the form is not in design mode.</p>
+
+ @return
+ the requested form controller, or `NULL` if the view's
+ form layer is currently in design mode. Note that the returned
+ instance becomes non-functional as soon as the form layer is switched
+ to design mode.
+
+ @see isDesignMode
+ @see setDesignMode
+ @see ::com::sun::star::form::runtime::FormController
+ @see ::com::sun::star::form::runtime::FormOperations
+ */
+ ::com::sun::star::form::runtime::XFormController
+ getFormController(
+ [in] ::com::sun::star::form::XForm Form
+ );
+
+ /** determines whether the view's form layer is currently in design
+ or alive mode
+
+ <p><em>Note</em>: This is a convenience method. In the user interface,
+ the design mode is coupled with the <code>.uno:SwitchControlDesignMode</code>
+ feature (see com::sun::star::frame::XDispatchProvider),
+ and asking for the current mode is the same as asking for the state of this
+ feature.</p>
+ */
+ boolean isFormDesignMode();
+
+ /** determines whether the view's form layer is currently in design
+ or alive mode
+
+ <p><em>Note</em>: This is a convenience method. In the user interface,
+ the design mode is coupled with the <code>.uno:SwitchControlDesignMode</code>
+ feature (see com::sun::star::frame::XDispatchProvider),
+ and changing the current mode is the same as dispatching this feature URL.</p>
+ */
+ void setFormDesignMode( [in] boolean DesignMode );
+};
+
+
+}; }; }; };
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/view/XLineCursor.idl b/offapi/com/sun/star/view/XLineCursor.idl
new file mode 100644
index 000000000..fc125f653
--- /dev/null
+++ b/offapi/com/sun/star/view/XLineCursor.idl
@@ -0,0 +1,68 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_view_XLineCursor_idl__
+#define __com_sun_star_view_XLineCursor_idl__
+
+#include <com/sun/star/uno/XInterface.idl>
+
+
+
+module com { module sun { module star { module view {
+
+
+/** makes it possible to move a cursor by lines within laid out text.
+
+ @see com::sun::star::table::CellCursor
+ @see com::sun::star::text::TextCursor
+ @see com::sun::star::text::XTextViewCursor
+ */
+published interface XLineCursor: com::sun::star::uno::XInterface
+{
+ /** determines if the cursor is positioned at the start of a line.
+ */
+ boolean isAtStartOfLine();
+
+ /** determines if the cursor is positioned at the end of a line.
+ */
+ boolean isAtEndOfLine();
+
+ /** moves the cursor to the end of the current line.
+
+ @param bExpand
+ determines whether the text range of the cursor is expanded (`TRUE`)
+ or the cursor will be just at the new position after the move (`FALSE`).
+ */
+ void gotoEndOfLine( [in] boolean bExpand );
+
+ /** moves the cursor to the start of the current line.
+
+ @param bExpand
+ determines whether the text range of the cursor is expanded (`TRUE`)
+ or the cursor will be just at the new position after the move (`FALSE`).
+ */
+ void gotoStartOfLine( [in] boolean bExpand );
+
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/view/XMultiSelectionSupplier.idl b/offapi/com/sun/star/view/XMultiSelectionSupplier.idl
new file mode 100644
index 000000000..d7c8bd9e0
--- /dev/null
+++ b/offapi/com/sun/star/view/XMultiSelectionSupplier.idl
@@ -0,0 +1,113 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_view_XMultiSelectionSupplier_idl__
+#define __com_sun_star_view_XMultiSelectionSupplier_idl__
+
+#include <com/sun/star/view/XSelectionSupplier.idl>
+#include <com/sun/star/container/XEnumeration.idl>
+
+
+module com { module sun { module star { module view {
+
+
+/** makes it possible to append and remove objects from a selection.
+
+ <p>The method XSelectionSupplier::setSelection() for an
+ instance that also supports XMultiSelectionSupplier should
+ be implemented that it also takes either a selectable object or a sequence
+ of selectable objects.</p>
+
+ <p>Adding an object more than once to a selection should not toggle the
+ selection for that object but only select it once</p>
+ */
+interface XMultiSelectionSupplier: XSelectionSupplier
+{
+
+ /** adds the object or the objects represented by <var>Selection</var> to the selection
+ of this XMultiSelectionSupplier.
+
+ @param Selection
+ either an Object that is selectable or a sequence of objects that are selectable.
+
+ @returns
+ `TRUE`/, if <var>Selection</var> was added to the current selection.
+ `FALSE`, if <var>Selection</var> or parts of <var>Selection</var> could not be
+ added to the current selection. For example, if the selection already contains
+ objects that are forbidden to be selected together with <var>Selection</var>
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ If <var>Selection</var> is not a selectable object for this XMultiSelectionSupplier.
+ <p>Adding an object to the selection that is already part of the selection should not raise this exception</p>
+ */
+ boolean addSelection( [in] any Selection )
+ raises( com::sun::star::lang::IllegalArgumentException );
+
+
+ /** remove the object or objects represented by <var>Selection</var> from the
+ selection of this XMultiSelectionSupplier.
+
+ @param Selection
+ either an Object that is selectable or a sequence of objects that are selectable.
+
+ @returns
+ `TRUE`/, if <var>Selection</var> was added to the current selection.
+ `FALSE`, if <var>Selection</var> or parts of <var>Selection</var> could not be
+ added to the current selection. For example, if the selection already contains
+ objects that are forbidden to be selected together with <var>Selection</var>.
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ If <var>Selection</var> is not a selectable object for this XMultiSelectionSupplier.
+ <p>Removing an object from the selection that is not part of the selection should not raise this exception</p>
+ */
+ void removeSelection( [in] any Selection )
+ raises( com::sun::star::lang::IllegalArgumentException );
+
+
+ /** clears the selection of this XMultiSelectionSupplier.
+ */
+ void clearSelection();
+
+
+ /** returns the number of selected objects of this XMultiSelectionSupplier.
+ */
+ long getSelectionCount();
+
+
+ /** @returns
+ a new object to enumerate the selection of this XMultiSelectionSupplier.
+ It returns NULL if there are no objects in the selection.
+ */
+ com::sun::star::container::XEnumeration createSelectionEnumeration();
+
+
+ /** @returns
+ a new object to enumerate the selection of this XMultiSelectionSupplier
+ in reverse order. If the order of the selected objects
+ It returns NULL if there are no objects in the selection.
+ */
+ com::sun::star::container::XEnumeration createReverseSelectionEnumeration();
+
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/view/XPrintJob.idl b/offapi/com/sun/star/view/XPrintJob.idl
new file mode 100644
index 000000000..d01bab007
--- /dev/null
+++ b/offapi/com/sun/star/view/XPrintJob.idl
@@ -0,0 +1,61 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_view_XPrintJob_idl__
+#define __com_sun_star_view_XPrintJob_idl__
+
+#include <com/sun/star/uno/XInterface.idl>
+#include <com/sun/star/view/XPrintable.idl>
+#include <com/sun/star/beans/PropertyValue.idl>
+
+
+
+module com { module sun { module star { module view {
+
+/** allows for getting information about a print job.
+
+ <p>XPrintJob is implemented by print jobs that are created by
+ classes that implement XPrintable. It gives information about
+ the context of the print job.</p>
+
+ @see XPrintJobListener
+
+ @since OOo 1.1.2
+ */
+published interface XPrintJob : com::sun::star::uno::XInterface
+{
+ /** returns the PrintOptions used for the print job
+ */
+ sequence<com::sun::star::beans::PropertyValue> getPrintOptions();
+
+ /** returns the Printer used for the print job
+ */
+ sequence<com::sun::star::beans::PropertyValue> getPrinter();
+
+ /** returns the printed object used for the print job
+ */
+ XPrintable getPrintable();
+
+ void cancelJob();
+};
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/view/XPrintJobBroadcaster.idl b/offapi/com/sun/star/view/XPrintJobBroadcaster.idl
new file mode 100644
index 000000000..dec3733f9
--- /dev/null
+++ b/offapi/com/sun/star/view/XPrintJobBroadcaster.idl
@@ -0,0 +1,53 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_view_XPrintJobBroadcaster_idl__
+#define __com_sun_star_view_XPrintJobBroadcaster_idl__
+
+#include <com/sun/star/uno/XInterface.idl>
+#include <com/sun/star/view/XPrintJobListener.idl>
+
+
+module com { module sun { module star { module view {
+
+/** allows for getting information about a print job.
+
+ <p>XPrintJobBroadcaster can be implemented by classes which
+ implement XPrintable. It allows a XPrintJobListener
+ to be registered, thus a client object will learn about the print progress.</p>
+
+ @see XPrintJobListener
+
+ @since OOo 1.1.2
+ */
+published interface XPrintJobBroadcaster : com::sun::star::uno::XInterface
+{
+ /** adds an XPrintJobListener to be notified about print progress.
+ */
+ void addPrintJobListener( [in] XPrintJobListener xListener );
+
+ /** removes an XPrintJobListener.
+ */
+ void removePrintJobListener( [in] XPrintJobListener xListener );
+};
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/view/XPrintJobListener.idl b/offapi/com/sun/star/view/XPrintJobListener.idl
new file mode 100644
index 000000000..7c7adfccd
--- /dev/null
+++ b/offapi/com/sun/star/view/XPrintJobListener.idl
@@ -0,0 +1,51 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_view_XPrintJobListener_idl__
+#define __com_sun_star_view_XPrintJobListener_idl__
+
+#include <com/sun/star/lang/XEventListener.idl>
+#include <com/sun/star/view/PrintJobEvent.idl>
+
+
+module com { module sun { module star { module view {
+
+/** receives events about print job progress.
+
+ <p>XPrintJobListener can be registered to XPrintJobBroadcaster.
+ Then, the client object will be notified when a new print job starts or its state changes.</p>
+
+ @see XPrintJobBroadcaster
+ @see XPrintJob
+
+ @since OOo 1.1.2
+ */
+published interface XPrintJobListener : com::sun::star::lang::XEventListener
+{
+ /** informs the user about the creation or the progress of a PrintJob
+ @param Event
+ contains the XPrintJob having changed state and the new state.
+ */
+ void printJobEvent( [in] PrintJobEvent Event );
+};
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/view/XPrintSettingsSupplier.idl b/offapi/com/sun/star/view/XPrintSettingsSupplier.idl
new file mode 100644
index 000000000..6ce20217d
--- /dev/null
+++ b/offapi/com/sun/star/view/XPrintSettingsSupplier.idl
@@ -0,0 +1,51 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_view_XPrintSettingsSupplier_idl__
+#define __com_sun_star_view_XPrintSettingsSupplier_idl__
+
+#include <com/sun/star/uno/XInterface.idl>
+
+#include <com/sun/star/beans/XPropertySet.idl>
+
+
+
+module com { module sun { module star { module view {
+
+
+/** offers printing related settings, which affect document rendering,
+ but are not related to the printer itself.
+ */
+published interface XPrintSettingsSupplier: com::sun::star::uno::XInterface
+{
+
+ /** @returns
+ a set of properties which are related to printing.
+
+ @see PrintSettings
+ */
+ com::sun::star::beans::XPropertySet getPrintSettings();
+
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/view/XPrintable.idl b/offapi/com/sun/star/view/XPrintable.idl
new file mode 100644
index 000000000..efc4fbf9c
--- /dev/null
+++ b/offapi/com/sun/star/view/XPrintable.idl
@@ -0,0 +1,73 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_view_XPrintable_idl__
+#define __com_sun_star_view_XPrintable_idl__
+
+#include <com/sun/star/uno/XInterface.idl>
+
+#include <com/sun/star/beans/PropertyValue.idl>
+
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+
+
+
+module com { module sun { module star { module view {
+
+
+/** offers printing functionality.
+ */
+published interface XPrintable: com::sun::star::uno::XInterface
+{
+ /** @returns
+ a descriptor of the current printer.
+
+ <p>The attributes of the current printer are used for formatting.
+
+ @see PrinterDescriptor
+ */
+ sequence<com::sun::star::beans::PropertyValue> getPrinter();
+
+ /** assigns a new printer to the object.
+
+ <p>Setting a new printer will cause reformatting.
+
+ @see PrinterDescriptor
+ */
+ void setPrinter( [in] sequence<com::sun::star::beans::PropertyValue> aPrinter )
+ raises( com::sun::star::lang::IllegalArgumentException );
+
+ /** prints the object.
+
+ @param xOptions
+ specifies the number of copies and some other values which do not
+ affect formatting.
+
+ @see PrintOptions
+ */
+ void print( [in] sequence<com::sun::star::beans::PropertyValue> xOptions )
+ raises( com::sun::star::lang::IllegalArgumentException );
+
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/view/XPrintableBroadcaster.idl b/offapi/com/sun/star/view/XPrintableBroadcaster.idl
new file mode 100644
index 000000000..e2613f696
--- /dev/null
+++ b/offapi/com/sun/star/view/XPrintableBroadcaster.idl
@@ -0,0 +1,51 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_view_XPrintableBroadcaster_idl__
+#define __com_sun_star_view_XPrintableBroadcaster_idl__
+
+#include <com/sun/star/uno/XInterface.idl>
+#include <com/sun/star/view/XPrintableListener.idl>
+
+
+module com { module sun { module star { module view {
+
+/** allows for getting information about a print job.
+
+ <p>XPrintableBroadcaster can be implemented by classes which
+ implement XPrintable. It allows a XPrintableListener
+ to be registered, thus a client object will learn about the print progress.</p>
+
+ @see XPrintableListener
+ */
+published interface XPrintableBroadcaster : com::sun::star::uno::XInterface
+{
+ /** adds an XPrintableListener to be notified about print progress.
+ */
+ void addPrintableListener( [in] XPrintableListener xListener );
+
+ /** removes an XPrintableListener.
+ */
+ void removePrintableListener( [in] XPrintableListener xListener );
+};
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/view/XPrintableListener.idl b/offapi/com/sun/star/view/XPrintableListener.idl
new file mode 100644
index 000000000..89c178914
--- /dev/null
+++ b/offapi/com/sun/star/view/XPrintableListener.idl
@@ -0,0 +1,51 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_view_XPrintableListener_idl__
+#define __com_sun_star_view_XPrintableListener_idl__
+
+#include <com/sun/star/lang/XEventListener.idl>
+#include <com/sun/star/view/XPrintable.idl>
+
+#include <com/sun/star/view/PrintableStateEvent.idl>
+
+
+module com { module sun { module star { module view {
+
+/** receives events about print job progress.
+
+ <p>XPrintableListener can be registered to XPrintableBroadcaster.
+ Then, the client object will receive events about print progress. </p>
+
+ @see XPrintableBroadcaster
+ */
+published interface XPrintableListener : com::sun::star::lang::XEventListener
+{
+ /** informs the user of the new state in print progress.
+
+ @param Event
+ contains the XPrintable having changed state and the new state.
+ */
+ void stateChanged( [in] PrintableStateEvent Event );
+};
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/view/XRenderable.idl b/offapi/com/sun/star/view/XRenderable.idl
new file mode 100644
index 000000000..527bddc3b
--- /dev/null
+++ b/offapi/com/sun/star/view/XRenderable.idl
@@ -0,0 +1,92 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_view_XRenderable_idl__
+#define __com_sun_star_view_XRenderable_idl__
+
+#include <com/sun/star/uno/XInterface.idl>
+
+#include <com/sun/star/beans/PropertyValue.idl>
+
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+
+
+module com { module sun { module star { module view {
+
+
+/** represents something that can be rendered.
+
+ @since OOo 1.1.2
+ */
+published interface XRenderable : com::sun::star::uno::XInterface
+{
+
+ /** @returns
+ the count of renderers (based on paper count of a document, for example).
+
+ <p> If a selection is given, the count has to be calculated
+ based on this selection. The other methods of this interface
+ will rely on this value if called.
+
+ <p> If the selection contains a valid XModel interface,
+ it is assumed that the whole document should be rendered.
+ If the selection is empty, nothing should be rendered.
+
+ @see RenderOptions
+ */
+ long getRendererCount( [in] any aSelection, [in] sequence<com::sun::star::beans::PropertyValue> xOptions )
+ raises( com::sun::star::lang::IllegalArgumentException );
+
+
+ /** @returns
+ a descriptor of the specific renderer.
+
+ <p> returns the specific renderer properties based on the given selection.
+
+ <p> If the selection contains a valid XModel interface,
+ it is assumed that the whole document should be rendered.
+ If the selection is empty, nothing should be rendered.
+
+ @see RenderDescriptor
+ @see RenderOptions
+ */
+ sequence<com::sun::star::beans::PropertyValue> getRenderer( [in] long nRenderer, [in] any aSelection, [in] sequence<com::sun::star::beans::PropertyValue> xOptions )
+ raises( com::sun::star::lang::IllegalArgumentException );
+
+
+ /** renders the object.
+
+ <p> renders the object with the specific renderer based on the given selection.
+
+ <p> If the selection contains a valid XModel interface,
+ it is assumed that the whole document should be rendered.
+ If the selection is empty, nothing should be rendered.
+
+ @see RenderOptions
+ */
+ void render( [in] long nRenderer, [in] any aSelection, [in] sequence<com::sun::star::beans::PropertyValue> xOptions )
+ raises( com::sun::star::lang::IllegalArgumentException );
+
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/view/XScreenCursor.idl b/offapi/com/sun/star/view/XScreenCursor.idl
new file mode 100644
index 000000000..82a4a09da
--- /dev/null
+++ b/offapi/com/sun/star/view/XScreenCursor.idl
@@ -0,0 +1,48 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_view_XScreenCursor_idl__
+#define __com_sun_star_view_XScreenCursor_idl__
+
+#include <com/sun/star/uno/XInterface.idl>
+
+
+
+module com { module sun { module star { module view {
+
+
+/** makes it possible to page through the document in steps of the displayed size.
+ */
+published interface XScreenCursor: com::sun::star::uno::XInterface
+{
+ /** scrolls the view forward by one visible page.
+ */
+ boolean screenDown();
+
+ /** scrolls the view backward by one visible page.
+ */
+ boolean screenUp();
+
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/view/XSelectionChangeListener.idl b/offapi/com/sun/star/view/XSelectionChangeListener.idl
new file mode 100644
index 000000000..24fc610f4
--- /dev/null
+++ b/offapi/com/sun/star/view/XSelectionChangeListener.idl
@@ -0,0 +1,53 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_view_XSelectionChangeListener_idl__
+#define __com_sun_star_view_XSelectionChangeListener_idl__
+
+#include <com/sun/star/lang/XEventListener.idl>
+
+#include <com/sun/star/lang/EventObject.idl>
+
+
+
+module com { module sun { module star { module view {
+
+
+/** makes it possible to receive an event when the current selection changes.
+
+ @see com::sun::star::view::XSelectionSupplier
+ */
+published interface XSelectionChangeListener: com::sun::star::lang::XEventListener
+{
+
+ /** is called when the selection changes.
+
+ <p>You can get the new selection via XSelectionSupplier from
+ com::sun::star::lang::EventObject::Source.
+
+ */
+ void selectionChanged( [in] com::sun::star::lang::EventObject aEvent );
+
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/view/XSelectionSupplier.idl b/offapi/com/sun/star/view/XSelectionSupplier.idl
new file mode 100644
index 000000000..b4d0efa2e
--- /dev/null
+++ b/offapi/com/sun/star/view/XSelectionSupplier.idl
@@ -0,0 +1,70 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_view_XSelectionSupplier_idl__
+#define __com_sun_star_view_XSelectionSupplier_idl__
+
+#include <com/sun/star/uno/XInterface.idl>
+
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+
+#include <com/sun/star/view/XSelectionChangeListener.idl>
+
+
+
+module com { module sun { module star { module view {
+
+
+/** makes it possible to access and change the selection in a view.
+
+ @see OfficeDocumentView
+ */
+published interface XSelectionSupplier: com::sun::star::uno::XInterface
+{
+ /** selects the object represented by <var>xSelection</var> if it is
+ known and selectable in this object.
+ */
+ boolean select( [in] any xSelection )
+ raises( com::sun::star::lang::IllegalArgumentException );
+
+ /** @returns
+ the current selection.
+
+ <p>The selection is either specified by an object which is contained
+ in the component to which the view belongs, or it is an interface of a
+ collection which contains such objects.
+ */
+ any getSelection();
+
+ /** registers an event listener, which is called when the selection changes.
+ */
+ void addSelectionChangeListener( [in] com::sun::star::view::XSelectionChangeListener xListener );
+
+ /** unregisters an event listener which was registered with
+ XSelectionSupplier::addSelectionChangeListener().
+ */
+ void removeSelectionChangeListener( [in] com::sun::star::view::XSelectionChangeListener xListener );
+
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/view/XViewCursor.idl b/offapi/com/sun/star/view/XViewCursor.idl
new file mode 100644
index 000000000..5f20dca37
--- /dev/null
+++ b/offapi/com/sun/star/view/XViewCursor.idl
@@ -0,0 +1,101 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_view_XViewCursor_idl__
+#define __com_sun_star_view_XViewCursor_idl__
+
+#include <com/sun/star/uno/XInterface.idl>
+
+
+
+module com { module sun { module star { module view {
+
+
+/** makes it possible to move a cursor up/down/left/right within laid out text.
+
+ @see com::sun::star::table::CellCursor
+ @see com::sun::star::text::TextCursor
+ @see com::sun::star::view::XLineCursor
+ */
+published interface XViewCursor: com::sun::star::uno::XInterface
+{
+ /** moves the cursor the specified number of lines down.
+
+ @param nCount
+ specifies the number of lines to go down.
+
+ @param bExpand
+ determines whether the text range of the cursor is expanded (`TRUE`)
+ or the cursor will be just at the new position after the move (`FALSE`).
+
+ @returns
+ `TRUE` if the cursor was moved,
+ or `FALSE` if it was already in the bottom row.
+ */
+ boolean goDown( [in] short nCount, [in] boolean bExpand );
+
+ /** moves the cursor the specified number of lines up.
+
+ @param nCount
+ specifies the number of lines to go up.
+
+ @param bExpand
+ determines whether the text range of the cursor is expanded (`TRUE`)
+
+ @returns
+ `TRUE` if the cursor was moved,
+ or `FALSE` if it was already in the top row.
+ */
+ boolean goUp( [in] short nCount, [in] boolean bExpand );
+
+ /** moves the cursor the specified number of characters to the left.
+
+ @param nCount
+ specifies the number of characters to move.
+
+ @param bExpand
+ determines whether the text range of the cursor is expanded (`TRUE`)
+
+ @returns
+ `TRUE` if the cursor was moved,
+ or `FALSE` if it was already at the leftmost position.
+ */
+ boolean goLeft( [in] short nCount, [in] boolean bExpand );
+
+ /** moves the cursor the specified number of characters to the right.
+
+ @param nCount
+ specifies the number of characters to move.
+
+ @param bExpand
+ determines whether the text range of the cursor is expanded (`TRUE`)
+
+ @returns
+ `TRUE` if the cursor was moved,
+ or `FALSE` if it was already at the rightmost position.
+ */
+ boolean goRight( [in] short nCount, [in] boolean bExpand );
+
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/view/XViewSettingsSupplier.idl b/offapi/com/sun/star/view/XViewSettingsSupplier.idl
new file mode 100644
index 000000000..f00c38207
--- /dev/null
+++ b/offapi/com/sun/star/view/XViewSettingsSupplier.idl
@@ -0,0 +1,50 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef __com_sun_star_view_XViewSettingsSupplier_idl__
+#define __com_sun_star_view_XViewSettingsSupplier_idl__
+
+#include <com/sun/star/uno/XInterface.idl>
+
+#include <com/sun/star/beans/XPropertySet.idl>
+
+
+
+module com { module sun { module star { module view {
+
+
+/** provides access to the view settings of the object.
+ */
+published interface XViewSettingsSupplier: com::sun::star::uno::XInterface
+{
+
+ /** @returns
+ an interface to the ViewSettings.
+
+ <p>Subclasses might be returned instead, offering more settings. </p>
+ */
+ com::sun::star::beans::XPropertySet getViewSettings();
+
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */