From 267c6f2ac71f92999e969232431ba04678e7437e Mon Sep 17 00:00:00 2001
From: Daniel Baumann It provides the means to derive a XAccessibleContext
+ object--which may but usually is not the same object as the object that
+ supports the XAccessible interface--that provides the
+ actual information that is needed to make it accessible. Service This service has to be implemented by every class that represents the
+ actual accessibility information of another UNO service. It exposes two
+ kinds of information: A tree structure in which all accessible objects
+ are organized can be navigated in freely. It typically represents
+ spatial relationship of one object containing a set of children like a
+ dialog box contains a set of buttons. Additionally the
+ XAccessibleContext interface of this service exposes
+ methods that provide access to the actual object's content. This can be
+ the object's role, name, description, and so on. The AccessibleEventObject::OldValue and
+ AccessibleEventObject::NewValue fields contain, where
+ applicable and not otherwise stated, the old and new value of the
+ property in question. The AccessibleEventObject::OldValue and
+ AccessibleEventObject::NewValue fields contain the
+ old and new number of actions.
+ */
+ const short ACTION_CHANGED = 3;
+
+ /** State changes are signaled with this event type. Use one event for
+ every state that is set or reset. The
+ AccessibleEventObject::OldValue and
+ AccessibleEventObject::NewValue fields contain the
+ old and new value respectively. To set a state put the state id
+ into the AccessibleEventObject::NewValue field and
+ leave AccessibleEventObject::OldValue empty. To
+ reset a state put the state id into the
+ AccessibleEventObject::OldValue field and leave
+ AccessibleEventObject::NewValue empty.
+ */
+ const short STATE_CHANGED = 4;
+
+ /** Constant used to determine when the active descendant of a component
+ has changed. The active descendant is used in objects with
+ transient children. The AccessibleEventObject::NewValue
+ contains the now active object. The
+ AccessibleEventObject::OldValue contains the
+ previously active child. Empty references indicate that no child
+ has been respectively is currently active.
+ */
+ const short ACTIVE_DESCENDANT_CHANGED = 5;
+
+ /** This event indicates a change of the bounding rectangle of an
+ accessible object with respect only to its size or relative
+ position. If the absolute position changes but not the relative
+ position then it is not necessary to send an event.
+
+ Use this event rather than the
+ VISIBLE_DATA_EVENT when really only the
+ (relative) bounding box of an accessible object has changed. It is
+ much more specific than the later one and reduces the number of
+ calls an AT-Tool has to make to retrieve all affected data. The AccessibleEventObject::OldValue and
+ AccessibleEventObject::NewValue remain empty. Use
+ a call to the XAccessibleComponent::getBounds()
+ method to determine the new bounding box. If a new child has been added then
+ the AccessibleEventObject::NewValue contains a
+ reference to this new object and
+ AccessibleEventObject::OldValue remains empty. If a child has been removed then the
+ AccessibleEventObject::OldValue contains a
+ reference to this object and
+ AccessibleEventObject::NewValue remains empty. If a child has been added and another one has been removed
+ don't set both fields at the same. Send separate events
+ instead. Note that a child event is sent after a child has been added or
+ removed. Especially in the case of a removal this means that the
+ removed object does not have a parent anymore. When this API is used by Java or Gnome AT-Tools then a bridge can
+ generate the events described above automatically. Not used: The AccessibleEventObject::OldValue and
+ AccessibleEventObject::NewValue fields contain
+ references to the old and new predecessor. Note that both references
+ my be `NULL` to indicate that a flow to the sending object has not
+ existed or does not exist anymore. Not used: The AccessibleEventObject::OldValue and
+ AccessibleEventObject::NewValue fields contain
+ references to the old and new successor. Note that both references
+ my be `NULL` to indicate that a flow from the sending object has not
+ existed or does not exist anymore. The affected text ranges are represented by
+ com::sun::star::accessibility::TextSegment structures.
+
+ The content of the AccessibleEventObject::OldValue and
+ AccessibleEventObject::NewValue expresses the type
+ of text change: When broadcasting an event always prefer the first three cases
+ to the last one. Use it only as a last resort. Text ranges should be as small as possible but, of course,
+ include all the text that is involved in a modification. That means
+ that when two or more discontinuous text ranges are inserted,
+ deleted, or otherwise modified the two fields of the event have to
+ cover all the affected text ranges as well as the text in
+ between. AccessibleEventObject::OldValue contains the item to be removed. AccessibleEventObject::NewValue is empty. AccessibleEventObject::OldValue is empty. AccessibleEventObject::NewValue contains the item to be added. AccessibleEventObject::OldValue is empty. AccessibleEventObject::NewValue contains the item that has been removed. AccessibleEventObject::OldValue and
+ AccessibleEventObject::NewValue is empty. AccessibleEventObject::OldValue and
+ AccessibleEventObject::NewValue are empty.
+ The new role can be retrieved via
+ XAccessibleContext::getAccessibleRole. It is usually implemented by AccessibleContext.
+
+ @since OOo 1.1.2
+*/
+struct AccessibleEventObject: ::com::sun::star::lang::EventObject
+{
+ /** specifies the type of this event.
+
+ For a list of possible events see AccessibleEventId.
+ */
+ short EventId;
+
+ /** for events that specifies a value change, this is
+ the new value.
+
+ Depending on the #EventId, this can be void.
+ */
+ any NewValue;
+
+ /** for events that specifies a value change, this is
+ the old value.
+
+ Depending on the #EventId, this can be void.
+ */
+ any OldValue;
+
+ /**
+ For events like add/remove/update of a child, this specifies the index of the object.
+ For anything else, it should be -1.
+ @since LibreOffice 7.6
+ */
+ long IndexHint;
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/accessibility/AccessibleRelation.idl b/offapi/com/sun/star/accessibility/AccessibleRelation.idl
new file mode 100644
index 0000000000..b00ae69529
--- /dev/null
+++ b/offapi/com/sun/star/accessibility/AccessibleRelation.idl
@@ -0,0 +1,54 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module accessibility {
+
+/** An AccessibleRelation object defines a one-to-many
+ relation.
+
+ The represented relation points from the implementing object to a set
+ of target objects. Its value has to be one of the constants defined by
+ AccessibleRelationType. If that value is INVALID then
+ the whole relation is regarded as invalid. The content of the
+ TargetSet is then undefined. The content of this set is undefined if the relation's type is
+ INVALID. The set must not contain references to one object more
+ than once. This list of constants defines the available types of relations that
+ are usable by AccessibleRelation. We are using constants instead of a more typesafe enum. The reason
+ for this is that IDL enums may not be extended. Therefore, in order to
+ include future extensions to the set of roles we have to use constants
+ here. Indicates an invalid relation type. This is used to indicate
+ that a retrieval method could not find a requested relation. Indicates a content flow between the related objects. Indicates a content flow between the related objects. Indicates an object is controlled by one or more target
+ objects. Indicates an object is a controller for one or more target
+ objects. Indicates an object is a label for one or more target
+ objects. Indicates an object is labeled by one or more target objects. Indicates an object is a member of a group of one or more target
+ objects. With this relation you can realize an alternative parent-child
+ relationship. The target of the relation contains the parent
+ window. Note that there is no relation that points the other way,
+ from the parent window to the child window. Indicates an object is a cell in a tree or tree table which is
+ displayed because a cell in the same column is expanded and
+ identifies that cell. Indicates an object is described by the target object. This collection of constants defines the set of possible roles of
+ classes implementing the XAccessible interface according to
+ the Java class javax.accessibility.AccessibleRole. The role of an
+ object describes its generic function like "button", "menu", or "text".
+ You can obtain an object's role by calling the
+ getAccessibleRole() method of the
+ XAccessibleContext interface. We are using constants instead of a more typesafe enum. The reason
+ for this is that IDL enums may not be extended. Therefore, in order to
+ include future extensions to the set of roles we have to use constants
+ here. The object contains some Accessible information, but its role is
+ not known. See also FRAME, GLASS_PANE, and
+ LAYERED_PANE. A choice that can be checked or unchecked and provides a separate
+ indicator for the current state. See also PUSH_BUTTON, TOGGLE_BUTTON,
+ and RADIO_BUTTON. A list of choices the user can select from. Also optionally
+ allows the user to enter a choice of their own. A DATE_EDITOR is a component that allows users to edit date and time. See also DESKTOP_PANE and
+ INTERNAL_FRAME. A pane that supports internal frames and iconified versions of
+ those internal frames. A pane that allows the user to navigate through and select the
+ contents of a directory. May be used by a file chooser. See also FILE_CHOOSER. A top level window with title bar and a border. A dialog is
+ similar to a frame, but it has fewer properties and is often used as
+ a secondary window for an application. See also FRAME and WINDOW. The view of an actual document. Its content depends on the
+ document type. A specialized dialog that displays the files in the directory
+ and lets the user select a file, browse a different directory, or
+ specify a filename. May use the directory pane to show the contents
+ of a directory. See also DIRECTORY_PANE. An object that fills up space in a user interface. It is often
+ used in interfaces to tweak the spacing between components, but
+ serves no other purpose. A FONT_CHOOSER is a component that lets the user pick various
+ attributes for fonts. A top level window with a title bar, border, menu bar, etc. It
+ is often used as the primary window for an application. See also DIALOG, CANVAS, and
+ WINDOW. A pane that is guaranteed to be painted on top of all panes
+ beneath it. See also ROOT_PANE and CANVAS. A GROUP_BOX is a simple container that contains a
+ border around it and contains components inside it. A frame-like object that is clipped by a desktop pane. The
+ desktop pane, internal frame, and desktop icon objects are often
+ used to create multiple document interfaces within an
+ application. See also DESKTOP_ICON, DESKTOP_PANE,
+ and FRAME. See also TEXT and STATIC. A specialized pane that allows its children to be drawn in
+ layers, providing a form of stacking order. This is usually the pane
+ that holds the menu bar as well as the pane that contains most of
+ the visual components in a window. See also GLASS_PANE and
+ ROOT_PANE. An object that presents a list of objects to the user and allows
+ the user to select one or more of them. A list is usually contained
+ within a scroll pane. See also SCROLL_PANE and
+ LIST_ITEM. An object that presents an element in a list. A list is usually
+ contained within a scroll pane. See also SCROLL_PANE and LIST. An object usually found inside a menu bar that contains a list of
+ actions the user can choose from. A menu can have any object as its
+ children, but most often they are menu items, other menus, or
+ rudimentary objects such as radio buttons, check boxes, or
+ separators. For example, an application may have an "Edit" menu that
+ contains menu items for "Cut" and "Paste." See also MENU_BAR, MENU_ITEM,
+ SEPARATOR, RADIO_BUTTON,
+ CHECK_BOX, and POPUP_MENU. An object usually drawn at the top of the primary dialog box of
+ an application that contains a list of menus the user can choose
+ from. For example, a menu bar might contain menus for "File,"
+ "Edit," and "Help." See also MENU, POPUP_MENU, and
+ LAYERED_PANE. An object usually contained in a menu that presents an action the
+ user can choose. For example, the "Cut" menu item in an "Edit" menu
+ would be an action the user can select to cut the selected area of
+ text in a document. See also MENUBAR, SEPARATOR, and
+ POPUP_MENU. See also DIALOG. An object that is a child of a page tab list. Its sole child is
+ the panel that is to be presented to the user when the user selects
+ the page tab from the list of tabs in the page tab list. See also PAGE_TAB_LIST. An object that presents a series of panels (or page tabs), one at
+ a time, through some mechanism provided by the object. The most
+ common mechanism is a list of tabs at the top of the panel. The
+ children of a page tab list are all page tabs. See also PAGE_TAB. A text object used for passwords, or other places where the text
+ contents is not shown visibly to the user. A temporary window that is usually used to offer the user a list
+ of choices, and then hides when the user selects one of those
+ choices. See also MENU and MENU_ITEM. An object the user can manipulate to tell the application to do
+ something. See also CHECK_BOX, TOGGLE_BUTTON,
+ RADIO_BUTTON, BUTTON_MENU and
+ BUTTON_DROPDOWN. A specialized check box that will cause other radio buttons in
+ the same group to become unchecked when this one is checked. See also PUSH_BUTTON, TOGGLE_BUTTON,
+ and CHECK_BOX. A specialized pane that has a glass pane and a layered pane as
+ its children. See also GLASS_PANE and LAYERED_PANE. An object usually used to allow a user to incrementally view a
+ large amount of data. Usually used only by a scroll pane. See also SCROLL_PANE. An object that allows a user to incrementally view a large amount
+ of information. Its children can include scroll bars and a
+ viewport. See also SCROLL_BAR and VIEW_PORT. An object usually contained in a menu to provide a visual and
+ logical separation of the contents in a menu. For example, the
+ "File" menu of an application might contain menu items for "Open,"
+ "Close," and "Exit," and will place a separator between "Close" and
+ "Exit" menu items. See also MENU and MENU_ITEM. An object that allows the user to select from a bounded
+ range. For example, a slider might be used to select a number
+ between 0 and 100. A SPIN_BOX is a simple spinner component and its
+ main use is for simple numbers. A specialized panel that presents two other panels at the same
+ time. Between the two panels is a divider the user can manipulate to
+ make one panel larger and the other panel smaller. A STATUS_BAR is an simple component that can
+ contain multiple labels of status information to the user. An object used to present information in terms of rows and
+ columns. An example might include a spreadsheet application. An object that presents text to the user. The text is usually
+ editable by the user as opposed to a label or static text. See also LABEL and STATIC. A specialized push button that can be checked or unchecked, but
+ does not provide a separate indicator for the current state. See also PUSH_BUTTON, CHECK_BOX and
+ RADIO_BUTTON. A bar or palette usually composed of push buttons or toggle
+ buttons. It is often used to provide the most frequently used
+ functions for an application. An object that provides information about another object. The
+ accessible Description property of the tool tip is often displayed to
+ the user in a small "help bubble" when the user causes the mouse to
+ hover over the object associated with the tool tip. An object used to present hierarchical information to the
+ user. The individual nodes in the tree can be collapsed and expanded
+ to provide selective disclosure of the tree's contents. An object usually used in a scroll pane. It represents the
+ portion of the entire data that the user can see. As the user
+ manipulates the scroll bars, the contents of the viewport can
+ change. See also SCROLL_PANE. See also FRAME and DIALOG. The object represents a button that drops down a list of items. See also PUSH_BUTTON and BUTTON_MENU. The object represents a button that drops down a menu. See also PUSH_BUTTON and BUTTON_DROPDOWN. The object contains descriptive information, usually textual, about
+ another user interface element such as a table, chart, or image. The object is a graphical depiction of quantitative data. It may contain multiple
+ subelements whose attributes and/or description may be queried to obtain both
+ the quantitative data and information about how the data is being presented. A role indicating the object acts as a formula for calculating a value. The object is a container for form controls, for instance as part of a web form
+ or user-input form within a document. Usually a graphic with multiple hotspots, where each hotspot can be activated
+ resulting in the loading of another document or section of a document. An embedded note which is not visible until activated. An object representing a page of document content. It is used in documents
+ which are accessed by the user on a page by page basis. An object which describes margins and tab stops, etc. for text objects which it controls. The object is a containing instance of document content which constitutes a particular
+ "logical" section of the document. An object that presents an element in a treeAccessible
is just a wrapper for the interface
+ XAccessible
. See the interface's documentation for more
+ information.
+
+
An object which represents both hierarchical and tabular information.
+ + @since OOo 3.0 + */ + const short TREE_TABLE = 80; + + /** Comment role + +An object which represents a comment.
+ +A comment is anchored at a certain content position in the document and + annotates this document content position or a certain text range of the document content. + In the OpenDocument file format a comment is known as an annotation.
+ +See also COMMENT_END.
+ + @since OOo 3.2 + */ + const short COMMENT = 81; + + /** Comment end role + +An invisible object which represents the end position of a text range which + is annotated by a comment - see COMMENT.
+ +This object and the corresponding object representing the comment shall be + in relation of type MEMBER_OF.
+ + @since OOo 3.2 + */ + const short COMMENT_END = 82; + + /** View of a presentation document. + +It's an specific variation of DOCUMENT for presentations.
+ + @since LibreOffice 4.3 + */ + const short DOCUMENT_PRESENTATION = 83; + + /** View of an spreadsheet document. + +It's an specific variation of DOCUMENT for spreadsheets.
+ + @since LibreOffice 4.3 + */ + const short DOCUMENT_SPREADSHEET = 84; + + /** View of a text document. + +It's an specific variation of DOCUMENT for text.
+ + @since LibreOffice 4.3 + */ + const short DOCUMENT_TEXT = 85; + + /** Static text role. + +An object that presents a brief amount of information to the user. + The text is not editable by the user as opposed to a text, and not + meant to have a relation with another object as opposed to a + label.
+ +See also LABEL and TEXT.
+ + @since LibreOffice 6.2 + */ + const short STATIC = 86; + + /** Notification text role. + +An object that presents information to the user when the SHOWING state change event is + fired for the object.
+ + @since LibreOffice 7.5 + */ + const short NOTIFICATION = 87; + + /** Block quote role. + +A section of content that is quoted from another source.
+ + @since LibreOffice 24.2 + */ + const short BLOCK_QUOTE = 88; + +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/accessibility/AccessibleScrollType.idl b/offapi/com/sun/star/accessibility/AccessibleScrollType.idl new file mode 100644 index 0000000000..bcc9cc4048 --- /dev/null +++ b/offapi/com/sun/star/accessibility/AccessibleScrollType.idl @@ -0,0 +1,76 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module accessibility { + +/** Scroll types + +Describes the type of scrolling that are available for the methods of + the XAccessibleScrollableText interface.
+ + @since LibreOffice 7.0 +*/ +enum AccessibleScrollType +{ + /** + Scroll the top left corner of the object or string such that the + top left corner is within the top level window. + */ + SCROLL_TOP_LEFT, + + /** + Scroll the bottom right corner of the object or string such that the + bottom right corner is within the top level window. + */ + SCROLL_BOTTOM_RIGHT, + + /** + Scroll the top edge of the object or string such that the top edge is + within the top level window. + */ + SCROLL_TOP_EDGE, + + /** + Scroll the bottom edge of the object or string such that the bottom + edge is within the top level window. + */ + SCROLL_BOTTOM_EDGE, + + /** + Scroll the left edge of the object or string such that the left edge + is within the top level window. + */ + SCROLL_LEFT_EDGE, + + /** + Scroll the right edge of the object or string such that the right edge + is within the top level window. + */ + SCROLL_RIGHT_EDGE, + + /** + Scroll the object or string such that as much as possible of the + object or string is within the top level window. + */ + SCROLL_ANYWHERE +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/accessibility/AccessibleStateType.idl b/offapi/com/sun/star/accessibility/AccessibleStateType.idl new file mode 100644 index 0000000000..de1bfc2b8e --- /dev/null +++ b/offapi/com/sun/star/accessibility/AccessibleStateType.idl @@ -0,0 +1,252 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module accessibility { + +/** Collection of state types. + +This list of constants defines the available set of states that an + object that implements XAccessibleContext can be in.
+ +The comments describing the states is taken verbatim from the Java + Accessibility API 1.4 documentation.
+ +We are using constants instead of a more typesafe enum. The reason + for this is that IDL enums may not be extended. Therefore, in order to + include future extensions to the set of roles we have to use constants + here.
+ +These states are giving values corresponding to the bits of a 64-bit + value, since we OR them together to create bitsets to represent the + combined state of an accessibility object .
+ + @since OOo 1.1.2 +*/ +constants AccessibleStateType +{ + /** Indicates an invalid state. + */ + const hyper INVALID = 0; + + /** Indicates a window is currently the active window. + */ + const hyper ACTIVE = 1; + + /** Indicates that the object is armed. + */ + const hyper ARMED = 2; + + /** Indicates the current object is busy. + */ + const hyper BUSY = 4; + + /** Indicates this object is currently checked. + */ + const hyper CHECKED = 8; + + /** User interface object corresponding to this object no longer exists. + +Indicates the user interface object corresponding to this object + no longer exists.
+ */ + const hyper DEFUNC = 16; + + /** Indicates the user can change the contents of this object. + */ + const hyper EDITABLE = 32; + + /** Indicates this object is enabled. + */ + const hyper ENABLED = 64; + + /** Indicates this object allows progressive disclosure of its children. + */ + const hyper EXPANDABLE = 128; + + /** Indicates this object is expanded. + */ + const hyper EXPANDED = 256; + + /** Object can accept the keyboard focus. + +Indicates this object can accept keyboard focus, which means all + events resulting from typing on the keyboard will normally be passed + to it when it has focus.
+ */ + const hyper FOCUSABLE = 512; + + /** Indicates this object currently has the keyboard focus. + */ + const hyper FOCUSED = 1024; + + /** Indicates the orientation of this object is horizontal. + */ + const hyper HORIZONTAL = 2048; + + /** Indicates this object is minimized and is represented only by an + icon. + */ + const hyper ICONIFIED = 4096; + + /** Sometimes UI elements can have a state indeterminate. + This can happen e.g. if a check box reflects the bold state of text in a text processor. + When the current selection contains text which is bold and also text which is not bold, the state is indeterminate. + + */ + const hyper INDETERMINATE = 8192; + + /** Indicates the most (all) children are transient and it is not + necessary to add listener to the children. Only the active descendant + (given by the event) should be not transient to make it possible + to add listener to this object and recognize changes in this object. + + The state is added to make a performance improvement. Now it is no + longer necessary to iterate over all children to find out whether + they are transient or not to decide whether to add listener or not. + If there is an object with this state no one should iterate over the + children to add listener. Only the active descendant should get + listener if it is not transient. + */ + const hyper MANAGES_DESCENDANTS = 16384; + + /** Object is modal. + +Indicates something must be done with this object before the user + can interact with an object in a different window.
+ */ + const hyper MODAL = 32768; + + /** Indicates this (text) object can contain multiple lines of text + */ + const hyper MULTI_LINE = 65536; + + /** More than one child may be selected at the same time. + +Indicates this object allows more than one of its children to be + selected at the same time.
+ */ + const hyper MULTI_SELECTABLE = 131072; + + /** Indicates this object paints every pixel within its rectangular + region. + */ + const hyper OPAQUE = 262144; + + /** Indicates this object is currently pressed. + */ + const hyper PRESSED = 524288; + + /** Indicates the size of this object is not fixed. + */ + const hyper RESIZABLE = 1048576; + + /** Object is selectable. + +Indicates this object is the child of an object that allows its + children to be selected, and that this child is one of those + children that can be selected.
+ */ + const hyper SELECTABLE = 2097152; + + /** Object is selected. + +Indicates this object is the child of an object that allows its + children to be selected, and that this child is one of those + children that has been selected.
+ */ + const hyper SELECTED = 4194304; + + /** Indicates this object is sensitive. + */ + const hyper SENSITIVE = 8388608; + + /** Object is displayed on the screen. + +An object has set the SHOWING state if itself and + all of its parents have set the VISIBLE state and it + lies at least partly inside the visible area of its parent. It is, + though, not necessarily visible on the screen because it may be + occluded by other objects.
+ */ + const hyper SHOWING = 16777216; + + /** Indicates this (text) object can contain only a single line of text + */ + const hyper SINGLE_LINE = 33554432; + + /** Object information is stale and might not be up to date + +Indicates that the information that is returned from this object + might be out of sync with the application.
+ */ + const hyper STALE = 67108864; + + /** Indicates this object is transient. + */ + const hyper TRANSIENT= 134217728; + + /** Indicates the orientation of this object is vertical. + */ + const hyper VERTICAL = 268435456; + + /** Object wants to be displayed on the screen. + +A set VISIBLE state indicates that an object wants + to be displayed on the screen. It is displayed, as indicated by a + set SHOWING state, if all of its parents have also + set the VISIBLE state and the object lies at least + partly in the visible area of its parent.
+ */ + const hyper VISIBLE = 536870912; + + // The following constants have been introduced with the IA2 CWS: + + // MOVEABLE only exists in MSAA/IA2, but not in ATK/JAA/NSAccessibility. + /** Indicates the position of the object is not fixed. + */ + const hyper MOVEABLE = 1073741824; + + // DEFAULT exists in MSAA/IA2, and now also in ATK and NSAccessibility. + /** Indicates the object is the default button in a window + */ + const hyper DEFAULT = 2147483648; + + // OFFSCREEN only exists in MSAA/IA2, but not in ATK/JAA/NSAccessibility. + // MT: Shouldn't this be the same like !SHOWING in UAA/ATK? + /** Indicates the object is outside of the screen area + */ + const hyper OFFSCREEN = 4294967296; + + // COLLAPSED exists in MSAA/IA2, and now also in JAA, but not in ATK/NSAccessibility. In NSAccessibility, there is a notification for collapse. + // In opposite to MSAA, UAA has EXPANDABLE, so EXPANDABLE && !EXPANDED should be the same like COLLAPSED. + /** Indicates that the object is collapsed + */ + const hyper COLLAPSE = 8589934592; + + /** Indicates this object is checkable, i.e. it has the potential + to be checked. + See also the CHECKED state. + */ + const hyper CHECKABLE = 17179869184; + +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/accessibility/AccessibleTableModelChange.idl b/offapi/com/sun/star/accessibility/AccessibleTableModelChange.idl new file mode 100644 index 0000000000..5c5088c17b --- /dev/null +++ b/offapi/com/sun/star/accessibility/AccessibleTableModelChange.idl @@ -0,0 +1,75 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module accessibility { + +/** This structure lets an event give access to a change of a table model. + +The data members of the AccessibleTableModelChange structure + give access to the type and cell range of a change of a table model. See + AccessibleTableModelChangeType for details of the change + type. The range of the affected rows, columns, and/or cells can be + obtained by accessing the other four data members.
+ + @since OOo 1.1.2 +*/ +struct AccessibleTableModelChange +{ + /** The type of the event as defined in + AccessibleTableModelChangeType. + +The model change either inserted or removed one or more rows + or columns or modified the content of a number of cells. See + AccessibleTableModelChangeType for details of the type + of the model change.
+ */ + short Type; + + /** The lowest index of a row that has changed. + +The first row that has been changed or that contains + modified cells.
+ */ + long FirstRow; + + /** The highest index of a row that has changed. + +The last row that has been changed or that contains modified + cells.
+ */ + long LastRow; + + /** The lowest index of a column that has changed. + +The first column that has been changed or contains modified + cells.
+ */ + long FirstColumn; + + /** The highest index of a column that has changed. + +The last column that has been changed or contains modified + cells.
+ */ + long LastColumn; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/accessibility/AccessibleTableModelChangeType.idl b/offapi/com/sun/star/accessibility/AccessibleTableModelChangeType.idl new file mode 100644 index 0000000000..23e549f397 --- /dev/null +++ b/offapi/com/sun/star/accessibility/AccessibleTableModelChangeType.idl @@ -0,0 +1,98 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module accessibility { + +/** Type of a change made to a table model. + +The value of this constants group are used by the + AccessibleTableModelChange structure to specify the + type of change that has been made to a table model.
+ +Four of the constants, + AccessibleTableModelChangeType::ROWS_INSERTED, + AccessibleTableModelChangeType::COLUMNS_INSERTED, + AccessibleTableModelChangeType::ROWS_REMOVED and + AccessibleTableModelChangeType::COLUMNS_REMOVED describe + changes to the table's geometry. One or more rows or columns have + been inserted or removed. In contrast, the remaining constant + AccessibleTabelModelChangeType::UPDATE specifies a + change of the table's content.
+ + @since OOo 1.1.2 +*/ +constants AccessibleTableModelChangeType +{ + /** Some of the table data has changed. + +The number of rows and columns remains unchanged. Only (some of) + the content of the cells in the range that is specified by the + fields of the AccessibleTableModelChange structure have + been changed.
+ */ + const short UPDATE = 3; + + /** One or more rows have been inserted. + +Use the fields of the AccessibleTableModelChange + structure to determine the indices of the rows that + have been inserted. + Column indices should be set to -1.
+ + @since LibreOffice 7.4 + */ + const short ROWS_INSERTED = 4; + + /** One or more columns have been inserted. + +Use the fields of the AccessibleTableModelChange + structure to determine the indices of the columns that + have been inserted. + Row indices should be set to -1.
+ + @since LibreOffice 7.4 + */ + const short COLUMNS_INSERTED = 5; + + /** One or more rows have been removed. + +Use the fields of the AccessibleTableModelChange + structure to determine the indices of the rows that + have been removed. + Column indices should be set to -1.
+ + @since LibreOffice 7.4 + */ + const short ROWS_REMOVED = 6; + + /** One or more columns have been removed. + +Use the fields of the AccessibleTableModelChange + structure to determine the indices of the columns that + have been removed. + Row indices should be set to -1.
+ + @since LibreOffice 7.4 + */ + const short COLUMNS_REMOVED = 7; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/accessibility/AccessibleTextType.idl b/offapi/com/sun/star/accessibility/AccessibleTextType.idl new file mode 100644 index 0000000000..6f93980e2f --- /dev/null +++ b/offapi/com/sun/star/accessibility/AccessibleTextType.idl @@ -0,0 +1,94 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module accessibility { + + +/** Collection of types of text portions. + +This collection describes the types of text portions that can be + accessed with the help of the methods of the + XAccessibleText interface.
+ + @since OOo 1.1.2 +*/ +constants AccessibleTextType +{ + /** Single character. + +Indicates that single (multibyte) characters are used.
+ */ + const short CHARACTER = 1; + + /** Single word. + +Indicates that single words are used. The definition of what a + word is, is implementation and language/locale dependent. While in + English a word is ended by a space or a special character like a + comma or a period, this is not necessarily true in other + languages.
+ */ + const short WORD = 2; + + /** Single sentence. + +Indicates that single sentences are used. The definition of what + a sentence is, is implementation and language/locale dependent. + While in English a sentence is ended by a period, this is not + necessarily true in other languages.
+ */ + const short SENTENCE = 3; + + /** Single paragraph. + +Indicates that single paragraphs are used. The definition of + what a paragraph is, is implementation and language/locale + dependent.
+ */ + const short PARAGRAPH = 4; + + /** Single line. + +Indicates that single lines, as displayed on the screen, are + used. In contrast to the constants CHARACTER, + WORD, SENTENCE, and + PARAGRAPH which are content oriented this constant is + view oriented. It can be used to retrieve hyphenation + information.
+ */ + const short LINE = 5; + + /** Single glyph. + +Glyphs are runs of one or more (multibyte) characters which are + displayed as one symbol.
+ */ + const short GLYPH = 6; + + /** Attribute run. + +Each attribute run is a character run of maximal length where all + characters have the same attributes set.
+ */ + const short ATTRIBUTE_RUN = 7; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/accessibility/IllegalAccessibleComponentStateException.idl b/offapi/com/sun/star/accessibility/IllegalAccessibleComponentStateException.idl new file mode 100644 index 0000000000..66a34160ae --- /dev/null +++ b/offapi/com/sun/star/accessibility/IllegalAccessibleComponentStateException.idl @@ -0,0 +1,39 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module accessibility { + +/** Indicates invalid or unavailable state information. + +This exception is thrown to indicate the an accessibility component + has been queried for state information that it can not provide. Used by + XAccessibleContext::getLocale().
+ + @see XAccessibleContext::getLocale() + + @since OOo 1.1.2 +*/ +exception IllegalAccessibleComponentStateException + : ::com::sun::star::uno::Exception +{ +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/accessibility/MSAAService.idl b/offapi/com/sun/star/accessibility/MSAAService.idl new file mode 100644 index 0000000000..dc89126df1 --- /dev/null +++ b/offapi/com/sun/star/accessibility/MSAAService.idl @@ -0,0 +1,26 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module accessibility { + +service MSAAService: XMSAAService; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/accessibility/TextSegment.idl b/offapi/com/sun/star/accessibility/TextSegment.idl new file mode 100644 index 0000000000..e964d8441b --- /dev/null +++ b/offapi/com/sun/star/accessibility/TextSegment.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 . + */ + +module com { module sun { module star { module accessibility { + +/** This structure describes a text segment that is embedded in a larger + portion of text. It is used for example by the + XAccessibleText interface to describe a text portion that + was inserted into or deleted from an accessible text. + +The indices TextSegment::SegmentStart and + TextSegment::SegmentEnd refer to the enclosing text. + The TextSegment::SegmentText member contains the text + between these two indices including the start index but not the end + index. With it you can use this structure without having to + access the XAccessibleText interface that represents the + enclosing text.
+ +An empty text segment is expressed by + TextSegment::SegmentStart and + TextSegment::SegmentEnd set to the same value. While a + value of -1 signals an error (like the request for a word after the last + character of a text) all other values define the empty string at that + position.
+ +The #SegmentText member is a copy of the + corresponding text segment of the enclosing text. Modifying this + structure does not alter the enclosing text.
+ + @see XAccessibleText + + @since OOo 1.1.2 +*/ + +struct TextSegment +{ + /** A copy of the text segment of the enclosing text delimited by the + text indices TextSegment::SegmentStart and + TextSegment::SegmentEnd. Modifying it does not + alter the enclosing text. + */ + string SegmentText; + + /** Index of the first character of the text segment represented by this + structure. The index refers to the enclosing text. + */ + long SegmentStart; + + /** Index of the character directly behind the last character of the + text segment represented by this structure. The index refers to the + enclosing text. + */ + long SegmentEnd; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/accessibility/XAccessible.idl b/offapi/com/sun/star/accessibility/XAccessible.idl new file mode 100644 index 0000000000..ce162ff2fa --- /dev/null +++ b/offapi/com/sun/star/accessibility/XAccessible.idl @@ -0,0 +1,71 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module accessibility { + + interface XAccessibleContext; + +/** This interface has to be implemented by any class that wants to be + accessible. + +It is used to provide access to the XAccessibleContext + interface but allows at the same time that the interface is implemented + by another class.
+ +The distinction between the interfaces XAccessible and + XAccessibleContext makes it possible to split up the + implementation of the + class that is made accessible and the actual accessibility code into two + (mostly) independent parts. The only necessary dependence is the + XAccessible::getAccessibleContext() function + that returns the accessible context. This one-way link has to be + persistent in some sense: As long as there is at least one reference to + a specific XAccessibleContext object the + XAccessible object has to return the same context for every + call to XAccessible::getAccessibleContext(). + This is necessary to allow the use of object identity for comparing + accessibility contexts for being equal.
+ + @see AccessibleContext + + @since OOo 1.1.2 +*/ +interface XAccessible : ::com::sun::star::uno::XInterface +{ + /** Returns the AccessibleContext associated with this object. + +The idea to let this interface only return an + XAccessibleContext instead of directly supporting its + functions is to allow the separation of the implementation of the + functions that make a class accessible from the implementation of + that class. You may, of course, implement XAccessible + and XAccessibleContext in one class.
+ + @return + A reference to the object that contains the actual accessibility + information. + + @see AccessibleContext + */ + XAccessibleContext getAccessibleContext (); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/accessibility/XAccessibleAction.idl b/offapi/com/sun/star/accessibility/XAccessibleAction.idl new file mode 100644 index 0000000000..bae281c8e9 --- /dev/null +++ b/offapi/com/sun/star/accessibility/XAccessibleAction.idl @@ -0,0 +1,105 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module accessibility { + + interface XAccessibleKeyBinding; + +/** Implement this interface to give access to actions that can be executed + for accessible objects. + +Every accessible object that can be manipulated beyond its methods + exported over the accessibility API should support this interface to + expose all actions that it can perform. Each action can be performed or + be queried for a description or associated key bindings.
+ + @since OOo 1.1.2 +*/ +interface XAccessibleAction : ::com::sun::star::uno::XInterface +{ + /** Returns the number of accessible actions available in this object. + +If there are more than one, the first one is considered the + "default" action of the object.
+ + @return + The returned value of the number of actions is zero if there are + no actions. + */ + long getAccessibleActionCount (); + + /** Perform the specified Action on the object. + + @param nIndex + This index specifies the action to perform. If it lies outside + the valid range `FALSE` is returned and no action is performed. + @return + Returns `TRUE` if the action was successfully performed. If + the action could not be performed successfully `FALSE` is + returned. + + @throws IndexOutOfBoundsException + If no action with the given index exists then an + ::com::sun::star::lang::IndexOutOfBoundsException + exception is thrown. + */ + boolean doAccessibleAction ([in] long nIndex) + raises (::com::sun::star::lang::IndexOutOfBoundsException); + + /** Returns a description of the specified action of the object. + + @param nIndex + This index specifies the action of which to return a + description. If it lies outside the valid range an empty string + is returned. + + @return + The returned value is a localized string of the specified action. + + @throws IndexOutOfBoundsException + If the given index lies not in the valid range then an + ::com::sun::star::lang::IndexOutOfBoundsException + exception is thrown. + */ + string getAccessibleActionDescription ([in] long nIndex) + raises (::com::sun::star::lang::IndexOutOfBoundsException); + + /** Returns a key binding object, if there is one, associated with the + specified action. Note that there can be several alternative key + bindings for an action. See XAccessibleKeyBinding for + more information about how key bindings are represented. + + @param nIndex + This index specifies the action of which to return the key + binding. + + @return + The returned object describes a set of key bindings associated + with the specified action. + + @throws IndexOutOfBoundsException + if the given index is not valid. + */ + XAccessibleKeyBinding getAccessibleActionKeyBinding ([in] long nIndex) + raises (::com::sun::star::lang::IndexOutOfBoundsException); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/accessibility/XAccessibleComponent.idl b/offapi/com/sun/star/accessibility/XAccessibleComponent.idl new file mode 100644 index 0000000000..66f1d4b46b --- /dev/null +++ b/offapi/com/sun/star/accessibility/XAccessibleComponent.idl @@ -0,0 +1,200 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module accessibility { + + interface XAccessible; + +/** The XAccessibleComponent interface should be supported by + any class that can be rendered on the screen. + +This interface provides the standard mechanism for an assistive
+ technology to retrieve information concerning the graphical
+ representation of an object. This interface combines methods from
+ the Java interfaces javax.accessibility.AccessibleComponent
+ and javax.accessibility.AccessibleExtendedComponent
.
Further information about the graphical appearance of an object can + be expressed with the XAccessibleExtendedComponent + interface.
+ +Coordinates used by the functions of this interface are specified in + different coordinate systems. Their scale is the same and is equal to + that of the screen coordinate system. In other words all coordinates + are measured in pixel. They differ in their respective origin: +
Key bindings which are associated with an accessible component can be + retrieved at the component's action. The reason for this is that key + bindings are associated with actions and directly with a component. + This distinction becomes important when there are more than one action. + To get access to the key bindings you have to get the + XAccessibleAction interface of a component, provided that + it is supported, and use the XAccessibleAction::getAccessibleKeyBinding(). +
+ + @see XAccessibleExtendedComponent + + @since OOo 1.1.2 +*/ +interface XAccessibleComponent : ::com::sun::star::uno::XInterface +{ + /** Tests whether the specified point lies within this object's bounds. + +The test point's coordinates are defined relative to the + coordinate system of the object. That means that when the object is + an opaque rectangle then both the points (0,0) and (width-1,height-1) + would yield a `TRUE` value.
+ + @param Point + Coordinates of the point to test. The origin of the coordinate + system is the upper left corner of the object's bounding box as + returned by the getBounds(). The scale of the + coordinate system is identical to that of the screen coordinate + system. + + @return + Returns `TRUE` if the point lies within or on the object's bounding + box and `FALSE` otherwise. + */ + boolean containsPoint ([in] ::com::sun::star::awt::Point Point); + + /** Returns the Accessible child that is rendered under the given point. + +The test point's coordinates are defined relative to the + coordinate system of the object. That means that when the object is + an opaque rectangle then both the points (0,0) and (width-1,height-1) + are points inside of the object. + + @param Point + Coordinates of the test point for which to find the Accessible + child. The origin of the coordinate system is the upper left + corner of the object's bounding box as returned by the + getBounds(). The scale of the coordinate + system is identical to that of the screen coordinate system. + + @return + If there is one child which is rendered so that its bounding box + contains the test point then a reference to that object is + returned. If there is more than one child which satisfies that + condition then a reference to that one is returned that is + painted on top of the others. If there is no child which is + rendered at the test point an empty reference is returned. + */ + XAccessible getAccessibleAtPoint ([in] ::com::sun::star::awt::Point Point); + + /** Returns the bounding box of this object. + +
The returned bounding box has the form of a rectangle. Its + coordinates are relative to the object's parent coordinate system. + Note that the two methods getLocation() and + getSize() return the same information. With method + getLocationOnScreen() you can get the bound box + position in screen coordinates.
+ + @return + The coordinates of the returned rectangle are relative to this + object's parent or relative to the screen on which this object + is rendered if it has no parent. If the object is not on any + screen the returned rectangle is empty and located at position + (0,0). + */ + ::com::sun::star::awt::Rectangle getBounds (); + + /** Returns the location of the upper left corner of the object's + bounding box relative to the parent. + +The coordinates of the bounding box are given relative to the + parent's coordinate system.
+ + @return + The coordinates of the returned position are relative to this + object's parent or relative to the screen on which this object + is rendered if it has no parent. If the object is not on any + screen the returned position is (0,0). + */ + ::com::sun::star::awt::Point getLocation (); + + /** Returns the location of the upper left corner of the object's + bounding box in screen coordinates. + +This method returns the same point as does the method + getLocation(). The difference is that the + coordinates are absolute screen coordinates of the screen to which + the object is rendered instead of being relative to the object's + parent.
+ + @return + The coordinates of the returned position are relative to the + screen on which this object is rendered. If the object is not + on any screen the returned position is (0,0). + */ + ::com::sun::star::awt::Point getLocationOnScreen (); + + /** Returns the size of this object's bounding box. + + @return + The returned size is the size of this object or empty if it is + not rendered on any screen. + */ + ::com::sun::star::awt::Size getSize(); + + /** Grabs the focus to this object. + +If this object can not accept the focus,
+ i.e. isFocusTraversable() returns `FALSE` for this
+ object then nothing happens. Otherwise the object will attempt to
+ take the focus. Nothing happens if that fails, otherwise the object
+ has the focus. This method is called requestFocus
in
+ the Java Accessibility API 1.4.
This interface serves two purposes: On the one hand it gives access + to the tree structure in which all accessible objects are + organized. Each node in this tree supports this interface. On the other + hand it gives access to objects that expose the represented content. + That are role, state, name, description, and relations to other objects. + Take an OK button of a dialog as an example. Its role is + AccessibleRole::BUTTON, its name is "OK", and its description + is something like "Accepts all changes made in the dialog".
+ + @since OOo 1.1.2 +*/ +interface XAccessibleContext : ::com::sun::star::uno::XInterface +{ + /** Return the number of children. + +Returns the number of accessible children of the object.
+ + @return + The returned value is non-negative. + */ + hyper getAccessibleChildCount(); + + /** Returns the i-th child of this object. + +The order in which the children are enumerated is implementation + dependent.
+ + @param i + The index may have any value. If it is outside the range from 0 + to n-1, with n being the number of children as returned by + XAccessibleContext::getAccessibleChild() an empty + reference is returned. + @return + If the object has an i-th child the returned value is a + reference to that child. Otherwise an empty reference is + returned. + @throws ::com::sun::star::lang::IndexOutOfBoundsException + If no child with the given index exists then an + ::com::sun::star::lang::IndexOutOfBoundsException + exception is thrown. + */ + XAccessible getAccessibleChild ([in] hyper i) + raises (::com::sun::star::lang::IndexOutOfBoundsException); + + /** Returns the parent of this object. + +This function may be called for every node, including the root + node, of the accessible tree.
+ + @return + The returned reference points to a valid object for all but the + root node. If called for the root node an empty reference is + returned. + */ + XAccessible getAccessibleParent (); + + /** Returns the index of this object in its accessible parent. + +If you call getAccessibleChild on the object's parent with the + index returned by this function you get a reference to this + object.
+ + @return + The returned index is zero based. + */ + hyper getAccessibleIndexInParent (); + + /** Returns the role of this object. + +The role is a generic description of an objects function. The + relation between role and name is similar to the relation between + class and object.
+ + @return + The returned value is a role defined in the enumeration + AccessibleRole. + + @see AccessibleRole + for a list of the available roles. + */ + short getAccessibleRole (); + + /** Returns the object's description. + +Returns the object's localized description. The description should + complement the more generic descriptions given by an object's role + and name.
+ + @return + The returned string is the object's localized description. + */ + string getAccessibleDescription (); + + /** Return the object's localized name. + +See XAccessibleContext::getAccessibleRole()'s + documentation for the relation between an object's name and role. + Names should be unique, at least between children of the same + parent, although the uniqueness is neither enforced nor used inside + the API.
+ + @return + The returned string is the object's localized name. + */ + string getAccessibleName (); + + /** Returns the set of relations defined for this object. + +The returned set of relations is a copy of this object's relation + set: changing the returned object does not change this object's + relations.
+ +There are two ways to represent an empty list of relations: + Return an empty reference or return a valid object that contains an + empty list. + + @return + The returned value is either an empty reference or a reference to + a valid object that represents a copy of the objects list of + relations. + */ + XAccessibleRelationSet getAccessibleRelationSet (); + + /** Returns the set of states that are currently active for this + object. + +
See the documentation of AccessibleStateType for a + description of the individual states.
+ + @see AccessibleStateType + */ + hyper getAccessibleStateSet (); + + /** Returns the locale of the component. + +This locale is used for example to determine the language to use + for the name and description texts.
+ + @return + If this object does not have a locale, the locale of its parent + is returned. If it does not have (yet) a parent it throws the + exception IllegalAccessibleComponentStateException. + + @throws IllegalAccessibleComponentStateException + when this object does not (yet) have a parent. + */ + ::com::sun::star::lang::Locale getLocale () + raises (IllegalAccessibleComponentStateException); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/accessibility/XAccessibleContext2.idl b/offapi/com/sun/star/accessibility/XAccessibleContext2.idl new file mode 100644 index 0000000000..1110f57358 --- /dev/null +++ b/offapi/com/sun/star/accessibility/XAccessibleContext2.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 . + */ + +module com { module sun { module star { module accessibility { + +/** Implement this interface for exposing more aspects of a class's + content. + +This is an extension of XAccessibleContext to add getAccessibleId().
+ + @since LibreOffice 6.3 +*/ +interface XAccessibleContext2 : ::com::sun::star::accessibility::XAccessibleContext +{ + /** Return the object's identifier. + +This is not meant to be presented to the user, but to be an ID + which is stable over application development. Typically, this is + the gtkbuilder ID. Such an ID can then be used to identify a given + well-known accessible object independently from the current locale, + user-visible labelling, or dialog structure. This can then be used for + tailored screen reading (e.g. automatically announcing the content of a + well-known object), or for automatic regression testing (to check the + behavior of well-known objects). Uniqueness within the window is thus + desirable when returning a non-empty string.
+ + @return + The returned string is the object's identifier. + */ + string getAccessibleId (); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/accessibility/XAccessibleContext3.idl b/offapi/com/sun/star/accessibility/XAccessibleContext3.idl new file mode 100644 index 0000000000..b7022dd347 --- /dev/null +++ b/offapi/com/sun/star/accessibility/XAccessibleContext3.idl @@ -0,0 +1,40 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module accessibility { + + interface XAccessible; + +/** Implement this interface to speed up operations when iterating over large amounts of children. + * + @since LibreOffice 6.4 +*/ +interface XAccessibleContext3 : ::com::sun::star::uno::XInterface +{ + /** Return the children. + +The order in which the children are enumerated is implementation + dependent.
+ */ + sequenceThis interface is typically used in conjunction with the + XAccessibleText interface and extents it about the ability + to modify the text represented by that interface.
+ + @since OOo 1.1.2 +*/ +interface XAccessibleEditableText + : ::com::sun::star::accessibility::XAccessibleText +{ + /** Copies the text range into the clipboard. + +The specified text between and including the two given indices is + copied into the system clipboard and is deleted afterwards from the + text represented by this object. This is equivalent to calling + first XAccessibleText::copyText() and then + XAccessibleEditableText::deleteText() with the given + start and end indices.
+ +The text indices are interpreted like those in the + XAccessibleText::getTextRange() method.
+ + @param nStartIndex + Start index of the text to moved into the clipboard. + The valid range is 0..length. + + @param nEndIndex + End index of the text to moved into the clipboard. + The valid range is 0..length. + + @return + Returns a flag that indicates whether the operation has been + executed successfully. + + @throws ::com::sun::star::lang::IndexOutOfBoundsException + if the indices are invalid + */ + boolean cutText ([in] long nStartIndex, [in] long nEndIndex) + raises (::com::sun::star::lang::IndexOutOfBoundsException); + + /** Pastes text from the clipboard. + +The text in the system clipboard is pasted into the text + represented by this object at the given index. This method is + similar to the XAccessibleEditableText::insertText() + method. If the index is not valid then the system clipboard text is + not inserted.
+ + @param nIndex + Index at which to insert the text from the system clipboard into + the text represented by this object. + The valid range is 0..length. + + @return + Returns a flag that indicates whether the operation has been + executed successfully. + + @throws ::com::sun::star::lang::IndexOutOfBoundsException + if the index is invalid + */ + boolean pasteText ([in] long nIndex) + raises (::com::sun::star::lang::IndexOutOfBoundsException); + + /** Deletes a range of text. + +The text between and including the two given indices is deleted + from the text represented by this object.
+ +The text indices are interpreted like those in the + XAccessibleText::getTextRange() method.
+ + @param nStartIndex + Start index of the text to be deleted. + The valid range is 0..length. + + @param nEndIndex + End index of the text to be deleted. + The valid range is 0..length. + + @return + Returns a flag that indicates whether the operation has been + executed successfully. + + @throws ::com::sun::star::lang::IndexOutOfBoundsException + if the indices are invalid + */ + boolean deleteText ([in] long nStartIndex, [in] long nEndIndex) + raises (::com::sun::star::lang::IndexOutOfBoundsException); + + /** Inserts text at the specified position. + +The specified string is inserted at the given index into the text + represented by this object.
+ + @param sText + Text that is inserted. + + @param nIndex + Index at which to insert the text. + The valid range is 0..length. + + @return + Returns a flag that indicates whether the operation has been + executed successfully. + + @throws ::com::sun::star::lang::IndexOutOfBoundsException + if the indices are invalid + */ + boolean insertText ([in] string sText, [in] long nIndex) + raises (::com::sun::star::lang::IndexOutOfBoundsException); + + /** Replaces text. + +The text between the two given indices is replaced + by the specified replacement string. This method is + equivalent to calling first + XAccessibleEditableText::deleteText() with the two + indices and afterwards calling + XAccessibleEditableText::insertText() with the + replacement text and the start index.
+ +The text indices are interpreted like those in the + XAccessibleText::getTextRange() method.
+ + @param nStartIndex + Start index of the text to be replaced. + The valid range is 0..length. + + @param nEndIndex + Start index of the text to be replaced. + The valid range is 0..length. + + @param sReplacement + The Text that replaces the text between the given indices. + + @return + Returns a flag that indicates whether the operation has been + executed successfully. + + @throws ::com::sun::star::lang::IndexOutOfBoundsException + if the indices are invalid + */ + boolean replaceText ([in] long nStartIndex, [in] long nEndIndex, + [in] string sReplacement) + raises (::com::sun::star::lang::IndexOutOfBoundsException); + + /** Replaces the attributes of a text range by the given set of + attributes. + +Sets the attributes for the text between and including the two + given indices to those given. The old attributes of this text + portion are replaced by the new list of attributes.
+ +The text indices are interpreted like those in the + XAccessibleText::getTextRange() method.
+ + @param nStartIndex + Start index of the text whose attributes are modified. + The valid range is 0..length. + + @param nEndIndex + Start index of the text whose attributes are modified. + The valid range is 0..length. + + @param aAttributeSet + Set of attributes that replaces the old list of attributes of + the specified text portion. + + @return + Returns a flag that indicates whether the operation has been + executed successfully. + + @throws ::com::sun::star::lang::IndexOutOfBoundsException + if the indices are invalid + */ + boolean setAttributes ([in] long nStartIndex, [in] long nEndIndex, + [in] sequence<::com::sun::star::beans::PropertyValue> aAttributeSet) + raises (::com::sun::star::lang::IndexOutOfBoundsException); + + /** Replaces the whole text with the given text. + +The text content of this object is set to the given string.
+ + @param sText + The new text that replaces the old text. + + @return + Returns a flag that indicates whether the operation has been + executed successfully. + */ + boolean setText ([in] string sText); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/accessibility/XAccessibleEventBroadcaster.idl b/offapi/com/sun/star/accessibility/XAccessibleEventBroadcaster.idl new file mode 100644 index 0000000000..ed589d0f31 --- /dev/null +++ b/offapi/com/sun/star/accessibility/XAccessibleEventBroadcaster.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 . + */ + +module com { module sun { module star { module accessibility { + + interface XAccessibleEventListener; + +/** makes it possible to register listeners which are called whenever + an accessibility event (see AccessibleEventObject) occurs. + + @see AccessibleEventObject + @see XAccessibleEventListener + + @since OOo 1.1.2 + */ +interface XAccessibleEventBroadcaster: ::com::sun::star::uno::XInterface +{ + + /** registers the given XAccessibleEventListener. + */ + void addAccessibleEventListener( [in] XAccessibleEventListener xListener ); + + + /** unregisters the given XAccessibleEventListener. + */ + void removeAccessibleEventListener( [in] XAccessibleEventListener xListener ); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/accessibility/XAccessibleEventListener.idl b/offapi/com/sun/star/accessibility/XAccessibleEventListener.idl new file mode 100644 index 0000000000..fdf6aedd19 --- /dev/null +++ b/offapi/com/sun/star/accessibility/XAccessibleEventListener.idl @@ -0,0 +1,39 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module accessibility { + +/** makes it possible to register a component as a listener, which is called whenever + an accessibility event occurs. + + @see XAccessibleEventBroadcaster + + @since OOo 1.1.2 + */ +interface XAccessibleEventListener: ::com::sun::star::lang::XEventListener +{ + + /** is called whenever an accessible event (see AccessibleEventObject) occurs. + */ + void notifyEvent( [in] AccessibleEventObject aEvent ); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/accessibility/XAccessibleExtendedAttributes.idl b/offapi/com/sun/star/accessibility/XAccessibleExtendedAttributes.idl new file mode 100644 index 0000000000..3ba748f9f5 --- /dev/null +++ b/offapi/com/sun/star/accessibility/XAccessibleExtendedAttributes.idl @@ -0,0 +1,30 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module accessibility { + +interface XAccessibleExtendedAttributes : ::com::sun::star::uno::XInterface +{ + /** Returns the attributes specific to this object, like a cell's formula. */ + any getExtendedAttributes() raises (::com::sun::star::lang::IndexOutOfBoundsException); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/accessibility/XAccessibleExtendedComponent.idl b/offapi/com/sun/star/accessibility/XAccessibleExtendedComponent.idl new file mode 100644 index 0000000000..d8d755fe0b --- /dev/null +++ b/offapi/com/sun/star/accessibility/XAccessibleExtendedComponent.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 . + */ + +module com { module sun { module star { module accessibility { + +/** The XAccessibleExtendedComponent interface contains + additional methods to those of the XAccessibleComponent + interface. These methods provide information that is used not as often. The + division into two interfaces allows classes to support the more + frequently used methods of the XAccessibleComponent + interface and only support the XAccessibleExtendedComponent + interface if that makes sense for the class. + +This interface provides extended access to retrieve information
+ concerning the graphical representation of an object. This interface
+ combines methods from the Java interfaces
+ javax.accessibility.AccessibleComponent
and
+ javax.accessibility.AccessibleExtendedComponent
.
This method stems from the Java interface
+ AccessibleExtendedComponent
.
This method stems from the Java interface
+ AccessibleExtendedComponent
.
Single hyperlinks correspond to simple <a href> tags. Groups + of hyperlinks are contained in client side image maps. Linked objects + and anchors are implementation dependent. This interface inherits the + XAccessibleAction interface. Especially that interface's + XAccessibleAction::getActionCount() method is needed to + obtain a maximum value for the indices passed to the + XAccessibleHyperlink::getAccessibleActionAnchor() and + XAccessibleHyperlink::getAccessibleActionObject() + methods.
+ +Furthermore, the object that implements this interface has to be + connected implicitly or explicitly with an object that implements the + XAccessibleText interface. The XAccessibleHyperlink::getStartIndex() and + XAccessibleHyperlink::getEndIndex() methods return + indices with respect to the text exposed by that interface.
+ + @since OOo 1.1.2 +*/ +interface XAccessibleHyperlink : + ::com::sun::star::accessibility::XAccessibleAction +{ + /** Returns an object that represents the link anchor, as appropriate + for that link. + +For an HTML link for example, this method would return the string + enclosed by the <&a href> tag.
+ + @param nIndex + This index identifies the anchor when, as in the case of an + image map, there is more than one link represented by this + object. The valid maximal index can be determined by calling + the XAccessibleAction::getActionCount() method. + + @return + If the index is not valid then an exception is thrown. + Otherwise it returns an implementation dependent value. + */ + any getAccessibleActionAnchor ([in] long nIndex) + raises (::com::sun::star::lang::IndexOutOfBoundsException); + + /** Returns an object that represents the link anchor, as appropriate + for that link. + +For an HTML link for example, this method would return the URL of + the <&a href> tag.
+ + @param nIndex + This index identifies the action object when, as in the case of + an image map, there is more than one link represented by this + object. The valid maximal index can be determined by calling + the XAccessibleAction::getActionCount() method. + + @return + If the index is not valid then an exception is thrown. + Otherwise it returns an implementation dependent value. + */ + any getAccessibleActionObject ([in] long nIndex) + raises (::com::sun::star::lang::IndexOutOfBoundsException); + + /** Returns the index at which the textual representation of the + hyperlink (group) starts. + +The returned value relates to the XAccessibleText + interface that owns this hyperlink.
+ + @return + The index relates to the text exposed by the + XAccessibleHypertext interface. + */ + long getStartIndex (); + + /** Returns the index at which the textual representation of the + hyperlink (group) ends. + +The returned value relates to the XAccessibleText + interface that owns this hyperlink.
+ + @return + The index relates to the text exposed by the + XAccessibleText interface. + */ + long getEndIndex (); + + /** Returns whether the document referenced by this links is + still valid. + +This is a volatile state that may change without further warning + like e.g. sending an appropriate event.
+ + @return + Returns `TRUE` if the referenced document is still valid and + `FALSE` otherwise. + */ + boolean isValid (); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/accessibility/XAccessibleHypertext.idl b/offapi/com/sun/star/accessibility/XAccessibleHypertext.idl new file mode 100644 index 0000000000..7b7c4d81e2 --- /dev/null +++ b/offapi/com/sun/star/accessibility/XAccessibleHypertext.idl @@ -0,0 +1,97 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module accessibility { + + interface XAccessibleHyperlink; + + +/** Implement this interface to expose the hypertext structure of a document. + +The XAccessibleHypertext interface is the main interface + to expose hyperlinks in a document, typically a text document, that are + used to reference other (parts of) documents. For supporting the + XAccessibleHypertext::getLinkIndex() method of this + interface and other character related methods of the + XAccessibleHyperlink interface, it is necessary to also + support the XAccessibleText interface.
+ + @see XAccessibleHyperlink, XAccessibleText + + @since OOo 1.1.2 +*/ +interface XAccessibleHypertext + : ::com::sun::star::accessibility::XAccessibleText +{ + /** Returns the number of links and link groups contained within this + hypertext document. + + @return + The number of links and link groups within this hypertext + document. Returns 0 if there is no link. + */ + long getHyperLinkCount (); + + /** Return the specified link. + +The returned XAccessibleHyperlink object + encapsulates the hyperlink and provides several kinds of information + describing it.
+ + @param nLinkIndex + This index specifies the hyperlink to return. + + @return + If the given index is valid, i.e. lies in the interval from 0 + to the number of links minus one, a reference to the specified + hyperlink object is returned. If the index is invalid then an + empty reference is returned. + */ + XAccessibleHyperlink getHyperLink ([in] long nLinkIndex) + raises (::com::sun::star::lang::IndexOutOfBoundsException); + + + /** Returns the index of the hyperlink that is associated with this + character index. + +In a HTML document this is the case when a <a href> tag + spans (includes) the given character index.
+ + @param nCharIndex + Index of the character for which to return the link index. If + the XAccessibleText interface is used to represent + the text containing the link, then the character index is only + valid if it is greater than or equal to zero and lower than the + number of characters in the text. See that interface's + documentation for more details. + + @return + Returns the index of the hyperlink that is associated with this + character index, or throws an exception if there is no hyperlink + associated with this index. + + @see XAccessibleText. + */ + long getHyperLinkIndex ([in] long nCharIndex) + raises (::com::sun::star::lang::IndexOutOfBoundsException); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/accessibility/XAccessibleImage.idl b/offapi/com/sun/star/accessibility/XAccessibleImage.idl new file mode 100644 index 0000000000..f9511c6361 --- /dev/null +++ b/offapi/com/sun/star/accessibility/XAccessibleImage.idl @@ -0,0 +1,71 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module accessibility { + +/** Implement this interface to represent images and icons. + +This interface is used for a representation of images like icons of + buttons. The corresponding interface of the Java Accessibility API is + AccessibleIcon. This interface lets you retrieve an image's size and + description.
+ + @since OOo 1.1.2 +*/ +interface XAccessibleImage : ::com::sun::star::uno::XInterface +{ + /** Returns the localized description of the image. + +It depends on the usage of an image whether the description + should express the image's function (e.g. for icons) or the actual + content of the image (e.g. for image maps or non-iconic images + embedded into a document.)
+ + @return + Returns a localized string that describes the image's function + or content. + */ + string getAccessibleImageDescription (); + + /** Returns the height of the image. + +The height is returned in units specified by the parents + coordinate system.
+ + @return + Returns the image's height with respect to the parent's + coordinate system. + */ + long getAccessibleImageHeight (); + + /** Returns the width of the image. + +The width is returned in units specified by the parents + coordinate system.
+ + @return + Returns the image's width with respect to the parent's + coordinate system. + */ + long getAccessibleImageWidth (); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/accessibility/XAccessibleKeyBinding.idl b/offapi/com/sun/star/accessibility/XAccessibleKeyBinding.idl new file mode 100644 index 0000000000..3c5fbfa97f --- /dev/null +++ b/offapi/com/sun/star/accessibility/XAccessibleKeyBinding.idl @@ -0,0 +1,72 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module accessibility { + +/** This interface can be used to represent any number of key bindings which + then can be associated to a certain action. + +There can be zero, one, or more key bindings. Each key binding consists + of a sequence of ::com::sun::star::awt::KeyStroke + objects. The association of an action with a key binding is established + by the XAccessibleAction interface returning an + XAccessibleKeyBinding object.
+ +A key binding describes alternative ways how to invoke an action with + pressing one or more keys after each other. Each individual sequence of + key strokes
+ + @since OOo 1.1.2 +*/ +interface XAccessibleKeyBinding : ::com::sun::star::uno::XInterface +{ + /** Return the number of available key bindings. + @return + The returned value may be 0 to indicate that there are no key + bindings or the positive number of the available key bindings. + */ + long getAccessibleKeyBindingCount (); + + /** The returned sequence of key strokes describes one method to invoke + the associated action (the one from which you obtained the object at + which you called this method) by pressing keys. The keys specified + by each of the returned key strokes have to be pressed at the same + time (the Control-key and the A-key for example). The keys of + one key stroke have to be released before pressing those of the + next. The order of the key strokes in the sequence define the order + in which to press them. + @param nIndex + The index selects one of alternative key bindings. It has to + non-negative and smaller then the number of key bindings as + returned by the getAccessibleKeyBindingCount() + method. + @return + The returned sequence of key strokes specifies one way to invoke + the associated action. The sequence may be empty (but should + not be; better not to return such a key binding at all). + @throws ::com::sun::star::lang::IndexOutOfBoundsException + if the index is not valid. + */ + sequence<::com::sun::star::awt::KeyStroke> getAccessibleKeyBinding ([in] long nIndex) + raises (::com::sun::star::lang::IndexOutOfBoundsException); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/accessibility/XAccessibleMultiLineText.idl b/offapi/com/sun/star/accessibility/XAccessibleMultiLineText.idl new file mode 100644 index 0000000000..048f302e2a --- /dev/null +++ b/offapi/com/sun/star/accessibility/XAccessibleMultiLineText.idl @@ -0,0 +1,127 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module accessibility { + +/** Implement this interface to give provide a mapping between text index + and line numbers. + +This interface is typically used in conjunction with the + XAccessibleText interface and extents it with a notion + of line numbers
+ + @since OOo 3.0 +*/ + +/// not yet published +interface XAccessibleMultiLineText + : ::com::sun::star::accessibility::XAccessibleText +{ + /** Returns the line number at the specified index. + +For a text object that is spread over multiple lines, this method + provides a mapping from a text index to the corresponding line number. +
+ + @param nIndex + Index for which the line number should be returned. + The valid range is 0..length. + + @return + Returns the line number of the specified text index. + + @throws ::com::sun::star::lang::IndexOutOfBoundsException + if the index is invalid. + */ + long getLineNumberAtIndex([in] long nIndex) + raises (::com::sun::star::lang::IndexOutOfBoundsException); + + /** Returns the text of the specified line. + +Returns the substring of text that makes up the specified line + number.
+ +The number of lines can be obtained by calling + XAccessibleMultiLineText::getLineNumberAtIndex() + with the index of the last character. In a loop, the last line + has been reached when TextSegment::SegmentEnd + of the returned value is equal to the index of the last + character of the text.
+ + @param nLineNo + The number of the line to return the substring from. + The valid range is 0..getLineNumberAtIndex(getCharacterCount()). + + @return + Returns the requested text portion. This portion may be empty + or invalid when no appropriate text portion is found. + + @throws ::com::sun::star::lang::IndexOutOfBoundsException + if the line number is invalid + */ + + TextSegment getTextAtLineNumber([in] long nLineNo) + raises (::com::sun::star::lang::IndexOutOfBoundsException); + + /** Returns the text of the line in which the caret is located. + +The substring returned will most of the time be identical to + calling XAccessibleText::getTextAtIndex() with + the index returned by XAccessibleText::getCaretPosition() + and type AccessibleTextType::LINE beside the + following special case:
+ +Some text implementations place the caret at the end of the current + line when the End key gets pressed. Since the index of this position + is identical to the one of the first character of the following line, + XAccessibleMultiLineText::getLineNumberAtIndex() will + return the line following the current one in this case.
+ + @return + Returns the requested text portion. This portion may be empty + or invalid if the paragraph object does not have a valid caret + position. + */ + + TextSegment getTextAtLineWithCaret(); + + /** Returns the number of the line in which the caret is located. + +The line number returned will most of the time be identical to + calling XAccessibleMultiLineText::getLineNumberAtIndex() + with the index returned by XAccessibleText::getCaretPosition() + beside the following special case:
+ +Some text implementations place the caret at the end of the current + line when the End key gets pressed. Since the index of this position + is identical to the one of the first character of the following line, + XAccessibleMultiLineText::getLineNumberAtIndex() will + return the line following the current one in this case.
+ + @return + Returns the index of the line in which the caret is located or -1 + if the paragraph does not have a valid caret position. + */ + + long getNumberOfLineWithCaret(); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/accessibility/XAccessibleRelationSet.idl b/offapi/com/sun/star/accessibility/XAccessibleRelationSet.idl new file mode 100644 index 0000000000..c58fb38b5a --- /dev/null +++ b/offapi/com/sun/star/accessibility/XAccessibleRelationSet.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 . + */ + +module com { module sun { module star { module accessibility { + +/** Implement this interface to give access to an object's set of relations. + +Such relation are modeled with the AccessibleRelation + structure. This interface is used for representing sets of relations + between Accessible objects. Most of the convenience + methods of the corresponding AccessibleRelationSet interface of the Java + Accessibility API have been removed from this interface in order to + clean it up. These methods are add(), + addAll(), clear(), and + remove(). The other methods have been renamed to achieve + a greater conformance with the other accessibility interfaces.
+ + @since OOo 1.1.2 +*/ +interface XAccessibleRelationSet : ::com::sun::star::uno::XInterface +{ + /** Returns the number of relations in this relation set. + + @return + Returns the number of relations or zero if there are none. + */ + long getRelationCount (); + + /** Returns the relation of this relation set that is specified by + the given index. + + @param nIndex + This index specifies the relation to return. + + @return + For a valid index, i.e. inside the range 0 to the number of + relations minus one, the returned value is the requested + relation. If the index is invalid then the returned relation + has the type INVALID. + + */ + AccessibleRelation getRelation ([in] long nIndex) + raises (::com::sun::star::lang::IndexOutOfBoundsException); + + /** Tests whether the relation set contains a relation matching the + specified key. + + @param aRelationType + The type of relation to look for in this set of relations. This + has to be one of the constants of + AccessibleRelationType. + + @return + Returns `TRUE` if there is a (at least one) relation of the + given type and `FALSE` if there is no such relation in the set. + */ + boolean containsRelation ([in] short aRelationType); + + /** Retrieve and return the relation with the given relation type. + + @param aRelationType + The type of the relation to return. This has to be one of the + constants of AccessibleRelationType. + + @return + If a relation with the given type could be found than (a copy + of) this relation is returned. Otherwise a relation with the + type INVALID is returned. + */ + AccessibleRelation getRelationByType ([in] short aRelationType); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/accessibility/XAccessibleSelection.idl b/offapi/com/sun/star/accessibility/XAccessibleSelection.idl new file mode 100644 index 0000000000..206d552ee2 --- /dev/null +++ b/offapi/com/sun/star/accessibility/XAccessibleSelection.idl @@ -0,0 +1,145 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module accessibility { + + interface XAccessible; + +/** Implement this interface to represent a selection of accessible objects. + +This interface is the standard mechanism to obtain and modify the + currently selected children. Every object that has children that can be + selected should support this interface.
+ +The XAccessibleSelection interface has to be implemented + in conjunction with the XAccessibleContext interface that + provides the children on which the first operates.
+ +It depends on the class implementing this interface, whether it + supports single or multi selection.
+ + @since OOo 1.1.2 +*/ +interface XAccessibleSelection : ::com::sun::star::uno::XInterface +{ + /** Selects the specified Accessible child of the + object. + +Depending on the implementing class the child is added to the + current set a selected children (multi selection) or a previously + selected child is deselected first (single selection).
+ + @param nChildIndex + Index of the child which is to add to the selection. This index + refers to all the children of this object. + @throws ::com::sun::star::lang::IndexOutOfBoundsException + if the given index does not lie in the valid range of 0 up to + the result of + XAccessibleContext::getAccessibleChildCount()-1. + */ + void selectAccessibleChild ([in] hyper nChildIndex) + raises (::com::sun::star::lang::IndexOutOfBoundsException); + + /** Determines if the specified child of this object is selected. + + @param nChildIndex + Index of the child for which to detect whether it is selected. + This index refers to all the children of this object. + + @return + Returns `TRUE` if the specified child is selected and `FALSE` + if it is not selected. + @throws ::com::sun::star::lang::IndexOutOfBoundsException + if the given index does not lie in the valid range of 0 up to + the result of + XAccessibleContext::getAccessibleChildCount()-1. + */ + boolean isAccessibleChildSelected ([in] hyper nChildIndex) + raises (::com::sun::star::lang::IndexOutOfBoundsException); + + /** Clears the selection, so that no children of the + object are selected. + */ + void clearAccessibleSelection (); + + /** Select all children. + +Causes every child of the object to be selected if the object + supports multiple selections. If multiple selection is not + supported then the first child, if it exists, is selected and all + other children are deselected.
+ */ + void selectAllAccessibleChildren (); + + /** Returns the number of Accessible children that are currently + selected. + +This number specifies the valid interval of indices that can be + used as arguments for the method + XAccessibleSelection::getSelectedAccessibleChild().
+ + @return + Returns the number of selected children of this object or 0 if + no child is selected. + */ + hyper getSelectedAccessibleChildCount (); + + /** Returns the specified selected Accessible child. + + @param nSelectedChildIndex + This index refers only to the selected children, not to all the + children of this object. Even if all children are selected, the + indices enumerating the selected children need not be the same + as those enumerating all children. If only single selection is + supported the only valid value is 0. + + @return + If the index is valid, i.e. not negative and lower than the + number of selected children, then a valid reference to the + corresponding XAccessible child is returned. + Otherwise an exception is thrown. + @throws ::com::sun::star::lang::IndexOutOfBoundsException + if the given index does not lie in the valid range of 0 up to + the result of + XAccessibleRelationSet::getAccessibleChildCount()-1. + */ + XAccessible getSelectedAccessibleChild ([in] hyper nSelectedChildIndex) + raises (::com::sun::star::lang::IndexOutOfBoundsException); + + /** Removes the specified child from the set of this object's + selected children. Note that not all applications support + deselection: calls to this method may be silently ignored. + + @param nChildIndex + This index refers to all children not just the selected ones. + If the specified child is not selected or it can not be + deselected for any reason then the method call is silently + ignored. + @throws ::com::sun::star::lang::IndexOutOfBoundsException + if the given index does not lie in the valid range of 0 up to, + but not including, the result of + XAccessibleContext::getAccessibleChildCount(). + */ + void deselectAccessibleChild ([in] hyper nChildIndex) + raises (::com::sun::star::lang::IndexOutOfBoundsException); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/accessibility/XAccessibleTable.idl b/offapi/com/sun/star/accessibility/XAccessibleTable.idl new file mode 100644 index 0000000000..0fd06cbad8 --- /dev/null +++ b/offapi/com/sun/star/accessibility/XAccessibleTable.idl @@ -0,0 +1,369 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module accessibility { + + interface XAccessible; + +/** Implement this interface to give access to a two-dimensional table. + +The XAccessibleTable interface is used to represent
+ two-dimensional tables. This interface combines the two interfaces
+ javax.accessibility.AccessibleTable
and
+ javax.accessibility.AccessibleExtendedTable
of the Java Accessibility API
+ (version 1.4).
All XAccessible objects that represent cells or + cell-clusters of a table have to be at the same time children of the + table. This is necessary to be able to convert row and column indices + into child indices and vice versa with the methods + XAccessibleTable::getAccessibleIndex(), + XAccessibleTable::getAccessibleRow(), and + XAccessibleTable::getAccessibleColumn().
+ +The range of valid coordinates for this interface are implementation + dependent. However, that range includes at least the intervals + from the first row or column with the index 0 up to the last (but not + including) used row or column as returned by + XAccessibleTable::getAccessibleRowCount() and + XAccessibleTable::getAccessibleColumnCount(). In case of + Calc the current range of valid indices for retrieving data include + the maximum table size minus one.
+ + @since OOo 1.1.2 +*/ +interface XAccessibleTable : ::com::sun::star::uno::XInterface +{ + /** Returns the number of used rows in the table. + +The implementation, however, may allow the access of columns + beyond this number.
+ + @return + Returns the number of used rows in the table or 0 for an empty + table. + */ + long getAccessibleRowCount (); + + /** Returns the number of used columns in the table. + +The implementation, however, may allow the access of columns + beyond this number.
+ + @return + Returns the number of used columns in the table or 0 for an empty + table. + */ + long getAccessibleColumnCount (); + + /** Returns the description text of the specified row in the + table. + + @param nRow + The index of the row for which to retrieve the description. + + @return + Returns the description text of the specified row in the table + if such a description exists. Otherwise an empty string is + returned. + @throws ::com::sun::star::lang::IndexOutOfBoundsException + if the specified row index is not valid, i.e. lies not inside + the valid range of 0 up to + XAccessibleTable::getAccessibleRowCount() - 1. + + */ + string getAccessibleRowDescription ([in] long nRow) + raises (::com::sun::star::lang::IndexOutOfBoundsException); + + /** Returns the description text of the specified column in the + table. + + @param nColumn + The index of the column for which to retrieve the description. + + @return + Returns the description text of the specified row in the table + if such a description exists. Otherwise an empty string is + returned. + @throws ::com::sun::star::lang::IndexOutOfBoundsException + if the specified column index is not valid, i.e. lies not inside + the valid range of 0 up to + XAccessibleTable::getAccessibleColumnCount() - 1. + */ + string getAccessibleColumnDescription ([in] long nColumn) + raises (::com::sun::star::lang::IndexOutOfBoundsException); + + /** Returns the number of rows occupied by the Accessible at the + specified row and column in the table. + +The result differs from 1 if the specified cell spans multiple + rows.
+ + @param nRow + Row index of the accessible for which to return the column + extent. + + @param nColumn + Column index of the accessible for which to return the column + extent. + + @return + Returns the row extent of the specified cell. + + @throws ::com::sun::star::lang::IndexOutOfBoundsException + if the specified row index is not valid, i.e. lies not inside + the valid range of 0 up to + XAccessibleTable::getAccessibleRowCount() - 1. + */ + long getAccessibleRowExtentAt ([in] long nRow, [in] long nColumn) + raises (::com::sun::star::lang::IndexOutOfBoundsException); + + /** Returns the number of columns occupied by the Accessible at the + specified row and column in the table. + +The result differs from 1 if the specified cell spans multiple + columns.
+ + @param nRow + Row index of the accessible for which to return the column + extent. + + @param nColumn + Column index of the accessible for which to return the column + extent. + + @return + Returns the column extent of the specified. + + @throws ::com::sun::star::lang::IndexOutOfBoundsException + if the specified column index is not valid, i.e. lies not inside + the valid range of 0 up to + XAccessibleTable::getAccessibleColumnCount() - 1. + */ + long getAccessibleColumnExtentAt ([in] long nRow, [in] long nColumn) + raises (::com::sun::star::lang::IndexOutOfBoundsException); + + /** Returns the row headers as an XAccessibleTable + object. + +Content and size of the returned table are implementation + dependent.
+ + @return + Returns always a valid reference to an + XAccessibleTable object. + */ + XAccessibleTable getAccessibleRowHeaders (); + + /** Returns the column headers as an XAccessibleTable + object. + +Content and size of the returned table are implementation + dependent.
+ + @return + Returns always a valid reference to an + XAccessibleTable object. + */ + XAccessibleTable getAccessibleColumnHeaders (); + + /** Returns a list of the indices of completely selected rows in a + table. + + @return + The returned sequence contains indices of all completely + selected rows in the table. This sequence is in ascending + order. If no row is selected then the sequence is empty. + */ + sequenceThis method has been renamed from the Java name
+ getAccessibleAt
to
+ XAccessibleTable::getAccessibleCellAt() to avoid
+ ambiguities with the
+ XAccessibleComponent::getAccessibleAt() method when
+ accessed, for instance, from StarBasic.
This is the same index that would be returned by calling + XAccessibleContext::getAccessibleIndexInParent() for + that accessible object.
+ + @param nRow + Row index of the accessible object for which to return the child + index. + + @param nColumn + Row index of the accessible object for which to return the child + index. + + @return + Child index of the specified accessible object or -1 if one or + both of the given indices is/are invalid. + */ + hyper getAccessibleIndex ([in] long nRow, [in] long nColumn) + raises (::com::sun::star::lang::IndexOutOfBoundsException); + + /** Translate the given child index into the corresponding row + index. + + @param nChildIndex + Index of the child of the table for which to return the row + index. + + @return + Returns the row index of the cell of the specified child or the + index of the first row if the child spans multiple rows. + + @throws ::com::sun::star::lang::IndexOutOfBoundsException + if nChildIndex addresses an invalid row. + */ + long getAccessibleRow ([in] hyper nChildIndex) + raises (::com::sun::star::lang::IndexOutOfBoundsException); + + /** Translate the given child index into the corresponding column + index. + + @param nChildIndex + Index of the child of the table for which to return the column + index. + + @return + Returns the column index of the cell of the specified child or + the index of the first column if the child spans multiple + columns. + + @throws ::com::sun::star::lang::IndexOutOfBoundsException + if nChildIndex addresses an invalid column. + */ + long getAccessibleColumn ([in] hyper nChildIndex) + raises (::com::sun::star::lang::IndexOutOfBoundsException); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/accessibility/XAccessibleTableSelection.idl b/offapi/com/sun/star/accessibility/XAccessibleTableSelection.idl new file mode 100644 index 0000000000..daf2dfd9ce --- /dev/null +++ b/offapi/com/sun/star/accessibility/XAccessibleTableSelection.idl @@ -0,0 +1,35 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module accessibility { + +interface XAccessible; + +interface XAccessibleTableSelection : ::com::sun::star::uno::XInterface +{ + boolean selectRow ([in] long row) raises (::com::sun::star::lang::IndexOutOfBoundsException); + boolean unselectRow ([in] long row) raises (::com::sun::star::lang::IndexOutOfBoundsException); + + boolean selectColumn ([in] long column) raises (::com::sun::star::lang::IndexOutOfBoundsException); + boolean unselectColumn ([in] long column) raises (::com::sun::star::lang::IndexOutOfBoundsException); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/accessibility/XAccessibleText.idl b/offapi/com/sun/star/accessibility/XAccessibleText.idl new file mode 100644 index 0000000000..4f7066a827 --- /dev/null +++ b/offapi/com/sun/star/accessibility/XAccessibleText.idl @@ -0,0 +1,512 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module accessibility { + +/** Implement this interface to give read-only access to a text. + +The XAccessibleText interface should be implemented by + all UNO components that present textual information on the display like + buttons, text entry fields, or text portions of the document window. + The interface provides access to the text's content, attributes, and + spatial location. However, text can not be modified with this + interface. That is the task of the XAccessibleEditableText + interface.
+ +The text length, i.e. the number of characters in the text, is + returned by XAccessibleText::getCharacterCount(). + All methods that operate on particular characters (e.g. + XAccessibleText::getCharacterAt()) use character + indices from 0 to length-1. All methods that operate on character + positions (e.g. XAccessibleText::getTextRange()) + use indices from 0 to length.
+ +Please note that accessible text does not necessarily support + selection. In this case it should behave as if there where no + selection. An empty selection is used for example to express the + current cursor position.
+ + @since OOo 1.1.2 +*/ +interface XAccessibleText : ::com::sun::star::uno::XInterface +{ + /** Return the position of the caret. + +Returns the offset of the caret. The caret is often called text + cursor. The caret is actually the position between two characters. + Its position/offset is that of the character to the right of it.
+ + @return + The returned offset is relative to the text represented by this + object. + */ + long getCaretPosition (); + + /** Set the position of the caret. + +The caret is often called text cursor. The caret is actually the + position between two characters. Its position/offset is that of the + character to the right of it.
+ +Setting the caret position may or may not alter the current + selection. A change of the selection is notified to the + accessibility event listeners with an + AccessibleEventId::ACCESSIBLE_SELECTION_EVENT.
+ +When the new caret position differs from the old one (which, of + course, is the standard case) this is notified to the accessibility + event listeners with an + AccessibleEventId::ACCESSIBLE_CARET_EVENT.
+ + @param nIndex + The new index of the caret. This caret is actually placed to + the left side of the character with that index. An index of 0 + places the caret so that the next insertion goes before the + first character. An index of getCharacterCount() + leads to insertion after the last character. + + @return + Returns `TRUE` if the caret has been moved and `FALSE` + otherwise. A `TRUE` value does not necessarily mean that the + caret has been positioned exactly at the required position. + If that position lies inside a read-only area the caret is + positioned before or behind it. Listen to the caret event to + determine the new position. + + @throws ::com::sun::star::lang::IndexOutOfBoundsException + if the index is not valid. + */ + boolean setCaretPosition ([in] long nIndex) + raises (::com::sun::star::lang::IndexOutOfBoundsException); + + /** Return the character at the specified position. + +Returns the character at the given index.
+ + @param nIndex + The index of the character to return. + The valid range is 0..length-1. + + @return + the character at the index nIndex. + + @throws ::com::sun::star::lang::IndexOutOfBoundsException + if the index is invalid + */ + char getCharacter ([in] long nIndex) + raises (::com::sun::star::lang::IndexOutOfBoundsException); + + /** Get the attribute set for the specified position. + +Returns a set of attributes that are associated for the character + at the given index. To prevent the method from returning possibly + large sets of attributes that the caller is not interested in the + caller has to provide a list of attributes that he wants to be + returned.
+ + @param nIndex + The index of the character for which to return its attributes. + The valid range is 0..length-1. + + @param aRequestedAttributes + This string sequence defines the set of attributes that the + caller is interested in. When there are attributes defined that + are not listed in the sequence then they are not returned. When + there are requested attributes that are not defined for the + character then they are ignored, too. + +An empty sequence signals the callers interest in all the + attributes. This is useful in two cases: a) Simply as a way to + avoid passing a potentially large array to the called object or + b) when the caller does not know what attributes the called + objects supports but is interested in all of them + nevertheless.
+ + @return + Returns the explicitly or implicitly (empty + aRequestedAttributes argument) requested attributes + of the specified character. Each attribute is represented by a + ::com::sun::star::beans::PropertyValue + object. The returned list of attribute descriptions contains + all attributes that are both members of the sequence of + requested attributes and are defined for the character at the + specified index. + + @throws ::com::sun::star::lang::IndexOutOfBoundsException + if the index is invalid + + @see CharacterProperties + */ + sequence<::com::sun::star::beans::PropertyValue> + getCharacterAttributes ( + [in] long nIndex, + [in] sequenceReturns the bounding box of the indexed character.
+ +The virtual character after the last character of the represented
+ text, i.e. the one at position length is a special case. It
+ represents the current input position and will therefore typically
+ be queried by AT more often than other positions. Because it does
+ not represent an existing character its bounding box is defined in
+ relation to preceding characters. It should be roughly equivalent to
+ the bounding box of some character when inserted at the end of the
+ text. Its height typically being the maximal height of all the
+ characters in the text or the height of the preceding character, its
+ width being at least one pixel so that the bounding box is not
+ degenerate.
+ Note that the index "length" is not always valid. Whether it is
+ or not is implementation dependent. It typically is when text is
+ editable or otherwise when on the screen the caret can be placed
+ behind the text. You can be sure that the index is valid after you
+ have received an AccessibleEventId::CARET event
+ for this index.
Returns the number of characters in the text represented by this + object or, in other words, the text length.
+ + @return + Returns the number of characters of this object's text. A zero + value indicates an empty text. + */ + long getCharacterCount (); + + + /** Return the text position for the specified screen position. + +Given a point in local coordinates, i.e. relative to the + coordinate system of the object, return the zero-based index of + the character under that point. The same functionality could be + achieved by using the bounding boxes for each character as returned + by XAccessibleText::getCharacterBounds(). The method + XAccessibleText::getIndexAtPoint(), however, can be + implemented in a more efficient way.
+ + @param aPoint + The position for which to look up the index of the character + that is rendered on to the display at that point. + + @return + Index of the character under the given point or -1 if the point + is invalid or there is no character under the point. + */ + long getIndexAtPoint ([in] ::com::sun::star::awt::Point aPoint); + + /** Return the selected text. + +Returns the portion of the text that is selected.
+ + @return + The returned text is the selected portion of the object's text. + If no text is selected when this method is called or when + selection is not supported an empty string is returned. + */ + string getSelectedText (); + + /** Return the position of the start of the selection. + +Returns the index of the start of the selected text.
+ + @return + If there is no selection or selection is not supported the + position of selection start and end will be the same undefined + value. + */ + long getSelectionStart (); + + /** Return the position of the end of the selection. + +Returns the index of the end of the selected text.
+ + @return + If there is no selection or selection is not supported the + position of selection start and end will be the same undefined + value. + */ + long getSelectionEnd (); + + /** Set a new selection. + +Sets the selected text portion according to the given indices. + The old selection is replaced by the new selection.
+ +The selection encompasses the same string of text that + XAccessibleText::getTextRange() would have + selected. See there for details.
+ +Setting the selection may or may not change the caret position. + Typically the caret is moved to the position after the second + argument. When the caret is moved this is notified to the + accessibility event listeners with an + AccessibleEventId::ACCESSIBLE_CARET_EVENT.
+ + @param nStartIndex + The first character of the new selection. + The valid range is 0..length. + + @param nEndIndex + The position after the last character of the new selection. + The valid range is 0..length. + + @return + Returns `TRUE` if the selection has been set successfully and + `FALSE` otherwise or when selection is not supported. + + @throws ::com::sun::star::lang::IndexOutOfBoundsException + if the indices are invalid + */ + boolean setSelection ([in] long nStartIndex, [in] long nEndIndex) + raises (::com::sun::star::lang::IndexOutOfBoundsException); + + /** Return the whole text. + +Returns the complete text. This is equivalent to a call to
+ XAccessibleText::getTextRange() with the arguments
+ zero and getCharacterCount()-1
.
Returns the substring between the two given indices.
+ +The substring starts with the character at nStartIndex + (inclusive) and up to the character at nEndIndex (exclusive), + if nStartIndex is less or equal nEndIndex. If nEndIndex is + lower than nStartIndex, the result is the same as a call with + the two arguments being exchanged.
+ +The whole text can be requested by passing the indices zero and
+ getCharacterCount()
. If both indices have the same
+ value, an empty string is returned.
Returns the substring of the specified text type that contains + the character at the given index, if any. For example, given the + text type AccessibleTextType::WORD, the word + which contains the character at position nIndex is returned, or an + empty string if no word is found at the that position.
+ + @param nIndex + Index of the character whose containing text portion is to be + returned. + The valid range is 0..length. + + @param nTextType + The type of the text portion to return. See + AccessibleTextType for the complete list. + + @return + Returns the requested text portion. This portion may be empty + or invalid when no appropriate text portion is found or text + type is invalid. + + @throws ::com::sun::star::lang::IndexOutOfBoundsException + if the index is invalid + @throws ::com::sun::star::lang::IllegalArgumentException + if the given text type is not valid. + */ + TextSegment getTextAtIndex([in] long nIndex, [in] short nTextType) + raises (::com::sun::star::lang::IndexOutOfBoundsException, + ::com::sun::star::lang::IllegalArgumentException); + + /** Get a text portion before the given position. + +Returns the substring of the specified text type that is + located before the given character and does not include + it. The result of this method should be same as a result for + XAccessibleText::getTextAtIndex() with a + suitably decreased index value.
+ +For example, if text type is + AccessibleTextType::WORD, then the complete word + that is closest to and located before nIndex is returned.
+ +If the index is valid, but no suitable word (or other text + type) is found, an empty text segment is returned.
+ + @param nIndex + Index of the character for which to return the text part before + it. The index character will not be part of the returned + string. + The valid range is 0..length. + + @param nTextType + The type of the text portion to return. See + AccessibleTextType for the complete list. + + @return + Returns the requested text portion. This portion may be empty + or invalid when no appropriate text portion is found or text + type is invalid. + + @throws ::com::sun::star::lang::IndexOutOfBoundsException + if the index is invalid. + @throws ::com::sun::star::lang::IllegalArgumentException + if the given text type is not valid. + */ + TextSegment getTextBeforeIndex([in] long nIndex, [in] short nTextType) + raises (::com::sun::star::lang::IndexOutOfBoundsException, + ::com::sun::star::lang::IllegalArgumentException); + + /** Get a text portion behind the given position. + +Returns the substring of the specified text type that is + located after the given character and does not include + it. The result of this method should be same as a result for + XAccessibleText::getTextAtIndex() with a + suitably increased index value.
+ +For example, if text type is + AccessibleTextType::WORD, then the complete word + that is closest to and located behind nIndex is returned.
+ +If the index is valid, but no suitable word (or other text + type) is found, an empty string is returned.
+ + @param nIndex + Index of the character for which to return the text part after + it. The index character will not be part of the returned string. + The valid range is 0..length. + + @param nTextType + The type of the text portion to return. See + AccessibleTextType for the complete list. + + @return + Returns the requested text portion. This portion may be empty + or invalid when no appropriate text portion is found or text + type is invalid. + + @throws ::com::sun::star::lang::IndexOutOfBoundsException + if the index is invalid + @throws ::com::sun::star::lang::IllegalArgumentException + if the given text type is not valid. + */ + TextSegment getTextBehindIndex([in] long nIndex, [in] short nTextType) + raises (::com::sun::star::lang::IndexOutOfBoundsException, + ::com::sun::star::lang::IllegalArgumentException); + + /** Copy the specified text into the clipboard. + +Copy the specified text into the clipboard. The text that is + copied is the same text that would have been selected by the + XAccessibleText::getTextRange() method.
+ +The other clipboard related methods + XAccessibleEditableText::cutText() and + XAccessibleEditableText::deleteText() can be found in + the XAccessibleEditableText because of their + destructive nature.
+ + @param nStartIndex + Start index of the text to copied into the clipboard. + The valid range is 0..length. + + @param nEndIndex + End index of the text to copied into the clipboard. + The valid range is 0..length. + + @return + Returns `TRUE` if the specified text has been copied + successfully into the clipboard. + + @throws ::com::sun::star::lang::IndexOutOfBoundsException + if the indices are invalid + */ + boolean copyText ([in] long nStartIndex, [in] long nEndIndex) + raises (::com::sun::star::lang::IndexOutOfBoundsException); + + /** Scroll the specified text to make it visible on screen. + + @param nStartIndex + Start index of the text to scroll. + The valid range is 0..length. + + @param nEndIndex + End index of the text to scroll. + The valid range is nStartIndex..length. + + @param aScrollType + Type of scroll to perform. See AccessibleScrollType for the + complete list. + + @return + Returns `TRUE` if the specified text has been scrolled + successfully. + + @throws ::com::sun::star::lang::IndexOutOfBoundsException + if the indices are invalid + + @since LibreOffice 7.0 + */ + boolean + scrollSubstringTo ([in] long nStartIndex, [in] long nEndIndex, + [in] AccessibleScrollType aScrollType) + raises (::com::sun::star::lang::IndexOutOfBoundsException); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/accessibility/XAccessibleTextAttributes.idl b/offapi/com/sun/star/accessibility/XAccessibleTextAttributes.idl new file mode 100644 index 0000000000..ff91047a3c --- /dev/null +++ b/offapi/com/sun/star/accessibility/XAccessibleTextAttributes.idl @@ -0,0 +1,89 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module accessibility { + +/** Implement this interface to give access to the attributes of a text. + + @since OOo 2.0.4 +*/ +interface XAccessibleTextAttributes +{ + /** Get the default attribute set for the text. + +Returns a set of all default paragraph and default character + attributes that are associated for the text. To prevent the method + from returning possibly large sets of attributes that the caller + is not interested in the caller can provide a list of attributes + that he wants to be returned.
+ + @param RequestedAttributes + This string sequence defines the set of attributes that the + caller is interested in. When there are requested attributes + that are not defined for the text then they are ignored. + +When the sequence is empty all attributes are returned.
+ + @return + Returns the requested attributes of the text. Each attribute + is represented by a ::com::sun::star::beans::PropertyValue + object. + */ + sequence<::com::sun::star::beans::PropertyValue> + getDefaultAttributes ( [in] sequenceReturns a set of character attributes that are associated for + the character at the given index and are directly set or are set + via a character style. To prevent the method from returning all of + these attributes the caller can provide a list of attributes + that he wants to be returned.
+ + @param Index + The index of the character for which to return its attributes. + The valid range is 0..length of text-1. + + @param RequestedAttributes + This string sequence defines the set of attributes that the + caller is interested in. When there are requested attributes + that are not defined for the text then they are ignored. + +When the sequence is empty all attributes are returned.
+ + @return + Returns the requested attributes of the specified character. + Each attribute is represented by a + ::com::sun::star::beans::PropertyValue object. + + @throws ::com::sun::star::lang::IndexOutOfBoundsException + if the index is invalid + */ + sequence<::com::sun::star::beans::PropertyValue> + getRunAttributes ( [in] long Index, + [in] sequenceThe XAccessibleTextMarkup interface is the main interface + to expose text markups in a text, typically of a text document, that are + used to reference other (parts of) documents. For supporting the + XAccessibleTextMarkup::getTextMarkupIndex() method of this + interface and other character related methods of the + XAccessibleTextMarkup interface, it is necessary to also + support the XAccessibleText interface.
+ + @see XAccessibleText + + @since OOo 3.0 +*/ +interface XAccessibleTextMarkup + : ::com::sun::star::accessibility::XAccessibleText +{ + /** Returns the number of text markup of the given text markup type + of a text. + +Throws IllegalArgumentException, if given text + markup type is out of valid range.
+ + @param TextMarkupType + This specifies the type of text markups, whose count should + be returned - see TextMarkupType. + + @return + The number of text markup of the given text markup type. + Returns 0 if there is no text markup. + */ + long getTextMarkupCount ( [in] long TextMarkupType ) + raises (::com::sun::star::lang::IllegalArgumentException); + + /** Returns the text segment of the text markup of the given index and + of the given text mark type + +Throws IndexOutOfBoundsException, if given index + is out of valid range.
+Throws IllegalArgumentException, if given text + markup type is out of valid range.
+ + @param TextMarkupIndex + This index specifies the text markup to return. + + @param TextMarkupType + This specifies the type of the text markup to be returned - see + TextMarkupType. + + @return + If the given index is in range [0..getTextMarkupCount(TextMarkupType)-1], + the text segment - see TextSegment - of the text markup + of the given text markup type is returned. + */ + TextSegment getTextMarkup ( [in] long TextMarkupIndex, + [in] long TextMarkupType ) + raises (::com::sun::star::lang::IndexOutOfBoundsException, + ::com::sun::star::lang::IllegalArgumentException); + + /** returns a sequence of the text segments of the text markups at the given + character index and of the given text markup type. + +Throws IndexOutOfBoundsException, if given character + index is out of range [0..number of characters in the text).
+Throws IllegalArgumentException, if given text + markup type is out of valid range.
+ + @param CharIndex + This index specifies the character index in the text. + + @param TextMarkupType + This specifies the type of the text markups to be returned - see + TextMarkupType. + + @return + If character index is in range [0..number of characters in the text-1], + a sequence of TextSegments of the text markups at + given character index of the given text markup type are returned. + The sequence is empty, if no such text markup is found. + */ + sequenceThe XAccessibleValue interface represents a single + numerical value and should be implemented by any class that supports + numerical value like scroll bars and spin boxes. This interface lets + you access the value and its upper and lower bounds.
+ + @since OOo 1.1.2 +*/ +interface XAccessibleValue : ::com::sun::star::uno::XInterface +{ + /** Returns the value of this object as a number. + +The exact return type is implementation dependent. Typical types + are long and double.
+ + @return + Returns the current value represented by this object. + */ + any getCurrentValue (); + + /** Sets the value of this object to the given number. + +The argument is clipped to the valid interval whose upper and + lower bounds are returned by the methods + getMaximumValue() and getMinimumValue(), i.e. if it is lower than + the minimum value the new value will be the minimum and if it is + greater than the maximum then the new value will be the maximum.
+ + @param aNumber + The new value represented by this object. The set of admissible + types for this argument is implementation dependent. + + @return + Returns `TRUE` if the new value could successfully be set and + `FALSE` otherwise. + */ + boolean setCurrentValue ([in] any aNumber); + + /** Returns the maximum value that can be represented by this object. + +The type of the returned value is implementation dependent. It + does not have to be the same type as that returned by + getCurrentValue().
+ + @return + Returns the maximum value in an implementation dependent type. + If this object has no upper bound then an empty object is + returned. + */ + any getMaximumValue (); + + /** Returns the minimum value that can be represented by this object. + +The type of the returned value is implementation dependent. It + does not have to be the same type as that returned by + getCurrentValue().
+ + @return + Returns the minimum value in an implementation dependent type. + If this object has no lower bound then an empty object is + returned. + */ + any getMinimumValue (); + + /** Returns the minimum increment by which the value represented by this + object can be adjusted. + +The type of the returned value is implementation dependent. It + does not have to be the same type as that returned by + getCurrentValue().
+ + @return + Returns the minimum increment value in an implementation dependent type. + If this object has no minimum increment value, then an empty object is + returned. + + @since LibreOffice 7.3 + */ + any getMinimumIncrement (); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/accessibility/XMSAAService.idl b/offapi/com/sun/star/accessibility/XMSAAService.idl new file mode 100644 index 0000000000..996b023b20 --- /dev/null +++ b/offapi/com/sun/star/accessibility/XMSAAService.idl @@ -0,0 +1,40 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module accessibility { + +/** The interface must be implemented for a server that can support MSAA com objects and send win32 accessible events +*/ +interface XMSAAService : ::com::sun::star::lang::XComponent +{ + /** Return com object pointer. + + @return + A reference to the object that contains the actual accessibility information. + + @see AccessibleContext + */ + hyper getAccObjectPtr([in] hyper hWnd, [in] hyper lParam, [in] hyper wParam); + + void handleWindowOpened([in] hyper i); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/animations/AnimateColor.idl b/offapi/com/sun/star/animations/AnimateColor.idl new file mode 100644 index 0000000000..4bba9819df --- /dev/null +++ b/offapi/com/sun/star/animations/AnimateColor.idl @@ -0,0 +1,32 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module animations { + + +/** + @since LibreOffice 4.1 +*/ +service AnimateColor : com::sun::star::animations::XAnimate; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/animations/AnimateMotion.idl b/offapi/com/sun/star/animations/AnimateMotion.idl new file mode 100644 index 0000000000..c9450b6a3b --- /dev/null +++ b/offapi/com/sun/star/animations/AnimateMotion.idl @@ -0,0 +1,32 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module animations { + + +/** + @since LibreOffice 4.1 +*/ +service AnimateMotion : com::sun::star::animations::XAnimationNode; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/animations/AnimatePhysics.idl b/offapi/com/sun/star/animations/AnimatePhysics.idl new file mode 100644 index 0000000000..5e842b6211 --- /dev/null +++ b/offapi/com/sun/star/animations/AnimatePhysics.idl @@ -0,0 +1,19 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */ +/* + * 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/. + */ + + +module com { module sun { module star { module animations { + + +service AnimatePhysics : com::sun::star::animations::XAnimationNode; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ diff --git a/offapi/com/sun/star/animations/AnimateSet.idl b/offapi/com/sun/star/animations/AnimateSet.idl new file mode 100644 index 0000000000..0b5d240347 --- /dev/null +++ b/offapi/com/sun/star/animations/AnimateSet.idl @@ -0,0 +1,32 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module animations { + + +/** + @since LibreOffice 4.1 +*/ +service AnimateSet : com::sun::star::animations::XAnimate; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/animations/AnimationAdditiveMode.idl b/offapi/com/sun/star/animations/AnimationAdditiveMode.idl new file mode 100644 index 0000000000..dbbd75925e --- /dev/null +++ b/offapi/com/sun/star/animations/AnimationAdditiveMode.idl @@ -0,0 +1,42 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module animations { + + +/** Specifies the additive mode for the animation. + + @see XAnimate + @see http://www.w3.org/TR/smil20/animation.html#adef-calcMode + @see http://www.w3.org/TR/smil20/animation.html#adef-SplineAnimation-calcMode +*/ +constants AnimationAdditiveMode +{ + const short BASE = 0; + const short SUM = 1; + const short REPLACE = 2; + const short MULTIPLY = 3; + const short NONE = 4; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/animations/AnimationCalcMode.idl b/offapi/com/sun/star/animations/AnimationCalcMode.idl new file mode 100644 index 0000000000..8ec888f4e3 --- /dev/null +++ b/offapi/com/sun/star/animations/AnimationCalcMode.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 . + */ + + + module com { module sun { module star { module animations { + + +/** Specifies the interpolation mode for the animation. + + @see XAnimation + @see http://www.w3.org/TR/smil20/animation.html#adef-calcMode + @see http://www.w3.org/TR/smil20/animation.html#adef-SplineAnimation-calcMode +*/ +constants AnimationCalcMode +{ + /** This specifies that the animation function will jump from one value to the next without any interpolation. + */ + const short DISCRETE = 0; + + /** Simple linear interpolation between values is used to calculate the animation function. +
+
+ This struct collects all global attributes that apply to an
+ animation target. An animation target is anything that is
+ referenced from a given XAnimationNode tree as a target object.
+ */
+struct TargetProperties
+{
+ /// Target for which this struct specifies properties
+ any Target;
+
+ /// Global target properties
+ sequence< ::com::sun::star::beans::NamedValue > Properties;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/animations/TimeFilterPair.idl b/offapi/com/sun/star/animations/TimeFilterPair.idl
new file mode 100644
index 0000000000..635a4d65e5
--- /dev/null
+++ b/offapi/com/sun/star/animations/TimeFilterPair.idl
@@ -0,0 +1,34 @@
+/* -*- 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 .
+ */
+
+
+ module com { module sun { module star { module animations {
+
+
+struct TimeFilterPair
+{
+ double Time;
+
+ double Progress;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/animations/Timing.idl b/offapi/com/sun/star/animations/Timing.idl
new file mode 100644
index 0000000000..12346d3867
--- /dev/null
+++ b/offapi/com/sun/star/animations/Timing.idl
@@ -0,0 +1,38 @@
+/* -*- 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 .
+ */
+
+
+ module com { module sun { module star { module animations {
+
+
+enum Timing
+{
+ /** specifies that a duration, end or start time is indefinite*/
+ INDEFINITE,
+
+ /** specifies a simple duration as the intrinsic media duration.
+ This is only valid for elements that define media.
+ */
+ MEDIA
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/animations/TransitionSubType.idl b/offapi/com/sun/star/animations/TransitionSubType.idl
new file mode 100644
index 0000000000..80828dd9b4
--- /dev/null
+++ b/offapi/com/sun/star/animations/TransitionSubType.idl
@@ -0,0 +1,151 @@
+/* -*- 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 .
+ */
+
+
+ module com { module sun { module star { module animations {
+
+
+/** @see http://www.w3.org/TR/smil20/smil-transitions.html#Table%201:%20Taxonomy%20Table
+*/
+constants TransitionSubType
+{
+ const short DEFAULT = 0;
+ const short LEFTTORIGHT = 1;
+ const short TOPTOBOTTOM = 2;
+ const short TOPLEFT = 3;
+ const short TOPRIGHT = 4;
+ const short BOTTOMRIGHT = 5;
+ const short BOTTOMLEFT = 6;
+ const short TOPCENTER = 7;
+ const short RIGHTCENTER = 8;
+ const short BOTTOMCENTER = 9;
+ const short LEFTCENTER = 10;
+ const short CORNERSIN = 11;
+ const short CORNERSOUT = 12;
+ const short VERTICAL = 13;
+ const short HORIZONTAL = 14;
+ const short DIAGONALBOTTOMLEFT = 15;
+ const short DIAGONALTOPLEFT = 16;
+ const short DOUBLEBARNDOOR = 17;
+ const short DOUBLEDIAMOND = 18;
+ const short DOWN = 19;
+ const short LEFT = 20;
+ const short UP = 21;
+ const short RIGHT = 22;
+ const short RECTANGLE = 25;
+ const short DIAMOND = 26;
+ const short CIRCLE = 27;
+ const short FOURPOINT = 28;
+ const short FIVEPOINT = 29;
+ const short SIXPOINT = 30;
+ const short HEART = 31;
+ const short KEYHOLE = 32;
+ const short CLOCKWISETWELVE = 33;
+ const short CLOCKWISETHREE = 34;
+ const short CLOCKWISESIX = 35;
+ const short CLOCKWISENINE = 36;
+ const short TWOBLADEVERTICAL = 37;
+ const short TWOBLADEHORIZONTAL = 38;
+ const short FOURBLADE = 39;
+ const short CLOCKWISETOP = 40;
+ const short CLOCKWISERIGHT = 41;
+ const short CLOCKWISEBOTTOM = 42;
+ const short CLOCKWISELEFT = 43;
+ const short CLOCKWISETOPLEFT = 44;
+ const short COUNTERCLOCKWISEBOTTOMLEFT = 45;
+ const short CLOCKWISEBOTTOMRIGHT = 46;
+ const short COUNTERCLOCKWISETOPRIGHT = 47;
+ const short CENTERTOP = 48;
+ const short CENTERRIGHT = 49;
+ const short TOP = 50;
+ const short BOTTOM = 52;
+ const short FANOUTVERTICAL = 54;
+ const short FANOUTHORIZONTAL = 55;
+ const short FANINVERTICAL = 56;
+ const short FANINHORIZONTAL = 57;
+ const short PARALLELVERTICAL = 58;
+ const short PARALLELDIAGONAL = 59;
+ const short OPPOSITEVERTICAL = 60;
+ const short OPPOSITEHORIZONTAL = 61;
+ const short PARALLELDIAGONALTOPLEFT = 62;
+ const short PARALLELDIAGONALBOTTOMLEFT = 63;
+ const short TOPLEFTHORIZONTAL = 64;
+ const short TOPLEFTDIAGONAL = 65;
+ const short TOPRIGHTDIAGONAL = 66;
+ const short BOTTOMRIGHTDIAGONAL = 67;
+ const short BOTTOMLEFTDIAGONAL = 68;
+ const short TOPLEFTCLOCKWISE = 69;
+ const short TOPRIGHTCLOCKWISE = 70;
+ const short BOTTOMRIGHTCLOCKWISE = 71;
+ const short BOTTOMLEFTCLOCKWISE = 72;
+ const short TOPLEFTCOUNTERCLOCKWISE = 73;
+ const short TOPRIGHTCOUNTERCLOCKWISE = 74;
+ const short BOTTOMRIGHTCOUNTERCLOCKWISE = 75;
+ const short BOTTOMLEFTCOUNTERCLOCKWISE = 76;
+ const short VERTICALTOPSAME = 77;
+ const short VERTICALBOTTOMSAME = 78;
+ const short VERTICALTOPLEFTOPPOSITE = 79;
+ const short VERTICALBOTTOMLEFTOPPOSITE = 80;
+ const short HORIZONTALLEFTSAME = 81;
+ const short HORIZONTALRIGHTSAME = 82;
+ const short HORIZONTALTOPLEFTOPPOSITE = 83;
+ const short HORIZONTALTOPRIGHTOPPOSITE = 84;
+ const short DIAGONALBOTTOMLEFTOPPOSITE = 85;
+ const short DIAGONALTOPLEFTOPPOSITE = 86;
+ const short TWOBOXTOP = 87;
+ const short TWOBOXBOTTOM = 88;
+ const short TWOBOXLEFT = 89;
+ const short TWOBOXRIGHT = 90;
+ const short FOURBOXVERTICAL = 91;
+ const short FOURBOXHORIZONTAL = 92;
+ const short VERTICALLEFT = 93;
+ const short VERTICALRIGHT = 94;
+ const short HORIZONTALLEFT = 95;
+ const short HORIZONTALRIGHT = 96;
+ const short FROMLEFT = 97;
+ const short FROMTOP = 98;
+ const short FROMRIGHT = 99;
+ const short FROMBOTTOM = 100;
+ const short CROSSFADE = 101;
+ const short FADETOCOLOR = 102;
+ const short FADEFROMCOLOR = 103;
+ const short FADEOVERCOLOR = 104;
+
+ // Most of those below are non-standard, not in SMIL 2.0
+ const short THREEBLADE = 105;
+ const short EIGHTBLADE = 106;
+ const short ONEBLADE = 107;
+ const short ACROSS = 108;
+ const short TOPLEFTVERTICAL = 109; // Is in SMIL
+ const short COMBHORIZONTAL = 110;
+ const short COMBVERTICAL = 111;
+ const short IN = 112; // Not actually a subtype, and apparently unused
+ const short OUT = 113; // Ditto
+ const short ROTATEIN = 114;
+ const short ROTATEOUT = 115;
+ const short FROMTOPLEFT = 116;
+ const short FROMTOPRIGHT = 117;
+ const short FROMBOTTOMLEFT = 118;
+ const short FROMBOTTOMRIGHT = 119;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/animations/TransitionType.idl b/offapi/com/sun/star/animations/TransitionType.idl
new file mode 100644
index 0000000000..b935e2cc9f
--- /dev/null
+++ b/offapi/com/sun/star/animations/TransitionType.idl
@@ -0,0 +1,78 @@
+/* -*- 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 .
+ */
+
+
+ module com { module sun { module star { module animations {
+
+
+/** @see http://www.w3.org/TR/smil20/smil-transitions.html#Table%201:%20Taxonomy%20Table
+*/
+constants TransitionType
+{
+ const short BARWIPE = 1;
+ const short BOXWIPE = 2;
+ const short FOURBOXWIPE = 3;
+ const short BARNDOORWIPE = 4;
+ const short DIAGONALWIPE = 5;
+ const short BOWTIEWIPE = 6;
+ const short MISCDIAGONALWIPE = 7;
+ const short VEEWIPE = 8;
+ const short BARNVEEWIPE = 9;
+ const short ZIGZAGWIPE = 10;
+ const short BARNZIGZAGWIPE = 11;
+ const short IRISWIPE = 12;
+ const short TRIANGLEWIPE = 13;
+ const short ARROWHEADWIPE = 14;
+ const short PENTAGONWIPE = 15;
+ const short HEXAGONWIPE = 16;
+ const short ELLIPSEWIPE = 17;
+ const short EYEWIPE = 18;
+ const short ROUNDRECTWIPE = 19;
+ const short STARWIPE = 20;
+ const short MISCSHAPEWIPE = 21;
+ const short CLOCKWIPE = 22;
+ const short PINWHEELWIPE = 23;
+ const short SINGLESWEEPWIPE = 24;
+ const short FANWIPE = 25;
+ const short DOUBLEFANWIPE = 26;
+ const short DOUBLESWEEPWIPE = 27;
+ const short SALOONDOORWIPE = 28;
+ const short WINDSHIELDWIPE = 29;
+ const short SNAKEWIPE = 30;
+ const short SPIRALWIPE = 31;
+ const short PARALLELSNAKESWIPE = 32;
+ const short BOXSNAKESWIPE = 33;
+ const short WATERFALLWIPE = 34;
+ const short PUSHWIPE = 35;
+ const short SLIDEWIPE = 36;
+ const short FADE = 37;
+
+ // Non-standard, not in SMIL 2.0:
+ const short RANDOMBARWIPE = 38;
+ const short CHECKERBOARDWIPE = 39;
+ const short DISSOLVE = 40;
+ const short BLINDSWIPE = 41;
+ const short RANDOM = 42;
+ const short ZOOM = 43;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/animations/ValuePair.idl b/offapi/com/sun/star/animations/ValuePair.idl
new file mode 100644
index 0000000000..d3568865f1
--- /dev/null
+++ b/offapi/com/sun/star/animations/ValuePair.idl
@@ -0,0 +1,33 @@
+/* -*- 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 .
+ */
+
+
+ module com { module sun { module star { module animations {
+
+
+struct ValuePair
+{
+ any First;
+ any Second;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/animations/XAnimate.idl b/offapi/com/sun/star/animations/XAnimate.idl
new file mode 100644
index 0000000000..d093306ff6
--- /dev/null
+++ b/offapi/com/sun/star/animations/XAnimate.idl
@@ -0,0 +1,131 @@
+/* -*- 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 .
+ */
+
+
+ module com { module sun { module star { module animations {
+
+
+/** Interface for generic animation.
+
+ @see http://www.w3.org/TR/smil20/animation.html#edef-animate
+*/
+interface XAnimate : XAnimationNode
+{
+ /** This attribute specifies the target element to be animated.
+
+ See documentation of used animation engine for supported targets.
+ */
+ [attribute] any Target;
+
+ /** This attribute specifies an optional subitem from the target element
+ that should be animated.
+
+ A value of zero should always be the default and animate the complete target.
+
+ See documentation of used animation engine for supported subitems.
+ */
+ [attribute] short SubItem;
+
+ /** Specifies the target attribute.
+
+ @see http://www.w3.org/TR/smil20/animation.html#adef-attributeName
+ */
+ [attribute] string AttributeName;
+
+ /** A sequence of one or more values, each of which must be a legal value for
+ the specified attribute.
+
+ @see http://www.w3.org/TR/smil20/animation.html#adef-values
+ */
+ [attribute] sequence< any > Values;
+
+ [attribute] sequence< double > KeyTimes;
+
+ /**
+ @see AnimationValueType
+ */
+ [attribute] short ValueType;
+
+ /** Specifies the interpolation mode for the animation.
+
+ If the target attribute does not support linear interpolation (e.g. for strings),
+ or if the values attribute has only one value, the CalcMode attribute is ignored
+ and discrete interpolation is used.
+
+ @see AnimationCalcMode;
+ */
+ [attribute] short CalcMode;
+
+ /** Controls whether or not the animation is cumulative.
+
+ @see http://www.w3.org/TR/smil20/animation.html#adef-accumulate
+ */
+ [attribute] boolean Accumulate;
+
+ /** Controls whether or not the animation is additive.
+
+ @see AnimationAdditiveMode
+ @see http://www.w3.org/TR/smil20/animation.html#adef-additive
+ */
+ [attribute] short Additive;
+
+ /** Specifies the starting value of the animation.
+
+ Must be a legal value for the specified attribute.
+ Ignored if the #Values attribute is specified.
+
+ @see http://www.w3.org/TR/smil20/animation.html#adef-from
+ */
+ [attribute] any From;
+
+ /** Specifies the ending value of the animation.
+
+ Must be a legal value for the specified attribute.
+ Ignored if the #Values attribute is specified.
+
+ @see http://www.w3.org/TR/smil20/animation.html#adef-to
+ */
+ [attribute] any To;
+
+ /** Specifies a relative offset value for the animation.
+
+ Must be a legal value of a domain for which addition to the attributeType
+ domain is defined and which yields a value in the attributeType domain.
+ Ignored if the values attribute is specified.
+ Ignored if the #Values attribute is specified.
+
+ @see http://www.w3.org/TR/smil20/animation.html#adef-by
+ */
+ [attribute] any By;
+
+ /** todo: timeFilter="0,0; 0.14,0.36; 0.43,0.73; 0.71,0.91; 1.0,1.0" ?
+ */
+ [attribute] sequence< TimeFilterPair > TimeFilter;
+
+ /** if this string is set, its contents will be parsed as a formula.
+ All values are used as a parameter for this formula and the computed
+ result will be used.
+ */
+ [attribute] string Formula;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/animations/XAnimateColor.idl b/offapi/com/sun/star/animations/XAnimateColor.idl
new file mode 100644
index 0000000000..194d6b1d67
--- /dev/null
+++ b/offapi/com/sun/star/animations/XAnimateColor.idl
@@ -0,0 +1,57 @@
+/* -*- 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 .
+ */
+
+
+ module com { module sun { module star { module animations {
+
+
+/** Interface for animation by defining color changes over time.
+
+ Only color value will be legal values for the following members
+
It will be raised each time the element begins the active duration (i.e. when it restarts, but not when it repeats).
+It may be raised both in the course of normal (i.e. scheduled or interactive) timeline play, as well as in the + case that the element was begun with an interface method.
+ + @param Node + The node that begins to play. + */ + void beginEvent( [in] XAnimationNode Node ); + + /** This event is raised at the active end of the element. +Note that this event is not raised at the simple end of each repeat.
+This event may be raised both in the course of normal (i.e. scheduled or interactive) timeline play, as well as in the + case that the element was ended with a DOM method.
+ + @param Node + The node that stops playing. + */ + void endEvent( [in] XAnimationNode Node ); + + /** This event is raised when the element local timeline repeats. +It will be raised each time the element repeats, after the first iteration.
+Associated with the repeat event is an integer that indicates which repeat iteration is
+ beginning.
+
+ @param Node
+ The node that repeats.
+
+ @param Repeat
+ The value is a 0-based integer, but the repeat event is not raised for the first iteration and so the observed values will be >= 1.
+ */
+ void repeat( [in] XAnimationNode Node, [in] long Repeat );
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/animations/XAnimationNode.idl b/offapi/com/sun/star/animations/XAnimationNode.idl
new file mode 100644
index 0000000000..7911debf2f
--- /dev/null
+++ b/offapi/com/sun/star/animations/XAnimationNode.idl
@@ -0,0 +1,236 @@
+/* -*- 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 .
+ */
+
+
+ module com { module sun { module star { module animations {
+
+
+interface XAnimationNode : ::com::sun::star::container::XChild
+{
+ /** a value from AnimationNodeType.
+
+ @see http://www.w3.org/TR/smil20/smil-timing.html#adef-timeContainer
+ */
+ [readonly, attribute] short Type;
+
+ /** a sequence of values that define the beginning of this element
+
+ #Begin is
+
repeat
is not supported.
+
+ The Single Sign-on ( SSO ) APIs provide UNO based access to underlying + SSO implementations ( e.g. Kerberos ). The aim of the SSO APIs is to + enable authentication ( possibly mutual ) between a client ( source or + initiator ) and a network service ( target or acceptor ). This is + achieved via. the creation and processing of security tokens sent + between the two parties. The steps which should be followed to + successfully use the SSO APIs are as follows: +
This context may be used to authenticate a Single Sign-on initiator based + on a security token sent by the initiator and to generate a token to be + sent back to the initiator so that it can authenticate the acceptor. + + @since OOo 1.1.2 +*/ + +published interface XSSOAcceptorContext : ::com::sun::star::auth::XSSOContext +{ + /** accepts/authenticates an SSO token sent from the context initiator side. +
+ accept() should be called only once. Subsequent calls produce + undefined results. + + @param Token + the SSO token sent by the initiator. + + @returns + the sequence of bytes to be sent back to the initiator to allow + authentication of the acceptor side, if mutual authentication is + supported by the security context. If mutual authentication is not + supported a zero length sequence is returned. + */ + + sequence< byte > accept( [in] sequence< byte > Token ) + raises( InvalidArgumentException, + InvalidCredentialException, + InvalidContextException, + AuthenticationFailedException ); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/auth/XSSOContext.idl b/offapi/com/sun/star/auth/XSSOContext.idl new file mode 100644 index 0000000000..e782adbccc --- /dev/null +++ b/offapi/com/sun/star/auth/XSSOContext.idl @@ -0,0 +1,62 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module auth { + +/** Base SSO security context representation + + @since OOo 1.1.2 + */ +published interface XSSOContext : ::com::sun::star::uno::XInterface +{ + /** retrieves the principal name of the source/initiator of the context. +
+ In the case of an acceptor side security context, the source principal + name is available only after the initiator has been authenticated. + + @returns + the source principal name + */ + string getSource(); + + /** retrieves the principal name of the target/acceptor of the context. + + @returns + the target principal name + */ + string getTarget(); + + /** retrieves the mechanism associated with the context. + + @returns + the mechanism name + */ + string getMechanism(); + + /** retrieves whether or not the context supports mutual authentication + + @returns + `TRUE` if mutual authentication is supported, `FALSE` otherwise. + */ + boolean getMutual(); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/auth/XSSOInitiatorContext.idl b/offapi/com/sun/star/auth/XSSOInitiatorContext.idl new file mode 100644 index 0000000000..b0536b6667 --- /dev/null +++ b/offapi/com/sun/star/auth/XSSOInitiatorContext.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 . + */ + +module com { module sun { module star { module auth { + +/** represents an initiator side security context. +
This context may be used to initialize authentication tokens to send to + an acceptor and to authenticate any token sent back in response. + + @since OOo 1.1.2 + */ +published interface XSSOInitiatorContext : ::com::sun::star::auth::XSSOContext +{ + /** initializes an SSO Token to send to the acceptor side and + authenticates an SSO Token returned by the acceptor if the + context supports mutual authentication. +
+ init should be called only once for contexts which don't support + mutual authentication and at most twice for contexts which do + support mutual authentication. Additional calls produce undefined + results. + + @param Token + the SSO token received from the acceptor side in response to an + authentication request. This token is ignored on the first call + to init and should only be specified for the second call on a + context supporting mutual authentication. + + @returns + the sequence of bytes to be sent to the acceptor side as part of + an authentication request. This sequence will be non zero length + for the first call to init, zero length for the second call to init + on a context supporting mutual authentication and undefined in all + other cases. + */ + sequence< byte > init( [in] sequence< byte > Token ) + raises( InvalidArgumentException, + InvalidCredentialException, + InvalidContextException, + AuthenticationFailedException ); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/auth/XSSOManager.idl b/offapi/com/sun/star/auth/XSSOManager.idl new file mode 100644 index 0000000000..ec83295c55 --- /dev/null +++ b/offapi/com/sun/star/auth/XSSOManager.idl @@ -0,0 +1,82 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module auth { + +/** supports the creation of security contexts for both + the initiator/source side and the acceptor/target side. + + @since OOo 1.1.2 + */ +published interface XSSOManager : ::com::sun::star::uno::XInterface +{ + /** retrieves the mechanism name of all security contexts created using + this manager. + + @returns + the mechanism name ( e.g. "KERBEROS" ) + */ + string getMechanism(); + + + /** creates an initiator side security context. + + @param SourcePrincipal + the name of the initiator side principal for which the context + will be created. + + @param TargetPrincipal + the name of the target/acceptor side principal to which the source + principal intends to authenticate. + + @param TargetHost + the host name associated with the target principal. + + @returns + the newly created initiator context. + */ + XSSOInitiatorContext createInitiatorContext( + [in] string SourcePrincipal, + [in] string TargetPrincipal, + [in] string TargetHost ) + raises( InvalidArgumentException, + InvalidCredentialException, + InvalidPrincipalException, + UnsupportedException ); + + + /** creates an acceptor side security context. + + @param TargetPrincipal + the name of the acceptor side principal. + + @returns + the newly created acceptor side context. + */ + XSSOAcceptorContext createAcceptorContext( + [in] string TargetPrincipal ) + raises( InvalidArgumentException, + InvalidCredentialException, + InvalidPrincipalException, + UnsupportedException ); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/auth/XSSOManagerFactory.idl b/offapi/com/sun/star/auth/XSSOManagerFactory.idl new file mode 100644 index 0000000000..f2cd8335b6 --- /dev/null +++ b/offapi/com/sun/star/auth/XSSOManagerFactory.idl @@ -0,0 +1,41 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module auth { + +/** Factory for creating an SSO Manager supporting the user's configured + security mechanism + + @since OOo 1.1.2 + */ + +published interface XSSOManagerFactory : ::com::sun::star::uno::XInterface +{ + /** provides a XSSOManager to be used in subsequent security + context creation. + + @returns + the relevant XSSOManager instance + */ + XSSOManager getSSOManager(); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/auth/XSSOPasswordCache.idl b/offapi/com/sun/star/auth/XSSOPasswordCache.idl new file mode 100644 index 0000000000..7a29066d5d --- /dev/null +++ b/offapi/com/sun/star/auth/XSSOPasswordCache.idl @@ -0,0 +1,86 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module auth { + +/** supports password caching for security mechanisms which use passwords as + credentials or as an input to credential creation but don't have + an external method to cache these passwords. + + @since OOo 1.1.2 + */ + +published interface XSSOPasswordCache : ::com::sun::star::uno::XInterface +{ + /** adds a username/password combination to the cache. +
+ If an entry for the specified username already exists in the cache, it + will be overwritten. + + @param UserName + the user name to add + + @param Password + the associated password + + @param Persist + indicates whether or not the username/password combination should be + persisted + */ + void addPassword( [in] string UserName, + [in] string Password, + [in] boolean Persist ) + raises( InvalidArgumentException, + PersistenceFailureException ); + + /** retrieves a password for a given user from the cache. +
+ Non persistent cache is searched first, followed by the + persistent cache ( if it exists ). + + @param UserName + the name of the user whose password should be retrieved + + @param Persist + indicates whether or not the password is persistent + + @returns + the required password + */ + string getPassword( [in] string UserName, [out] boolean Persist ) + raises( InvalidArgumentException, + PersistenceFailureException ); + + /** removes a password from the cache + + @param UserName + the name of the user whose password should be removed. + + @param RemovePersist + indicates whether or not the password should also be removed, if + present, from persistent cache. + */ + void removePassword( [in] string UserName, [in] boolean RemovePersist ) + raises( InvalidArgumentException, + PersistenceFailureException ); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/AccessibleButton.idl b/offapi/com/sun/star/awt/AccessibleButton.idl new file mode 100644 index 0000000000..69c90bd870 --- /dev/null +++ b/offapi/com/sun/star/awt/AccessibleButton.idl @@ -0,0 +1,97 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module awt { + +/** specifies accessibility support for a button. + + @since OOo 1.1.2 + */ +service AccessibleButton +{ + /** This interface gives access to the structural information of a button: + +
+ 0: not checked + 1: checked + 2: don't know ++ */ + interface ::com::sun::star::accessibility::XAccessibleValue; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/AccessibleComboBox.idl b/offapi/com/sun/star/awt/AccessibleComboBox.idl new file mode 100644 index 0000000000..76f77258e2 --- /dev/null +++ b/offapi/com/sun/star/awt/AccessibleComboBox.idl @@ -0,0 +1,86 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module accessibility { + + interface XAccessibleText; + interface XAccessibleExtendedComponent; + interface XAccessibleComponent; + +}; }; }; }; + +module com { module sun { module star { module awt { + +/** specifies accessibility support for a combo box. + + @see com::sun::star::accessibility::AccessibleContext + @see com::sun::star::accessibility::XAccessibleComponent + @see com::sun::star::accessibility::XAccessibleExtendedComponent + @since OOo 1.1.2 +*/ +service AccessibleComboBox +{ + /** This interface gives access to the structural information of a combo box: + +
This high-level event is generated by a component (such as a Button)
+ when the component-specific action occurs (such as being pressed).
+ The event is passed to every XActionListener object
+ that registered to receive such events using the component's
+ addActionListener
method.
The object that implements the XActionListener interface + gets this ActionEvent when the event occurs. The listener is therefore + spared the details of processing individual mouse movements and mouse + clicks, and can instead process a "meaningful" (semantic) event like + "button pressed".
+ */ +published struct ActionEvent: com::sun::star::lang::EventObject +{ + + /** contains the command string associated with this action. + */ + string ActionCommand; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/AdjustmentEvent.idl b/offapi/com/sun/star/awt/AdjustmentEvent.idl new file mode 100644 index 0000000000..adec109d61 --- /dev/null +++ b/offapi/com/sun/star/awt/AdjustmentEvent.idl @@ -0,0 +1,44 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module awt { + + +/** adjustment event emitted by adjustable objects. + */ +published struct AdjustmentEvent: com::sun::star::lang::EventObject +{ + + /** contains the current value in the adjustment event. + */ + long Value; + + + /** contains the type of the adjustment event. + */ + com::sun::star::awt::AdjustmentType Type; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/AdjustmentType.idl b/offapi/com/sun/star/awt/AdjustmentType.idl new file mode 100644 index 0000000000..24797a2fab --- /dev/null +++ b/offapi/com/sun/star/awt/AdjustmentType.idl @@ -0,0 +1,56 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module awt { + + +/** specifies the adjustment type. + */ +published enum AdjustmentType +{ + + /** adjustment is originated by a line jump. + +A line jump can, for example, be caused by a click on + one of the pointer buttons.
+ */ + ADJUST_LINE, + + + /** adjustment is originated by a page jump. + +A page jump can, for example, be caused by a click in the + background area of the scrollbar (neither one of the pointer + buttons, nor the thumb).
+ */ + ADJUST_PAGE, + + + /** adjustment is originated by dragging the thumb. + */ + ADJUST_ABS + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/AnimatedImagesControl.idl b/offapi/com/sun/star/awt/AnimatedImagesControl.idl new file mode 100644 index 0000000000..b07ac2098b --- /dev/null +++ b/offapi/com/sun/star/awt/AnimatedImagesControl.idl @@ -0,0 +1,42 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module awt { + +interface XAnimation; + + +/** is the default control used for an AnimatedImagesControlModel, displayed a series of + images. + + @since OOo 3.4 + */ +service AnimatedImagesControl +{ + service com::sun::star::awt::UnoControl; + + interface XAnimation; +}; + + +}; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/AnimatedImagesControlModel.idl b/offapi/com/sun/star/awt/AnimatedImagesControlModel.idl new file mode 100644 index 0000000000..59a364c120 --- /dev/null +++ b/offapi/com/sun/star/awt/AnimatedImagesControlModel.idl @@ -0,0 +1,41 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module awt { + +interface XAnimatedImages; + + +/** describes the model for a control displaying a series of images + + @since OOo 3.4 + */ +service AnimatedImagesControlModel +{ + service com::sun::star::awt::UnoControlModel; + + interface XAnimatedImages; +}; + + +}; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/AsyncCallback.idl b/offapi/com/sun/star/awt/AsyncCallback.idl new file mode 100644 index 0000000000..4236071810 --- /dev/null +++ b/offapi/com/sun/star/awt/AsyncCallback.idl @@ -0,0 +1,31 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module awt { + +/** An implementation which uses the message queue to call the + callback implementation asynchronously. + + @see XRequestCallback + */ +service AsyncCallback: XRequestCallback; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/CharSet.idl b/offapi/com/sun/star/awt/CharSet.idl new file mode 100644 index 0000000000..20a16c1c20 --- /dev/null +++ b/offapi/com/sun/star/awt/CharSet.idl @@ -0,0 +1,99 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module awt { + + +/** These values are used to specify the characters which are available in + a font and their codes. + +The currently defined constants of CharSet
have the same
+ numerical values as the corresponding enum values of the C/C++
+ rtl_TextEncoding
(from rtl/textenc.h
). This
+ correspondence is by design. Since CharSet
is deprecated,
+ however, it is not planned to add further constants to keep it in sync with
+ rtl_TextEncoding
.
IMPORTANT: These constants have to be disjunct with + constants in util/MeasureUnit.
+ */ +constants FieldUnit +{ + const short FUNIT_NONE = 0; + const short FUNIT_MM = 1; + const short FUNIT_CM = 2; + const short FUNIT_M = 3; + const short FUNIT_KM = 4; + const short FUNIT_TWIP = 5; + const short FUNIT_POINT = 6; + const short FUNIT_PICA = 7; + const short FUNIT_INCH = 8; + const short FUNIT_FOOT = 9; + const short FUNIT_MILE = 10; + const short FUNIT_CUSTOM = 11; + const short FUNIT_PERCENT = 12; + const short FUNIT_100TH_MM = 13; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/FocusChangeReason.idl b/offapi/com/sun/star/awt/FocusChangeReason.idl new file mode 100644 index 0000000000..51f62d87a2 --- /dev/null +++ b/offapi/com/sun/star/awt/FocusChangeReason.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 . + */ + + + + module com { module sun { module star { module awt { + + +/** A combination of these values can be used to specify the reason + for a focus change. + */ +published constants FocusChangeReason +{ + + /** Focus changed because TAB was pressed. + */ + const long TAB = 1; + + + /** Focus changed because Key Left/Right/Up/Down was pressed. + */ + const long CURSOR = 2; + + + /** Focus changed because mnemonic key was pressed. + */ + const long MNEMONIC = 4; + + + /** Changed Focus to the next control. + */ + const long FORWARD = 16; + + + /** Changed Focus to the previous control. + */ + const long BACKWARD = 32; + + + /** Changed Focus forward from last to first or backward from first to + last. + */ + const long AROUND = 64; + + + /** Focus changed because mnemonic key was pressed and this mnemonic is + unique. + */ + const long UNIQUEMNEMONIC = 256; + +}; + + +}; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/FocusEvent.idl b/offapi/com/sun/star/awt/FocusEvent.idl new file mode 100644 index 0000000000..cf895e2166 --- /dev/null +++ b/offapi/com/sun/star/awt/FocusEvent.idl @@ -0,0 +1,66 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module awt { + + +/** specifies a keyboard focus event. + +There are two levels of focus change events: permanent and temporary. + Permanent focus change events occur when focus is directly moved + from one component to another, such as through calls to requestFocus() + or as the user uses the Tab key to traverse components. + Temporary focus change events occur when focus is + gained or lost for a component as the indirect result of another + operation, such as window deactivation or a scrollbar drag. In this + case, the original focus state will automatically be restored once + that operation is finished, or for the case of window deactivation, + when the window is reactivated. Both permanent and temporary focus + events are delivered using the FOCUS_GAINED and FOCUS_LOST event ids; + the levels may be distinguished in the event using the isTemporary() + method.
+ */ +published struct FocusEvent: com::sun::star::lang::EventObject +{ + + /** specifies the reason for the focus change as an arithmetic-or + combination of FocusChangeReason. + + @see FocusChangeReason + */ + short FocusFlags; + + + /** contains the window which gets the focus on a lose focus event. + */ + com::sun::star::uno::XInterface NextFocus; + + + /** specifies if this focus change event is a temporary change. + */ + boolean Temporary; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/FontDescriptor.idl b/offapi/com/sun/star/awt/FontDescriptor.idl new file mode 100644 index 0000000000..ae2f18f193 --- /dev/null +++ b/offapi/com/sun/star/awt/FontDescriptor.idl @@ -0,0 +1,157 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module awt { + + +/** describes the characteristics of a font. + +For example, this can be used to select a font.
+ */ +published struct FontDescriptor +{ + + /** specifies the exact name of the font. + */ + string Name; + + + /** specifies the height of the font in the measure of the + destination. + */ + short Height; + + + /** specifies the width of the font in the measure of the + destination. + */ + short Width; + + + /** specifies the style name of the font. + */ + string StyleName; + + + /** specifies the general style of the font. + +Use one value out of the constant group + com::sun::star::awt::FontFamily.
+ */ + short Family; + + + /** specifies the character set which is supported by the font. + +Use one value out of the constant group + com::sun::star::awt::CharSet.
+ */ + short CharSet; + + + /** specifies the pitch of the font. + +Use one value out of the constant group + com::sun::star::awt::FontPitch.
+ */ + short Pitch; + + + /** specifies the character width. + +Depending on the specified width, a font that supports this + width may be selected.
+ +The value is expressed as a percentage.
+ */ + float CharacterWidth; + + + /** specifies the thickness of the line. + +Depending on the specified weight, a font that supports this + thickness may be selected.
+ +The value is expressed as a percentage.
+ */ + float Weight; + + + /** specifies the slant of the font. + */ + com::sun::star::awt::FontSlant Slant; + + + /** specifies the kind of underlining. + +Use one value out of the constant group + com::sun::star::awt::FontUnderline.
+ */ + short Underline; + + + /** specifies the kind of strikeout. + +Use one value out of the constant group + com::sun::star::awt::FontStrikeout.
+ */ + short Strikeout; + + + /** specifies the rotation of the font. + +The unit of measure is degrees; 0 is the baseline.
+ */ + float Orientation; + + + /** For requesting, it specifies if there is a kerning table available. + For selecting, it specifies if the kerning table is to be used. + */ + boolean Kerning; + + + /** specifies if only words get underlined. + +`TRUE` means that only non-space characters get underlined, + `FALSE` means that the spacing also gets underlined.
+ +This property is only valid if the property + com::sun::star::awt::FontDescriptor::Underline + is not FontUnderline::NONE.
+ */ + boolean WordLineMode; + + + /** specifies the technology of the font representation. + +One or more values out of the constant group + com::sun::star::awt::FontType can be combined by + an arithmetical or-operation.
+ */ + short Type; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/FontEmphasisMark.idl b/offapi/com/sun/star/awt/FontEmphasisMark.idl new file mode 100644 index 0000000000..9a7b3ee679 --- /dev/null +++ b/offapi/com/sun/star/awt/FontEmphasisMark.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 . + */ + + + + module com { module sun { module star { module awt { + + +/** These values are used to specify the kind of emphasis mark. + +They may be expanded in future versions.
+ */ +published constants FontEmphasisMark +{ + + /** specifies no emphasis mark. + */ + const short NONE = 0x0000; + + + /** specifies emphasis mark dot. + */ + const short DOT = 0x0001; + + + /** specifies emphasis mark circle. + */ + const short CIRCLE = 0x0002; + + + /** specifies emphasis mark disc. + */ + const short DISC = 0x0003; + + + /** specifies emphasis mark accent. + */ + const short ACCENT = 0x0004; + + + /** specifies that the emphasis mark should be positioned above the + characters. + */ + const short ABOVE = 0x1000; + + + /** specifies that the emphasis mark should be positioned below the + characters. + */ + const short BELOW = 0x2000; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/FontFamily.idl b/offapi/com/sun/star/awt/FontFamily.idl new file mode 100644 index 0000000000..7c8aa144ba --- /dev/null +++ b/offapi/com/sun/star/awt/FontFamily.idl @@ -0,0 +1,71 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module awt { + + +/** These values are used to specify the general kind of font. + +They may be expanded in future versions.
+ */ +published constants FontFamily +{ + + /** specifies an unknown font family. + */ + const short DONTKNOW = 0; + + + /** specifies the family of decorative fonts. + */ + const short DECORATIVE = 1; + + + /** specifies the family of modern fonts. + */ + const short MODERN = 2; + + + /** specifies the family roman fonts (with serifs). + */ + const short ROMAN = 3; + + + /** specifies the family of script fonts. + */ + const short SCRIPT = 4; + + + /** specifies the family roman fonts (without serifs). + */ + const short SWISS = 5; + + + /** specifies the family system fonts. + */ + const short SYSTEM = 6; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/FontPitch.idl b/offapi/com/sun/star/awt/FontPitch.idl new file mode 100644 index 0000000000..2d4b8df853 --- /dev/null +++ b/offapi/com/sun/star/awt/FontPitch.idl @@ -0,0 +1,52 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module awt { + + +/** These values are used to specify whether the width of a character is + fixed or variable. + +They may be expanded in future versions.
+ */ +published constants FontPitch +{ + + /** specifies that the pitch for this font is unknown. + */ + const short DONTKNOW = 0; + + + /** specifies a font with a fixed character width. + */ + const short FIXED = 1; + + + /** specifies a font with a variable character width. + */ + const short VARIABLE = 2; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/FontRelief.idl b/offapi/com/sun/star/awt/FontRelief.idl new file mode 100644 index 0000000000..6f6310f53b --- /dev/null +++ b/offapi/com/sun/star/awt/FontRelief.idl @@ -0,0 +1,52 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module awt { + + +/** These values are used to specify the kind of relief. + +They may be expanded in future versions.
+ */ + +published constants FontRelief +{ + + /** specifies no relief. + */ + const short NONE = 0; + + + /** specifies no embossed. + */ + const short EMBOSSED = 1; + + + /** specifies no engraved. + */ + const short ENGRAVED = 2; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/FontSlant.idl b/offapi/com/sun/star/awt/FontSlant.idl new file mode 100644 index 0000000000..6d27a430b5 --- /dev/null +++ b/offapi/com/sun/star/awt/FontSlant.idl @@ -0,0 +1,64 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module awt { + + +/** used to specify the slant of a font. + */ +published enum FontSlant +{ + + /** specifies a font without slant. + */ + NONE, + + + /** specifies an oblique font (slant not designed into the font). + */ + OBLIQUE, + + + /** specifies an italic font (slant designed into the font). + */ + ITALIC, + + + /** specifies a font with an unknown slant. + */ + DONTKNOW, + + + /** specifies a reverse oblique font (slant not designed into the font). + */ + REVERSE_OBLIQUE, + + + /** specifies a reverse italic font (slant designed into the font). + */ + REVERSE_ITALIC + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/FontStrikeout.idl b/offapi/com/sun/star/awt/FontStrikeout.idl new file mode 100644 index 0000000000..ed59d81338 --- /dev/null +++ b/offapi/com/sun/star/awt/FontStrikeout.idl @@ -0,0 +1,71 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module awt { + + +/** These values are used to specify the kind of strikeout. + +They may be expanded in future versions.
+ */ +published constants FontStrikeout +{ + + /** specifies not to strike out the characters. + */ + const short NONE = 0; + + + /** specifies to strike out the characters with a single line. + */ + const short SINGLE = 1; + + + /** specifies to strike out the characters with a double line. + */ + const short DOUBLE = 2; + + + /** The strikeout mode is not specified. + */ + const short DONTKNOW = 3; + + + /** specifies to strike out the characters with a bold line. + */ + const short BOLD = 4; + + + /** specifies to strike out the characters with slashes. + */ + const short SLASH = 5; + + + /** specifies to strike out the characters with X's. + */ + const short X = 6; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/FontType.idl b/offapi/com/sun/star/awt/FontType.idl new file mode 100644 index 0000000000..d85030216f --- /dev/null +++ b/offapi/com/sun/star/awt/FontType.idl @@ -0,0 +1,56 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module awt { + + +/** These values are used to specify the technology of the font representation. + +They may be expanded in future versions.
+ */ +published constants FontType +{ + + /** The type of the font is not known. + */ + const short DONTKNOW = 0; + + + /** specifies a raster font. + */ + const short RASTER = 1; + + + /** specifies a device font. + */ + const short DEVICE = 2; + + + /** specifies a scalable font. + */ + const short SCALABLE = 4; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/FontUnderline.idl b/offapi/com/sun/star/awt/FontUnderline.idl new file mode 100644 index 0000000000..ff0cde8627 --- /dev/null +++ b/offapi/com/sun/star/awt/FontUnderline.idl @@ -0,0 +1,131 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module awt { + + +/** These values are used to specify the kind of underlining. + +They may be expanded in future versions.
+ */ +published constants FontUnderline +{ + + /** specifies no underlining. + */ + const short NONE = 0; + + + /** specifies underlining with a single line. + */ + const short SINGLE = 1; + + + /** specifies underlining with a double line. + */ + const short DOUBLE = 2; + + + /** specifies underlining with a dotted line. + */ + const short DOTTED = 3; + + + /** The kind of underlining is not known. + */ + const short DONTKNOW = 4; + + + /** specifies underlining with a dashed line. + */ + const short DASH = 5; + + + /** specifies underlining with long dashes. + */ + const short LONGDASH = 6; + + + /** specifies underlining with a dash and dot sequence. + */ + const short DASHDOT = 7; + + + /** specifies underlining with a dash, dot, dot sequence. + */ + const short DASHDOTDOT = 8; + + + /** specifies underlining with a small wave. + */ + const short SMALLWAVE = 9; + + + /** specifies underlining with a wave. + */ + const short WAVE = 10; + + + /** specifies underlining with a double wave. + */ + const short DOUBLEWAVE = 11; + + + /** specifies underlining with a bold line. + */ + const short BOLD = 12; + + + /** specifies underlining with bold dots. + */ + const short BOLDDOTTED = 13; + + + /** specifies underlining with bold dashes. + */ + const short BOLDDASH = 14; + + + /** specifies underlining with long bold dashes. + */ + const short BOLDLONGDASH = 15; + + + /** specifies underlining with a dash and dot sequence in bold. + */ + const short BOLDDASHDOT = 16; + + + /** specifies underlining with a dash, dot, dot sequence in bold. + */ + const short BOLDDASHDOTDOT = 17; + + + /** specifies underlining with a bold wave. + */ + const short BOLDWAVE = 18; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/FontWeight.idl b/offapi/com/sun/star/awt/FontWeight.idl new file mode 100644 index 0000000000..dc5a83d4af --- /dev/null +++ b/offapi/com/sun/star/awt/FontWeight.idl @@ -0,0 +1,86 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module awt { + + +/** These values are used to specify whether a font is thin or bold. + +They may be expanded in future versions.
+ */ +published constants FontWeight +{ + + /** The font weight is not specified/known. + */ + const float DONTKNOW = 0.000000; + + + /** specifies a 50% font weight. + */ + const float THIN = 50.000000; + + + /** specifies a 60% font weight. + */ + const float ULTRALIGHT = 60.000000; + + + /** specifies a 75% font weight. + */ + const float LIGHT = 75.000000; + + + /** specifies a 90% font weight. + */ + const float SEMILIGHT = 90.000000; + + + /** specifies a normal font weight. + */ + const float NORMAL = 100.000000; + + + /** specifies a 110% font weight. + */ + const float SEMIBOLD = 110.000000; + + + /** specifies a 150% font weight. + */ + const float BOLD = 150.000000; + + + /** specifies a 175% font weight. + */ + const float ULTRABOLD = 175.000000; + + + /** specifies a 200% font weight. + */ + const float BLACK = 200.000000; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/FontWidth.idl b/offapi/com/sun/star/awt/FontWidth.idl new file mode 100644 index 0000000000..50631e6e26 --- /dev/null +++ b/offapi/com/sun/star/awt/FontWidth.idl @@ -0,0 +1,86 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module awt { + + +/** These values are used to specify the width of the characters of a font. + +They may be expanded in future versions.
+ */ +published constants FontWidth +{ + + /** The width of the font is not specified/known. + */ + const float DONTKNOW = 0.000000; + + + /** The width of the font is condensed to 50%. + */ + const float ULTRACONDENSED = 50.000000; + + + /** The width of the font is condensed to 60%. + */ + const float EXTRACONDENSED = 60.000000; + + + /** The width of the font is condensed to 75%. + */ + const float CONDENSED = 75.000000; + + + /** The width of the font is condensed to 90%. + */ + const float SEMICONDENSED = 90.000000; + + + /** The width of the font is normal. + */ + const float NORMAL = 100.000000; + + + /** The width of the font is expanded to 110%. + */ + const float SEMIEXPANDED = 110.000000; + + + /** The width of the font is expanded to 150%. + */ + const float EXPANDED = 150.000000; + + + /** The width of the font is expanded to 175%. + */ + const float EXTRAEXPANDED = 175.000000; + + + /** The width of the font is expanded to 200%. + */ + const float ULTRAEXPANDED = 200.000000; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/Gradient.idl b/offapi/com/sun/star/awt/Gradient.idl new file mode 100644 index 0000000000..eef7da84b7 --- /dev/null +++ b/offapi/com/sun/star/awt/Gradient.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 . + */ + + + + module com { module sun { module star { module awt { + + +/** Describes a gradient between two colors. Many aspects of the + * gradient are undefined, like the algorithm and color space to use + * to interpolate between the colors and what "intensity" means. + */ +published struct Gradient +{ + + /** specifies the style of the gradient. + */ + com::sun::star::awt::GradientStyle Style; + + + /** specifies the color at the start point of the gradient. + */ + com::sun::star::util::Color StartColor; + + + /** specifies the color at the end point of the gradient. + */ + com::sun::star::util::Color EndColor; + + + /** angle of the gradient in 1/10 degree. + */ + short Angle; + + + /** per cent of the total width where just the start color is used. + */ + short Border; + + + /** Specifies the X-coordinate, where the gradient begins. + * This is effectively the center of the RADIAL, ELLIPTICAL, SQUARE and + * RECT style gradients. + */ + short XOffset; + + + /** Specifies the Y-coordinate, where the gradient begins. See + previous field. + */ + short YOffset; + + + /** Specifies the intensity at the start point of the gradient. What that means is undefined. + */ + short StartIntensity; + + + /** specifies the intensity at the end point of the gradient. + */ + short EndIntensity; + + + /** Specifies the number of steps of change color. What that means + * is undefined. + */ + short StepCount; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/Gradient2.idl b/offapi/com/sun/star/awt/Gradient2.idl new file mode 100644 index 0000000000..c9d38657f4 --- /dev/null +++ b/offapi/com/sun/star/awt/Gradient2.idl @@ -0,0 +1,26 @@ +/* -*- 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/. + */ + + +module com { module sun { module star { module awt { + +/** This struct extends the Gradient definition by adding a sequence + of ColorStops to allow definition of multi-color gradients. + */ +struct Gradient2 : Gradient +{ + /** contains the full multi-color gradient definition. + */ + com::sun::star::awt::ColorStopSequence ColorStops; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/GradientStyle.idl b/offapi/com/sun/star/awt/GradientStyle.idl new file mode 100644 index 0000000000..92bd229278 --- /dev/null +++ b/offapi/com/sun/star/awt/GradientStyle.idl @@ -0,0 +1,64 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module awt { + + +/** specify the style of color dispersion. + */ +published enum GradientStyle +{ + + /** specifies a linear gradient. + */ + LINEAR, + + + /** specifies an axial gradient. + */ + AXIAL, + + + /** specifies a radial gradient. + */ + RADIAL, + + + /** specifies an elliptical gradient. + */ + ELLIPTICAL, + + + /** specifies a gradient in the shape of a square. + */ + SQUARE, + + + /** specifies a gradient in the shape of a rectangle. + */ + RECT + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/ImageAlign.idl b/offapi/com/sun/star/awt/ImageAlign.idl new file mode 100644 index 0000000000..5a5b36e8e6 --- /dev/null +++ b/offapi/com/sun/star/awt/ImageAlign.idl @@ -0,0 +1,54 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module awt { + + +/** specifies the alignment of an image. + */ +published constants ImageAlign +{ + + /** specifies to align left. + */ + const short LEFT = 0; + + + /** specifies to align top. + */ + const short TOP = 1; + + + /** specifies to align right. + */ + const short RIGHT = 2; + + + /** specifies to align bottom. + */ + const short BOTTOM = 3; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/ImageDrawMode.idl b/offapi/com/sun/star/awt/ImageDrawMode.idl new file mode 100644 index 0000000000..40001b8bb3 --- /dev/null +++ b/offapi/com/sun/star/awt/ImageDrawMode.idl @@ -0,0 +1,54 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module awt { + +/** defines modes how an image is drawn onto a device + + @see com::sun::star::awt::XGraphics2::drawImage() + @since LibreOffice 4.1 + */ +constants ImageDrawMode +{ + /** the image is drawn as is, without any color transformation. + */ + const short NONE = 0x0000; + + /** the image is drawn as if it represented a feature whose state is disabled. + */ + const short DISABLE = 0x0001; + + /** the image is drawn as being highlighted. + See com::sun::star::awt::XStyleSettings::HighlightColor. + */ + const short HIGHLIGHT = 0x0002; + + /** the image is drawn as being deactivated. + See com::sun::star::awt::XStyleSettings::DeactiveColor. + */ + const short DEACTIVE = 0x0004; + + /** the image is drawn semi-transparent. + */ + const short SEMITRANSPARENT = 0x0010; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/ImagePosition.idl b/offapi/com/sun/star/awt/ImagePosition.idl new file mode 100644 index 0000000000..61a5d49b7b --- /dev/null +++ b/offapi/com/sun/star/awt/ImagePosition.idl @@ -0,0 +1,86 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module awt { + + +/** specifies the position of an image, relative to another object + + @see ImageAlign +*/ +constants ImagePosition +{ + /** specifies that the image should be positioned at the left of, and top-aligned to, the other object + */ + const short LeftTop = 0; + + /** specifies that the image should be positioned at the left of, and vertically centered to, the other object + */ + const short LeftCenter = 1; + + /** specifies that the image should be positioned at the left of, and bottom-aligned to, the other object + */ + const short LeftBottom = 2; + + /** specifies that the image should be positioned at the right of, and top-aligned to, the other object + */ + const short RightTop = 3; + + /** specifies that the image should be positioned at the right of, and vertically centered to, the other object + */ + const short RightCenter = 4; + + /** specifies that the image should be positioned at the right of, and bottom-aligned to, the other object + */ + const short RightBottom = 5; + + /** specifies that the image should be positioned above and left-aligned to the other object + */ + const short AboveLeft = 6; + + /** specifies that the image should be positioned above and horizontally centered to the other object + */ + const short AboveCenter = 7; + + /** specifies that the image should be positioned above and right-aligned to the other object + */ + const short AboveRight = 8; + + /** specifies that the image should be positioned below and left-aligned to the other object + */ + const short BelowLeft = 9; + + /** specifies that the image should be positioned below and horizontally centered to the other object + */ + const short BelowCenter = 10; + + /** specifies that the image should be positioned below and right-aligned centered to the other object + */ + const short BelowRight = 11; + + /** specifies that the image should be horizontally and vertically centered to the other object. + */ + const short Centered = 12; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/ImageScaleMode.idl b/offapi/com/sun/star/awt/ImageScaleMode.idl new file mode 100644 index 0000000000..66317fb14a --- /dev/null +++ b/offapi/com/sun/star/awt/ImageScaleMode.idl @@ -0,0 +1,44 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module awt { + +/** defines modes how an image displayed in a given area should be scaled to fit this area + */ +constants ImageScaleMode +{ + /** specifies that no scaling should happen at all + */ + const short NONE = 0; + + /** specifies that the image should be scaled up or down to the size of the surrounding area isotropically, + i.e. by keeping its aspect ratio. + */ + const short ISOTROPIC = 1; + + /** specifies that the image should be scaled up or down to the size of the surrounding area anisotropically. + +The image will finally cover all of the surrounding area, but its dimensions might be distorted.
+ */ + const short ANISOTROPIC = 2; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/ImageStatus.idl b/offapi/com/sun/star/awt/ImageStatus.idl new file mode 100644 index 0000000000..75f6c39df4 --- /dev/null +++ b/offapi/com/sun/star/awt/ImageStatus.idl @@ -0,0 +1,56 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module awt { + + +/** These values are used to specify to which degree an image is available. + */ +published constants ImageStatus +{ + + /** This conveys that an error was encountered while producing the image. + */ + const long IMAGESTATUS_ERROR = 1; + + + /** This conveys that one frame of the image is complete but there are more + frames to be delivered. + */ + const long IMAGESTATUS_SINGLEFRAMEDONE = 2; + + + /** This conveys that the image is complete and there are no more pixels or + frames to be delivered. + */ + const long IMAGESTATUS_STATICIMAGEDONE = 3; + + + /** This conveys that the image creation process was deliberately aborted. + */ + const long IMAGESTATUS_ABORTED = 4; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/InputEvent.idl b/offapi/com/sun/star/awt/InputEvent.idl new file mode 100644 index 0000000000..c033d3bac3 --- /dev/null +++ b/offapi/com/sun/star/awt/InputEvent.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 . + */ + + + + module com { module sun { module star { module awt { + + +/** the root event class for all component-level input events. + +Input events are delivered to listeners before they are + processed normally by the source where they originated.
+ + @see WindowEvent + */ +published struct InputEvent: com::sun::star::lang::EventObject +{ + + /** contains the modifier keys which were pressed while the event occurred. + +Zero or more constants from the + com::sun::star::awt::KeyModifier group.
+ */ + short Modifiers; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/InvalidateStyle.idl b/offapi/com/sun/star/awt/InvalidateStyle.idl new file mode 100644 index 0000000000..018e079fcf --- /dev/null +++ b/offapi/com/sun/star/awt/InvalidateStyle.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 . + */ + + + + module com { module sun { module star { module awt { + + +/** specifies how to invalidate windows. + */ +published constants InvalidateStyle +{ + + /** The child windows are invalidated, too. + */ + const short CHILDREN = 1; + + + /** The child windows are not invalidated. + */ + const short NOCHILDREN = 2; + + + /** The invalidated area is painted with the background color/pattern. + */ + const short NOERASE = 4; + + + /** The invalidated area is updated immediately. + */ + const short UPDATE = 8; + + + /** The parent window is invalidated, too. + */ + const short TRANSPARENT = 16; + + + /** The parent window is not invalidated. + */ + const short NOTRANSPARENT = 32; + + + /** The area is invalidated regardless of overlapping child windows. + */ + const short NOCLIPCHILDREN = 16384; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/ItemEvent.idl b/offapi/com/sun/star/awt/ItemEvent.idl new file mode 100644 index 0000000000..6652024d3c --- /dev/null +++ b/offapi/com/sun/star/awt/ItemEvent.idl @@ -0,0 +1,49 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module awt { + + +/** specifies an event occurred to an item of a menu, a list box etc. + */ +published struct ItemEvent: com::sun::star::lang::EventObject +{ + + /** specifies which item is newly selected. + */ + long Selected; + + + /** specifies which item is newly highlighted. + */ + long Highlighted; + + + /** specifies the id of the item. + */ + long ItemId; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/ItemListEvent.idl b/offapi/com/sun/star/awt/ItemListEvent.idl new file mode 100644 index 0000000000..9c464be4fe --- /dev/null +++ b/offapi/com/sun/star/awt/ItemListEvent.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 . + */ + + +module com { module sun { module star { module awt { + + +/** is the event broadcasted by a XListItems implementation for changes + in its item list. + */ +struct ItemListEvent : ::com::sun::star::lang::EventObject +{ + /** specifies the position of the item which is affected by the event + +In case the event is not related to a single item, but to the complete list, the value of this + member is undefined.
+ */ + long ItemPosition; + + /** the text of the item. + +If the event being notified did not touch the text of an item, this member is empty. For instance, upon
+ invocation of XItemList::setItemImage(), only ItemImageURL
will be set, and
+ ItemText
will be empty.
If the event being notified did not touch the image of an item, this member is empty. For instance, upon
+ invocation of XItemList::setItemText(), only ItemText
will be set, and
+ ItemImageURL
will be empty.
This is a constant from the constant group Key.
+ */ + short KeyCode; + + + /** contains the Unicode character generated by this event or 0. + */ + char KeyChar; + + + /** contains the function type of the key event. + +This is a constant from the constant group + KeyFunction.
+ */ + short KeyFunc; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/KeyFunction.idl b/offapi/com/sun/star/awt/KeyFunction.idl new file mode 100644 index 0000000000..688d128c79 --- /dev/null +++ b/offapi/com/sun/star/awt/KeyFunction.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 . + */ + + + + module com { module sun { module star { module awt { + + +/** These values are used to specify logical key functions. + */ +published constants KeyFunction +{ + + const short DONTKNOW = 0; + + + const short NEW = 1; + + + const short OPEN = 2; + + + const short SAVE = 3; + + + const short SAVEAS = 4; + + + const short PRINT = 5; + + + const short CLOSE = 6; + + + const short QUIT = 7; + + + const short CUT = 8; + + + const short COPY = 9; + + + const short PASTE = 10; + + + const short UNDO = 11; + + + const short REDO = 12; + + + const short DELETE = 13; + + + const short REPEAT = 14; + + + const short FIND = 15; + + + const short FINDBACKWARD = 16; + + + const short PROPERTIES = 17; + + + const short FRONT = 18; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/KeyGroup.idl b/offapi/com/sun/star/awt/KeyGroup.idl new file mode 100644 index 0000000000..684cfc6254 --- /dev/null +++ b/offapi/com/sun/star/awt/KeyGroup.idl @@ -0,0 +1,66 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module awt { + + +/** These values are used to specify functional groups of keys. + + @deprecated + */ +published constants KeyGroup +{ + + /** specifies a numeric key. + */ + const short NUM = 256; + + + /** specifies an alphabetic key. + */ + const short ALPHA = 512; + + + /** specifies a function key. + */ + const short FKEYS = 768; + + + /** specifies a cursor key. + */ + const short CURSOR = 1024; + + + /** specifies other keys. + */ + const short MISC = 1280; + + + /** specifies the group mask. + */ + const short TYPE = 3840; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/KeyModifier.idl b/offapi/com/sun/star/awt/KeyModifier.idl new file mode 100644 index 0000000000..67cf286a71 --- /dev/null +++ b/offapi/com/sun/star/awt/KeyModifier.idl @@ -0,0 +1,52 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module awt { + + +/** These values are used to specify which modifier keys are pressed. + */ +published constants KeyModifier +{ + + /** refers to both shift keys. + */ + const short SHIFT = 1; + + + /** refers in the most cases to the "Ctrl" key (Cmd on macOS). + */ + const short MOD1 = 2; + + + /** refers in the most cases to the "Alt" key. + */ + const short MOD2 = 4; + + /** refers in the most cases to the "Ctrl" key (macOS) + */ + const short MOD3 = 8; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/KeyStroke.idl b/offapi/com/sun/star/awt/KeyStroke.idl new file mode 100644 index 0000000000..e15f4bd71e --- /dev/null +++ b/offapi/com/sun/star/awt/KeyStroke.idl @@ -0,0 +1,64 @@ +/* -*- 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 . + */ + + + +module com { module sun { module star { module awt { + + +/** Describes a key stroke for hotkeys etc. + + @since OOo 1.1.2 + */ +published struct KeyStroke +{ + + /** contains the modifier keys which were pressed while the event occurred. + +Zero or more constants from the group + com::sun::star::awt::KeyModifier.
+ */ + short Modifiers; + + + /** contains the integer code representing the key of the event. + +This is a constant from the constant group + com::sun::star::awt::Key.
+ */ + short KeyCode; + + + /** contains the Unicode character generated by this event or 0. + */ + char KeyChar; + + + /** contains the function type of the key event. + +This is a constant from the constant group + com::sun::star::awt::KeyFunction.
+ */ + short KeyFunc; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/LineEndFormat.idl b/offapi/com/sun/star/awt/LineEndFormat.idl new file mode 100644 index 0000000000..3132b69927 --- /dev/null +++ b/offapi/com/sun/star/awt/LineEndFormat.idl @@ -0,0 +1,52 @@ +/* -*- 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 . + */ + + + +module com { module sun { module star { module awt { + + +/** These values are used to specify which line end format should be used in strings + */ +constants LineEndFormat +{ + + /** specifies that line ends are to be represented by a carriage + return character (`\r`) + */ + const short CARRIAGE_RETURN = 0; + + + /** specifies that line ends are to be represented by a line feed + character (`\n`) + */ + const short LINE_FEED = 1; + + + /** specifies that line ends are to be represented by a line feed + character (`\n`), followed by a carriage return character (`\r`). + */ + const short CARRIAGE_RETURN_LINE_FEED = 2; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/MenuBar.idl b/offapi/com/sun/star/awt/MenuBar.idl new file mode 100644 index 0000000000..9b79730afc --- /dev/null +++ b/offapi/com/sun/star/awt/MenuBar.idl @@ -0,0 +1,32 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module awt { + +/** describes a menu for top-level windows. +A menu bar can only be used by top-level windows. They support + the interface com::sun::star::awt::XTopWindow + to set an menu bar object. +
+ */ +published service MenuBar : XMenuBar; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/MenuEvent.idl b/offapi/com/sun/star/awt/MenuEvent.idl new file mode 100644 index 0000000000..0fdfbefcff --- /dev/null +++ b/offapi/com/sun/star/awt/MenuEvent.idl @@ -0,0 +1,34 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module awt { + +/** specifies a menu event. + */ +published struct MenuEvent: com::sun::star::lang::EventObject +{ + /** contains the item ID. + */ + short MenuId; + +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/MenuItemStyle.idl b/offapi/com/sun/star/awt/MenuItemStyle.idl new file mode 100644 index 0000000000..bb8ee7259a --- /dev/null +++ b/offapi/com/sun/star/awt/MenuItemStyle.idl @@ -0,0 +1,43 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module awt { + +/** These values are used to specify the properties of a menu item. + */ +constants MenuItemStyle +{ + /** specifies an item which can be checked independently. + */ + const short CHECKABLE = 1; + + /** specifies an item which can be checked dependent on the neighbouring + items. + */ + const short RADIOCHECK = 2; + + /** specifies to check this item automatically on select. + */ + const short AUTOCHECK = 4; + +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/MenuItemType.idl b/offapi/com/sun/star/awt/MenuItemType.idl new file mode 100644 index 0000000000..860844bc1d --- /dev/null +++ b/offapi/com/sun/star/awt/MenuItemType.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 . + */ + +module com { module sun { module star { module awt { + +/** specifies the type of a menu item, as returned by + com::sun::star::awt::XMenu::getItemType(). + */ +published enum MenuItemType +{ + /** specifies that the menu item type is unknown. + */ + DONTKNOW, + + /** specifies that the menu item has a text. + */ + STRING, + + /** specifies that the menu item has an image. + */ + IMAGE, + + /** specifies that the menu item has a text and an image. + */ + STRINGIMAGE, + + /** specifies that the menu item is a separator. + */ + SEPARATOR + +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/MessageBoxButtons.idl b/offapi/com/sun/star/awt/MessageBoxButtons.idl new file mode 100644 index 0000000000..9d3dfa84c8 --- /dev/null +++ b/offapi/com/sun/star/awt/MessageBoxButtons.idl @@ -0,0 +1,79 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module awt { + +/** defines constants for the possible message box button + combinations. + + */ +constants MessageBoxButtons +{ + /** specifies a message with "OK" button. + */ + const long BUTTONS_OK = 1; + + /** specifies a message box with "OK" and "CANCEL" button. + */ + const long BUTTONS_OK_CANCEL = 2; + + /** specifies a message box with "YES" and "NO" button. + */ + const long BUTTONS_YES_NO = 3; + + /** specifies a message box with "YES", "NO" and "CANCEL" button. + */ + const long BUTTONS_YES_NO_CANCEL = 4; + + /** specifies a message box with "RETRY" and "CANCEL" button. + */ + const long BUTTONS_RETRY_CANCEL = 5; + + /** specifies a message box with "ABORT", "IGNORE" and "RETRY" button. + */ + const long BUTTONS_ABORT_IGNORE_RETRY = 6; + + /** specifies that OK is the default button. + */ + const long DEFAULT_BUTTON_OK = 0x10000; + + /** specifies that CANCEL is the default button. + */ + const long DEFAULT_BUTTON_CANCEL = 0x20000; + + /** specifies that RETRY is the default button. + */ + const long DEFAULT_BUTTON_RETRY = 0x30000; + + /** specifies that YES is the default button. + */ + const long DEFAULT_BUTTON_YES = 0x40000; + + /** specifies that NO is the default button. + */ + const long DEFAULT_BUTTON_NO = 0x50000; + + /** specifies that IGNORE is the default button. + */ + const long DEFAULT_BUTTON_IGNORE = 0x60000; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/MessageBoxResults.idl b/offapi/com/sun/star/awt/MessageBoxResults.idl new file mode 100644 index 0000000000..ea547b55ea --- /dev/null +++ b/offapi/com/sun/star/awt/MessageBoxResults.idl @@ -0,0 +1,55 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module awt { + +/** These constants are used to specify a result of executing a XMessageBox. + + @since LibreOffice 4.2 + */ +constants MessageBoxResults +{ + /** The user canceled the XMessageBox, by pressing "Cancel" or "Abort" button. + */ + const short CANCEL = 0; + + /** The user pressed the "Ok" button. + */ + const short OK = 1; + + /** The user pressed the "Yes" button. + */ + const short YES = 2; + + /** The user pressed the "No" button. + */ + const short NO = 3; + + /** The user pressed the "Retry" button. + */ + const short RETRY = 4; + + /** The user pressed the "Ignore" button. + */ + const short IGNORE = 5; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/MessageBoxType.idl b/offapi/com/sun/star/awt/MessageBoxType.idl new file mode 100644 index 0000000000..459697e966 --- /dev/null +++ b/offapi/com/sun/star/awt/MessageBoxType.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 . + */ + +module com { module sun { module star { module awt { + +/** specifies the type of a XMessageBox. + + @since LibreOffice 4.2 + */ +published enum MessageBoxType +{ + /** A normal message box. + */ + MESSAGEBOX, + + /** A message box to inform the user about a certain event + */ + INFOBOX, + + /** A message to warn the user about a certain problem. + */ + WARNINGBOX, + + /** A message box to provide an error message to the user. + */ + ERRORBOX, + + /** A message box to query information from the user. + */ + QUERYBOX +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/MouseButton.idl b/offapi/com/sun/star/awt/MouseButton.idl new file mode 100644 index 0000000000..678a75066e --- /dev/null +++ b/offapi/com/sun/star/awt/MouseButton.idl @@ -0,0 +1,49 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module awt { + + +/** These values are used to specify which keys on the mouse are pressed. + */ +published constants MouseButton +{ + + /** specifies the left mouse button as being pressed. + */ + const short LEFT = 1; + + + /** specifies the right mouse button as being pressed. + */ + const short RIGHT = 2; + + + /** specifies the middle mouse button as being pressed. + */ + const short MIDDLE = 4; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/MouseEvent.idl b/offapi/com/sun/star/awt/MouseEvent.idl new file mode 100644 index 0000000000..1bac81bc55 --- /dev/null +++ b/offapi/com/sun/star/awt/MouseEvent.idl @@ -0,0 +1,79 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module awt { + + +/** specifies an event from the mouse. + +This event is also used for pop-up menu requests on objects. + See #PopupTrigger for details.
+ + @see XMouseListener + @see XMouseMotionListener + @see InputEvent + */ +published struct MouseEvent: com::sun::star::awt::InputEvent +{ + + /** contains the pressed mouse buttons. + +Zero or more constants from the + com::sun::star::awt::MouseButton group.
+ */ + short Buttons; + + + /** contains the x coordinate location of the mouse. + */ + long X; + + + /** contains the y coordinate location of the mouse. + */ + long Y; + + + /** contains the number of mouse clicks associated with event. + */ + long ClickCount; + + + /** specifies if this event is a pop-up menu trigger event. + +If this member is `TRUE`, the event describes a request for a pop-up menu, + also known as context menu, on an object.
+ +In this case, X and Y describe the position
+ where the request was issued. If those members are -1
, then the
+ request was issued using the keyboard, by pressing the operating-system dependent
+ key combination for this purpose.
This event is a special type which is used to ensure that + paint/update method calls are serialized along with the other + events delivered from the event queue.
+ + @see WindowEvent + */ +published struct PaintEvent: com::sun::star::lang::EventObject +{ + + /** contains the rectangle area which needs to be repainted. + */ + com::sun::star::awt::Rectangle UpdateRect; + + + /** contains the number of paint events that follows this event if + it is a multiple PaintEvent. You can collect the PaintEvent + until Count is zero. + */ + short Count; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/Point.idl b/offapi/com/sun/star/awt/Point.idl new file mode 100644 index 0000000000..ba727dddba --- /dev/null +++ b/offapi/com/sun/star/awt/Point.idl @@ -0,0 +1,43 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module awt { + + +/** specifies a 2-dimensional point using the Cartesian coordinate system. + */ +published struct Point +{ + /** specifies the x-coordinate. + */ + long X; + + + /** specifies the y-coordinate. + */ + long Y; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/Pointer.idl b/offapi/com/sun/star/awt/Pointer.idl new file mode 100644 index 0000000000..f83d5d24fe --- /dev/null +++ b/offapi/com/sun/star/awt/Pointer.idl @@ -0,0 +1,32 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module awt { + + +/** + @since LibreOffice 4.1 + */ +service Pointer : XPointer; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/PopupMenu.idl b/offapi/com/sun/star/awt/PopupMenu.idl new file mode 100644 index 0000000000..71261b1d48 --- /dev/null +++ b/offapi/com/sun/star/awt/PopupMenu.idl @@ -0,0 +1,31 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module awt { + +/** describes a popup menu which is a recursive container for commands +A popup menu can be used as a standalone object to display a context + menu. It's also possible to use a popup menu to integrate it into + another menu.
+ */ +published service PopupMenu : XPopupMenu; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/PopupMenuDirection.idl b/offapi/com/sun/star/awt/PopupMenuDirection.idl new file mode 100644 index 0000000000..e130f61411 --- /dev/null +++ b/offapi/com/sun/star/awt/PopupMenuDirection.idl @@ -0,0 +1,52 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module awt { + +/** These values are used to specify the direction in which + a pop-up menu will grow. + +They may be expanded in future versions.
+ */ +published constants PopupMenuDirection +{ + /** opens on execute in a default direction. + */ + const short EXECUTE_DEFAULT = 0; + + /** opens on execute downwards. + */ + const short EXECUTE_DOWN = 1; + + /** opens on execute upwards. + */ + const short EXECUTE_UP = 2; + + /** opens on execute to the left. + */ + const short EXECUTE_LEFT = 4; + + /** opens on execute to the right. + */ + const short EXECUTE_RIGHT = 8; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/PosSize.idl b/offapi/com/sun/star/awt/PosSize.idl new file mode 100644 index 0000000000..88d666f03f --- /dev/null +++ b/offapi/com/sun/star/awt/PosSize.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 . + */ + + + + module com { module sun { module star { module awt { + + +/** These constants are used to flag the parameters of a rectangle. + */ +published constants PosSize +{ + + /** flags the x-coordinate. + */ + const short X = 1; + + + /** flags the y-coordinate. + */ + const short Y = 2; + + + /** flags the width. + */ + const short WIDTH = 4; + + + /** flags the height. + */ + const short HEIGHT = 8; + + + /** flags the x- and y-coordinate. + */ + const short POS = 3; + + + /** flags the width and height. + */ + const short SIZE = 12; + + + /** flags the x- and y-coordinate, width and height. + */ + const short POSSIZE = 15; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/PrinterException.idl b/offapi/com/sun/star/awt/PrinterException.idl new file mode 100644 index 0000000000..9ade25534b --- /dev/null +++ b/offapi/com/sun/star/awt/PrinterException.idl @@ -0,0 +1,37 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module awt { + + +/** fired if a resource cannot be locked. + +It is an error if the exception occurs in a non-transacted task. + A transacted task repeats later.
+ */ +published exception PrinterException: com::sun::star::uno::Exception +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/PrinterServer.idl b/offapi/com/sun/star/awt/PrinterServer.idl new file mode 100644 index 0000000000..f890dd20dc --- /dev/null +++ b/offapi/com/sun/star/awt/PrinterServer.idl @@ -0,0 +1,20 @@ +/* -*- 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/. + */ + +module com { module sun { module star { module awt { + +/** mechanism to discover and manage printers + + @since LibreOffice 4.1 + */ +service PrinterServer: com::sun::star::awt::XPrinterServer2; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/PushButtonType.idl b/offapi/com/sun/star/awt/PushButtonType.idl new file mode 100644 index 0000000000..b2f4503024 --- /dev/null +++ b/offapi/com/sun/star/awt/PushButtonType.idl @@ -0,0 +1,54 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module awt { + + +/** specifies the default actions of a button. + */ +published enum PushButtonType +{ + + /** acts like a standard push button. + */ + STANDARD, + + + /** acts like an OK button. + */ + OK, + + + /** acts like a cancel button. + */ + CANCEL, + + + /** acts like a help button. + */ + HELP + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/RasterOperation.idl b/offapi/com/sun/star/awt/RasterOperation.idl new file mode 100644 index 0000000000..e57a510fbd --- /dev/null +++ b/offapi/com/sun/star/awt/RasterOperation.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 . + */ + + + +module com { module sun { module star { module awt { + + +/** These values are used to specify the binary pixel-operation applied + when pixels are written to the device. +*/ +published enum RasterOperation +{ + + /** sets all pixel as written in the output operation. + */ + OVERPAINT, + + + /** uses the pixel written as one and the current pixel as + the other operator of an exclusive or-operation. + */ + XOR, + + + /** All bits which are affected by this operation are set to 0. + */ + ZEROBITS, + + + /** All bits which are affected by this operation are set to 1. + */ + ALLBITS, + + + /** All bits which are affected by this operation are inverted. + */ + INVERT + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/Rectangle.idl b/offapi/com/sun/star/awt/Rectangle.idl new file mode 100644 index 0000000000..6ae5b89513 --- /dev/null +++ b/offapi/com/sun/star/awt/Rectangle.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 . + */ + + + + module com { module sun { module star { module awt { + + +/** specifies a rectangular area by position and size. + */ +published struct Rectangle +{ + /** specifies the x-coordinate. + */ + long X; + + + /** specifies the y-coordinate. + */ + long Y; + + + /** specifies the width. + */ + long Width; + + + /** specifies the height. + */ + long Height; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/RoadmapItem.idl b/offapi/com/sun/star/awt/RoadmapItem.idl new file mode 100644 index 0000000000..49be369837 --- /dev/null +++ b/offapi/com/sun/star/awt/RoadmapItem.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 . + */ + + + + + module com { module sun { module star { module awt { + + +/* specifies a RoadmapItem which serves as an Element in a Container like the Roadmap + * specified in com::sun::star::awt::UnoControlRoadmapModel and + * com::sun::star::awt::UnoControlRoadmap + */ +service RoadmapItem +{ + /** The ID uniquely identifies the roadmap item. + * When the RoadmapItem is inserted into the Roadmap via "insertByIndex" + * the default value of the ID is the first available absolute digit that + * has not yet been assigned to other existing RoadmapItems. + */ + [property] short ID; + + /** The Label of the RoadmapItem does not include its Prefix that is automatically + * set after the following algorithm: + * (Index + 1) + ". " + Label + */ + [property] string Label; + + + /** When "Interactive" is true the RoadmapItem supports a certain "HyperLabel + * functionality": + * Moving the mouse pointer over the RoadmapItem will change it to a Refhand and + * underline the Label for the time the mouse pointer resides over the RoadmapItem. + * Clicking with mouse pointer will then notify the Roadmap Container. + * The property Interactive" is readonly because it is adapted from the container of the + * RoadmapItem. + */ + [property] boolean Interactive; + + + /** determines whether a control is enabled or disabled. + */ + [property] boolean Enabled; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/ScrollBarOrientation.idl b/offapi/com/sun/star/awt/ScrollBarOrientation.idl new file mode 100644 index 0000000000..b4b3358e66 --- /dev/null +++ b/offapi/com/sun/star/awt/ScrollBarOrientation.idl @@ -0,0 +1,44 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module awt { + + +/** These constants are used to specify the orientation of a scroll bar. + */ +published constants ScrollBarOrientation +{ + + /** specifies a horizontal scroll bar. + */ + const long HORIZONTAL = 0; + + + /** specifies a vertical scroll bar. + */ + const long VERTICAL = 1; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/Selection.idl b/offapi/com/sun/star/awt/Selection.idl new file mode 100644 index 0000000000..82cec12761 --- /dev/null +++ b/offapi/com/sun/star/awt/Selection.idl @@ -0,0 +1,44 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module awt { + + +/** specifies a numerical range. + */ +published struct Selection +{ + + /** specifies the lower limit of the range. + */ + long Min; + + + /** specifies the upper limit of the range. + */ + long Max; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/SimpleFontMetric.idl b/offapi/com/sun/star/awt/SimpleFontMetric.idl new file mode 100644 index 0000000000..b6b8f4af6c --- /dev/null +++ b/offapi/com/sun/star/awt/SimpleFontMetric.idl @@ -0,0 +1,83 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module awt { + + +/** describes the general metrics of a certain font. + */ +published struct SimpleFontMetric +{ + /** specifies the portion of a lower case character that + rises above the height of the character "x" of the font. + +For example, the letters "b", "d", "h", "k" and "l" + have an ascent unequal to 0.
+ +The ascent is measured in pixels, thus the font metric is + device dependent.
+ */ + short Ascent; + + + /** specifies the portion of a letter falling below the baseline. + +For example, the letters "g", "p", and "y" + have a descent unequal to 0.
+ +The descent is measured in pixels, thus the font metric is + device dependent.
+ */ + short Descent; + + + /** specifies the vertical space between lines of this font; + it is also called internal line spacing. + +The leading is measured in pixels, thus the font metric is + device dependent.
+ */ + short Leading; + + + /** specifies the slant of the characters (italic). + +The slant is measured in degrees from 0 to 359.
+ */ + short Slant; + + + /** specifies the code of the first printable character in the font. + */ + char FirstChar; + + + /** specifies the code of the last printable character in the font. + */ + char LastChar; + +}; + + +}; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/Size.idl b/offapi/com/sun/star/awt/Size.idl new file mode 100644 index 0000000000..178896d34f --- /dev/null +++ b/offapi/com/sun/star/awt/Size.idl @@ -0,0 +1,44 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module awt { + + +/** specifies the 2-dimensional size of an area using width and height. + */ +published struct Size +{ + + /** specifies the width. + */ + long Width; + + + /** specifies the height. + */ + long Height; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/SpinEvent.idl b/offapi/com/sun/star/awt/SpinEvent.idl new file mode 100644 index 0000000000..11ad852067 --- /dev/null +++ b/offapi/com/sun/star/awt/SpinEvent.idl @@ -0,0 +1,39 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module awt { + + +/** specifies a spin button event. + */ +published struct SpinEvent: com::sun::star::lang::EventObject +{ + + /** This is a dummy field only. Please ignore. + */ + short dummy1; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/SpinningProgressControlModel.idl b/offapi/com/sun/star/awt/SpinningProgressControlModel.idl new file mode 100644 index 0000000000..daf7278530 --- /dev/null +++ b/offapi/com/sun/star/awt/SpinningProgressControlModel.idl @@ -0,0 +1,40 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module awt { + + +/** is a specialization of the AnimatedImagesControlModel. + +To show a progress which cannot be expressed as a percentage of execution, + it displays animated images from a standard image set.
+ +Three image sets are provided, of size 16x16, 32x32, and 64x64 pixels.
+ */ +service SpinningProgressControlModel +{ + service AnimatedImagesControlModel; +}; + + +}; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/Style.idl b/offapi/com/sun/star/awt/Style.idl new file mode 100644 index 0000000000..b521b94261 --- /dev/null +++ b/offapi/com/sun/star/awt/Style.idl @@ -0,0 +1,45 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module awt { + + +/** specifies the style of a window. + */ +published constants Style +{ + + /** specifies a frame. + */ + const short FRAME = 0; + + + /** specifies a dialog. + */ + const short DIALOG = 1; + +}; + + +}; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/SystemDependentXWindow.idl b/offapi/com/sun/star/awt/SystemDependentXWindow.idl new file mode 100644 index 0000000000..4ee639ef36 --- /dev/null +++ b/offapi/com/sun/star/awt/SystemDependentXWindow.idl @@ -0,0 +1,52 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module awt { + + +/** specifies a system dependent XWindow. + +This is the structure returned in the + XSystemDependentWindowPeer::getWindowHandle() call, + if the system type is + com::sun::star::lang::SystemDependent::XWINDOW.
+ + @deprecated + */ +published struct SystemDependentXWindow +{ + + /** The XWindow handle if possible, otherwise 0. + */ + long WindowHandle; + + + /** The display pointer. + */ + hyper DisplayPointer; + +}; + + +}; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/SystemPointer.idl b/offapi/com/sun/star/awt/SystemPointer.idl new file mode 100644 index 0000000000..d932b03bd5 --- /dev/null +++ b/offapi/com/sun/star/awt/SystemPointer.idl @@ -0,0 +1,407 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module awt { + + +/** specifies the shape of a mouse pointer. + */ +published constants SystemPointer +{ + + /** specifies the normal arrow-like mouse pointer. + */ + const long ARROW = 0; + + + /** specifies an invisible mouse pointer. + */ + const long INVISIBLE = 1; + + + /** specifies a waiting symbol as a mouse pointer (for example hourglass). + */ + const long WAIT = 2; + + + /** specifies a mouse pointer for text (cursor-like). + */ + const long TEXT = 3; + + + /** specifies a mouse pointer for on-line help. + */ + const long HELP = 4; + + + /** specifies a cross as a mouse pointer. + */ + const long CROSS = 5; + + + /** specifies a mouse pointer which symbolizes movement. + */ + const long MOVE = 6; + + + /** specifies a mouse pointer which symbolizes resizing for a top border. + */ + const long NSIZE = 7; + + + /** specifies a mouse pointer which symbolizes resizing for a bottom + border. + */ + const long SSIZE = 8; + + + /** specifies a mouse pointer which symbolizes resizing for a left border. + */ + const long WSIZE = 9; + + + /** specifies a mouse pointer which symbolizes resizing for a right border. + */ + const long ESIZE = 10; + + + /** specifies a mouse pointer which symbolizes resizing for the top-left + corner. + */ + const long NWSIZE = 11; + + + /** specifies a mouse pointer which symbolizes resizing for the top-right + corner. + */ + const long NESIZE = 12; + + + /** specifies a mouse pointer which symbolizes resizing for the bottom-left + corner. + */ + const long SWSIZE = 13; + + + /** specifies a mouse pointer which symbolizes resizing for the + bottom-right corner. + */ + const long SESIZE = 14; + + + /** specifies a mouse pointer which symbolizes window resizing for a top + border. + */ + const long WINDOW_NSIZE = 15; + + + /** specifies a mouse pointer which symbolizes window resizing for a bottom + border. + */ + const long WINDOW_SSIZE = 16; + + + /** specifies a mouse pointer which symbolizes window resizing for a left + border. + */ + const long WINDOW_WSIZE = 17; + + + /** specifies a mouse pointer which symbolizes window resizing for a right + border. + */ + const long WINDOW_ESIZE = 18; + + + /** specifies a mouse pointer which symbolizes window resizing for the + top-left corner. + */ + const long WINDOW_NWSIZE = 19; + + + /** specifies a mouse pointer which symbolizes window resizing for the + top-right corner. + */ + const long WINDOW_NESIZE = 20; + + + /** specifies a mouse pointer which symbolizes window resizing for the + bottom-left corner. + */ + const long WINDOW_SWSIZE = 21; + + + /** specifies a mouse pointer which symbolizes window resizing for the + bottom-right corner. + */ + const long WINDOW_SESIZE = 22; + + + /** specifies a mouse pointer which symbolizes horizontal splitting. + */ + const long HSPLIT = 23; + + + /** specifies a mouse pointer which symbolizes vertical splitting. + */ + const long VSPLIT = 24; + + + /** specifies a mouse pointer which symbolizes horizontal resizing. + */ + const long HSIZEBAR = 25; + + + /** specifies a mouse pointer which symbolizes vertical resizing. + */ + const long VSIZEBAR = 26; + + + /** specifies a hand symbol as mouse pointer. + */ + const long HAND = 27; + + + /** specifies a pointing hand symbol as mouse pointer. + */ + const long REFHAND = 28; + + + /** specifies a pen symbol as mouse pointer. + */ + const long PEN = 29; + + + /** specifies a magnify symbol as mouse pointer. + */ + const long MAGNIFY = 30; + + + /** specifies a fill symbol as mouse pointer. + */ + const long FILL = 31; + + + /** specifies a rotate symbol as mouse pointer. + */ + const long ROTATE = 32; + + + /** specifies a horizontal shear symbol as mouse pointer. + */ + const long HSHEAR = 33; + + + /** specifies a vertical shear symbol as mouse pointer. + */ + const long VSHEAR = 34; + + + /** specifies a mirror symbol as mouse pointer. + */ + const long MIRROR = 35; + + + /** specifies a crook symbol as mouse pointer. + */ + const long CROOK = 36; + + + /** specifies a crop symbol as mouse pointer. + */ + const long CROP = 37; + + + /** specifies a mouse pointer which symbolizes moving a point. + */ + const long MOVEPOINT = 38; + + + /** specifies a mouse pointer which symbolizes moving a Bezier weight. + */ + const long MOVEBEZIERWEIGHT = 39; + + + /** specifies a mouse pointer which symbolizes moving data. + */ + const long MOVEDATA = 40; + + + /** specifies a mouse pointer which symbolizes copying data. + */ + const long COPYDATA = 41; + + + /** specifies a mouse pointer which symbolizes linking data. + */ + const long LINKDATA = 42; + + + /** specifies a mouse pointer which symbolizes moving a data link. + */ + const long MOVEDATALINK = 43; + + + /** specifies a mouse pointer which symbolizes copying a data link. + */ + const long COPYDATALINK = 44; + + + /** specifies a mouse pointer which symbolizes moving a file. + */ + const long MOVEFILE = 45; + + + /** specifies a mouse pointer which symbolizes copying a file. + */ + const long COPYFILE = 46; + + + /** specifies a mouse pointer which symbolizes linking a file. + */ + const long LINKFILE = 47; + + + /** specifies a mouse pointer which symbolizes moving a file link. + */ + const long MOVEFILELINK = 48; + + + /** specifies a mouse pointer which symbolizes copying a file link. + */ + const long COPYFILELINK = 49; + + + /** specifies a mouse pointer which symbolizes moving multiple files. + */ + const long MOVEFILES = 50; + + + /** specifies a mouse pointer which symbolizes copying multiple files. + */ + const long COPYFILES = 51; + + + /** specifies a mouse pointer which symbolizes "not allowed". + */ + const long NOTALLOWED = 52; + + + /** specifies a mouse pointer which symbolizes drawing a line. + */ + const long DRAW_LINE = 53; + + + /** specifies a mouse pointer which symbolizes drawing a rectangle. + */ + const long DRAW_RECT = 54; + + + /** specifies a mouse pointer which symbolizes drawing a polygon. + */ + const long DRAW_POLYGON = 55; + + + /** specifies a mouse pointer which symbolizes drawing a Bezier. + */ + const long DRAW_BEZIER = 56; + + + /** specifies a mouse pointer which symbolizes drawing an arc. + */ + const long DRAW_ARC = 57; + + + /** specifies a mouse pointer which symbolizes drawing a pie. + */ + const long DRAW_PIE = 58; + + + /** specifies a mouse pointer which symbolizes drawing a circle cut. + */ + const long DRAW_CIRCLECUT = 59; + + + /** specifies a mouse pointer which symbolizes drawing an ellipse. + */ + const long DRAW_ELLIPSE = 60; + + + /** specifies a mouse pointer which symbolizes drawing free handed. + */ + const long DRAW_FREEHAND = 61; + + + /** specifies a mouse pointer which symbolizes drawing a connector. + */ + const long DRAW_CONNECT = 62; + + + /** specifies a mouse pointer which symbolizes drawing text. + */ + const long DRAW_TEXT = 63; + + + /** specifies a mouse pointer which symbolizes drawing a text caption. + */ + const long DRAW_CAPTION = 64; + + + /** specifies a mouse pointer which symbolizes a chart. + */ + const long CHART = 65; + + + /** specifies a mouse pointer which symbolizes a detective. + */ + const long DETECTIVE = 66; + + + /** specifies a mouse pointer which symbolizes a pivot column. + */ + const long PIVOT_COL = 67; + + + /** specifies a mouse pointer which symbolizes a pivot row. + */ + const long PIVOT_ROW = 68; + + + /** specifies a mouse pointer which symbolizes a pivot field. + */ + const long PIVOT_FIELD = 69; + + + /** specifies a mouse pointer which symbolizes a chain. + */ + const long CHAIN = 70; + + + /** specifies a mouse pointer which symbolizes "chaining not allowed". + */ + const long CHAIN_NOTALLOWED = 71; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/TabController.idl b/offapi/com/sun/star/awt/TabController.idl new file mode 100644 index 0000000000..ece9385aa1 --- /dev/null +++ b/offapi/com/sun/star/awt/TabController.idl @@ -0,0 +1,32 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module awt { + + +/** specifies a standard tab controller. + */ +published service TabController : XTabController; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/TabControllerModel.idl b/offapi/com/sun/star/awt/TabControllerModel.idl new file mode 100644 index 0000000000..1a57494b0a --- /dev/null +++ b/offapi/com/sun/star/awt/TabControllerModel.idl @@ -0,0 +1,38 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module awt { + + +/** specifies a standard tab controller model. + */ +published service TabControllerModel +{ + interface com::sun::star::awt::XTabControllerModel; + + interface com::sun::star::io::XPersistObject; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/TextAlign.idl b/offapi/com/sun/star/awt/TextAlign.idl new file mode 100644 index 0000000000..810bb6832d --- /dev/null +++ b/offapi/com/sun/star/awt/TextAlign.idl @@ -0,0 +1,49 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module awt { + + +/** specifies the alignment of text. + */ +published constants TextAlign +{ + + /** specifies to left align text. + */ + const long LEFT = 0; + + + /** specifies to center text. + */ + const long CENTER = 1; + + + /** specifies to right align text. + */ + const long RIGHT = 2; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/TextEvent.idl b/offapi/com/sun/star/awt/TextEvent.idl new file mode 100644 index 0000000000..924f76d358 --- /dev/null +++ b/offapi/com/sun/star/awt/TextEvent.idl @@ -0,0 +1,39 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module awt { + + +/** specifies a text event. + */ +published struct TextEvent: com::sun::star::lang::EventObject +{ + + /** This is a dummy field only. Please ignore. + */ + short dummy1; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/Toolkit.idl b/offapi/com/sun/star/awt/Toolkit.idl new file mode 100644 index 0000000000..115ae005b2 --- /dev/null +++ b/offapi/com/sun/star/awt/Toolkit.idl @@ -0,0 +1,35 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module awt { + +/** describes a toolkit that creates windows on a screen. + +The design of the interfaces for the toolkit implementation + should be remote. This means that the calls to the interfaces + of the toolkit should be one-way. Too many synchronous calls kill the + remote performance.
+ */ +published service Toolkit : XToolkit2; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/UnoControl.idl b/offapi/com/sun/star/awt/UnoControl.idl new file mode 100644 index 0000000000..250bee3c5a --- /dev/null +++ b/offapi/com/sun/star/awt/UnoControl.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 . + */ + + + + module com { module sun { module star { module awt { + + +/** specifies an abstract control. + +All components which implement this service can + be integrated in a windowing environment. This service describes + the controller of the Smalltalk model view controller design.
+ +You must set a model and a stub to the UnoControl before using + other methods. The implementation only allows the change of the + graphics (XView) if the window is not visible. The + change of the graphics in visible state should redirect the output + to these graphics, but this behavior is implementation-specific.
+ +The change of data directly at the control may not affect the + model data. To ensure this behavior, modify the data of the model.
+ */ +published service UnoControl +{ + interface com::sun::star::lang::XComponent; + + interface com::sun::star::awt::XControl; + + interface com::sun::star::awt::XWindow; + + interface com::sun::star::awt::XView; + + /** provides access to the accessible context associated with this object. + + @since OOo 1.1.2 + */ + [optional] interface com::sun::star::accessibility::XAccessible; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/UnoControlButton.idl b/offapi/com/sun/star/awt/UnoControlButton.idl new file mode 100644 index 0000000000..501033c997 --- /dev/null +++ b/offapi/com/sun/star/awt/UnoControlButton.idl @@ -0,0 +1,40 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module awt { + + +/** specifies a button control. + */ +published service UnoControlButton +{ + service com::sun::star::awt::UnoControl; + + interface com::sun::star::awt::XButton; + + interface com::sun::star::awt::XLayoutConstrains; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/UnoControlButtonModel.idl b/offapi/com/sun/star/awt/UnoControlButtonModel.idl new file mode 100644 index 0000000000..78d0af6e63 --- /dev/null +++ b/offapi/com/sun/star/awt/UnoControlButtonModel.idl @@ -0,0 +1,237 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module awt { + + +/** specifies the standard model of a UnoControlButton. + */ +published service UnoControlButtonModel +{ + service com::sun::star::awt::UnoControlModel; + + + /** specifies the horizontal alignment of the text in the control. + ++ 0: left + 1: center + 2: right ++ */ + [optional, property] short Align; + + + /** specifies the background color (RGB) of the control. + */ + [property] com::sun::star::util::Color BackgroundColor; + + + /** specifies that the button is the default button on the document. + */ + [property] boolean DefaultButton; + + + /** determines whether the control is enabled or disabled. + */ + [property] boolean Enabled; + + + /** specifies whether the button control should grab the focus when clicked. + +
If set to `TRUE` (which is the default), the button control automatically grabs the
+ focus when the user clicks onto it with the mouse.
+ If set to `FALSE`, the focus is preserved when the user operates the button control with
+ the mouse.
Valid values of this property are specified with ImagePosition.
+ +If this property is present, it supersedes the #ImageAlign property - setting + one of both properties sets the other one to the best possible match.
+ */ + [optional, property] short ImagePosition; + + + /** specifies a URL to an image to use for the button. + @see Graphic + */ + [property] string ImageURL; + + + /** specifies a graphic to be displayed at the button + +If this property is present, it interacts with the #ImageURL in the + following way: +
Normally, when you click a button with the mouse, you need to + release the mouse button, and press it again. With this property + set to `TRUE`, the button is repeatedly pressed while you hold + down the mouse button.
+ + @since OOo 2.0 + */ + [optional, property] boolean Repeat; + + + /** specifies the mouse repeat delay, in milliseconds. + +When the user presses a mouse in a control area where this triggers + an action (such as pressing the button), then usual control implementations + allow to repeatedly trigger this action, without the need to release the + mouse button and to press it again. The delay between two such triggers + is specified with this property.
+ + @since OOo 2.0 + */ + [optional, property] long RepeatDelay; + + + /** specifies the state of the control. + + If #Toggle property is set to `TRUE`, the pressed state + is enabled and its pressed state can be obtained with this property. + ++ 0: not pressed + 1: pressed + 2: don't know ++ @see #Toggle + */ + [property] short State; + + + /** specifies that the control can be reached with the TAB key. + */ + [property] boolean Tabstop; + + + /** specifies the text color (RGB) of the control. + */ + [property] com::sun::star::util::Color TextColor; + + + /** specifies the text line color (RGB) of the control. + */ + [property] com::sun::star::util::Color TextLineColor; + + + /** specifies whether the button should toggle on a single operation. + +
If this property is set to `TRUE`, a single operation of the button control (pressing space + while it is focused, or clicking onto it) toggles it between a pressed and a not + pressed state.
+ +The default for this property is `FALSE`, which means the button behaves like a usual + push button.
+ + @since OOo 2.0 + */ + [optional, property] boolean Toggle; + + + /** specifies the vertical alignment of the text in the control. + + @since OOo 2.0 + */ + [optional, property] com::sun::star::style::VerticalAlignment VerticalAlign; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/UnoControlCheckBox.idl b/offapi/com/sun/star/awt/UnoControlCheckBox.idl new file mode 100644 index 0000000000..af5775305d --- /dev/null +++ b/offapi/com/sun/star/awt/UnoControlCheckBox.idl @@ -0,0 +1,40 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module awt { + + +/** specifies a check box control. + */ +published service UnoControlCheckBox +{ + service com::sun::star::awt::UnoControl; + + interface com::sun::star::awt::XCheckBox; + + interface com::sun::star::awt::XLayoutConstrains; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/UnoControlCheckBoxModel.idl b/offapi/com/sun/star/awt/UnoControlCheckBoxModel.idl new file mode 100644 index 0000000000..6d879b18ce --- /dev/null +++ b/offapi/com/sun/star/awt/UnoControlCheckBoxModel.idl @@ -0,0 +1,190 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module awt { + + +/** specifies the standard model of a UnoControlCheckBox. + */ +published service UnoControlCheckBoxModel +{ + service com::sun::star::awt::UnoControlModel; + + + /** specifies the horizontal alignment of the text in the control. + ++ 0: left + 1: center + 2: right ++ + @since OOo 2.0 + */ + [optional, property] short Align; + + + /** specifies the background color (RGB) of the control. + */ + [optional, property] long BackgroundColor; + + + /** determines whether the control is enabled or disabled. + */ + [property] boolean Enabled; + + + /** specifies the font attributes of the text in the control. + */ + [property] com::sun::star::awt::FontDescriptor FontDescriptor; + + + /** specifies the com::sun::star::text::FontEmphasis + value of the text in the control. + */ + [property] short FontEmphasisMark; + + + /** specifies the com::sun::star::text::FontRelief + value of the text in the control. + */ + [property] short FontRelief; + + + /** specifies the help text of the control. + */ + [property] string HelpText; + + + /** specifies the help URL of the control. + */ + [property] string HelpURL; + + + /** specifies the position of the image, if any, relative to the text, if any + +
Valid values of this property are specified with ImagePosition.
+ */ + [optional, property] short ImagePosition; + + + /** specifies a URL to an image to display besides the label of the control + @see Graphic + */ + [optional, property] string ImageURL; + + + /** specifies a graphic to be displayed besides the label of the control + +If this property is present, it interacts with the #ImageURL in the + following way: +
+ 0: not checked + 1: checked + 2: don't know ++ */ + [property] short State; + + + /** specifies that the control can be reached with the TAB key. + */ + [property] boolean Tabstop; + + + /** specifies the text color (RGB) of the control. + */ + [property] com::sun::star::util::Color TextColor; + + + /** specifies the text line color (RGB) of the control. + */ + [property] com::sun::star::util::Color TextLineColor; + + + /** specifies that the control may have the state "don't know". + */ + [property] boolean TriState; + + + /** specifies the vertical alignment of the text in the control. + + @since OOo 2.0 + */ + [optional, property] com::sun::star::style::VerticalAlignment VerticalAlign; + + + /** specifies a visual effect to apply to the check box control + +
Possible values for this property are VisualEffect::FLAT and + VisualEffect::LOOK3D.
+ + @see com::sun::star::awt::VisualEffect + + @since OOo 2.0 + */ + [optional, property] short VisualEffect; + + /** denotes the writing mode used in the control, as specified in the + com::sun::star::text::WritingMode2 constants group. + +Only com::sun::star::text::WritingMode2::LR_TB and + com::sun::star::text::WritingMode2::RL_TB are supported at the moment.
+ + @since OOo 3.1 + */ + [optional, property] short WritingMode; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/UnoControlComboBox.idl b/offapi/com/sun/star/awt/UnoControlComboBox.idl new file mode 100644 index 0000000000..e8cdedc5be --- /dev/null +++ b/offapi/com/sun/star/awt/UnoControlComboBox.idl @@ -0,0 +1,38 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module awt { + + +/** specifies a combo box control. + */ +published service UnoControlComboBox +{ + service com::sun::star::awt::UnoControlEdit; + + interface com::sun::star::awt::XComboBox; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/UnoControlComboBoxModel.idl b/offapi/com/sun/star/awt/UnoControlComboBoxModel.idl new file mode 100644 index 0000000000..929586f5f5 --- /dev/null +++ b/offapi/com/sun/star/awt/UnoControlComboBoxModel.idl @@ -0,0 +1,216 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module awt { + + +/** specifies the standard model of a UnoControlComboBox. + */ +published service UnoControlComboBoxModel +{ + service com::sun::star::awt::UnoControlModel; + + + /** specifies the horizontal alignment of the text in the control. + ++ 0: left + 1: center + 2: right ++ */ + [optional, property] short Align; + + + /** specifies whether automatic completion of text is enabled. + */ + [property] boolean Autocomplete; + + + /** specifies the background color (RGB) of the control. + */ + [property] com::sun::star::util::Color BackgroundColor; + + + /** specifies the border style of the control. + +
+ 0: No border + 1: 3D border + 2: simple border ++ */ + [property] short Border; + + + /** specifies the color of the border, if present + +
Not every border style (see #Border) may support coloring. + For instance, usually a border with 3D effect will ignore the BorderColor setting.
+ + @since OOo 2.0 + */ + [optional, property] long BorderColor; + + + /** specifies if the control has a drop down button. + */ + [property] boolean Dropdown; + + + /** determines whether the control is enabled or disabled. + */ + [property] boolean Enabled; + + + /** specifies the font attributes of the text in the control. + */ + [property] com::sun::star::awt::FontDescriptor FontDescriptor; + + + /** specifies the com::sun::star::text::FontEmphasis + value of the text in the control. + */ + [property] short FontEmphasisMark; + + + /** specifies the com::sun::star::text::FontRelief + value of the text in the control. + */ + [property] short FontRelief; + + + /** specifies the help text of the control. + */ + [property] string HelpText; + + + /** specifies the help URL of the control. + */ + [property] string HelpURL; + + + /** specifies whether the selection in the control should be hidden when + the control is not active (focused). + + @since OOo 2.0 + */ + [optional, property] boolean HideInactiveSelection; + + + /** specifies the maximum line count displayed in the drop down box. + */ + [property] short LineCount; + + + /** specifies the maximum character count. + +There's no limitation, if set to 0.
+ */ + [property] short MaxTextLen; + + + /** specifies that the control will be printed with the document. + */ + [property] boolean Printable; + + + /** specifies that the content of the control cannot be modified by the user. + */ + [property] boolean ReadOnly; + + + /** specifies the list of items. + */ + [property] sequenceOnly com::sun::star::text::WritingMode2::LR_TB and + com::sun::star::text::WritingMode2::RL_TB are supported at the moment.
+ + @since OOo 3.1 + */ + [optional, property] short WritingMode; + + /** defines how the mouse wheel can be used to scroll through the control's content. + +Usually, the mouse wheel scroll through the control's entry list. Using this property, + and one of the MouseWheelBehavior constants, you can control under which circumstances + this is possible.
+ */ + [optional, property] short MouseWheelBehavior; + + /** allows manipulating the list of items in the combo box more fine-grained than the + #StringItemList property. + */ + [optional] interface XItemList; + + /** specifies the list of raw typed (not stringized) items. + +This list corresponds with the StringItemList and if given + has to be of the same length, the elements' positions matching + those of their string representation in StringItemList.
+ +If a new value is entered via the ComboBox edit then this + list will be invalidated.
+ + @since LibreOffice 5.4 + */ + [optional, property] sequence+ 0: No border + 1: 3D border + 2: simple border ++ */ + [property] short Border; + + + /** specifies the color of the border, if present + +
Not every border style (see #Border) may support coloring. + For instance, usually a border with 3D effect will ignore the BorderColor setting.
+ + @since OOo 2.0 + */ + [optional, property] long BorderColor; + + + /** specifies whether the control will be printed with the document. + */ + [property] boolean Printable; + + + /** specifies the text displayed in the control. + */ + [property] string Text; + + + /** specifies the help text of the control. + */ + [property] string HelpText; + + + /** specifies the help URL of the control. + */ + [property] string HelpURL; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/UnoControlCurrencyField.idl b/offapi/com/sun/star/awt/UnoControlCurrencyField.idl new file mode 100644 index 0000000000..815eb202b5 --- /dev/null +++ b/offapi/com/sun/star/awt/UnoControlCurrencyField.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 . + */ + + + + module com { module sun { module star { module awt { + + +/** specifies a currency field control. + +A currency field makes it possible to enter, display and edit + currency values.
+ */ +published service UnoControlCurrencyField +{ + service com::sun::star::awt::UnoControlEdit; + + /** gives access to the value of a spin field and makes it possible to + register for spin events. + + @since OOo 1.1.2 + */ + [optional] interface com::sun::star::awt::XSpinField; + + interface com::sun::star::awt::XCurrencyField; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/UnoControlCurrencyFieldModel.idl b/offapi/com/sun/star/awt/UnoControlCurrencyFieldModel.idl new file mode 100644 index 0000000000..17858c37e2 --- /dev/null +++ b/offapi/com/sun/star/awt/UnoControlCurrencyFieldModel.idl @@ -0,0 +1,234 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module awt { + + +/** specifies the standard model of a UnoControlCurrencyField. + */ +published service UnoControlCurrencyFieldModel +{ + service com::sun::star::awt::UnoControlModel; + + + /** specifies the background color (RGB) of the control. + */ + [property] com::sun::star::util::Color BackgroundColor; + + + /** specifies the border style of the control. + ++ 0: No border + 1: 3D border + 2: simple border ++ */ + [property] short Border; + + + /** specifies the color of the border, if present + +
Not every border style (see #Border) may support coloring. + For instance, usually a border with 3D effect will ignore the BorderColor setting.
+ + @since OOo 2.0 + */ + [optional, property] long BorderColor; + + + /** specifies the currency symbol. + */ + [property] string CurrencySymbol; + + + /** specifies the decimal accuracy. + */ + [property] short DecimalAccuracy; + + + /** determines whether the control is enabled or disabled. + */ + [property] boolean Enabled; + + + /** specifies the font attributes of the text in the control. + */ + [property] com::sun::star::awt::FontDescriptor FontDescriptor; + + + /** specifies the com::sun::star::text::FontEmphasis + value of the text in the control. + */ + [property] short FontEmphasisMark; + + + /** specifies the com::sun::star::text::FontRelief + value of the text in the control. + */ + [property] short FontRelief; + + + /** specifies the help text of the control. + */ + [property] string HelpText; + + + /** specifies the help URL of the control. + */ + [property] string HelpURL; + + + /** specifies whether the selection in the control should be hidden when + the control is not active (focused). + + @since OOo 2.0 + */ + [optional, property] boolean HideInactiveSelection; + + + /** specifies whether the currency symbol is to be prepended. + */ + + [property] boolean PrependCurrencySymbol; + + + /** specifies that the control will be printed with the document. + */ + [property] boolean Printable; + + + /** specifies that the content of the control cannot be modified by the user. + */ + [property] boolean ReadOnly; + + + /** specifies whether the mouse should show repeating behavior, i.e. + repeatedly trigger an action when keeping pressed. + + @since OOo 2.0 + */ + [optional, property] boolean Repeat; + + + /** specifies the mouse repeat delay, in milliseconds. + +When the user presses a mouse in a control area where this triggers + an action (such as spinning the value), then usual control implementations + allow to repeatedly trigger this action, without the need to release the + mouse button and to press it again. The delay between two such triggers + is specified with this property.
+ + @since OOo 2.0 + */ + [optional, property] long RepeatDelay; + + + /** specifies whether the thousands separator is to be displayed. + */ + [property] boolean ShowThousandsSeparator; + + + /** specifies that the control has a spin button. + */ + [property] boolean Spin; + + + /** specifies that the value is checked during the user input. + */ + [property] boolean StrictFormat; + + + /** specifies that the control can be reached with the TAB key. + */ + [property] boolean Tabstop; + + + /** specifies the text color (RGB) of the control. + */ + [property] com::sun::star::util::Color TextColor; + + + /** specifies the text line color (RGB) of the control. + */ + [property] com::sun::star::util::Color TextLineColor; + + + /** specifies the value displayed in the control. + */ + [property] double Value; + + + /** specifies the maximum value that can be entered. + */ + [property] double ValueMax; + + + /** specifies the minimum value that can be entered. + */ + [property] double ValueMin; + + + /** specifies the value step when using the spin button. + */ + [property] double ValueStep; + + /** denotes the writing mode used in the control, as specified in the + com::sun::star::text::WritingMode2 constants group. + +Only com::sun::star::text::WritingMode2::LR_TB and + com::sun::star::text::WritingMode2::RL_TB are supported at the moment.
+ + @since OOo 3.1 + */ + [optional, property] short WritingMode; + + /** defines how the mouse wheel can be used to scroll through the control's content. + +Usually, the mouse wheel spins the numeric value displayed in the control. Using this property, + and one of the MouseWheelBehavior constants, you can control under which circumstances + this is possible.
+ */ + [optional, property] short MouseWheelBehavior; + + + /** specifies the vertical alignment of the text in the control. + + @since OOo 3.3 + */ + [optional, property] com::sun::star::style::VerticalAlignment VerticalAlign; + + /** specifies the background color (RGB) of selected text in the control which is highlighted. + + @since LibreOffice 7.5 + */ + [optional, property] com::sun::star::util::Color HighlightColor; + + /** specifies the text color (RGB) of selected text in the control which is highlighted. + + @since LibreOffice 7.5 + */ + [optional, property] com::sun::star::util::Color HighlightTextColor; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/UnoControlDateField.idl b/offapi/com/sun/star/awt/UnoControlDateField.idl new file mode 100644 index 0000000000..ea6a572bd8 --- /dev/null +++ b/offapi/com/sun/star/awt/UnoControlDateField.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 . + */ + + + + module com { module sun { module star { module awt { + + +/** specifies a date field control. + +A date field makes it possible to enter, display and edit date values.
+ */ +published service UnoControlDateField +{ + service com::sun::star::awt::UnoControlEdit; + + /** gives access to the value of a spin field and makes it possible to + register for spin events. + + @since OOo 1.1.2 + */ + [optional] interface com::sun::star::awt::XSpinField; + + interface com::sun::star::awt::XDateField; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/UnoControlDateFieldModel.idl b/offapi/com/sun/star/awt/UnoControlDateFieldModel.idl new file mode 100644 index 0000000000..82ccd12c0a --- /dev/null +++ b/offapi/com/sun/star/awt/UnoControlDateFieldModel.idl @@ -0,0 +1,245 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module awt { + + +/** specifies the standard model of a UnoControlDateField. + */ +published service UnoControlDateFieldModel +{ + service com::sun::star::awt::UnoControlModel; + + + /** specifies the background color(RGB) of the control. + */ + [property] com::sun::star::util::Color BackgroundColor; + + + /** specifies the border style of the control. + ++ 0: No border + 1: 3D border + 2: simple border ++ */ + [property] short Border; + + + /** specifies the color of the border, if present + +
Not every border style (see #Border) may support coloring. + For instance, usually a border with 3D effect will ignore the BorderColor setting.
+ + @since OOo 2.0 + */ + [optional, property] long BorderColor; + + + /** specifies the date displayed in the control. + */ + [property] ::com::sun::star::util::Date Date; + + + /** specifies the format of the displayed date. + ++ 0: system short + 1: system short YY + 2: system short YYYY + 3: system long + 4: short DDMMYY + 5: short MMDDYY + 6: short YYMMDD + 7: short DDMMYYYY + 8: short MMDDYYYY + 9: short YYYYMMDD + 10: short YYMMDD DIN5008 + 11: short YYYYMMDD DIN5008 ++ */ + [property] short DateFormat; + + + /** specifies the maximum date that can be entered. + */ + [property] ::com::sun::star::util::Date DateMax; + + + /** specifies the minimum date that can be entered. + */ + [property] ::com::sun::star::util::Date DateMin; + + + /** specifies, if the date century is displayed. + */ + [property] boolean DateShowCentury; + + + /** specifies, if the control has a dropdown button. + */ + [property] boolean Dropdown; + + + /** determines whether the control is enabled or disabled. + */ + [property] boolean Enabled; + + + /** specifies the font attributes of the text in the control. + */ + [property] com::sun::star::awt::FontDescriptor FontDescriptor; + + + /** specifies the com::sun::star::text::FontEmphasis + value of the text in the control. + */ + [property] short FontEmphasisMark; + + + /** specifies the com::sun::star::text::FontRelief + value of the text in the control. + */ + [property] short FontRelief; + + + /** specifies the help text of the control. + */ + [property] string HelpText; + + + /** specifies the help URL of the control. + */ + [property] string HelpURL; + + + /** specifies whether the selection in the control should be hidden when + the control is not active (focused). + + @since OOo 2.0 + */ + [optional, property] boolean HideInactiveSelection; + + + /** specifies that the control will be printed with the document. + */ + [property] boolean Printable; + + + /** specifies that the content of the control cannot be modified by the user. + */ + [property] boolean ReadOnly; + + + /** specifies whether the mouse should show repeating behavior, i.e. + repeatedly trigger an action when keeping pressed. + + @since OOo 2.0 + */ + [optional, property] boolean Repeat; + + + /** specifies the mouse repeat delay, in milliseconds. + +
When the user presses a mouse in a control area where this triggers + an action (such as spinning the value), then usual control implementations + allow to repeatedly trigger this action, without the need to release the + mouse button and to press it again. The delay between two such triggers + is specified with this property.
+ + @since OOo 2.0 + */ + [optional, property] long RepeatDelay; + + + /** specifies that the control has a spin button. + */ + [property] boolean Spin; + + + /** specifies that the date is checked during the user input. + */ + [property] boolean StrictFormat; + + + /** specifies that the control can be reached with the TAB key. + */ + [property] boolean Tabstop; + + + /** specifies the text displayed in the control. + + @since OOo 2.0 + */ + [optional, property] string Text; + + + /** specifies the text color (RGB) of the control. + */ + [property] com::sun::star::util::Color TextColor; + + + /** specifies the text line color (RGB) of the control. + */ + [property] com::sun::star::util::Color TextLineColor; + + /** denotes the writing mode used in the control, as specified in the + com::sun::star::text::WritingMode2 constants group. + +Only com::sun::star::text::WritingMode2::LR_TB and + com::sun::star::text::WritingMode2::RL_TB are supported at the moment.
+ + @since OOo 3.1 + */ + [optional, property] short WritingMode; + + /** defines how the mouse wheel can be used to scroll through the control's content. + +Usually, the mouse wheel spins the numeric value displayed in the control. Using this property, + and one of the MouseWheelBehavior constants, you can control under which circumstances + this is possible.
+ */ + [optional, property] short MouseWheelBehavior; + + + /** specifies the vertical alignment of the text in the control. + + @since OOo 3.3 + */ + [optional, property] com::sun::star::style::VerticalAlignment VerticalAlign; + + /** specifies the background color (RGB) of selected text in the control which is highlighted. + + @since LibreOffice 7.5 + */ + [optional, property] com::sun::star::util::Color HighlightColor; + + /** specifies the text color (RGB) of selected text in the control which is highlighted. + + @since LibreOffice 7.5 + */ + [optional, property] com::sun::star::util::Color HighlightTextColor; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/UnoControlDialog.idl b/offapi/com/sun/star/awt/UnoControlDialog.idl new file mode 100644 index 0000000000..90620ab309 --- /dev/null +++ b/offapi/com/sun/star/awt/UnoControlDialog.idl @@ -0,0 +1,30 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module awt { + + +/** specifies a dialog control. + */ +published service UnoControlDialog : XUnoControlDialog; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/UnoControlDialogElement.idl b/offapi/com/sun/star/awt/UnoControlDialogElement.idl new file mode 100644 index 0000000000..4176645b1e --- /dev/null +++ b/offapi/com/sun/star/awt/UnoControlDialogElement.idl @@ -0,0 +1,75 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module awt { + + +/** specifies a set of properties to describe the model of an + UnoControl which is embedded in a + UnoControlDialogModel. + */ +published service UnoControlDialogElement +{ + + /** specifies the height of the control. + */ + [property] long Height; + + + /** specifies the name of the control. + */ + [property] string Name; + + + /** specifies the horizontal position of the control. + */ + [property] string PositionX; + + + /** specifies the vertical position of the control. + */ + [property] string PositionY; + + + /** specifies the step of the control. + */ + [property] long Step; + + + /** specifies the tabindex of the control. + */ + [property] short TabIndex; + + + /** specifies the tag of the control. + */ + [property] string Tag; + + + /** specifies the width of the control. + */ + [property] long Width; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/UnoControlDialogModel.idl b/offapi/com/sun/star/awt/UnoControlDialogModel.idl new file mode 100644 index 0000000000..3f5d41cbb7 --- /dev/null +++ b/offapi/com/sun/star/awt/UnoControlDialogModel.idl @@ -0,0 +1,172 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module awt { + + +/** specifies the standard model of a UnoControlDialog. + */ +published service UnoControlDialogModel +{ + service com::sun::star::awt::UnoControlModel; + + /** allows to create control models, which support the + UnoControlDialogElement service and can be inserted into + this container. + */ + interface com::sun::star::lang::XMultiServiceFactory; + + interface com::sun::star::container::XContainer; + + interface com::sun::star::container::XNameContainer; + + + /** specifies the background color (RGB) of the dialog. + */ + [property] com::sun::star::util::Color BackgroundColor; + + + /** specifies if the dialog is closeable. + */ + [property] boolean Closeable; + + + /** determines whether a dialog is enabled or disabled. + */ + [property] boolean Enabled; + + + /** specifies the font attributes of the text in the caption bar of the dialog. + */ + [property] com::sun::star::awt::FontDescriptor FontDescriptor; + + + /** specifies the com::sun::star::text::FontEmphasis + value of the text in the caption bar of the dialog. + */ + [property] short FontEmphasisMark; + + + /** specifies the com::sun::star::text::FontRelief + value of the text in the caption bar of the dialog. + */ + [property] short FontRelief; + + + /** specifies the help text of the dialog. + */ + [property] string HelpText; + + + /** specifies the help URL of the dialog. + */ + [property] string HelpURL; + + + /** specifies if the dialog is moveable. + */ + [property] boolean Moveable; + + + /** specifies if the dialog is sizeable. + */ + [property] boolean Sizeable; + + + /** specifies the text color (RGB) of the dialog. + */ + [property] com::sun::star::util::Color TextColor; + + + /** specifies the text line color (RGB) of the dialog. + */ + [property] com::sun::star::util::Color TextLineColor; + + + /** specifies the text that is displayed in the caption bar of the dialog. + */ + [property] string Title; + + + /** If set to true the dialog will have the desktop as parent. + + @since OOo 2.3 + */ + [optional, property] boolean DesktopAsParent; + + /** specifies a URL that references a graphic that should be used as a + background image. + @see Graphic + + @since OOo 2.4 + */ + [optional, property] string ImageURL; + + /** specifies a graphic to be displayed as a background image + +If this property is present, it interacts with the #ImageURL in the + following way: +
+ 0: left + 1: center + 2: right ++ */ + [property] short Align; + + + /** If set to true an horizontal scrollbar will be added automatically + when needed. + + @since OOo 2.3 + */ + [optional, property] boolean AutoHScroll; + + + /** If set to true a vertical scrollbar will be added automatically + when needed. + + @since OOo 2.3 + */ + [optional, property] boolean AutoVScroll; + + + /** specifies the background color (RGB) of the control. + */ + [property] com::sun::star::util::Color BackgroundColor; + + + /** specifies the border style of the control. + +
+ 0: No border + 1: 3D border + 2: simple border ++ */ + [property] short Border; + + + /** specifies the color of the border, if present + +
Not every border style (see #Border) may support coloring. + For instance, usually a border with 3D effect will ignore the BorderColor setting.
+ + @since OOo 2.0 + */ + [optional, property] long BorderColor; + + + /** specifies the echo character for a password edit field. + */ + [optional, property] short EchoChar; + + + /** determines whether the control is enabled or disabled. + */ + [property] boolean Enabled; + + + /** specifies the font attributes of the text in the control. + */ + [property] com::sun::star::awt::FontDescriptor FontDescriptor; + + + /** specifies the com::sun::star::text::FontEmphasis + value of the text in the control. + */ + [property] short FontEmphasisMark; + + + /** specifies the com::sun::star::text::FontRelief + value of the text in the control. + */ + [property] short FontRelief; + + + /** specifies if hard line breaks will be returned in the + XTextComponent::getText() method. + */ + [property] boolean HardLineBreaks; + + + /** specifies the help text of the control. + */ + [property] string HelpText; + + + /** specifies the help URL of the control. + */ + [property] string HelpURL; + + + /** specifies whether the selection in the control should be hidden when + the control is not active (focused). + + @since OOo 2.0 + */ + [optional, property] boolean HideInactiveSelection; + + + /** specifies if the content of the control can be scrolled in + the horizontal direction. + */ + [property] boolean HScroll; + + + /** specifies which line end type should be used for multi line text + +Controls working with this model care for this setting when the user enters + text. Every line break entered into the control will be treated according to this + setting, so that the #Text property always contains only + line ends in the format specified.
+ +Possible values are all constants from the LineEndFormat group.
+ +Note that this setting is usually not relevant when you set new text via the API. + No matter which line end format is used in this new text then, usual control implementations + should recognize all line end formats and display them properly.
+ + @since OOo 2.0 + */ + [optional, property] short LineEndFormat; + + + /** specifies the maximum character count. + +There's no limitation, if set to 0.
+ */ + [property] short MaxTextLen; + + + /** specifies that the control may have more than one line. + */ + [property] boolean MultiLine; + + + /** specifies whether the control paints it background or not. + + @since OOo 2.3 + */ + [optional, property] boolean PaintTransparent; + + + /** specifies that the control will be printed with the document. + */ + [property] boolean Printable; + + + /** specifies that the content of the control cannot be modified by the user. + */ + [property] boolean ReadOnly; + + + /** specifies that the control can be reached with the TAB key. + */ + [property] boolean Tabstop; + + + /** specifies the text displayed in the control. + */ + [property] string Text; + + + /** specifies the text color (RGB) of the control. + */ + [property] com::sun::star::util::Color TextColor; + + + /** specifies the text line color (RGB) of the control. + */ + [property] com::sun::star::util::Color TextLineColor; + + + /** specifies if the content of the control can be scrolled in + the vertical direction. + */ + [property] boolean VScroll; + + /** denotes the writing mode used in the control, as specified in the + com::sun::star::text::WritingMode2 constants group. + +Only com::sun::star::text::WritingMode2::LR_TB and + com::sun::star::text::WritingMode2::RL_TB are supported at the moment.
+ + @since OOo 3.1 + */ + [optional, property] short WritingMode; + + + /** specifies the vertical alignment of the text in the control. + + @since OOo 3.3 + */ + [optional, property] com::sun::star::style::VerticalAlignment VerticalAlign; + + /** specifies the background color (RGB) of selected text in the control which is highlighted. + + @since LibreOffice 7.5 + */ + [optional, property] com::sun::star::util::Color HighlightColor; + + /** specifies the text color (RGB) of selected text in the control which is highlighted. + + @since LibreOffice 7.5 + */ + [optional, property] com::sun::star::util::Color HighlightTextColor; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/UnoControlFileControl.idl b/offapi/com/sun/star/awt/UnoControlFileControl.idl new file mode 100644 index 0000000000..a45280f1e6 --- /dev/null +++ b/offapi/com/sun/star/awt/UnoControlFileControl.idl @@ -0,0 +1,39 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module awt { + + +/** specifies a file control. + +A file control extends the UnoControlEdit with a file + dialog.
+ */ +published service UnoControlFileControl +{ + service com::sun::star::awt::UnoControlEdit; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/UnoControlFileControlModel.idl b/offapi/com/sun/star/awt/UnoControlFileControlModel.idl new file mode 100644 index 0000000000..c48e21c812 --- /dev/null +++ b/offapi/com/sun/star/awt/UnoControlFileControlModel.idl @@ -0,0 +1,139 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module awt { + + +/** specifies the standard model of a UnoControlFileControl. + */ +published service UnoControlFileControlModel +{ + service com::sun::star::awt::UnoControlModel; + + + /** specifies the background color (RGB) of the control. + */ + [property] com::sun::star::util::Color BackgroundColor; + + + /** specifies the border style of the control. + ++ 0: No border + 1: 3D border + 2: simple border ++ */ + [property] short Border; + + + /** specifies the color of the border, if present + +
Not every border style (see #Border) may support coloring. + For instance, usually a border with 3D effect will ignore the BorderColor setting.
+ + @since OOo 2.0 + */ + [optional, property] long BorderColor; + + + /** determines whether a control is enabled or disabled. + */ + [property] boolean Enabled; + + + /** specifies the font attributes of the text in the control. + */ + [property] com::sun::star::awt::FontDescriptor FontDescriptor; + + + /** specifies the com::sun::star::text::FontEmphasis + value of the text in the control. + */ + [property] short FontEmphasisMark; + + + /** specifies the com::sun::star::text::FontRelief + value of the text in the control. + */ + [property] short FontRelief; + + + /** specifies the help text of the control. + */ + [property] string HelpText; + + + /** specifies the help URL of the control. + */ + [property] string HelpURL; + + + /** specifies whether the selection in the control should be hidden when + the control is not active (focused). + + @since OOo 2.0 + */ + [optional, property] boolean HideInactiveSelection; + + + /** specifies that the control will be printed with the document. + */ + [property] boolean Printable; + + + /** specifies that the content of the control cannot be modified by the user. + + @since OOo 1.1.2 + */ + [optional, property] boolean ReadOnly; + + + /** specifies that the control can be reached with the TAB key. + */ + [property] boolean Tabstop; + + + /** specifies the text displayed in the control. + */ + [property] string Text; + + + /** specifies the text color (RGB) of the control. + */ + [property] com::sun::star::util::Color TextColor; + + + /** specifies the text line color (RGB) of the control. + */ + [property] com::sun::star::util::Color TextLineColor; + + + /** specifies the vertical alignment of the text in the control. + + @since OOo 3.3 + */ + [optional, property] com::sun::star::style::VerticalAlignment VerticalAlign; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/UnoControlFixedHyperlink.idl b/offapi/com/sun/star/awt/UnoControlFixedHyperlink.idl new file mode 100644 index 0000000000..c950dcab2c --- /dev/null +++ b/offapi/com/sun/star/awt/UnoControlFixedHyperlink.idl @@ -0,0 +1,39 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module awt { + + +/** specifies a control for displaying fixed hyperlink. + */ +service UnoControlFixedHyperlink +{ + service com::sun::star::awt::UnoControl; + + interface com::sun::star::awt::XFixedHyperlink; + + interface com::sun::star::awt::XLayoutConstrains; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/UnoControlFixedHyperlinkModel.idl b/offapi/com/sun/star/awt/UnoControlFixedHyperlinkModel.idl new file mode 100644 index 0000000000..a707d9dd07 --- /dev/null +++ b/offapi/com/sun/star/awt/UnoControlFixedHyperlinkModel.idl @@ -0,0 +1,141 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module awt { + + +/** specifies the standard model of a UnoControlFixedHyperlink. + */ +service UnoControlFixedHyperlinkModel +{ + service com::sun::star::awt::UnoControlModel; + + + /** specifies the horizontal alignment of the text in the control. + ++ 0: left + 1: center + 2: right ++ */ + [property] short Align; + + + /** specifies the background color (RGB) of the control. + */ + [property] com::sun::star::util::Color BackgroundColor; + + + /** specifies the border style of the control. + +
+ 0: No border + 1: 3D border + 2: simple border ++ */ + [property] short Border; + + + /** specifies the color of the border, if present + +
Not every border style (see #Border) may support coloring. + For instance, usually a border with 3D effect will ignore the BorderColor setting.
+ + @since OOo 2.0 + */ + [optional, property] long BorderColor; + + + /** determines whether the control is enabled or disabled. + */ + [property] boolean Enabled; + + + /** specifies the font attributes of the text in the control. + */ + [property] com::sun::star::awt::FontDescriptor FontDescriptor; + + + /** specifies the com::sun::star::text::FontEmphasis + value of the text in the control. + */ + [property] short FontEmphasisMark; + + + /** specifies the com::sun::star::text::FontRelief + value of the text in the control. + */ + [property] short FontRelief; + + + /** specifies the help text of the control. + */ + [property] string HelpText; + + + /** specifies the help URL of the control. + */ + [property] string HelpURL; + + + /** specifies the label of the control. + */ + [property] string Label; + + + /** specifies that the text may be displayed on more than one line. + */ + [property] boolean MultiLine; + + + /** specifies that the control will be printed with the document. + */ + [property] boolean Printable; + + + /** specifies the text color (RGB) of the control. + */ + [property] com::sun::star::util::Color TextColor; + + + /** specifies the text line color (RGB) of the control. + */ + [property] com::sun::star::util::Color TextLineColor; + + + /** specifies the URL. + */ + [property] string URL; + + + /** specifies the vertical alignment of the text in the control. + + @since OOo 2.0 + */ + [optional, property] com::sun::star::style::VerticalAlignment VerticalAlign; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/UnoControlFixedLine.idl b/offapi/com/sun/star/awt/UnoControlFixedLine.idl new file mode 100644 index 0000000000..9671f138c2 --- /dev/null +++ b/offapi/com/sun/star/awt/UnoControlFixedLine.idl @@ -0,0 +1,37 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module awt { + + +/** specifies a fixed line control. + */ +published service UnoControlFixedLine +{ + service com::sun::star::awt::UnoControl; + +}; + + +}; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/UnoControlFixedLineModel.idl b/offapi/com/sun/star/awt/UnoControlFixedLineModel.idl new file mode 100644 index 0000000000..2b87771903 --- /dev/null +++ b/offapi/com/sun/star/awt/UnoControlFixedLineModel.idl @@ -0,0 +1,98 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module awt { + + +/** specifies the standard model of a UnoControlFixedLine. + */ +published service UnoControlFixedLineModel +{ + service com::sun::star::awt::UnoControlModel; + + + /** determines whether the control is enabled or disabled. + */ + [property] boolean Enabled; + + + /** specifies the font attributes of the text in the control. + */ + [property] com::sun::star::awt::FontDescriptor FontDescriptor; + + + /** specifies the com::sun::star::text::FontEmphasis + value of the text in the control. + */ + [property] short FontEmphasisMark; + + + /** specifies the com::sun::star::text::FontRelief + value of the text in the control. + */ + [property] short FontRelief; + + + /** specifies the help text of the control. + */ + [property] string HelpText; + + + /** specifies the help URL of the control. + */ + [property] string HelpURL; + + + /** specifies the label of the control. + */ + [property] string Label; + + + /** specifies the orientation of the control. + ++ 0: horizontal + 1: vertical ++ */ + [property] long Orientation; + + + /** specifies that the control will be printed with the document. + */ + [property] boolean Printable; + + + /** specifies the text color (RGB) of the control. + */ + [property] com::sun::star::util::Color TextColor; + + + /** specifies the text line color (RGB) of the control. + */ + [property] com::sun::star::util::Color TextLineColor; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/UnoControlFixedText.idl b/offapi/com/sun/star/awt/UnoControlFixedText.idl new file mode 100644 index 0000000000..bcd7f17695 --- /dev/null +++ b/offapi/com/sun/star/awt/UnoControlFixedText.idl @@ -0,0 +1,40 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module awt { + + +/** specifies a control for displaying fixed text. + */ +published service UnoControlFixedText +{ + service com::sun::star::awt::UnoControl; + + interface com::sun::star::awt::XFixedText; + + interface com::sun::star::awt::XLayoutConstrains; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/UnoControlFixedTextModel.idl b/offapi/com/sun/star/awt/UnoControlFixedTextModel.idl new file mode 100644 index 0000000000..c5c1f6fbba --- /dev/null +++ b/offapi/com/sun/star/awt/UnoControlFixedTextModel.idl @@ -0,0 +1,156 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module awt { + + +/** specifies the standard model of a UnoControlFixedText. + */ +published service UnoControlFixedTextModel +{ + service com::sun::star::awt::UnoControlModel; + + + /** specifies the horizontal alignment of the text in the control. + +
+ 0: left + 1: center + 2: right ++ */ + [property] short Align; + + + /** specifies the background color (RGB) of the control. + */ + [property] com::sun::star::util::Color BackgroundColor; + + + /** specifies the border style of the control. + +
+ 0: No border + 1: 3D border + 2: simple border ++ */ + [property] short Border; + + + /** specifies the color of the border, if present + +
Not every border style (see #Border) may support coloring. + For instance, usually a border with 3D effect will ignore the BorderColor setting.
+ + @since OOo 2.0 + */ + [optional, property] long BorderColor; + + + /** determines whether the control is enabled or disabled. + */ + [property] boolean Enabled; + + + /** specifies the font attributes of the text in the control. + */ + [property] com::sun::star::awt::FontDescriptor FontDescriptor; + + + /** specifies the com::sun::star::text::FontEmphasis + value of the text in the control. + */ + [property] short FontEmphasisMark; + + + /** specifies the com::sun::star::text::FontRelief + value of the text in the control. + */ + [property] short FontRelief; + + + /** specifies the help text of the control. + */ + [property] string HelpText; + + + /** specifies the help URL of the control. + */ + [property] string HelpURL; + + + /** specifies the label of the control. + */ + [property] string Label; + + + /** specifies that the text may be displayed on more than one line. + */ + [property] boolean MultiLine; + + + /** specifies that the control will be printed with the document. + */ + [property] boolean Printable; + + + /** specifies the text color (RGB) of the control. + */ + [property] com::sun::star::util::Color TextColor; + + + /** specifies the text line color (RGB) of the control. + */ + [property] com::sun::star::util::Color TextLineColor; + + + /** specifies the vertical alignment of the text in the control. + + @since OOo 2.0 + */ + [optional, property] com::sun::star::style::VerticalAlignment VerticalAlign; + + //------------------------------------------------------------------------- + + /** suppresses automatic accelerator assignment on this control. + + @since OOo 2.4 + */ + [optional, property] boolean NoLabel; + + /** specifies the background color (RGB) of selected text in the control which is highlighted. + + @since LibreOffice 7.5 + */ + [optional, property] com::sun::star::util::Color HighlightColor; + + /** specifies the text color (RGB) of selected text in the control which is highlighted. + + @since LibreOffice 7.5 + */ + [optional, property] com::sun::star::util::Color HighlightTextColor; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/UnoControlFormattedField.idl b/offapi/com/sun/star/awt/UnoControlFormattedField.idl new file mode 100644 index 0000000000..123fc267d3 --- /dev/null +++ b/offapi/com/sun/star/awt/UnoControlFormattedField.idl @@ -0,0 +1,43 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module awt { + + +/** specifies a formatted field control. + */ +published service UnoControlFormattedField +{ + service com::sun::star::awt::UnoControlEdit; + + /** gives access to the value of a spin field and makes it possible to + register for spin events. + + @since OOo 1.1.2 + */ + [optional] interface com::sun::star::awt::XSpinField; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/UnoControlFormattedFieldModel.idl b/offapi/com/sun/star/awt/UnoControlFormattedFieldModel.idl new file mode 100644 index 0000000000..36a55fa3b8 --- /dev/null +++ b/offapi/com/sun/star/awt/UnoControlFormattedFieldModel.idl @@ -0,0 +1,273 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module awt { + + +/** specifies the standard model of a UnoControlFormattedField . + */ +published service UnoControlFormattedFieldModel +{ + service com::sun::star::awt::UnoControlModel; + + + /** specifies the horizontal alignment of the text in the control. + ++ 0: left + 1: center + 2: right ++ */ + [property] short Align; + + + /** specifies the background color (RGB) of the control. + */ + [property] com::sun::star::util::Color BackgroundColor; + + + /** specifies the border style of the control. + +
+ 0: No border + 1: 3D border + 2: simple border ++ */ + [property] short Border; + + + /** specifies the color of the border, if present + +
Not every border style (see #Border) may support coloring. + For instance, usually a border with 3D effect will ignore the BorderColor setting.
+ + @since OOo 2.0 + */ + [optional, property] long BorderColor; + + + /** specifies the default value of the formatted field. + +This may be a numeric value (double) or a string, depending on + the formatting of the field.
+ */ + [property] any EffectiveDefault; + + + /** specifies the maximum value that can be entered. + +This property is ignored if the format of the field is no numeric + format.
+ */ + [property] double EffectiveMax; + + + /** specifies the minimum value that can be entered. + +This property is ignored if the format of the field is no numeric + format.
+ */ + [property] double EffectiveMin; + + + /** specifies the current value of the formatted field. + +This may be a numeric value (double) or a string, depending on + the formatting of the field.
+ */ + [property] double EffectiveValue; + + + /** determines whether the control is enabled or disabled. + */ + [property] boolean Enabled; + + + /** specifies the font attributes of the text in the control. + */ + [property] com::sun::star::awt::FontDescriptor FontDescriptor; + + + /** specifies the com::sun::star::text::FontEmphasis + value of the text in the control. + */ + [property] short FontEmphasisMark; + + + /** specifies the com::sun::star::text::FontRelief + value of the text in the control. + */ + [property] short FontRelief; + + + /** specifies the format to be used when formatting the field input + and output. + +This value is meaningful relative to the FormatsSupplier property + only.
+ */ + [property] long FormatKey; + + + /** supplies the formats the field should work with. + */ + [property] com::sun::star::util::XNumberFormatsSupplier FormatsSupplier; + + + /** specifies the help text of the control. + */ + [property] string HelpText; + + + /** specifies the help URL of the control. + */ + [property] string HelpURL; + + + + /** specifies whether the selection in the control should be hidden when + the control is not active (focused). + + @since OOo 2.0 + */ + [optional, property] boolean HideInactiveSelection; + + + /** specifies the maximum character count. + +There's no limitation, if set to 0.
+ */ + [property] short MaxTextLen; + + + /** specifies that the control will be printed with the document. + */ + [property] boolean Printable; + + + /** specifies that the content of the control cannot be modified by the + user. + */ + [property] boolean ReadOnly; + + + /** specifies whether the mouse should show repeating behavior, i.e. + repeatedly trigger an action when keeping pressed. + + @since OOo 2.0 + */ + [optional, property] boolean Repeat; + + + /** specifies the mouse repeat delay, in milliseconds. + +When the user presses a mouse in a control area where this triggers + an action (such as spinning the value), then usual control implementations + allow to repeatedly trigger this action, without the need to release the + mouse button and to press it again. The delay between two such triggers + is specified with this property.
+ + @since OOo 2.0 + */ + [optional, property] long RepeatDelay; + + + /** specifies that the control has a spin button. + */ + [property] boolean Spin; + + + /** specifies that the text is checked during the user input. + +This property is optional - not every component implementing this + service is required to provide it, as real-time input checking on a + formatted field may be pretty expensive.
+ */ + [optional, property] boolean StrictFormat; + + + /** specifies that the control can be reached with the TAB key. + */ + [property] boolean Tabstop; + + + /** specifies the text displayed in the control. + */ + [property] string Text; + + + /** specifies the text color (RGB) of the control. + */ + [property] com::sun::star::util::Color TextColor; + + + /** specifies the text line color (RGB) of the control. + */ + [property] com::sun::star::util::Color TextLineColor; + + + /** specifies that the text is treated as a number. + */ + [property] boolean TreatAsNumber; + + /** denotes the writing mode used in the control, as specified in the + com::sun::star::text::WritingMode2 constants group. + +Only com::sun::star::text::WritingMode2::LR_TB and + com::sun::star::text::WritingMode2::RL_TB are supported at the moment.
+ + @since OOo 3.1 + */ + [optional, property] short WritingMode; + + /** defines how the mouse wheel can be used to scroll through the control's content. + +Usually, the mouse wheel spins the numeric value displayed in the control. Using this property, + and one of the MouseWheelBehavior constants, you can control under which circumstances + this is possible.
+ */ + [optional, property] short MouseWheelBehavior; + + + /** specifies the vertical alignment of the text in the control. + + @since OOo 3.3 + */ + [optional, property] com::sun::star::style::VerticalAlignment VerticalAlign; + + /** specifies the background color (RGB) of selected text in the control which is highlighted. + + @since LibreOffice 7.5 + */ + [optional, property] com::sun::star::util::Color HighlightColor; + + /** specifies the text color (RGB) of selected text in the control which is highlighted. + + @since LibreOffice 7.5 + */ + [optional, property] com::sun::star::util::Color HighlightTextColor; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/UnoControlGroupBox.idl b/offapi/com/sun/star/awt/UnoControlGroupBox.idl new file mode 100644 index 0000000000..f363427a4f --- /dev/null +++ b/offapi/com/sun/star/awt/UnoControlGroupBox.idl @@ -0,0 +1,36 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module awt { + + +/** specifies a group box control. + */ +published service UnoControlGroupBox +{ + service com::sun::star::awt::UnoControl; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/UnoControlGroupBoxModel.idl b/offapi/com/sun/star/awt/UnoControlGroupBoxModel.idl new file mode 100644 index 0000000000..8e23284ef5 --- /dev/null +++ b/offapi/com/sun/star/awt/UnoControlGroupBoxModel.idl @@ -0,0 +1,97 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module awt { + + +/** specifies the standard model of a UnoControlGroupBox. + */ +published service UnoControlGroupBoxModel +{ + service com::sun::star::awt::UnoControlModel; + + + /** determines whether the control is enabled or disabled. + */ + [property] boolean Enabled; + + + /** specifies the font attributes of the text in the control. + */ + [property] com::sun::star::awt::FontDescriptor FontDescriptor; + + + /** specifies the com::sun::star::text::FontEmphasis + value of the text in the control. + */ + [property] short FontEmphasisMark; + + + /** specifies the com::sun::star::text::FontRelief + value of the text in the control. + */ + [property] short FontRelief; + + + /** specifies the help text of the control. + */ + [property] string HelpText; + + + /** specifies the help URL of the control. + */ + [property] string HelpURL; + + + /** specifies the label of the control. + */ + [property] string Label; + + + /** specifies that the control will be printed with the document. + */ + [property] boolean Printable; + + + /** specifies the text color (RGB) of the control. + */ + [property] com::sun::star::util::Color TextColor; + + + /** specifies the text line color (RGB) of the control. + */ + [property] com::sun::star::util::Color TextLineColor; + + /** denotes the writing mode used in the control, as specified in the + com::sun::star::text::WritingMode2 constants group. + +Only com::sun::star::text::WritingMode2::LR_TB and + com::sun::star::text::WritingMode2::RL_TB are supported at the moment.
+ + @since OOo 3.1 + */ + [optional, property] short WritingMode; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/UnoControlImageControl.idl b/offapi/com/sun/star/awt/UnoControlImageControl.idl new file mode 100644 index 0000000000..880252850c --- /dev/null +++ b/offapi/com/sun/star/awt/UnoControlImageControl.idl @@ -0,0 +1,38 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module awt { + + +/** specifies a control for displaying an image. + */ +published service UnoControlImageControl +{ + service com::sun::star::awt::UnoControl; + + interface com::sun::star::awt::XLayoutConstrains; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/UnoControlImageControlModel.idl b/offapi/com/sun/star/awt/UnoControlImageControlModel.idl new file mode 100644 index 0000000000..80bd149d15 --- /dev/null +++ b/offapi/com/sun/star/awt/UnoControlImageControlModel.idl @@ -0,0 +1,127 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module awt { + + +/** specifies the standard model of a UnoControlImageControl. + */ +published service UnoControlImageControlModel +{ + service com::sun::star::awt::UnoControlModel; + + + /** specifies the background color (RGB) of the control. + */ + [property] com::sun::star::util::Color BackgroundColor; + + + /** specifies the border style of the control. + ++ 0: No border + 1: 3D border + 2: simple border ++ */ + [property] short Border; + + + /** specifies the color of the border, if present + +
Not every border style (see #Border) may support coloring. + For instance, usually a border with 3D effect will ignore the BorderColor setting.
+ + @since OOo 2.0 + */ + [optional, property] long BorderColor; + + + /** determines whether the control is enabled or disabled. + */ + [property] boolean Enabled; + + + /** specifies the help text of the control. + */ + [property] string HelpText; + + + /** specifies the help URL of the control. + */ + [property] string HelpURL; + + + /** specifies a URL to an image to use for the control. + @see Graphic + */ + [property] string ImageURL; + + + /** specifies a graphic to be displayed on the control + +If this property is present, it interacts with the #ImageURL in the + following way: +
If this property is present, it supersedes the #ScaleImage property.
+ +The value of this property is one of the ImageScaleMode constants.
+ + @since OOo 3.1 + */ + [property, optional] short ScaleMode; + + + /** specifies that the control can be reached with the TAB key. + + @since OOo 1.1.2 + */ + [optional, property] boolean Tabstop; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/UnoControlListBox.idl b/offapi/com/sun/star/awt/UnoControlListBox.idl new file mode 100644 index 0000000000..f3078bbcac --- /dev/null +++ b/offapi/com/sun/star/awt/UnoControlListBox.idl @@ -0,0 +1,45 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module awt { + + +/** specifies a list box control. + +A list box displays a list of strings and allows a selection within + these.
+ */ +published service UnoControlListBox +{ + service com::sun::star::awt::UnoControl; + + interface com::sun::star::awt::XListBox; + + interface com::sun::star::awt::XLayoutConstrains; + + interface com::sun::star::awt::XTextLayoutConstrains; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/UnoControlListBoxModel.idl b/offapi/com/sun/star/awt/UnoControlListBoxModel.idl new file mode 100644 index 0000000000..965f3be42b --- /dev/null +++ b/offapi/com/sun/star/awt/UnoControlListBoxModel.idl @@ -0,0 +1,209 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module awt { + + +/** specifies the standard model of a UnoControlListBox. + */ +published service UnoControlListBoxModel +{ + service com::sun::star::awt::UnoControlModel; + + + /** specifies the horizontal alignment of the text in the control. + ++ 0: left + 1: center + 2: right ++ */ + [optional, property] short Align; + + + /** specifies the background color (RGB) of the control. + */ + [property] com::sun::star::util::Color BackgroundColor; + + + /** specifies the border style of the control. + +
+ 0: No border + 1: 3D border + 2: simple border ++ */ + [property] short Border; + + + /** specifies the color of the border, if present + +
Not every border style (see #Border) may support coloring. + For instance, usually a border with 3D effect will ignore the BorderColor setting.
+ + @since OOo 2.0 + */ + [optional, property] long BorderColor; + + + /** specifies if the control has a drop down button. + */ + [property] boolean Dropdown; + + + /** determines whether the control is enabled or disabled. + */ + [property] boolean Enabled; + + + /** specifies the font attributes of the text in the control. + */ + [property] com::sun::star::awt::FontDescriptor FontDescriptor; + + + /** specifies the com::sun::star::text::FontEmphasis + value of the text in the control. + */ + [property] short FontEmphasisMark; + + + /** specifies the com::sun::star::text::FontRelief + value of the text in the control. + */ + [property] short FontRelief; + + + /** specifies the help text of the control. + */ + [property] string HelpText; + + + /** specifies the help URL of the control. + */ + [property] string HelpURL; + + + /** specifies the maximum line count displayed in the drop down box. + */ + [property] short LineCount; + + + /** specifies if more than one entry can be selected. + */ + [property] boolean MultiSelection; + + + /** specifies that the control will be printed with the document. + */ + [property] boolean Printable; + + + /** specifies that the content of the control cannot be modified by the user. + */ + [property] boolean ReadOnly; + + + /** specifies the sequence of selected items, identified by the position. + */ + [property] sequenceOnly com::sun::star::text::WritingMode2::LR_TB and + com::sun::star::text::WritingMode2::RL_TB are supported at the moment.
+ + @since OOo 3.1 + */ + [optional, property] short WritingMode; + + /** defines how the mouse wheel can be used to scroll through the control's content. + +Usually, the mouse wheel scroll through the control's entry list. Using this property, + and one of the MouseWheelBehavior constants, you can control under which circumstances + this is possible.
+ */ + [optional, property] short MouseWheelBehavior; + + /** allows manipulating the list of items in the list box more fine-grained than the + #StringItemList property. + + @since OOo 3.3 + */ + [optional] interface XItemList; + + /** specifies where an item separator - a horizontal line - is drawn. + +If this is not `NULL`, then a horizontal line will be drawn between the item at the given position, + and the following item.
+ + @since OOo 3.3 + */ + [optional, property, maybevoid] short ItemSeparatorPos; + + /** specifies the list of raw typed (not stringized) items. + +This list corresponds with the StringItemList and if given + has to be of the same length, the elements' positions matching + those of their string representation in StringItemList.
+ + @since LibreOffice 5.4 + */ + [optional, property] sequenceThe interfaces com::sun::star::beans::XPropertySet + and com::sun::star::beans::XMultiPropertySet need + access to the model data from the embedding environment. The control + and the model can specify additional interfaces to exchange data or + export more functionality from the model.
+ */ +published service UnoControlModel +{ + /** This service is present when the control model is embedded in an + UnoControlDialogModel. + */ + [optional] service com::sun::star::awt::UnoControlDialogElement; + + interface com::sun::star::awt::XControlModel; + + interface com::sun::star::lang::XComponent; + + interface com::sun::star::beans::XPropertySet; + + interface com::sun::star::beans::XMultiPropertySet; + + interface com::sun::star::io::XPersistObject; + + interface com::sun::star::util::XCloneable; + + + /** specifies the service name of the default control for this model. + */ + [property] string DefaultControl; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/UnoControlNumericField.idl b/offapi/com/sun/star/awt/UnoControlNumericField.idl new file mode 100644 index 0000000000..e82a8c4a65 --- /dev/null +++ b/offapi/com/sun/star/awt/UnoControlNumericField.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 . + */ + + + + module com { module sun { module star { module awt { + + +/** specifies a numeric field control. + +A numeric field makes it possible to enter, display and edit + formatted numeric values.
+ */ +published service UnoControlNumericField +{ + service com::sun::star::awt::UnoControlEdit; + + /** gives access to the value of a spin field and makes it possible to + register for spin events. + + @since OOo 1.1.2 + */ + [optional] interface com::sun::star::awt::XSpinField; + + interface com::sun::star::awt::XNumericField; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/UnoControlNumericFieldModel.idl b/offapi/com/sun/star/awt/UnoControlNumericFieldModel.idl new file mode 100644 index 0000000000..c54b10105b --- /dev/null +++ b/offapi/com/sun/star/awt/UnoControlNumericFieldModel.idl @@ -0,0 +1,224 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module awt { + + +/** specifies the standard model of a UnoControlNumericField. + */ +published service UnoControlNumericFieldModel +{ + service com::sun::star::awt::UnoControlModel; + + + /** specifies the background color(RGB) of the control. + */ + [property] com::sun::star::util::Color BackgroundColor; + + + /** specifies the border style of the control. + ++ 0: No border + 1: 3D border + 2: simple border ++ */ + [property] short Border; + + + /** specifies the color of the border, if present + +
Not every border style (see #Border) may support coloring. + For instance, usually a border with 3D effect will ignore the BorderColor setting.
+ + @since OOo 2.0 + */ + [optional, property] long BorderColor; + + + /** specifies the decimal accuracy. + */ + [property] short DecimalAccuracy; + + + /** determines whether the control is enabled or disabled. + */ + [property] boolean Enabled; + + + /** specifies the font attributes of the text in the control. + */ + [property] com::sun::star::awt::FontDescriptor FontDescriptor; + + + /** specifies the com::sun::star::text::FontEmphasis + value of the text in the control. + */ + [property] short FontEmphasisMark; + + + /** specifies the com::sun::star::text::FontRelief + value of the text in the control. + */ + [property] short FontRelief; + + + /** specifies the help text of the control. + */ + [property] string HelpText; + + + /** specifies the help URL of the control. + */ + [property] string HelpURL; + + + /** specifies whether the selection in the control should be hidden when + the control is not active (focused). + + @since OOo 2.0 + */ + [optional, property] boolean HideInactiveSelection; + + + /** specifies that the control will be printed with the document. + */ + [property] boolean Printable; + + + /** specifies that the content of the control cannot be modified by the + user. + */ + [property] boolean ReadOnly; + + + /** specifies whether the mouse should show repeating behavior, i.e. + repeatedly trigger an action when keeping pressed. + + @since OOo 2.0 + */ + [optional, property] boolean Repeat; + + + /** specifies the mouse repeat delay, in milliseconds. + +When the user presses a mouse in a control area where this triggers + an action (such as spinning the value), then usual control implementations + allow to repeatedly trigger this action, without the need to release the + mouse button and to press it again. The delay between two such triggers + is specified with this property.
+ + @since OOo 2.0 + */ + [optional, property] long RepeatDelay; + + + /** specifies whether the thousands separator is to be displayed. + */ + [property] boolean ShowThousandsSeparator; + + + /** specifies that the control has a spin button. + */ + [property] boolean Spin; + + + /** specifies that the value is checked during the user input. + */ + [property] boolean StrictFormat; + + + /** specifies that the control can be reached with the TAB key. + */ + [property] boolean Tabstop; + + + /** specifies the text color (RGB) of the control. + */ + [property] com::sun::star::util::Color TextColor; + + + /** specifies the text line color (RGB) of the control. + */ + [property] com::sun::star::util::Color TextLineColor; + + + /** specifies the value displayed in the control. + */ + [property] double Value; + + + /** specifies the maximum value that can be entered. + */ + [property] double ValueMax; + + + /** specifies the minimum value that can be entered. + */ + [property] double ValueMin; + + + /** specifies the value step when using the spin button. + */ + [property] double ValueStep; + + /** denotes the writing mode used in the control, as specified in the + com::sun::star::text::WritingMode2 constants group. + +Only com::sun::star::text::WritingMode2::LR_TB and + com::sun::star::text::WritingMode2::RL_TB are supported at the moment.
+ + @since OOo 3.1 + */ + [optional, property] short WritingMode; + + /** defines how the mouse wheel can be used to scroll through the control's content. + +Usually, the mouse wheel spins the numeric value displayed in the control. Using this property, + and one of the MouseWheelBehavior constants, you can control under which circumstances + this is possible.
+ */ + [optional, property] short MouseWheelBehavior; + + + /** specifies the vertical alignment of the text in the control. + + @since OOo 3.3 + */ + [optional, property] com::sun::star::style::VerticalAlignment VerticalAlign; + + /** specifies the background color (RGB) of selected text in the control which is highlighted. + + @since LibreOffice 7.5 + */ + [optional, property] com::sun::star::util::Color HighlightColor; + + /** specifies the text color (RGB) of selected text in the control which is highlighted. + + @since LibreOffice 7.5 + */ + [optional, property] com::sun::star::util::Color HighlightTextColor; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/UnoControlPatternField.idl b/offapi/com/sun/star/awt/UnoControlPatternField.idl new file mode 100644 index 0000000000..9230c62b21 --- /dev/null +++ b/offapi/com/sun/star/awt/UnoControlPatternField.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 . + */ + + + + module com { module sun { module star { module awt { + + +/** specifies a pattern field control. + +A pattern field makes it possible to enter, display and edit text + which conforms to a specified pattern.
+ */ +published service UnoControlPatternField +{ + service com::sun::star::awt::UnoControlEdit; + + /** gives access to the value of a spin field and makes it possible to + register for spin events. + + @since OOo 1.1.2 + */ + [optional] interface com::sun::star::awt::XSpinField; + + interface com::sun::star::awt::XPatternField; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/UnoControlPatternFieldModel.idl b/offapi/com/sun/star/awt/UnoControlPatternFieldModel.idl new file mode 100644 index 0000000000..8cc0431835 --- /dev/null +++ b/offapi/com/sun/star/awt/UnoControlPatternFieldModel.idl @@ -0,0 +1,188 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module awt { + + +/** specifies the standard model of a UnoControlPatternField. + */ +published service UnoControlPatternFieldModel +{ + service com::sun::star::awt::UnoControlModel; + + + /** specifies the background color (RGB) of the control. + */ + [property] com::sun::star::util::Color BackgroundColor; + + + /** specifies the border style of the control. + ++ 0: No border + 1: 3D border + 2: simple border ++ */ + [property] short Border; + + + /** specifies the color of the border, if present + +
Not every border style (see #Border) may support coloring. + For instance, usually a border with 3D effect will ignore the BorderColor setting.
+ + @since OOo 2.0 + */ + [optional, property] long BorderColor; + + + /** specifies the edit mask. + */ + [property] string EditMask; + + + /** determines whether the control is enabled or disabled. + */ + [property] boolean Enabled; + + + /** specifies the font attributes of the text in the control. + */ + [property] com::sun::star::awt::FontDescriptor FontDescriptor; + + + /** specifies the com::sun::star::text::FontEmphasis + value of the text in the control. + */ + [property] short FontEmphasisMark; + + + /** specifies the com::sun::star::text::FontRelief + value of the text in the control. + */ + [property] short FontRelief; + + + /** specifies the help text of the control. + */ + [property] string HelpText; + + + /** specifies the help URL of the control. + */ + [property] string HelpURL; + + + /** specifies whether the selection in the control should be hidden when + the control is not active (focused). + + @since OOo 2.0 + */ + [optional, property] boolean HideInactiveSelection; + + + /** specifies the literal mask. + */ + [property] string LiteralMask; + + + /** specifies the maximum character count. + */ + [property] short MaxTextLen; + + + /** specifies that the control will be printed with the document. + */ + [property] boolean Printable; + + + /** specifies that the content of the control cannot be modified by the + user. + */ + [property] boolean ReadOnly; + + + /** specifies that the text is checked during the user input. + */ + [property] boolean StrictFormat; + + + /** specifies that the control can be reached with the TAB key. + */ + [property] boolean Tabstop; + + + /** specifies the text displayed in the control. + */ + [property] string Text; + + + /** specifies the text color (RGB) of the control. + */ + [property] com::sun::star::util::Color TextColor; + + + /** specifies the text line color (RGB) of the control. + */ + [property] com::sun::star::util::Color TextLineColor; + + /** denotes the writing mode used in the control, as specified in the + com::sun::star::text::WritingMode2 constants group. + +Only com::sun::star::text::WritingMode2::LR_TB and + com::sun::star::text::WritingMode2::RL_TB are supported at the moment.
+ + @since OOo 3.1 + */ + [optional, property] short WritingMode; + + /** defines how the mouse wheel can be used to scroll through the control's content. + +Usually, the mouse wheel spins the numeric value displayed in the control. Using this property, + and one of the MouseWheelBehavior constants, you can control under which circumstances + this is possible.
+ */ + [optional, property] short MouseWheelBehavior; + + + /** specifies the vertical alignment of the text in the control. + + @since OOo 3.3 + */ + [optional, property] com::sun::star::style::VerticalAlignment VerticalAlign; + + /** specifies the background color (RGB) of selected text in the control which is highlighted. + + @since LibreOffice 7.5 + */ + [optional, property] com::sun::star::util::Color HighlightColor; + + /** specifies the text color (RGB) of selected text in the control which is highlighted. + + @since LibreOffice 7.5 + */ + [optional, property] com::sun::star::util::Color HighlightTextColor; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/UnoControlProgressBar.idl b/offapi/com/sun/star/awt/UnoControlProgressBar.idl new file mode 100644 index 0000000000..b799933a42 --- /dev/null +++ b/offapi/com/sun/star/awt/UnoControlProgressBar.idl @@ -0,0 +1,39 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module awt { + + +/** specifies a progress bar control. + */ +published service UnoControlProgressBar +{ + service com::sun::star::awt::UnoControl; + + interface com::sun::star::awt::XProgressBar; + +}; + + +}; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/UnoControlProgressBarModel.idl b/offapi/com/sun/star/awt/UnoControlProgressBarModel.idl new file mode 100644 index 0000000000..10dee12a0c --- /dev/null +++ b/offapi/com/sun/star/awt/UnoControlProgressBarModel.idl @@ -0,0 +1,102 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module awt { + + +/** specifies the standard model of a UnoControlProgressBar. + */ +published service UnoControlProgressBarModel +{ + service com::sun::star::awt::UnoControlModel; + + + /** specifies the background color (RGB) of the control. + */ + [property] com::sun::star::util::Color BackgroundColor; + + + /** specifies the border style of the control. + ++ 0: No border + 1: 3D border + 2: simple border ++ */ + [property] short Border; + + + /** specifies the color of the border, if present + +
Not every border style (see #Border) may support coloring. + For instance, usually a border with 3D effect will ignore the BorderColor setting.
+ + @since OOo 2.0 + */ + [optional, property] long BorderColor; + + + /** determines whether the control is enabled or disabled. + */ + [property] boolean Enabled; + + + /** specifies the fill color (RGB) of the control. + */ + [property] com::sun::star::util::Color FillColor; + + + /** specifies the help text of the control. + */ + [property] string HelpText; + + + /** specifies the help URL of the control. + */ + [property] string HelpURL; + + + /** specifies that the control will be printed with the document. + */ + [property] boolean Printable; + + + /** specifies the progress value of the control. + */ + [property] long ProgressValue; + + + /** specifies the maximum progress value of the control. + */ + [property] long ProgressValueMax; + + + /** specifies the minimum progress value of the control. + */ + [property] long ProgressValueMin; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/UnoControlRadioButton.idl b/offapi/com/sun/star/awt/UnoControlRadioButton.idl new file mode 100644 index 0000000000..2236d0029c --- /dev/null +++ b/offapi/com/sun/star/awt/UnoControlRadioButton.idl @@ -0,0 +1,40 @@ +/* -*- 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 . + */ + + + +module com { module sun { module star { module awt { + + +/** specifies a radio button control. + */ +published service UnoControlRadioButton +{ + service com::sun::star::awt::UnoControl; + + interface com::sun::star::awt::XRadioButton; + + interface com::sun::star::awt::XLayoutConstrains; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/UnoControlRadioButtonModel.idl b/offapi/com/sun/star/awt/UnoControlRadioButtonModel.idl new file mode 100644 index 0000000000..c686b859f0 --- /dev/null +++ b/offapi/com/sun/star/awt/UnoControlRadioButtonModel.idl @@ -0,0 +1,185 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module awt { + + +/** specifies the standard model of a UnoControlRadioButton. + */ +published service UnoControlRadioButtonModel +{ + service com::sun::star::awt::UnoControlModel; + + + /** specifies the horizontal alignment of the text in the control. + ++ 0: left + 1: center + 2: right ++ + @since OOo 2.0 + */ + [optional, property] short Align; + + + /** specifies the background color (RGB) of the control. + */ + [optional, property] long BackgroundColor; + + + /** determines whether the control is enabled or disabled. + */ + [property] boolean Enabled; + + + /** specifies the font attributes of the text in the control. + */ + [property] com::sun::star::awt::FontDescriptor FontDescriptor; + + + /** specifies the com::sun::star::text::FontEmphasis + value of the text in the control. + */ + [property] short FontEmphasisMark; + + + /** specifies the com::sun::star::text::FontRelief + value of the text in the control. + */ + [property] short FontRelief; + + + /** specifies the help text of the control. + */ + [property] string HelpText; + + + /** specifies the help URL of the control. + */ + [property] string HelpURL; + + + /** specifies the position of the image, if any, relative to the text, if any + +
Valid values of this property are specified with ImagePosition.
+ */ + [optional, property] short ImagePosition; + + + /** specifies a URL to an image to display besides the label of the control + @see Graphic + */ + [optional, property] string ImageURL; + + + /** specifies a graphic to be displayed besides the label of the control + +If this property is present, it interacts with the #ImageURL in the + following way: +
+ 0: not checked + 1: checked ++ */ + [property] short State; + + + /** specifies that the control can be reached with the TAB key. + */ + [property] boolean Tabstop; + + + /** specifies the text color (RGB) of the control. + */ + [property] com::sun::star::util::Color TextColor; + + + /** specifies the text line color (RGB) of the control. + */ + [property] com::sun::star::util::Color TextLineColor; + + + /** specifies the vertical alignment of the text in the control. + + @since OOo 2.0 + */ + [optional, property] com::sun::star::style::VerticalAlignment VerticalAlign; + + + /** specifies a visual effect to apply to the radio button control. + +
Possible values for this property are VisualEffect::FLAT and + VisualEffect::LOOK3D.
+ + @see com::sun::star::awt::VisualEffect + + @since OOo 2.0 + */ + [optional, property] short VisualEffect; + + /** denotes the writing mode used in the control, as specified in the + com::sun::star::text::WritingMode2 constants group. + +Only com::sun::star::text::WritingMode2::LR_TB and + com::sun::star::text::WritingMode2::RL_TB are supported at the moment.
+ + @since OOo 3.1 + */ + [optional, property] short WritingMode; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/UnoControlRoadmap.idl b/offapi/com/sun/star/awt/UnoControlRoadmap.idl new file mode 100644 index 0000000000..9e31f5f2ec --- /dev/null +++ b/offapi/com/sun/star/awt/UnoControlRoadmap.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 . + */ + + + + + module com { module sun { module star { module awt { + + +/** specifies a Roadmap control. The model of the Roadmap control must be a + UnoControlRoadmapModel + +The model properties are implemented in the control as follows: +
A roadmap control which is interactive allows selecting its items out-of-order, + by simply clicking them.
+ */ + [property] boolean Interactive; + + + /** determines whether the control container is complete or not. If it is + false than a non - interactive RoadmapItem is appended + */ + [property] boolean Complete; + + + + /** specifies a URL to an image to use for the control. + The image is placed in the lower right corner of the control + @see Graphic + */ + [property] string ImageURL; + + + /** specifies a graphic to be displayed on the control + +If this property is present, it interacts with the #ImageURL in the + following way: +
+ 0: No border + 1: 3D border + 2: simple border ++ */ + [property] short Border; + + + /** specifies whether the control will be printed with the document. + */ + [property] boolean Printable; + + + /** specifies the text displayed in the control. + */ + [property] string Text; + + + /** refers to the ID of the currently selected item. Initially this property is set to "-1" + which is equal to "undefined" + If the Roadmap Item that the CurrentItemID refers to is removed the property + "CurrentItemID" is set to -1 + */ + [property] short CurrentItemID; + + + + /** specifies the help text of the control. + */ + [property] string HelpText; + + + + /** specifies the help URL of the control. + */ + [property] string HelpURL; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/UnoControlScrollBar.idl b/offapi/com/sun/star/awt/UnoControlScrollBar.idl new file mode 100644 index 0000000000..04b3cce647 --- /dev/null +++ b/offapi/com/sun/star/awt/UnoControlScrollBar.idl @@ -0,0 +1,39 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module awt { + + +/** specifies a scroll bar control. + */ +published service UnoControlScrollBar +{ + service com::sun::star::awt::UnoControl; + + interface com::sun::star::awt::XScrollBar; + +}; + + +}; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/UnoControlScrollBarModel.idl b/offapi/com/sun/star/awt/UnoControlScrollBarModel.idl new file mode 100644 index 0000000000..876b490b0a --- /dev/null +++ b/offapi/com/sun/star/awt/UnoControlScrollBarModel.idl @@ -0,0 +1,162 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module awt { + + +/** specifies the standard model of a UnoControlScrollBar. + */ +published service UnoControlScrollBarModel +{ + service com::sun::star::awt::UnoControlModel; + + + /** specifies the RGB color to be used for the control. + + @since OOo 2.0 + */ + [optional, property] com::sun::star::util::Color BackgroundColor; + + + /** specifies the increment for a block move. + */ + [property] long BlockIncrement; + + + /** specifies the border style of the control. + +
+ 0: No border + 1: 3D border + 2: simple border ++ */ + [property] short Border; + + + /** specifies the color of the border, if present + +
Not every border style (see #Border) may support coloring. + For instance, usually a border with 3D effect will ignore the BorderColor setting.
+ + @since OOo 2.0 + */ + [optional, property] long BorderColor; + + + /** determines whether the control is enabled or disabled. + */ + [property] boolean Enabled; + + + /** specifies the help text of the control. + */ + [property] string HelpText; + + + /** specifies the help URL of the control. + */ + [property] string HelpURL; + + + /** specifies the increment for a single line move. + */ + [property] long LineIncrement; + + + /** specifies the scrolling behavior of the control. + +`TRUE` means, that when the user moves the slider in the scroll bar, + the content of the window is updated immediately. + `FALSE` means, that the window is only updated after the user has + released the mouse button.
+ + @since OOo 2.0 + */ + [optional, property] boolean LiveScroll; + + + /** specifies the ScrollBarOrientation of the control. + */ + [property] long Orientation; + + + /** specifies that the control will be printed with the document. + */ + [property] boolean Printable; + + + /** specifies the mouse repeat delay, in milliseconds. + +When the user presses a mouse in a control area where this triggers + an action (such as scrolling the scrollbar), then usual control implementations + allow to repeatedly trigger this action, without the need to release the + mouse button and to press it again. The delay between two such triggers + is specified with this property.
+ + @since OOo 2.0 + */ + [optional, property] long RepeatDelay; + + + /** specifies the scroll value of the control. + */ + [property] long ScrollValue; + + + /** specifies the minimum scroll value of the control. + +If this optional property is not present, clients of the component should assume + a minimal scroll value of 0.
+ */ + [optional, property] long ScrollValueMin; + + + /** specifies the maximum scroll value of the control. + */ + [property] long ScrollValueMax; + + + /** specifies the RGB color to be used when painting symbols which are + part of the control's appearance, such as the arrow buttons. + + @since OOo 2.0 + */ + [optional, property] com::sun::star::util::Color SymbolColor; + + + /** specifies that the control can be reached with the TAB key. + + @since OOo 2.0 + */ + [optional, property] boolean Tabstop; + + + /** specifies the visible size of the scroll bar. + */ + [property] long VisibleSize; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/UnoControlSpinButton.idl b/offapi/com/sun/star/awt/UnoControlSpinButton.idl new file mode 100644 index 0000000000..2f7fd73af1 --- /dev/null +++ b/offapi/com/sun/star/awt/UnoControlSpinButton.idl @@ -0,0 +1,42 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module awt { + + +/** specifies a spin button control. + +The model of a UnoControlSpinButton control must support + the UnoControlSpinButtonModel service. + */ +service UnoControlSpinButton +{ + service com::sun::star::awt::UnoControl; + + interface com::sun::star::awt::XSpinValue; + +}; + + +}; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/UnoControlSpinButtonModel.idl b/offapi/com/sun/star/awt/UnoControlSpinButtonModel.idl new file mode 100644 index 0000000000..93dfd4c618 --- /dev/null +++ b/offapi/com/sun/star/awt/UnoControlSpinButtonModel.idl @@ -0,0 +1,147 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module awt { + + +/** specifies the standard model of a UnoControlSpinButton. + +
A spin button is a control which has a numeric value associated with it, + and allows to change this value using two spin buttons.
+ +A spin button is similar to a scroll bar, but it usually has no + (own) visual representation of the associated value, but is used to propagate + its value to other controls.
+ + @see UnoControlScrollBarModel + */ +service UnoControlSpinButtonModel +{ + service com::sun::star::awt::UnoControlModel; + + + /** specifies the border style of the control. + ++ 0: No border + 1: 3D border + 2: simple border ++ */ + [property] short Border; + + + /** specifies the color of the border, if present + +
Not every border style (see #Border) may support coloring. + For instance, usually a border with 3D effect will ignore the BorderColor setting.
+ + @since OOo 2.0 + */ + [optional, property] long BorderColor; + + + /** determines whether the control is enabled or disabled. + */ + [property] boolean Enabled; + + + /** specifies the help text of the control. + */ + [property] string HelpText; + + + /** specifies the help URL of the control. + */ + [property] string HelpURL; + + + /** specifies the increment by which the value is changed when using operating + the spin button. + */ + [property] long SpinIncrement; + + + /** specifies the ScrollBarOrientation of the control. + */ + [property] long Orientation; + + + /** specifies whether the control will be printed with the document. + */ + [property] boolean Printable; + + + /** specifies the current value of the control. + */ + [property] long SpinValue; + + + /** specifies the minimum value of the control. + */ + [property] long SpinValueMin; + + + /** specifies the maximum value of the control. + */ + [property] long SpinValueMax; + + + /** specifies the RGB color to be used for the control + */ + [property] com::sun::star::util::Color BackgroundColor; + + + /** specifies the RGB color to be used when painting symbols which are + part of the control's appearance, such as the arrow buttons. + */ + [property] com::sun::star::util::Color SymbolColor; + + + /** specifies whether the mouse should show repeating behavior, i.e. + repeatedly trigger an action when keeping pressed. + */ + [property] boolean Repeat; + + + /** specifies the mouse repeat delay, in milliseconds. + +When the user presses a mouse in a control area where this triggers + an action (such as spinning the value), then usual control implementations + allow to repeatedly trigger this action, without the need to release the + mouse button and to press it again. The delay between two such triggers + is specified with this property.
+ */ + [property] long RepeatDelay; + + /** defines how the mouse wheel can be used to scroll through the control's content. + +Usually, the mouse wheel spins the numeric value displayed in the control. Using this property, + and one of the MouseWheelBehavior constants, you can control under which circumstances + this is possible.
+ */ + [optional, property] short MouseWheelBehavior; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/UnoControlTimeField.idl b/offapi/com/sun/star/awt/UnoControlTimeField.idl new file mode 100644 index 0000000000..0f3ee992f9 --- /dev/null +++ b/offapi/com/sun/star/awt/UnoControlTimeField.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 . + */ + + + + module com { module sun { module star { module awt { + + +/** specifies a time field control. + +A time field makes it possible to enter, display, and edit time + values.
+ */ +published service UnoControlTimeField +{ + service com::sun::star::awt::UnoControlEdit; + + /** gives access to the value of a spin field and makes it possible to + register for spin events. + + @since OOo 1.1.2 + */ + [optional] interface com::sun::star::awt::XSpinField; + + interface com::sun::star::awt::XTimeField; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/UnoControlTimeFieldModel.idl b/offapi/com/sun/star/awt/UnoControlTimeFieldModel.idl new file mode 100644 index 0000000000..a97ec8c71a --- /dev/null +++ b/offapi/com/sun/star/awt/UnoControlTimeFieldModel.idl @@ -0,0 +1,229 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module awt { + + +/** specifies the standard model of a UnoControlTimeField. + */ +published service UnoControlTimeFieldModel +{ + service com::sun::star::awt::UnoControlModel; + + + /** specifies the background color (RGB) of the control. + */ + [property] com::sun::star::util::Color BackgroundColor; + + + /** specifies the border style of the control. + ++ 0: No border + 1: 3D border + 2: simple border ++ */ + [property] short Border; + + + /** specifies the color of the border, if present + +
Not every border style (see #Border) may support coloring. + For instance, usually a border with 3D effect will ignore the BorderColor setting.
+ + @since OOo 2.0 + */ + [optional, property] long BorderColor; + + + /** determines whether the control is enabled or disabled. + */ + [property] boolean Enabled; + + + /** specifies the font attributes of the text in the control. + */ + [property] com::sun::star::awt::FontDescriptor FontDescriptor; + + + /** specifies the com::sun::star::text::FontEmphasis + value of the text in the control. + */ + [property] short FontEmphasisMark; + + + /** specifies the com::sun::star::text::FontRelief + value of the text in the control. + */ + [property] short FontRelief; + + + /** specifies the help text of the control. + */ + [property] string HelpText; + + + /** specifies the help URL of the control. + */ + [property] string HelpURL; + + + /** specifies whether the selection in the control should be hidden when + the control is not active (focused). + + @since OOo 2.0 + */ + [optional, property] boolean HideInactiveSelection; + + + /** specifies that the control will be printed with the document. + */ + [property] boolean Printable; + + + /** specifies that the content of the control cannot be modified by the user. + */ + [property] boolean ReadOnly; + + + /** specifies whether the mouse should show repeating behavior, i.e. + repeatedly trigger an action when keeping pressed. + + @since OOo 2.0 + */ + [optional, property] boolean Repeat; + + + /** specifies the mouse repeat delay, in milliseconds. + +When the user presses a mouse in a control area where this triggers + an action (such as spinning the value), then usual control implementations + allow to repeatedly trigger this action, without the need to release the + mouse button and to press it again. The delay between two such triggers + is specified with this property.
+ + @since OOo 2.0 + */ + [optional, property] long RepeatDelay; + + + /** specifies that the control has a spin button. + */ + [property] boolean Spin; + + + /** specifies that the date is checked during the user input. + */ + [property] boolean StrictFormat; + + + /** specifies that the control can be reached with the TAB key. + */ + [property] boolean Tabstop; + + + /** specifies the text displayed in the control. + + @since OOo 2.0 + */ + [optional, property] string Text; + + + /** specifies the text color (RGB) of the control. + */ + [property] com::sun::star::util::Color TextColor; + + + /** specifies the text line color (RGB) of the control. + */ + [property] com::sun::star::util::Color TextLineColor; + + + /** specifies the time displayed in the control. + */ + [property] com::sun::star::util::Time Time; + + + /** specifies the format of the displayed time. + ++ 0: 24h short + 1: 24h long + 2: 12h short + 3: 12h long + 4: Duration short + 5: Duration long ++ */ + [property] short TimeFormat; + + + /** specifies the maximum time that can be entered. + */ + [property] com::sun::star::util::Time TimeMax; + + + /** specifies the minimum time that can be entered. + */ + [property] com::sun::star::util::Time TimeMin; + + /** denotes the writing mode used in the control, as specified in the + com::sun::star::text::WritingMode2 constants group. + +
Only com::sun::star::text::WritingMode2::LR_TB and + com::sun::star::text::WritingMode2::RL_TB are supported at the moment.
+ + @since OOo 3.1 + */ + [optional, property] short WritingMode; + + /** defines how the mouse wheel can be used to scroll through the control's content. + +Usually, the mouse wheel spins the numeric value displayed in the control. Using this property, + and one of the MouseWheelBehavior constants, you can control under which circumstances + this is possible.
+ */ + [optional, property] short MouseWheelBehavior; + + + /** specifies the vertical alignment of the text in the control. + + @since OOo 3.3 + */ + [optional, property] com::sun::star::style::VerticalAlignment VerticalAlign; + + /** specifies the background color (RGB) of selected text in the control which is highlighted. + + @since LibreOffice 7.5 + */ + [optional, property] com::sun::star::util::Color HighlightColor; + + /** specifies the text color (RGB) of selected text in the control which is highlighted. + + @since LibreOffice 7.5 + */ + [optional, property] com::sun::star::util::Color HighlightTextColor; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/VclContainerEvent.idl b/offapi/com/sun/star/awt/VclContainerEvent.idl new file mode 100644 index 0000000000..874cd409a1 --- /dev/null +++ b/offapi/com/sun/star/awt/VclContainerEvent.idl @@ -0,0 +1,44 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module awt { + + +/** specifies a container event. + +These events are provided only for notification + purposes.
+ + @see XVclContainerListener + */ +published struct VclContainerEvent: com::sun::star::lang::EventObject +{ + + /** returns the child component that was added or removed. + */ + com::sun::star::uno::XInterface Child; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/VclWindowPeerAttribute.idl b/offapi/com/sun/star/awt/VclWindowPeerAttribute.idl new file mode 100644 index 0000000000..f129e45638 --- /dev/null +++ b/offapi/com/sun/star/awt/VclWindowPeerAttribute.idl @@ -0,0 +1,117 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module awt { + + +/** specifies attributes for the VCL window implementation. + +IMPORTANT: These constants have to be disjunct with + constants in WindowAttribute.
+ + @deprecated + */ +published constants VclWindowPeerAttribute +{ + + const long HSCROLL = 256; + + + const long VSCROLL = 512; + + + const long LEFT = 1024; + + + const long CENTER = 2048; + + + const long RIGHT = 4096; + + + const long SPIN = 8192; + + + const long SORT = 16384; + + + const long DROPDOWN = 32768; + + + const long DEFBUTTON = 65536; + + + const long READONLY = 262144; + + + const long CLIPCHILDREN = 524288; + + + const long NOBORDER = 1048576; + + + const long GROUP = 2097152; + + + const long OK = 4194304; + + + const long OK_CANCEL = 8388608; + + + const long YES_NO = 16777216; + + + const long YES_NO_CANCEL = 33554432; + + + const long RETRY_CANCEL = 67108864; + + + const long DEF_OK = 134217728; + + + const long DEF_CANCEL = 268435456; + + + const long DEF_RETRY = 536870912; + + + const long DEF_YES = 1073741824; + + + const long DEF_NO = -2147483648; + + + const long NOLABEL = 536870912; //added for issue79712 + + + const long AUTOHSCROLL = 1073741824; + + + const long AUTOVSCROLL = -2147483648; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/VisualEffect.idl b/offapi/com/sun/star/awt/VisualEffect.idl new file mode 100644 index 0000000000..d457395af5 --- /dev/null +++ b/offapi/com/sun/star/awt/VisualEffect.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 . + */ + + +module com { module sun { module star { module awt { + + +/** These values are used to specify the visual effect of controls + +The list may grow in future versions.
+*/ +constants VisualEffect +{ + /** specifies that no visual effect is to be applied + */ + const short NONE = 0; + + /** specifies a 3D-like look + */ + const short LOOK3D = 1; + + /** specifies a "flat" look + */ + const short FLAT = 2; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/WindowAttribute.idl b/offapi/com/sun/star/awt/WindowAttribute.idl new file mode 100644 index 0000000000..817e69d1a7 --- /dev/null +++ b/offapi/com/sun/star/awt/WindowAttribute.idl @@ -0,0 +1,112 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module awt { + + +/** These values are used to specify the decorations of a window. + +IMPORTANT: These constants have to be disjunct with + constants in VclWindowPeerAttribute.
+ */ +published constants WindowAttribute +{ + + /** specifies that the window is initially visible. + */ + const long SHOW = 1; + + + /** specifies that the window fills the complete desktop area. + +This applies only to top windows.
+ */ + const long FULLSIZE = 2; + + + /** specifies that the window is optimum size. + +This applies only to top windows.
+ */ + const long OPTIMUMSIZE = 4; + + + /** specifies that the window is minimum size. + +This applies only to top windows.
+ */ + const long MINSIZE = 8; + + + /** specifies that the window has visible borders. + +This applies only to top windows.
+ */ + const long BORDER = 16; + + + /** specifies that the size of the window can be changed by the user. + +This applies only to top windows.
+ */ + const long SIZEABLE = 32; + + + /** specifies that the window can be moved by the user. + +This applies only to top windows.
+ */ + const long MOVEABLE = 64; + + + /** specifies that the window can be closed by the user. + +This applies only to top windows.
+ */ + const long CLOSEABLE = 128; + + + /** specifies that the window should support the + com::sun::star::awt::XSystemDependentWindowPeer + interface. + +This flag may be ignored, but in this case no system-dependent + extension works.
+ + @see XSystemDependentWindowPeer + @see com::sun::star::lang::SystemDependent + + @deprecated + conflicts with VclWindowPeerAttribute::HSCROLL + */ + const long SYSTEMDEPENDENT = 256; + + + /** specifies that the window should have no decoration. + */ + const long NODECORATION = 512; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/WindowClass.idl b/offapi/com/sun/star/awt/WindowClass.idl new file mode 100644 index 0000000000..00cf5c5670 --- /dev/null +++ b/offapi/com/sun/star/awt/WindowClass.idl @@ -0,0 +1,55 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module awt { + + +/** specifies the class of a window. + */ +published enum WindowClass +{ + + /** specifies a top level window on the desktop. It is also a container. + */ + TOP, + + + /** is a modal top level window on the desktop. It is also a container. + */ + MODALTOP, + + + /** is a container that may contain other components. + It is not a top window. + */ + CONTAINER, + + + /** is the simplest window. It can be a container. + */ + SIMPLE + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/WindowDescriptor.idl b/offapi/com/sun/star/awt/WindowDescriptor.idl new file mode 100644 index 0000000000..e1683b7d2e --- /dev/null +++ b/offapi/com/sun/star/awt/WindowDescriptor.idl @@ -0,0 +1,146 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module awt { + + +/** describes a window. + */ +published struct WindowDescriptor +{ + + /** specifies the type of window. + */ + com::sun::star::awt::WindowClass Type; + + + /** specifies the name of the component service. + +A zero length name means that the VCL creates a blank top,
+ a container, or a simple window.
+ The following service names are defined:
+
If Parent == 0 && ParentIndex == -1
,
+ then the window is on the desktop.
If Parent == 0
and this struct is a member of an array,
+ then this is the offset from the beginning of the array to the parent.
+ A value of -1 means desktop.
This member is ignored if the window attribute is + com::sun::star::awt::WindowAttribute::FULLSIZE.
+ */ + com::sun::star::awt::Rectangle Bounds; + + + /** specifies the window attributes. + +Use one value out of the constant group + com::sun::star::awt::WindowAttribute.
+ */ + long WindowAttributes; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/WindowEvent.idl b/offapi/com/sun/star/awt/WindowEvent.idl new file mode 100644 index 0000000000..51268c569f --- /dev/null +++ b/offapi/com/sun/star/awt/WindowEvent.idl @@ -0,0 +1,86 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module awt { + + +/** specifies a window event. + */ +published struct WindowEvent: com::sun::star::lang::EventObject +{ + + /** specifies the outer x position of the window. + */ + long X; + + + /** specifies the outer y position of the window. + */ + long Y; + + + /** specifies the outer (total) width of the window. + */ + long Width; + + + /** specifies the outer (total) height of the window. + */ + long Height; + + + /** specifies the inset from the left. + +The inset is the distance between the outer and the inner window, + that means the left inset is the width of the left border.
+ */ + long LeftInset; + + + /** specifies the inset from the top. + +The inset is the distance between the outer and the inner window, + that means the top inset is the height of the top border.
+ */ + long TopInset; + + + /** specifies the inset from the right. + +The inset is the distance between the outer and the inner window, + that means the right inset is the width of the right border.
+ */ + long RightInset; + + + /** specifies the inset from the bottom. + +The inset is the distance between the outer and the inner window, + that means the bottom inset is the height of the bottom border.
+ */ + long BottomInset; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/XActionListener.idl b/offapi/com/sun/star/awt/XActionListener.idl new file mode 100644 index 0000000000..d79f6d6276 --- /dev/null +++ b/offapi/com/sun/star/awt/XActionListener.idl @@ -0,0 +1,39 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module awt { + + +/** makes it possible to receive action events. + */ +published interface XActionListener: com::sun::star::lang::XEventListener +{ + + /** is invoked when an action is performed. + */ + void actionPerformed( [in] com::sun::star::awt::ActionEvent rEvent ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/XActivateListener.idl b/offapi/com/sun/star/awt/XActivateListener.idl new file mode 100644 index 0000000000..5b93570a31 --- /dev/null +++ b/offapi/com/sun/star/awt/XActivateListener.idl @@ -0,0 +1,55 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module awt { + + +/** makes it possible to receive activate events. + + @see XFocusListener + @see XTopWindowListener + */ +published interface XActivateListener: com::sun::star::lang::XEventListener +{ + + /** is invoked when a window is activated. + +A window is activated if a child or itself got the focus.
+ + @see XFocusListener::focusGained + */ + void windowActivated( [in] com::sun::star::lang::EventObject e ); + + + /** is invoked when a window is deactivated. + +A window is deactivated if a child or itself lost the focus.
+ + @see XFocusListener::focusLost + */ + void windowDeactivated( [in] com::sun::star::lang::EventObject e ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/XAdjustmentListener.idl b/offapi/com/sun/star/awt/XAdjustmentListener.idl new file mode 100644 index 0000000000..b50b5685d8 --- /dev/null +++ b/offapi/com/sun/star/awt/XAdjustmentListener.idl @@ -0,0 +1,39 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module awt { + + +/** makes it possible to receive adjustment events. + */ +published interface XAdjustmentListener: com::sun::star::lang::XEventListener +{ + + /** is invoked when the adjustment has changed. + */ + void adjustmentValueChanged( [in] com::sun::star::awt::AdjustmentEvent rEvent ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/XAnimatedImages.idl b/offapi/com/sun/star/awt/XAnimatedImages.idl new file mode 100644 index 0000000000..bb4c8975b8 --- /dev/null +++ b/offapi/com/sun/star/awt/XAnimatedImages.idl @@ -0,0 +1,157 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module awt { + + +/** allows administrating a set of images, to be displayed as animated seres. + +Components implementing this interface maintain a variable number of image sets. Components displaying + those images will choose the best-fitting image set depending on the available space, and possibly other + restrictions.
+ + @since OOo 3.4 + */ +interface XAnimatedImages +{ + /** specifies the time in milliseconds between two animation steps. + +This is the minimum time, the actual value might be longer due to + system load. The default value will be 100 ms.
+ */ + [attribute] long StepTime; + + /** specifies whether the animation should start over with the first image of the image series when the last image + has been played. + +The default value for this attribute is `TRUE`.
+ */ + [attribute] boolean AutoRepeat; + + /** controls the way the images are scaled up or down, when the available space is larger or smaller + than what is needed for them. + +Allowed values are those from the ImageScaleMode constants group.
+ */ + [attribute] short ScaleMode + { + set raises (::com::sun::star::lang::IllegalArgumentException); + }; + + /** returns the number of images sets maintained by the component. + */ + long + getImageSetCount(); + + /** returns the URLs of the image set with the given index + + @param iIndex + the index of the set those image URLs are to be retrieved. Must be greater than or equal to0
,
+ and smaller than the value returned by getImageSetCount().
+
+ @throws ::com::sun::star::lang::IndexOutOfBoundsException
+ if the iIndex
is not a valid index.
+ */
+ sequence< string >
+ getImageSet
+ (
+ [in] long iIndex
+ )
+ raises
+ (
+ ::com::sun::star::lang::IndexOutOfBoundsException
+ );
+
+ /** sets the URLs of the image set with the given index
+
+ @param iIndex
+ the index at which a new image set should be inserted. Must be greater than or equal to 0
,
+ and smaller than or equal to the value returned by getImageSetCount().
+ @param iImageURLs
+ the URLs for the images for the given set. Will be resolved using a com::sun::star::graphic::GraphicProvider.
+
+ @throws ::com::sun::star::lang::IndexOutOfBoundsException
+ if the iIndex
is not a valid index.
+ */
+ void
+ insertImageSet
+ (
+ [in] long iIndex,
+ [in] sequence< string > iImageURLs
+ )
+ raises
+ (
+ ::com::sun::star::lang::IndexOutOfBoundsException
+ );
+
+ /** replaces the image set given by index with a new one
+
+ @param iIndex
+ the index of the set those image URLs are to be replaced. Must be greater than or equal to 0
,
+ and smaller than the value returned by getImageSetCount().
+
+ @param iImageURLs
+ the URLs for the images for the given set. Will be resolved using a com::sun::star::graphic::GraphicProvider.
+
+ @throws ::com::sun::star::lang::IndexOutOfBoundsException
+ if the iIndex
is not a valid index.
+ */
+ void
+ replaceImageSet
+ (
+ [in] long iIndex,
+ [in] sequence< string > iImageURLs
+ )
+ raises
+ (
+ ::com::sun::star::lang::IndexOutOfBoundsException
+ );
+
+
+ /** removes the image set with the given index
+
+ @param iIndex
+ the index of the set to remove. Must be greater than or equal to 0
,
+ and smaller than the value returned by getImageSetCount().
+
+ @throws ::com::sun::star::lang::IndexOutOfBoundsException
+ if the iIndex
is not a valid index.
+ */
+ void
+ removeImageSet
+ (
+ [in] long iIndex
+ )
+ raises
+ (
+ ::com::sun::star::lang::IndexOutOfBoundsException
+ );
+
+
+ /** allows other components to observer the insertion, removal, and replacement of image sets
+ */
+ interface ::com::sun::star::container::XContainer;
+};
+
+
+}; }; }; };
+
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/awt/XAnimation.idl b/offapi/com/sun/star/awt/XAnimation.idl
new file mode 100644
index 0000000000..6ffd390bc3
--- /dev/null
+++ b/offapi/com/sun/star/awt/XAnimation.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 .
+ */
+
+
+module com { module sun { module star { module awt {
+
+
+/** allows controlling an animation.
+
+ @since OOo 3.4
+ */
+interface XAnimation
+{
+ /** starts the animation
+ */
+ void startAnimation();
+
+ /** stops the animation
+ */
+ void stopAnimation();
+
+ /** determines whether the animation is currently running
+ */
+ boolean isAnimationRunning();
+};
+
+
+}; }; }; };
+
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/awt/XBitmap.idl b/offapi/com/sun/star/awt/XBitmap.idl
new file mode 100644
index 0000000000..6d9b480233
--- /dev/null
+++ b/offapi/com/sun/star/awt/XBitmap.idl
@@ -0,0 +1,49 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module awt {
+
+
+/** provides a bitmap in the Microsoft DIB format.
+ */
+published interface XBitmap: com::sun::star::uno::XInterface
+{
+
+ /** returns the size of the bitmap in pixel.
+ */
+ com::sun::star::awt::Size getSize();
+
+
+ /** returns the device independent bitmap.
+ */
+ sequencevnd.sun.star.UNO:HandlerMethodName
URL.
+ First a method
+
+ void HandlerMethodName( [in] com::sun::star::awt::XWindow xWindow, [in] any aEvent )
+
+ will be searched. The signature is similar to XContainerWindowEventHandler.
+ callHandlerMethod except for MethodName itself that isn't needed
+ here. For more information about these parameters, see
+ com::sun::star::awt::XContainerWindowEventHandler.
+
+ If this method is found, it will be called, otherwise a method
+
+ void HandlerMethodName( void )
+
+ will be searched and called.
+
+ @returns
+ a window implementing the com::sun::star::awt::XWindow interface.
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if no window for the given URL is found or if the URL is invalid
+ or xParent is null.
+
+ @see com::sun::star::awt::XContainerWindowEventHandler
+
+ */
+ com::sun::star::awt::XWindow createContainerWindow
+ ( [in] string URL, [in] string WindowType,
+ [in] com::sun::star::awt::XWindowPeer xParent,
+ [in] com::sun::star::uno::XInterface xHandler )
+ raises ( com::sun::star::lang::IllegalArgumentException );
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/awt/XControl.idl b/offapi/com/sun/star/awt/XControl.idl
new file mode 100644
index 0000000000..16a528e90c
--- /dev/null
+++ b/offapi/com/sun/star/awt/XControl.idl
@@ -0,0 +1,99 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module awt {
+
+
+/** identifies a control.
+
+ Implementations of this interface are abstract windows. + The main reason to instantiate this implementation is to show the window + on the screen. Before the window appears on the screen, the + XControl::createPeer() method must be called.
+ +If the implementation of the control does not distinguish + between model, view and controller, it must allow to set + a new XGraphics in the view, so that the control can be printed.
+ */ +published interface XControl: com::sun::star::lang::XComponent +{ + + /** sets the context of the control. + */ + void setContext( [in] com::sun::star::uno::XInterface Context ); + + + /** gets the context of the control. + */ + com::sun::star::uno::XInterface getContext(); + + + /** creates a "child" window on the screen. + +If the parent is NULL, then the desktop window of the toolkit + is the parent.
+ */ + void createPeer( [in] com::sun::star::awt::XToolkit Toolkit, + [in] com::sun::star::awt::XWindowPeer Parent ); + + + /** returns the peer which was previously created or set. + */ + com::sun::star::awt::XWindowPeer getPeer(); + + + /** sets a model for the control. + */ + boolean setModel( [in] com::sun::star::awt::XControlModel Model ); + + + /** returns the model for this control. + */ + com::sun::star::awt::XControlModel getModel(); + + + /** returns the view of this control. + */ + com::sun::star::awt::XView getView(); + + + /** sets the design mode for use in a design editor. + +Normally the control will be painted directly without a peer.
+ */ + void setDesignMode( [in] boolean bOn ); + + + /** returns `TRUE` if the control is in design mode, `FALSE` otherwise. + */ + boolean isDesignMode(); + + + /** returns `TRUE` if the control is transparent, `FALSE` otherwise. + */ + boolean isTransparent(); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/XControlContainer.idl b/offapi/com/sun/star/awt/XControlContainer.idl new file mode 100644 index 0000000000..5a9f096109 --- /dev/null +++ b/offapi/com/sun/star/awt/XControlContainer.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 . + */ + + + + module com { module sun { module star { module awt { + + +/** Provides access to the controls within an + UnoControlContainer. + */ +published interface XControlContainer: com::sun::star::uno::XInterface +{ + + /** sets the status text in the status bar of the container. + */ + void setStatusText( [in] string StatusText ); + + + /** returns all controls. + */ + sequenceIf the device does not support the GETBITS device capability, + this method returns `NULL`.
+ */ + XDevice createDevice( [in] long nWidth, + [in] long nHeight ); + + + /** returns information about the device. + */ + com::sun::star::awt::DeviceInfo getInfo(); + + + /** returns the list of available font descriptors. + */ + sequenceIf the specified area does not lie entirely in the device, the bits + outside are not specified.
+ */ + XBitmap createBitmap( [in] long nX, + [in] long nY, + [in] long nWidth, + [in] long nHeight ); + + + /** creates a device compatible bitmap. + +The data of the bitmap is in process memory instead of in the device, + so that the output operation is fast.
+ */ + XDisplayBitmap createDisplayBitmap( [in] XBitmap Bitmap ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/XDialog.idl b/offapi/com/sun/star/awt/XDialog.idl new file mode 100644 index 0000000000..ab23433b2c --- /dev/null +++ b/offapi/com/sun/star/awt/XDialog.idl @@ -0,0 +1,57 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module awt { + + +/** makes it possible to show and hide a dialog and gives access to + the title of the dialog. + */ +published interface XDialog: com::sun::star::uno::XInterface +{ + + /** sets the title of the dialog. + */ + void setTitle( [in] string Title ); + + + /** gets the title of the dialog. + */ + string getTitle(); + + + /** runs the dialog modally: shows it, and waits for the execution to end. + Returns an exit code (e.g., indicating the button that was used to end the execution). + */ + short execute(); + + + /** hides the dialog and then causes XDialog::execute() + to return. + */ + void endExecute(); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/XDialog2.idl b/offapi/com/sun/star/awt/XDialog2.idl new file mode 100644 index 0000000000..a82556662d --- /dev/null +++ b/offapi/com/sun/star/awt/XDialog2.idl @@ -0,0 +1,44 @@ +/* -*- 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 . + */ + + + +module com { module sun { module star { module awt { + + +/** Makes it possible to end a dialog and set a help id. + + @since OOo 3.0 + */ +published interface XDialog2: com::sun::star::awt::XDialog +{ + /** hides the dialog and then causes XDialog::execute() + to return with the given result value. + */ + void endDialog ( [in] long Result ); + /** sets the help id so that the standard help button action will + show the appropriate help page. + */ + void setHelpId ( [in] string Id ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/XDialogEventHandler.idl b/offapi/com/sun/star/awt/XDialogEventHandler.idl new file mode 100644 index 0000000000..f8fdb95f21 --- /dev/null +++ b/offapi/com/sun/star/awt/XDialogEventHandler.idl @@ -0,0 +1,81 @@ +/* -*- 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 . + */ + + + +module com { module sun { module star { module awt { + + +/** Handles events fired by dialogs represented by a + com::sun::star::awt::XDialog interface. + */ +interface XDialogEventHandler : ::com::sun::star::uno::XInterface { + + + /** Handles an event generated by a dialog. + + The implementation must be aware that the EventObject argument contains types + which it is not prepared to handle. Similarly this applies for the MethodName + argument. In this case the method should simply return false. + + @param xDialog + the dialog instance that generated the event. This is the same dialog instance + that was returned by the com::sun::star::awt::XDialogProvider2 + createDialogWithHandler method when passing the XDialogEventHandler instance + receiving the event as handler parameter. + + @param EventObject + an object describing the event which occurred in the dialog or anything else that + provides additional information for the event. + If the event was caused by the dialog or any of the controls which it contains + then the any should contain an object derived from + com::sun::star::lang::EventObject. Typically this would be one + of the several com::sun::star::awt::*Event types. + + @param MethodName + the name of the function which is to be called. + + @returns + true if the event was handled, otherwise false. + + @throws com::sun::star::lang::WrappedTargetException + if the implementation of the method, which is determined by the argument MethodName, + throws an exception. This exception is then wrapped into a + com::sun::star::lang::WrappedTargetException. + + */ + boolean callHandlerMethod( + [in] com::sun::star::awt::XDialog xDialog, + [in] any EventObject, + [in] string MethodName) + raises(com::sun::star::lang::WrappedTargetException); + + + /** returns a sequence of supported method names + + @returns + all method names that will be accepted in calls to callHandlerMethod. + */ + sequencevnd.sun.star.UNO:HandlerMethodName
URL.
+ First a method
+
+ void HandlerMethodName( [in] com::sun::star::awt::XDialog xDialog, [in] any aEvent )
+
+ will be searched. The signature is similar to XDialogEventHandler.
+ callHandlerMethod except for MethodName itself that isn't needed
+ here. For more information about these parameters, see
+ com::sun::star::awt::XDialogEventHandler.
+
+ If this method is found, it will be called, otherwise a method
+
+ void HandlerMethodName( void )
+
+ will be searched and called.
+
+ @returns
+ a dialog implementing the com::sun::star::awt::XDialog interface.
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if no dialog for the given URL is found or if the URL is invalid
+ or xHandler is null.
+
+ @see com::sun::star::awt::XDialogEventHandler
+
+ */
+ com::sun::star::awt::XDialog createDialogWithHandler
+ ( [in] string URL, [in] com::sun::star::uno::XInterface xHandler )
+ raises ( com::sun::star::lang::IllegalArgumentException );
+
+ /** creates a dialog for the given URL, accepting additional creation parameters
+
+ The arguments accepted so far are +
XWindowPeer
can be
+ obtained from it. The given window will be used as parent window for the to-be-created dialog.Drawing of this bitmap is only valid on a compatible device.
+ */ +published interface XDisplayBitmap: com::sun::star::uno::XInterface +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/XDisplayConnection.idl b/offapi/com/sun/star/awt/XDisplayConnection.idl new file mode 100644 index 0000000000..4dce090153 --- /dev/null +++ b/offapi/com/sun/star/awt/XDisplayConnection.idl @@ -0,0 +1,86 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module awt { + + published interface XEventHandler; + + +/** This interface should be implemented by toolkits that want to give access + to their internal message handling loop. +*/ +published interface XDisplayConnection: com::sun::star::uno::XInterface +{ + + /** registers an event handler. + + @param window + the platform specific window id. If empty, the handler should be + registered for all windows. + + @param eventHandler + the handler to register. + + @param eventMask + the event mask specifies the events the handler is interested in. + */ + void addEventHandler( [in] any window, [in] XEventHandler eventHandler, [in] long eventMask ); + + + /** removes an eventHandler from the handler list. + + @param window + the platform specific window id the handler should be unregistered for. + If empty, the handler should be unregistered completely. + + @param eventHandler + the handler to remove. + */ + void removeEventHandler( [in] any window, [in] XEventHandler eventHandler ); + + + /** register an error handler for toolkit specific errors. + + @param errorHandler + the handler to register. + */ + void addErrorHandler( [in] XEventHandler errorHandler ); + + + /** remover an error handler from the handler list. + + @param errorHandler + the handler to remove. + */ + void removeErrorHandler( [in] XEventHandler errorHandler ); + + + /** returns an identifier. + + @returns a unique platform dependent identifier for a display connection. + */ + any getIdentifier(); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/XDockableWindow.idl b/offapi/com/sun/star/awt/XDockableWindow.idl new file mode 100644 index 0000000000..c8d76eeccd --- /dev/null +++ b/offapi/com/sun/star/awt/XDockableWindow.idl @@ -0,0 +1,116 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module awt { + + +/** specifies the docking interface for a window component. + +A window can either be docked where it resides as a child window in + an application frame window or it can be floating where it will + reside in its own decorated top level window. +
+ */ +interface XDockableWindow : com::sun::star::uno::XInterface +{ + + /** adds a docking listener to the object. + only a single listener may be registered at any time. + */ + void addDockableWindowListener( [in] com::sun::star::awt::XDockableWindowListener xListener ); + + + /** removes the specified docking listener from the object. + */ + void removeDockableWindowListener( [in] com::sun::star::awt::XDockableWindowListener xListener ); + + + /** enable or disable docking, docking is disabled by default + + @param bEnable + `TRUE` specifies that docking is enabled + `FALSE` specifies that docking is disabled and no + com::sun::star::awt::XDockableWindowListener will be called + */ + void enableDocking( [in] boolean bEnable ); + + + /** queries the current window state + @returns + `TRUE` if the window is floating + `FALSE` if the window is docked + */ + boolean isFloating(); + + + /** toggle between floating and docked state + @param bFloating + specifies the new floating mode: + `TRUE` means floating, `FALSE` means docked + */ + void setFloatingMode( [in] boolean bFloating ); + + + /** prevents the window from being undocked + this has no effect if the window is floating + */ + void lock(); + + + /** enables undocking + this has no effect if the window is floating + */ + void unlock(); + + + /** queries the current locking state + @returns + `TRUE` if the window is locked + `FALSE` if the window is not locked + */ + boolean isLocked(); + + + /** shows the window in a menu like style, i.e. without decoration + a special indicator will allow for tearing off the window + see com::sun::star::awt::XDockableWindowListener for + the corresponding events + @param WindowRect + specifies the position and size of the pop-up window in frame coordinates + + @deprecated - doesn't do anything + */ + void startPopupMode( [in] com::sun::star::awt::Rectangle WindowRect ); + + + /** queries the current pop-up mode + @returns + `TRUE` if the window is in pop-up mode + `FALSE` if the window is not in pop-up mode + + @deprecated - always returns `FALSE` + */ + boolean isInPopupMode(); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/XDockableWindowListener.idl b/offapi/com/sun/star/awt/XDockableWindowListener.idl new file mode 100644 index 0000000000..e9eb44471f --- /dev/null +++ b/offapi/com/sun/star/awt/XDockableWindowListener.idl @@ -0,0 +1,82 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module awt { + + +/** makes it possible to receive docking events. + */ +interface XDockableWindowListener: com::sun::star::lang::XEventListener +{ + + /** is invoked when the docking procedure starts. + */ + void startDocking( [in] com::sun::star::awt::DockingEvent e ); + + + /** is invoked during the docking procedure when the window has been moved. + + on return the DockingData must contain either the old tracking rectangle + or a changed rectangle if required, additionally it must indicate if + the window should be docked or floating + + Note: the tracking rectangle indicates to the user where the window would + be placed if he releases the mouse. + + */ + DockingData docking( [in] com::sun::star::awt::DockingEvent e ); + + + /** is invoked when the docking procedure ends. + aWindowRect contains the new position and size of the window + */ + void endDocking( [in] com::sun::star::awt::EndDockingEvent e ); + + + /** is invoked when the floating mode is about to be changed between + floating and docked or vice versa + + if returned FALSE the floating mode will not be changed + */ + boolean prepareToggleFloatingMode( [in] com::sun::star::lang::EventObject e ); + + + /** is invoked when the floating mode is changed between + floating and docked or vice versa + */ + void toggleFloatingMode( [in] com::sun::star::lang::EventObject e ); + + + /** is invoked when the window was actively closed + */ + void closed( [in] com::sun::star::lang::EventObject e ); + + + /** is invoked when the window currently is in pop-up mode and wants to be undocked + or closed + */ + void endPopupMode( [in] com::sun::star::awt::EndPopupModeEvent e ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/XEnhancedMouseClickHandler.idl b/offapi/com/sun/star/awt/XEnhancedMouseClickHandler.idl new file mode 100644 index 0000000000..44437c3e8a --- /dev/null +++ b/offapi/com/sun/star/awt/XEnhancedMouseClickHandler.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 . + */ + + + +module com { module sun { module star { module awt { + + +/** makes it possible to receive enhanced events from the mouse. + + @since OOo 2.0 + + */ +published interface XEnhancedMouseClickHandler: ::com::sun::star::lang::XEventListener +{ + + /** is invoked when a mouse button has been pressed on a window. + */ + boolean mousePressed( [in] com::sun::star::awt::EnhancedMouseEvent e ); + + + /** is invoked when a mouse button has been released on a window. + */ + boolean mouseReleased( [in] com::sun::star::awt::EnhancedMouseEvent e ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/XEventHandler.idl b/offapi/com/sun/star/awt/XEventHandler.idl new file mode 100644 index 0000000000..938901907c --- /dev/null +++ b/offapi/com/sun/star/awt/XEventHandler.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 . + */ + + +module com { module sun { module star { module awt { + + +/** This interface can be implemented by clients that need access to the + toolkits window message loop. +*/ +published interface XEventHandler: com::sun::star::uno::XInterface +{ + + + /** requests the implementor of this interface to handle a platform + dependent event. + + @returns `TRUE` if the event was handled properly and no further + handling should take place, `FALSE` otherwise. + + @param event + the platform dependent event. + */ + boolean handleEvent( [in] any event ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/XExtendedToolkit.idl b/offapi/com/sun/star/awt/XExtendedToolkit.idl new file mode 100644 index 0000000000..2508bd1182 --- /dev/null +++ b/offapi/com/sun/star/awt/XExtendedToolkit.idl @@ -0,0 +1,183 @@ +/* -*- 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 . + */ + + + +module com { module sun { module star { module awt { + + +/** The XExtendedToolkit is an extension of the + ::com::sun::star::awt::XToolkit interface. It basically + provides access to three event broadcasters which are used for instance + in the context of accessibility. It is, however, not restricted to + accessibility. + +The first event broadcaster lets you keep track of the open top-level + windows (frames). To get the set of currently open top-level window use + the XExtendedToolkit::getTopWindowCount() and + XExtendedToolkit::getTopWindow() methods.
+ +The second event broadcaster informs its listeners of key events. + Its listeners can, unlike with most other broadcasters/listeners, + consume events, so that other listeners will not be called for consumed + events.
+ +The last event broadcaster sends events on focus changes of all + elements that can have the input focus.
+ + @deprecated + This interface was only implemented in an intermediate developer + release anyway. + + @since OOo 1.1.2 +*/ +published interface XExtendedToolkit : ::com::sun::star::uno::XInterface +{ + + /** This function returns the number of currently existing top-level + windows. + @return + Returns the number of top-level windows. This includes all + top-level windows, regardless of whether they are iconized, + visible, or active. + */ + long getTopWindowCount (); + + + /** Return a reference to the specified top-level window. Note that the + number of top-level windows may change between a call to + getTopWindowCount() and successive calls to this + function. + @param nIndex + The index should be in the interval from 0 up to but not + including the number of top-level windows as returned by + getTopWindowCount(). + @return + The returned value is a valid reference to a top-level window. + @throws IndexOutOfBoundsException + when the specified index is outside the valid range. + */ + ::com::sun::star::awt::XTopWindow getTopWindow ([in] long nIndex) + raises (::com::sun::star::lang::IndexOutOfBoundsException); + + + /** Return the currently active top-level window, i.e. which has + currently the input focus. + @return + The returned reference may be empty when no top-level window is + active. + */ + ::com::sun::star::awt::XTopWindow getActiveTopWindow (); + + /** Add a new listener that is called for events that involve + ::com::sun::star::awt::XTopWindow. After having + obtained the current list of existing top-level windows you can + keep this list up-to-date by listening to opened or closed top-level + windows. Wait for activations or deactivations of top-level windows + to keep track of the currently active frame. + @param xListener + If this is a valid reference it is inserted into the list of + listeners. It is the task of the caller to not register the + same listener twice (otherwise that listener will be called + twice.) + */ + void addTopWindowListener ( + [in] ::com::sun::star::awt::XTopWindowListener xListener); + + + /** Remove the specified listener from the list of listeners. + @param xListener + If the reference is empty then nothing will be changed. If the + listener has been registered twice (or more) then all references + will be removed. + */ + void removeTopWindowListener ( + [in] ::com::sun::star::awt::XTopWindowListener xListener); + + + /** Add a new listener that is called on + ::com::sun::star::awt::KeyEvent. Every listener is + given the opportunity to consume the event, i.e. prevent the not yet + called listeners from being called. + @param xHandler + If this is a valid reference it is inserted into the list of + handlers. It is the task of the caller to not register the + same handler twice (otherwise that listener will be called + twice.) + */ + void addKeyHandler ( + [in] ::com::sun::star::awt::XKeyHandler xHandler); + + + /** Remove the specified listener from the list of listeners. + @param xHandler + If the reference is empty then nothing will be changed. If the + handler has been registered twice (or more) then all references + will be removed. + */ + void removeKeyHandler ( + [in] ::com::sun::star::awt::XKeyHandler xHandler); + + + /** Add a new listener that is called on + ::com::sun::star::awt::FocusEvent. Use this focus + broadcaster to keep track of the object that currently has the input + focus. + @param xListener + If this is a valid reference it is inserted into the list of + listeners. It is the task of the caller to not register the + same listener twice (otherwise that listener will be called + twice.) + */ + void addFocusListener ( + [in] ::com::sun::star::awt::XFocusListener xListener); + + + /** Remove the specified listener from the list of listeners. + @param xListener + If the reference is empty then nothing will be changed. If the + listener has been registered twice (or more) then all references + will be removed. + */ + void removeFocusListener ( + [in] ::com::sun::star::awt::XFocusListener xListener); + + + /** Broadcasts the a focusGained on all registered focus listeners + @param source + The object that has gained the input focus. It should implement + com::sun::star::accessibility::XAccessible. + */ + void fireFocusGained ( + [in] ::com::sun::star::uno::XInterface source); + + + /** Broadcasts the a focusGained on all registered focus listeners + @param source + The object that has lost the input focus. It should implement + com::sun::star::accessibility::XAccessible. + */ + void fireFocusLost ( + [in] ::com::sun::star::uno::XInterface source); + +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/XFileDialog.idl b/offapi/com/sun/star/awt/XFileDialog.idl new file mode 100644 index 0000000000..be76d4b93d --- /dev/null +++ b/offapi/com/sun/star/awt/XFileDialog.idl @@ -0,0 +1,62 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module awt { + + +/** gives access to a file dialog. + + @deprecated + */ +published interface XFileDialog: com::sun::star::uno::XInterface +{ + + /** sets the path. + */ + void setPath( [in] string Path ); + + + /** returns the path. + */ + string getPath(); + + + /** sets the filters. + */ + void setFilters( [in] sequence+ 0: left + 1: center + 2: right ++ */ + void setAlignment( [in] short nAlign ); + + + /** returns the alignment of the text in the control. + */ + short getAlignment(); + + + /** registers an event handler for click action event. + */ + void addActionListener( [in] com::sun::star::awt::XActionListener l ); + + + /** unregisters an event handler for click action event. + */ + void removeActionListener( [in] com::sun::star::awt::XActionListener l ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/XFixedText.idl b/offapi/com/sun/star/awt/XFixedText.idl new file mode 100644 index 0000000000..1764402898 --- /dev/null +++ b/offapi/com/sun/star/awt/XFixedText.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 . + */ + + + + module com { module sun { module star { module awt { + + +/** gives access to the text and formatting of a fixed text field. + */ +published interface XFixedText: com::sun::star::uno::XInterface +{ + + /** sets the text of the control. + */ + void setText( [in] string Text ); + + + /** returns the text of the control. + */ + string getText(); + + + /** sets the alignment of the text in the control. + +
+ 0: left + 1: center + 2: right ++ */ + void setAlignment( [in] short nAlign ); + + + /** returns the alignment of the text in the control. + */ + short getAlignment(); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/XFocusListener.idl b/offapi/com/sun/star/awt/XFocusListener.idl new file mode 100644 index 0000000000..b951f83f28 --- /dev/null +++ b/offapi/com/sun/star/awt/XFocusListener.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 . + */ + + + + module com { module sun { module star { module awt { + + +/** makes it possible to receive keyboard focus events. + +
The window which has the keyboard focus is the window which gets + the keyboard events.
+ */ +published interface XFocusListener: com::sun::star::lang::XEventListener +{ + + /** is invoked when a window gains the keyboard focus. + + @see XActivateListener::windowActivated + */ + void focusGained( [in] com::sun::star::awt::FocusEvent e ); + + + /** is invoked when a window loses the keyboard focus. + + @see XActivateListener::windowDeactivated + */ + void focusLost( [in] com::sun::star::awt::FocusEvent e ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/XFont.idl b/offapi/com/sun/star/awt/XFont.idl new file mode 100644 index 0000000000..2c9dbe1a9e --- /dev/null +++ b/offapi/com/sun/star/awt/XFont.idl @@ -0,0 +1,97 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module awt { + + +/** describes a font on a specific device. + +All values are in pixels within this device.
+ */ +published interface XFont: com::sun::star::uno::XInterface +{ + + /** returns the description of the font. + +The unit of measurement is pixels for the device.
+ */
+ com::sun::star::awt::FontDescriptor getFontDescriptor();
+
+
+ /** returns additional information about the font.
+ */
+ com::sun::star::awt::SimpleFontMetric getFontMetric();
+
+
+ /** returns the width of the specified character.
+
+ @returns
+ the character width measured in pixels for the device.
+ */
+ short getCharWidth( [in] char c );
+
+
+ /** returns the widths of the specified characters.
+
+ @returns
+ a sequence of the widths of subsequent characters for this font.
+ */
+ sequence If the device does not support raster operations
+ then this call is ignored. A chord is a segment of a circle. You get two chords from a
+ circle if you intersect the circle with a straight line
+ joining two points on the circle. Note that some devices may not support this operation. An image consumer is a component which wants to display or just
+ receive an image from an image producer. The pixels of the image are delivered using one or more calls
+ to this method. Each call specifies the location and size of the
+ rectangle of source pixels that are contained in the array of pixels.
+ The specified color model object should be used to convert
+ the pixels into their corresponding color and alpha components. Pixel
+ (m,n) is stored in the pixels array at index (n * nScanSize
+ + m + nOffset). The pixels of the image are delivered using one or more calls
+ to this method. Each call specifies the location and size of the
+ rectangle of source pixels that are contained in the array of pixels.
+ The specified color model object should be used to convert
+ the pixels into their corresponding color and alpha components. Pixel
+ (m,n) is stored in the pixels array at index (n * nScanSize
+ + m + nOffset). The complete method is called when the image producer
+ has finished delivering all of the pixels that the source image
+ contains, or when a single frame of a multi-frame animation has
+ been completed, or when an error in loading or producing the
+ image has occurred. The image consumer should remove itself from the
+ list of consumers registered with the image producer
+ at this time, unless it is interested in successive frames. The image producer may, at its discretion, start delivering the
+ image data to the consumer using the XImageConsumer
+ interface immediately, or when the next available image reconstruction
+ is triggered by a call to the startProduction method. It is not considered an error to remove a consumer that is not
+ currently registered. The image producer should stop sending data
+ to this consumer as soon as it is feasible. The image data will then be delivered to this consumer and any other
+ consumer which may have already been registered with the producer.
+ This method differs from the addConsumer method in that a reproduction of
+ the image data should be triggered as soon as possible. The current settings are used as a template. You can use this to store data for an item which does not interfere with the displayed
+ text and image, but can be used by the client of the list box for an arbitrary purpose. Consumers of this event should discard their cached information about the current item list,
+ and completely refresh it from the XItemList's current state. Consume the event if the action performed by the implementation
+ is mutually exclusive with the default action of the broadcaster or,
+ when known, with that of other handlers. Consuming this event does not prevent the pending key-release
+ event from being broadcasted. Consume the event if the action performed by the implementation
+ is mutually exclusive with the default action of the broadcaster or,
+ when known, with that of other handlers. The item is appended if the position is greater than or equal to
+ getItemCount() or if it is negative. This parameter must not be null. A combination of com::sun::star::awt::MessageBoxButtons A com::sun::star::awt::MessageBoxType::INFOBOX
+ ignores this parameter, instead it uses a
+ com::sun::star::awt::MessageBoxButtons::BUTTONS_OK. Since mouse presses are usually also used to indicate requests for pop-up menus
+ (also known as context menus) on objects, you might receive two events
+ for a single mouse press: For example, if, on your operating system,
+ pressing the right mouse button indicates the request for a context menu,
+ then you will receive one call to mousePressed() indicating
+ the mouse click, and another one indicating the context menu request. For
+ the latter, the MouseEvent::PopupTrigger member of the
+ event will be set to `TRUE`. Mouse drag events will continue to be delivered to
+ the window where the first event originated until the mouse button is
+ released (regardless of whether the mouse position is within the
+ bounds of the window). Mouse drag events will continue to be delivered to
+ the window where the first event originated until the mouse button is
+ released (regardless of whether the mouse position is within the
+ bounds of the window). Returns `TRUE` only if the PopupMenu is being executed
+ as a result of invoking XPopupMenu::execute(); that is,
+ for a PopupMenu activated by a MenuBar item,
+ this methods returns `FALSE`. com::sun::star::awt::XPopupMenu::execute()
+ will then return 0. The KeyEvent is only used as a container to transport
+ the shortcut information, this methods only draws the text corresponding to
+ this keyboard shortcut. The client code is responsible for listening to
+ keyboard events (typically done via XUserInputInterception),
+ and dispatch the respective command. The KeyEvent is only used as a container to transport
+ the shortcut information, so that in this case
+ ::com::sun::star::lang::EventObject::Source is NULL. All properties are vetoable properties.
+ If you change the properties between a call to
+ com::sun::star::awt::XPrinter::startPage() and a call
+ to com::sun::star::awt::XPrinter::endPage(),
+ a com::sun::star::beans::PropertyVetoException is
+ thrown. This call may block the thread. So release all resources
+ (mutex, semaphore, etc.) before this call. If the method
+ com::sun::star::awt::XPrinter::end()
+ is called beforehand, then this call does nothing. If you call
+ com::sun::star::awt::XPrinter::terminate()
+ in or before the call to
+ com::sun::star::awt::XPrinter::start(),
+ com::sun::star::awt::XPrinter::terminate()
+ returns `FALSE`. This call must not block the thread. All properties are vetoable properties. If you change the properties
+ between com::sun::star::awt::XPrinter::startPage()
+ and com::sun::star::awt::XPrinter::endPage(), a
+ com::sun::star::beans::PropertyVetoException
+ is thrown. Indirectly a printer is selected. Get this data from the info printer and set the data to the
+ printer. You must call
+ com::sun::star::awt::XPrinter::start()
+ to put the job into the printer spooler. You can get all information from this printer,
+ but the printer cannot really print. If the minimum value is greater than the maximum value, the method
+ exchanges the values automatically. Note that there are constraints for those settings. For instance, if controls are drawn with the
+ native widget framework, i.e. in the desktop theme's look, then they won't necessarily respect all
+ their style settings, because those have a lesser priority than the native look. On the other hand, some settings are respected only when rendering the controls in the native
+ desktop/theme look. For instance, without native theming, buttons do not support a "roll over" mode,
+ i.e., they're painted the same way, no matter if they mouse hovers over them or not. But with native
+ theming, this changes, as here the general button look is drawn by the system's theming engine,
+ while the text is drawn by OpenOffice.org. In this case, the button respects the
+ You must check the machine ID and the process ID. You must check the machine ID and the process ID. You must check the machine ID and the process ID. Changes in the toggle state are broadcasted to XItemListener instances. This is similar to the abstract window toolkit (AWT) in Java. When retrieving this property, in case the window is positioned on multiple displays,
+ the number returned will be of the display containing the upper left pixel of the frame
+ area (that is of the client area on system decorated windows, or the frame area of
+ undecorated resp. owner decorated windows). The close operation can be overridden at this point. Container events are provided only for
+ notification purposes. The VCL will automatically handle
+ add and remove operations internally. This kind of object is called view-object. A device must be set before. If the output should be clipped, the caller has to set the
+ clipping region. The zoom factor only affects the content of the view, not the size. A window is a rectangular region on an output device with
+ its own position, size, and internal coordinate system.
+ A window is used for displaying data. In addition, the window
+ receives events from the user. A window is a rectangular region on an output device with
+ its own position, size, and internal coordinate system.
+ A window is used for displaying data. In addition, the window
+ receives events from the user. Component events are provided only for
+ notification purposes. Moves and resizes will be handled
+ internally by the window component, so that GUI layout works properly
+ regardless of whether a program registers such a listener or not. The The implementation will implicitly increase its column count if you add a row which has more values than
+ the current column count. Effectively, a If If This service must be created with a secondary grid data model, which all actual data requests are delegated to.
+ But before providing this data to the service's own clients, it is sorted, according to the sort order defined
+ via the The service implementation is able to compare the default scalar types, plus strings. For determining the data type of a column which the data should be sorted by, the first non-`VOID` data encountered
+ in this column is taken into account. Further read requests to this column will assume that all non-`VOID` data is of
+ the same type. Consequently, you cannot use this service with data sets containing heterogeneous data in a given column. All requests made via the XMutableGridDataModel are delegated to the Note that changing the data might result in the sort order being destroyed. If you want to ensure
+ that the data represented by the model is still sorted after your modifications, you should call
+ XSortableGridData::sortByColumn(), again. For string comparison, a default ::com::sun::star::i18n::Collator, based on the system's
+ locale, will be used. The horizontal structure of the grid is defined by the XGridColumnModel implemented in DefaultGridColumnModel
+ The XGridColumn implemented in GridColumn describes the properties and behavior of a single column. Use the XGridColumnModel::addColumn() to add a column to the column model.
+ All row data are stored in the XGridDataModel.
+ Use the DefaultGridDataModel to add XGridDataModel::addRow() or remove XGridDataModel::removeRow() rows.
+ The column and data model must be set at the UnoControlGridModel::ColumnModel and UnoControlGridModel::GridDataModel properties. If you are interested in knowing when the selection changes implement a
+ XGridSelectionListener and add the instance with the method
+ XGridRowSelection::addSelectionListener().
+ You than will be notified for any selection change. The default value is `FALSE` The width is specified in application font units - see com::sun::star::util::MeasureUnit. The value given here is ignored if #ShowRowHeader is `FALSE`. The default value is `TRUE` The height is specified in application font units - see com::sun::star::util::MeasureUnit. The value given here is ignored if #ShowColumnHeader is `FALSE`. If the property is `VOID`, the grid control shall automatically determine a height which conveniently allows,
+ according to the used font, to display one line of text. The height is specified in application font units - see com::sun::star::util::MeasureUnit. You can implement your own instance of XGridColumnModel or use
+ the DefaultGridColumnModel.
+
+ The column model is in the ownership of the grid model: When you set a new column model, or dispose
+ the grid model, then the (old) column model is disposed, too. The default for this property is an empty instance of the DefaultGridColumnModel. You can implement your own instance of XGridDataModel or use
+ the DefaultGridDataModel.
+
+ The data model is in the ownership of the grid model: When you set a new data model, or dispose
+ the grid model, then the (old) data model is disposed, too. The default for this property is an empty instance of the DefaultGridDataModel. The default value is `FALSE` The default value is `FALSE` The default value is com::sun::star::view::SelectionType::SINGLE If this property has a value of `VOID`, the grid control renderer will use some default color,
+ depending on the control's style settings. If this property has a value of `VOID`, the grid control renderer will use some default color,
+ depending on the control's style settings. If this property has a value of `VOID`, the grid control renderer will use some default color,
+ depending on the control's style settings. If this property has a value of `VOID`, the grid control renderer will use some default color,
+ depending on the control's style settings. If this property has a value of `VOID`, the grid control renderer will use some default color,
+ depending on the control's style settings. If this property has a value of `VOID`, the grid control renderer will use some default color,
+ depending on the control's style settings. If this property has a value of `VOID`, the grid control renderer will use some default color,
+ depending on the control's style settings. If this sequence is non-empty, the data rows will be rendered with alternating background colors: Assuming
+ the sequence has If this sequence is empty, all rows will use the same background color as the control as whole. If this property has a value of `VOID`, rows will be painted
+ in alternating background colors, every second row having a background color derived from the control's
+ selection color. If this property has a value of `VOID`, the grid control renderer will use some default color,
+ depending on the control's style settings. If this property has a value of `VOID`, the grid control renderer will use some default color,
+ depending on the control's style settings. This identifier will not be evaluated by the grid control, or its model. It is merely for clients
+ to identify particular columns. If this is `TRUE`, the user can interactively change the column's width. Also, the column is subject to
+ auto-resizing, if its #Flexibility attribute is greater Specify If a column has a flexibility greater than 0, it is set in relationship to the flexibility of all
+ other such columns, and the respective widths of the columns are changed in the same relationship. Note that a column's flexibility is ignored if its #Resizeable attribute is
+ `FALSE`. A column's flexibility cannot be negative, attempts to set a negative value will raise an exception. A grid control will usually display a column's help text as tooltip. If the column is not yet part of a column model, A grid control has a column model and a data model, both containing a possibly different number of columns.
+ The Using this, you can do runtime changes to the column model, i.e. insertion and removal of columns, without
+ necessarily needing to adjust the data model, too. If The newly created column is not yet inserted into the column container, you need to call addColumn()
+ after you initialized the column object. You should use the createColumn() member to create a new column. This gives
+ implementations of the As soon as the column has been inserted into the model, the model takes ownership of it. This means when the
+ column is removed, or when the column model is disposed, the grid column is disposed as well. The column object will be disposed upon removal. Existing columns will be removed before adding new columns. Listeners at the column model will
+ be notified one com::sun::star::container::XContainerListener::elementRemoved() event
+ for each removed column, and one com::sun::star::container::XContainerListener::elementInserted()
+ event for each insertion. If the grid control's does not contain any cells (which happens if the grid column model does not contain any
+ columns, or if grid data model does not contain any rows), then If the grid control's does not contain any cells (which happens if the grid column model does not contain any
+ columns, or if grid data model does not contain any rows), then Usually you must not implement this interface yourself, but you must notify it correctly if
+ you implement the XGridDataModel yourself At the moment, only string tool tips are supported. If `VOID` is returned here, the cell's content will be displayed as tip, but only if it does
+ not fit into the cell. A grid control will usually paint a row's title in the header column of the respective row. At the moment, only strings are supported as row headings. This method is provided for performance and convenience reasons, it delivers the same result
+ as subsequent calls to getCellData() would. The change in the data model will be notified to registered listeners via
+ XGridDataListener::dataChanged(). The GridDataEvent::FirstColumn and
+ GridDataEvent::LastColumn will denote the smallest respectively largest column
+ index from ColumnIndexes. Effectively this method is a shortcut for calling updateCellToolTip() multiple
+ times in a row, for all cells of a given row. If you set a new column sort order, the implementation will notify the registered XGridDataListeners
+ via a call to its XGridDataListener::dataChanged() method.
+ A specific node in a tree is identified by a XTreeNode.
+ A leaf node is a node without any children and that returns `FALSE` when calling XTreeNode::hasChildrenOnDemand().
+ An expanded node is a non-leaf node that will displays its children when all its ancestors are expanded.
+ A collapsed node is one which hides them.
+ A node is visible when all parent nodes are expanded and the node itself is in the display area.
+ The nodes are retrieved from a XTreeDataModel.
+ You can implement it yourself or use the MutableTreeDataModel
+ which uses XMutableTreeNode and XMutableTreeDataModel
+ for a simple and mutable data model.
+
+ The data model must be set at the TreeControlModel::TreeDataModel property. If you are interested in knowing when the selection changes implement a
+ com::sun::star::view::XSelectionChangeListener and add the instance with the method
+ ::com::sun::star::view::XSelectionSupplier::addSelectionChangeListener().
+ You than will be notified for any selection change.
+
+ If you are interested in detecting either double-click events or when a user clicks on a node,
+ regardless of whether or not it was selected, you can get the com::sun::star::awt::XWindow
+ and add yourself as a com::sun::star::awt::XMouseClickHandler. You can use the
+ method XTreeControl::getNodeForLocation() to retrieve the node that was under the
+ mouse at the time the event was fired.
+ If you want to add child nodes to your tree on demand you can do the following.
+ Position
is invalid.
+ */
+ void insertItem(
+ [in] long Position,
+ [in] string ItemText,
+ [in] string ItemImageURL
+ )
+ raises ( ::com::sun::star::lang::IndexOutOfBoundsException );
+
+ /** inserts an item which has only a text, but no image
+
+ @param Position
+ the position at which the item should be inserted. Must be greater or equal to 0, and
+ lesser than or equal to #ItemCount.
+
+ @param ItemText
+ the text of the item to be inserted.
+
+ @throws ::com::sun::star::lang::IndexOutOfBoundsException
+ if Position
is invalid.
+ */
+ void insertItemText(
+ [in] long Position,
+ [in] string ItemText
+ )
+ raises ( ::com::sun::star::lang::IndexOutOfBoundsException );
+
+ /** inserts an item which has only an image, but no text
+
+ @param Position
+ the position at which the item should be inserted. Must be greater or equal to 0, and
+ lesser than or equal to #ItemCount.
+
+ @param ItemImageURL
+ the URL of the image to display for the item
+
+ @throws ::com::sun::star::lang::IndexOutOfBoundsException
+ if Position
is invalid.
+ */
+ void insertItemImage(
+ [in] long Position,
+ [in] string ItemImageURL
+ )
+ raises ( ::com::sun::star::lang::IndexOutOfBoundsException );
+
+ /** removes an item from the list
+
+ @param Position
+ the position of the item which should be removed. Must be greater or equal to 0, and
+ lesser than #ItemCount.
+
+ @throws ::com::sun::star::lang::IndexOutOfBoundsException
+ if Position
is invalid.
+ */
+ void removeItem(
+ [in] long Position
+ )
+ raises ( ::com::sun::star::lang::IndexOutOfBoundsException );
+
+ /** removes all items from the list
+ */
+ void removeAllItems();
+
+ /** sets a new text for an existing item
+
+ @param Position
+ the position of the item whose text is to be changed. Must be greater or equal to 0, and
+ lesser than #ItemCount.
+
+ @param ItemText
+ the new text of the item
+
+ @throws ::com::sun::star::lang::IndexOutOfBoundsException
+ if Position
is invalid.
+ */
+ void setItemText(
+ [in] long Position,
+ [in] string ItemText
+ )
+ raises ( ::com::sun::star::lang::IndexOutOfBoundsException );
+
+ /** sets a new image for an existing item
+
+ @param Position
+ the position of the item whose image is to be changed. Must be greater or equal to 0, and
+ lesser than #ItemCount.
+
+ @param ItemImageURL
+ the new URL of the image to display for the item
+
+ @throws ::com::sun::star::lang::IndexOutOfBoundsException
+ if Position
is invalid.
+ */
+ void setItemImage(
+ [in] long Position,
+ [in] string ItemImageURL
+ )
+ raises ( ::com::sun::star::lang::IndexOutOfBoundsException );
+
+ /** sets both a new position and text for an existing item
+
+ @param Position
+ the position of the item whose text and image is to be changed. Must be greater or equal to 0, and
+ lesser than #ItemCount.
+
+ @param ItemText
+ the new text of the item
+
+ @param ItemImageURL
+ the new URL of the image to display for the item
+
+ @throws ::com::sun::star::lang::IndexOutOfBoundsException
+ if Position
is invalid.
+ */
+ void setItemTextAndImage(
+ [in] long Position,
+ [in] string ItemText,
+ [in] string ItemImageURL
+ )
+ raises ( ::com::sun::star::lang::IndexOutOfBoundsException );
+
+ /** associates an implementation dependent value with the given list item.
+
+ Position
is invalid.
+
+ @see getItemData
+ */
+ void setItemData(
+ [in] long Position,
+ [in] any ItemData
+ )
+ raises ( ::com::sun::star::lang::IndexOutOfBoundsException );
+
+ /** retrieves the text of an existing item
+
+ @param Position
+ the position of the item whose text should be retrieved. Must be greater or equal to 0, and
+ lesser than #ItemCount.
+
+ @throws ::com::sun::star::lang::IndexOutOfBoundsException
+ if Position
is invalid.
+ */
+ string getItemText(
+ [in] long Position
+ )
+ raises ( ::com::sun::star::lang::IndexOutOfBoundsException );
+
+ /** retrieves the URL of the image of an existing item
+
+ @param Position
+ the position of the item whose image should be retrieved. Must be greater or equal to 0, and
+ lesser than #ItemCount.
+
+ @throws ::com::sun::star::lang::IndexOutOfBoundsException
+ if Position
is invalid.
+ */
+ string getItemImage(
+ [in] long Position
+ )
+ raises ( ::com::sun::star::lang::IndexOutOfBoundsException );
+
+ /** retrieves both the text and the image URL of an existing item
+
+ @param Position
+ the position of the item whose text and image should be retrieved. Must be greater or equal to 0, and
+ lesser than #ItemCount.
+
+ @throws ::com::sun::star::lang::IndexOutOfBoundsException
+ if Position
is invalid.
+ */
+ ::com::sun::star::beans::Pair< string, string >
+ getItemTextAndImage(
+ [in] long Position
+ )
+ raises ( ::com::sun::star::lang::IndexOutOfBoundsException );
+
+ /** retrieves the implementation dependent value associated with the given list item.
+ @param Position
+ the position of the item whose data value should be retrieved. Must be greater or equal to 0, and
+ lesser than #ItemCount.
+
+ @throws ::com::sun::star::lang::IndexOutOfBoundsException
+ if Position
is invalid.
+
+ @see setItemData
+ */
+ any getItemData(
+ [in] long Position
+ )
+ raises ( ::com::sun::star::lang::IndexOutOfBoundsException );
+
+ /** retrieves the texts and images of all items in the list
+ */
+ sequence< ::com::sun::star::beans::Pair< string, string > >
+ getAllItems();
+
+ /** registers a listener which is notified about changes in the item list.
+ */
+ void addItemListListener( [in] XItemListListener Listener );
+
+ /** revokes a listener which is notified about changes in the item list.
+ */
+ void removeItemListListener( [in] XItemListListener Listener );
+};
+
+
+}; }; }; };
+
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/awt/XItemListListener.idl b/offapi/com/sun/star/awt/XItemListListener.idl
new file mode 100644
index 0000000000..9f41c22ba9
--- /dev/null
+++ b/offapi/com/sun/star/awt/XItemListListener.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 .
+ */
+
+
+module com { module sun { module star { module awt {
+
+
+/** describes a listener for changes in an item list
+ @see XListItems
+ */
+interface XItemListListener : ::com::sun::star::lang::XEventListener
+{
+ /** is called when an item is inserted into the list
+ */
+ void listItemInserted(
+ [in] ItemListEvent Event
+ );
+
+ /** is called when an item is removed from the list
+ */
+ void listItemRemoved(
+ [in] ItemListEvent Event
+ );
+
+ /** is called when an item in the list is modified, i.e. its text or image changed
+ */
+ void listItemModified(
+ [in] ItemListEvent Event
+ );
+ /** is called when the list has been completely cleared, i.e. after an invocation of
+ XItemList::removeAllItems()
+ */
+ void allItemsRemoved(
+ [in] ::com::sun::star::lang::EventObject Event
+ );
+
+ /** is called when the changes to the item list which occurred are too complex to be notified
+ in single events.
+
+
+ *
+ */
+published interface XMouseListener: com::sun::star::lang::XEventListener
+{
+
+ /** is invoked when a mouse button has been pressed on a window.
+
+ 0
, if cancelled.
+
+ @param Parent
+ the parent window.
+
+ @param Position
+ a Rectangle representing the coordinates system
+ where the popup menu should be executed.
+
+ @param Direction
+ the direction in which a popup menu will grow, as specified
+ by one of the PopupMenuDirection constants.
+
+ @return
+ returns the selected item or 0
, if cancelled.
+ */
+ short execute( [in] XWindowPeer Parent,
+ [in] Rectangle Position,
+ [in] short Direction );
+
+ /** queries if the PopupMenu is being.
+
+
+
+
+ @attention Not all properties must be supported by all implementations of this interface.
+ Of course some important ones should be handled by every implementation ...
+ as e.g. "Title".
+
+ @param ID
+ the ID of the tab, which should be changed.
+
+ @throws ::com::sun::star::lang::IndexOutOfBoundsException
+ if the specified ID isn't used inside this tab controller.
+ */
+ void setTabProps( [in] long ID ,
+ [in] sequence< com::sun::star::beans::NamedValue > Properties )
+ raises( com::sun::star::lang::IndexOutOfBoundsException );
+
+ /** retrieve the set of properties for the specified tab.
+
+ @param ID
+ the ID of the tab.
+
+ @throws ::com::sun::star::lang::IndexOutOfBoundsException
+ if the specified ID isn't used inside this tab controller.
+ */
+ sequence< com::sun::star::beans::NamedValue > getTabProps( [in] long ID )
+ raises( com::sun::star::lang::IndexOutOfBoundsException );
+
+ /** activate the specified tab.
+
+ The new tab will be activated and all listener will get an event describing this.
+ Of course there will be an event too, which notifies listener about the deactivation
+ of the last active tab.
+
+ @param ID
+ the ID of the new active tab.
+
+ @throws ::com::sun::star::lang::IndexOutOfBoundsException
+ if the specified ID isn't used inside this tab controller.
+ */
+ void activateTab( [in] long ID )
+ raises( com::sun::star::lang::IndexOutOfBoundsException );
+
+ /** return the unique ID of the current active tab.
+
+ @return [long]
+ the ID of the active tab.
+ */
+ long getActiveTabID();
+
+ /** register listener for inserting/removing tabs and changing their properties.
+
+ @param Listener
+ the listener to register.
+ */
+ void addTabListener( [in] XTabListener Listener );
+
+ /** unregister listener for inserting/removing tabs and changing their properties.
+
+ @param Listener
+ the listener to unregister.
+ */
+ void removeTabListener( [in] XTabListener Listener );
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/awt/XSpinField.idl b/offapi/com/sun/star/awt/XSpinField.idl
new file mode 100644
index 0000000000..3aabff0d4c
--- /dev/null
+++ b/offapi/com/sun/star/awt/XSpinField.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 .
+ */
+
+
+
+ module com { module sun { module star { module awt {
+
+
+/** gives access to the value of a spin field and makes it possible to
+ register for spin events.
+ */
+published interface XSpinField: com::sun::star::uno::XInterface
+{
+
+ /** registers a listener for spin events.
+ */
+ void addSpinListener( [in] com::sun::star::awt::XSpinListener l );
+
+
+ /** unregisters a listener for spin events.
+ */
+ void removeSpinListener( [in] com::sun::star::awt::XSpinListener l );
+
+
+ /** increases the value by one step.
+ */
+ void up();
+
+
+ /** decreases the value by one step.
+ */
+ void down();
+
+
+ /** sets the value to the previously set lower value.
+ */
+ void first();
+
+
+ /** sets the value to the previously set upper value.
+ */
+ void last();
+
+
+ /** enables/disables automatic repeat mode.
+ */
+ void enableRepeat( [in] boolean bRepeat );
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/awt/XSpinListener.idl b/offapi/com/sun/star/awt/XSpinListener.idl
new file mode 100644
index 0000000000..78bacd18c9
--- /dev/null
+++ b/offapi/com/sun/star/awt/XSpinListener.idl
@@ -0,0 +1,54 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module awt {
+
+
+/** makes it possible to receive spin events.
+ */
+published interface XSpinListener: com::sun::star::lang::XEventListener
+{
+
+ /** is invoked when the spin field is spun up.
+ */
+ void up( [in] com::sun::star::awt::SpinEvent rEvent );
+
+
+ /** is invoked when the spin field is spun down.
+ */
+ void down( [in] com::sun::star::awt::SpinEvent rEvent );
+
+
+ /** is invoked when the spin field is set to the lower value.
+ */
+ void first( [in] com::sun::star::awt::SpinEvent rEvent );
+
+
+ /** is invoked when the spin field is set to the upper value.
+ */
+ void last( [in] com::sun::star::awt::SpinEvent rEvent );
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/awt/XSpinValue.idl b/offapi/com/sun/star/awt/XSpinValue.idl
new file mode 100644
index 0000000000..5c193a8f51
--- /dev/null
+++ b/offapi/com/sun/star/awt/XSpinValue.idl
@@ -0,0 +1,110 @@
+/* -*- 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 .
+ */
+
+
+ module com { module sun { module star { module awt {
+
+
+/** gives access to the value and settings of a control which is associated with
+ a spinnable value.
+ */
+interface XSpinValue : com::sun::star::uno::XInterface
+{
+
+ /** registers an adjustment event listener.
+ */
+ void addAdjustmentListener( [in] com::sun::star::awt::XAdjustmentListener listener );
+
+
+ /** unregisters an adjustment event listener.
+ */
+ void removeAdjustmentListener( [in] com::sun::star::awt::XAdjustmentListener listener );
+
+
+ /** sets the current value of the control
+ */
+ void setValue( [in] long value );
+
+
+ /** sets the value and value range of the control
+
+ @see setValue
+ @see setMinimum
+ @see setMaximum
+ */
+ void setValues( [in] long minValue, [in] long maxValue, [in] long currentValue );
+
+
+ /** returns the current value of the control.
+ */
+ long getValue();
+
+
+ /** sets the minimum value which can be set on the control
+ */
+ void setMinimum( [in] long minValue );
+
+
+ /** sets the maximum value which can be set on the control
+ */
+ void setMaximum( [in] long maxValue );
+
+
+ /** returns the currently set minimum value of the control
+ */
+ long getMinimum();
+
+
+ /** returns the currently set maximum value of the control
+ */
+ long getMaximum();
+
+
+ /** sets the value by which the current value of the control
+ should be incremented or decremented upon spinning.
+ */
+ void setSpinIncrement( [in] long spinIncrement );
+
+
+ /** returns the value by which the current value of the control
+ should be incremented or decremented upon spinning.
+ */
+ long getSpinIncrement();
+
+
+ /** controls the orientation of the control
+ @param orientation
+ one of the ScrollBarOrientation values specifying the orientation
+ @throws com::sun::star::lang::NoSupportException
+ in case the given orientation is not supported
+ */
+ void setOrientation( [in] long orientation )
+ raises( com::sun::star::lang::NoSupportException );
+
+
+ /** returns the current orientation of the control
+ */
+ long getOrientation();
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/awt/XStyleChangeListener.idl b/offapi/com/sun/star/awt/XStyleChangeListener.idl
new file mode 100644
index 0000000000..b73a6297a2
--- /dev/null
+++ b/offapi/com/sun/star/awt/XStyleChangeListener.idl
@@ -0,0 +1,38 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module awt {
+
+
+/** to be implemented by components which wish to be notified about changes in the style of a component
+
+ @see XStyleSettings
+ */
+interface XStyleChangeListener : ::com::sun::star::lang::XEventListener
+{
+ /// called when the style settings of the observed component changed
+ void styleSettingsChanged( [in] com::sun::star::lang::EventObject Event );
+};
+
+
+}; }; }; };
+
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/awt/XStyleSettings.idl b/offapi/com/sun/star/awt/XStyleSettings.idl
new file mode 100644
index 0000000000..8687156059
--- /dev/null
+++ b/offapi/com/sun/star/awt/XStyleSettings.idl
@@ -0,0 +1,215 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module awt {
+
+interface XStyleChangeListener;
+
+
+/** provides access to certain style settings within an OpenOffice.org component, such as a window, or
+ within OpenOffice.org as a whole.
+
+
+
+ Property
+ Type
+ Description
+
+
+ Title
+ string
+ the title of the tab, which is shown at the UI.
+
+
+ Position
+ int
+ describe the order of this tab in relation to all other tabs inside this control.
+ ButtonRolloverTextColor
when painting its text.
+ WIN32: HWND.
+ WIN16: HWND.
+
+ JAVA: global reference to a java.awt.Component
+ object provided from the JNI-API.
+
+ MAC: (NSView*) pointer.
+ WIN32: Returns an HMENU if possible, otherwise 0.
+ WIN16: Returns an HMENU if possible, otherwise 0.
+
+ @param ProcessId
+ the process identifier. Use the sal_getGlobalProcessId
+ function of the RTL library.
+
+ @param SystemType
+ one constant out of the constant group
+ com::sun::star::lang::SystemDependent.
+ */
+ any getMenuHandle( [in] sequence< byte > ProcessId, [in] short SystemType );
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/awt/XSystemDependentWindowPeer.idl b/offapi/com/sun/star/awt/XSystemDependentWindowPeer.idl
new file mode 100644
index 0000000000..525964b0de
--- /dev/null
+++ b/offapi/com/sun/star/awt/XSystemDependentWindowPeer.idl
@@ -0,0 +1,67 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module awt {
+
+
+/** provides access to the system dependent implementation of the window.
+
+ @see com::sun::star::lang::SystemDependent
+ @see WindowAttribute
+ @see WindowAttribute::SYSTEMDEPENDENT
+ */
+published interface XSystemDependentWindowPeer: com::sun::star::uno::XInterface
+{
+
+ /** returns a system-specific window handle.
+
+ @returns
+ a system-specific handle to a window
+ or 0 if the window is not in the same process.
+
+
+ WIN32: Returns an HWND if possible, otherwise 0.
+ WIN16: Returns an HWND if possible, otherwise 0.
+
+ JAVA: Returns a global reference to a java.awt.Component
+ object provided from the JNI-API.
+
+ MAC: Returns a ptr to the NSView implementing the window.
+
+ XWINDOW: Returns a structure SystemDependentXWindow
+ or void if it is not reachable.DefaultGridDataModel
implementation is a dumb container of tabular data. You can add
+ and remove rows, modify cell values, and the like.GridDataEvent
denotes a continuous two-dimensional cell range
+ within a grid's data model, which is affected by a certain change.FirstColumn
is -1, the listener should assume that all rows of a grid's data model
+ are affected.FirstRow
is -1, the listener should assume that all rows of a grid's data model
+ are affected.XSortableGridData
interface.XMutableGridDataModel
+ instance passed in the service constructor.SortableGridDataModel
+
+ DelegatorModel
is `NULL`
+ */
+ create(
+ [in] XMutableGridDataModel DelegatorModel
+ )
+ raises ( ::com::sun::star::lang::IllegalArgumentException );
+
+ /** creates a new instance of the ScortableDefaultGridDataModel, passing a collator to be used for string comparison.
+
+ @param DelegatorModel
+ is the data model to which read requests are delegated
+ @param Collator
+ is the collator to be used for string comparison
+ @throws ::com::sun::star::lang::IllegalArgumentException
+ if the given DelegatorModel
is `NULL`
+ */
+ createWithCollator(
+ [in] XMutableGridDataModel DelegatorModel,
+ [in] ::com::sun::star::i18n::XCollator Collator
+ )
+ raises ( ::com::sun::star::lang::IllegalArgumentException );
+};
+
+
+}; }; }; }; };
+
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/awt/grid/UnoControlGrid.idl b/offapi/com/sun/star/awt/grid/UnoControlGrid.idl
new file mode 100644
index 0000000000..58eb698a78
--- /dev/null
+++ b/offapi/com/sun/star/awt/grid/UnoControlGrid.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 .
+ */
+
+
+ module com { module sun { module star { module awt { module grid {
+
+
+
+/** A control that displays a set of tabular data.
+
+ The Column Model
+
+ The Data Model
+ Selection
+ n
elements, each row will use the background color as specified by its number's
+ remainder modulo n
.0
.0
here if you do not want the column to be resized automatically.Index
is -1.DataColumnIndex
attribute defines the index of the column within the data model, which should
+ be used to retrieve actual data.DataColumnIndex
is negative, the it will be ignored, then the column's index within its
+ column model, as determined by the #Index attribute, will be used.XGridColumnModel
interface the possibility to provide own column
+ implementations which extend the basic GridColumn type.ColumnIndex
does not denote a valid column index.
+ */
+ void removeColumn( [in] long ColumnIndex )
+ raises ( ::com::sun::star::lang::IndexOutOfBoundsException );
+
+ /** Returns all columns of the model.
+ @returns
+ all columns associated with the model in a sequence of XGridColumn.
+ */
+ sequence-1
is returned.-1
is returned.ColumnIndex
or RowIndex
are out of range.
+ @throws ::com::sun::star::util::VetoException
+ if moving the cursor to another cell is vetoed.
+ */
+ void goToCell(
+ [in] long ColumnIndex,
+ [in] long RowIndex
+ )
+ raises ( ::com::sun::star::lang::IndexOutOfBoundsException
+ , ::com::sun::star::util::VetoException
+ );
+};
+
+
+}; }; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/awt/grid/XGridDataListener.idl b/offapi/com/sun/star/awt/grid/XGridDataListener.idl
new file mode 100644
index 0000000000..5502a6e4da
--- /dev/null
+++ b/offapi/com/sun/star/awt/grid/XGridDataListener.idl
@@ -0,0 +1,55 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module awt { module grid {
+
+
+/** An instance of this interface is used by the XGridDataModel to
+ get notifications about data model changes.
+
+ RowIndex
does not denote a valid row index
+ */
+ void selectRow( [in] long RowIndex )
+ raises ( ::com::sun::star::lang::IndexOutOfBoundsException );
+
+ /** Deselects all selected rows.
+ */
+ void deselectAllRows();
+
+ /** removes the selection for a given row
+
+ @param RowIndex
+ denotes the index of the row to deselect
+ */
+ void deselectRow( [in] long RowIndex )
+ raises ( ::com::sun::star::lang::IndexOutOfBoundsException );
+
+ /** Returns the indices of all selected rows.
+ @returns
+ a sequence of indices.
+ */
+ sequence< long > getSelectedRows();
+
+ /** Returns whether rows are selected.
+ @returns
+ `TRUE` if and only if at least one row is selected.
+ */
+ boolean hasSelectedRows();
+
+ /** Returns whether a specific row is selected.
+
+ @param RowIndex
+ the index of a row. If the value does not denote a valid row index, i.e. is smaller than 0
+ or greater than the number of rows, this is silently ignored, and `FALSE` is returned.
+
+ @returns
+ `TRUE` if and only if there is a row with the given index, and it is selected currently.
+ */
+ boolean isRowSelected( [in] long RowIndex );
+
+ /** Adds a listener for the GridSelectionEvent posted after the grid changes.
+ @param listener
+ the listener to add.
+ */
+ void addSelectionListener( [in] XGridSelectionListener listener);
+
+ /** Removes a listener previously added with addSelectionListener().
+ @param listener
+ the listener to remove.
+ */
+ void removeSelectionListener( [in] XGridSelectionListener listener);
+};
+
+
+}; }; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/awt/grid/XGridSelectionListener.idl b/offapi/com/sun/star/awt/grid/XGridSelectionListener.idl
new file mode 100644
index 0000000000..b115d5641b
--- /dev/null
+++ b/offapi/com/sun/star/awt/grid/XGridSelectionListener.idl
@@ -0,0 +1,38 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module awt { module grid {
+
+
+/** An instance of this interface is used by the XGridRowSelection to
+ get notifications about selection changes.
+ */
+published interface XGridSelectionListener: com::sun::star::lang::XEventListener
+{
+ /** Invoked after a selection was changed.
+ */
+ void selectionChanged( [in] GridSelectionEvent gridSelectionEvent);
+
+};
+
+
+}; }; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/awt/grid/XMutableGridDataModel.idl b/offapi/com/sun/star/awt/grid/XMutableGridDataModel.idl
new file mode 100644
index 0000000000..237206291d
--- /dev/null
+++ b/offapi/com/sun/star/awt/grid/XMutableGridDataModel.idl
@@ -0,0 +1,175 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module awt { module grid {
+
+
+/** allows to modify the data represented by a XGridDataModel
+ */
+published interface XMutableGridDataModel : XGridDataModel
+{
+ /** appends a row to the model.
+
+ @param Heading
+ denotes the heading of the row.
+ @param Data
+ specifies the content of the row.
+ */
+ void addRow( [in] any Heading, [in] sequence< any > Data );
+
+ /** appends multiple rows of data to the model.
+ @param Headings
+ denotes the headings of the to-be-added rows.
+ @param Data
+ specifies the data of the rows to be added.
+ @throws ::com::sun::star::lang::IllegalArgumentException
+ if Titles
and Data
are of different length.
+ */
+ void addRows( [in] sequence< any > Headings, [in] sequence< sequence< any > > Data )
+ raises ( ::com::sun::star::lang::IllegalArgumentException );
+
+ /** inserts a row into the set of data rows
+
+ @param Index
+ denotes the position at which the row is to be inserted
+ @param Heading
+ denotes the heading of the row.
+ @param Data
+ specifies the content of the row.
+ @throws ::com::sun::star::lang::IndexOutOfBoundsException
+ if Index
is smaller than 0
or greater than the number of
+ rows in the model.
+ */
+ void insertRow( [in] long Index, [in] any Heading, [in] sequence< any > Data )
+ raises ( ::com::sun::star::lang::IndexOutOfBoundsException );
+
+ /** inserts multiple rows of data into the model.
+ @param Index
+ denotes the position at which the rows are to be inserted
+ @param Headings
+ denotes the headings of the to-be-added rows.
+ @param Data
+ specifies the data of the rows to be added.
+ @throws ::com::sun::star::lang::IllegalArgumentException
+ if Titles
and Data
are of different length.
+ @throws ::com::sun::star::lang::IndexOutOfBoundsException
+ if Index
is smaller than 0
or greater than the number of
+ rows in the model.
+ */
+ void insertRows( [in] long Index, [in] sequence< any > Headings, [in] sequence< sequence< any > > Data )
+ raises ( ::com::sun::star::lang::IndexOutOfBoundsException
+ , ::com::sun::star::lang::IllegalArgumentException );
+
+ /** removes a row of data from the model
+
+ @param RowIndex
+ the index of the row that should be removed.
+ @throws ::com::sun::star::lang::IndexOutOfBoundsException
+ if the given index is invalid
+ */
+ void removeRow( [in] long RowIndex )
+ raises ( ::com::sun::star::lang::IndexOutOfBoundsException );
+
+ /** Removes all rows from the model.
+ */
+ void removeAllRows();
+
+ /** updates the content of the given cell
+ @param ColumnIndex
+ the column index of the to-be-updated cell
+ @param RowIndex
+ the row index of the to-be-updated cell
+ @param Value
+ the new value of the cell.
+ @throws ::com::sun::star::lang::IndexOutOfBoundsException
+ if the row or column index is invalid
+ */
+ void updateCellData( [in] long ColumnIndex, [in] long RowIndex, [in] any Value )
+ raises ( ::com::sun::star::lang::IndexOutOfBoundsException );
+
+ /** updates the content of a given row.
+
+ ColumnIndexes
and Values
sequences are not equal.
+ */
+ void updateRowData( [in] sequence< long > ColumnIndexes, [in] long RowIndex, [in] sequence< any > Values )
+ raises ( ::com::sun::star::lang::IndexOutOfBoundsException
+ , ::com::sun::star::lang::IllegalArgumentException);
+
+ /** sets a new title for a given row.
+
+ @throws ::com::sun::star::lang::IndexOutOfBoundsException
+ if the given index does not denote a valid row.
+ */
+ void
+ updateRowHeading( [in] long RowIndex, [in] any Heading )
+ raises ( ::com::sun::star::lang::IndexOutOfBoundsException );
+
+ /** updates the tooltip to be displayed for a given cell
+
+ @see XGridDataModel::getCellToolTip
+ */
+ void updateCellToolTip( [in] long ColumnIndex, [in] long RowIndex, [in] any Value )
+ raises ( ::com::sun::star::lang::IndexOutOfBoundsException );
+
+ /** updates the tooltip for all cells of a given row
+
+ ColumnIndex
does not denote a valid column.
+ */
+ void sortByColumn( [in] long ColumnIndex, [in] boolean SortAscending )
+ raises ( ::com::sun::star::lang::IndexOutOfBoundsException );
+
+ /** removes any possibly present sorting of the grid data
+ */
+ void removeColumnSort();
+
+ /** returns the current sort order.
+
+ @return
+ a structure describing the current sort order.
+ com::sun::star::beans::Pair::First
+ denotes the column by which the data is sorted, or -1 if
+ the data is currently unsorted.
+ com::sun::star::beans::Pair::Second
+ is `TRUE` if the data is sorted ascending, `FALSE` otherwise.
+ */
+ ::com::sun::star::beans::Pair< long, boolean >
+ getCurrentSortOrder();
+};
+
+
+}; }; }; }; };
+
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/awt/grid/XSortableMutableGridDataModel.idl b/offapi/com/sun/star/awt/grid/XSortableMutableGridDataModel.idl
new file mode 100644
index 0000000000..aed6af9787
--- /dev/null
+++ b/offapi/com/sun/star/awt/grid/XSortableMutableGridDataModel.idl
@@ -0,0 +1,44 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module awt { module grid {
+
+
+/** describes a grid control data model whose data can be modified and sorted.
+ */
+interface XSortableMutableGridDataModel
+{
+ /** provides access to the basic functionality of a grid data model, plus functions to modify it.
+ */
+ interface XMutableGridDataModel;
+
+ /** provides means to sort the data represented by the model.
+
+ The Data Model
+ Selection
+ Adding child nodes on demand
+
+
+ Now you get called when the node will become expanded or collapsed.
+ So on XTreeExpansionListener::treeExpanding() you can
+ check the TreeExpansionEvent if the parent node with children on demand is going to
+ be expanded and in that case add the missing child nodes. You can also veto the expansion or
+ collapsing of a parent node by using the ExpandVetoException.
+
The default value is com::sun::star::view::SelectionType::NONE
+ */ + [property] ::com::sun::star::view::SelectionType SelectionType; + + /** Specifies the XTreeDataModel that is providing the hierarchical data. + +You can implement your own instance of XTreeDataModel or use + the MutableTreeDataModel. + */ + [property] XTreeDataModel DataModel; + + /** Specifies if the root node of the tree is displayed. +
If RootDisplayed is set to `FALSE`, the root node of a model is no longer + a valid node for the XTreeControl and can't be used with any method of + XTreeControl. +
The default value is `TRUE`
+ */ + [property] boolean RootDisplayed; + + /** Specifies whether the node handles should be displayed. +The handles are doted lines that visualize the tree like hierarchy
+
The default value is `TRUE`
+ */ + [property] boolean ShowsHandles; + + /** Specifies whether the node handles should also be displayed at root level. +The default value is `TRUE`
+ */ + [property] boolean ShowsRootHandles; + + /** Specifies the height of each row, in pixels. +If the specified value is less than or equal to zero, the row height is the maximum height + of all rows.
+The default value is 0
+ */ + [property] long RowHeight; + + /** Specifies whether the nodes of the tree are editable. +The default value is `FALSE`
+ + @see XTreeControl::startEditingAtNode() + @see XTreeEditListener + */ + [property] boolean Editable; + + /** Specifies what happens when editing is interrupted by selecting another node in the tree, + a change in the tree's data, or by some other means. +Setting this property to `TRUE` causes the changes to be automatically saved when editing + is interrupted. `FALSE` means that editing is canceled and changes are lost +
The default value is `FALSE`
+ */ + [property] boolean InvokesStopNodeEditing; +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/tree/TreeDataModelEvent.idl b/offapi/com/sun/star/awt/tree/TreeDataModelEvent.idl new file mode 100644 index 0000000000..32669ad5f3 --- /dev/null +++ b/offapi/com/sun/star/awt/tree/TreeDataModelEvent.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 . + */ + + +module com { module sun { module star { module awt { module tree { + + +/** An event used by a XTreeDataModel to notify changes in the data + model to the XTreeControl. + You usually need to fill this event only if you implement the XTreeDataModel + yourself. + + @see XTreeDataModel + @see XTreeControl + @see XTreeDataModelListener + */ +struct TreeDataModelEvent : ::com::sun::star::lang::EventObject +{ + /** contains the changed, added or removed nodes. +All nodes must have #ParentNode as parent. */ + sequence< XTreeNode > Nodes; + + /** holds the parent node for changed, added or removed nodes. +
If this is null, #Nodes must contain only the root node */ + XTreeNode ParentNode; +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/tree/TreeExpansionEvent.idl b/offapi/com/sun/star/awt/tree/TreeExpansionEvent.idl new file mode 100644 index 0000000000..d16657011f --- /dev/null +++ b/offapi/com/sun/star/awt/tree/TreeExpansionEvent.idl @@ -0,0 +1,38 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module awt { module tree { + + +/** This event tells you what node is currently expanding or collapsing. + + @see XTreeExpansionListener + @see XTreeControl + */ +struct TreeExpansionEvent : ::com::sun::star::lang::EventObject +{ + /* The node that has been expanded/collapsed.*/ + com::sun::star::awt::tree::XTreeNode Node; +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/tree/XMutableTreeDataModel.idl b/offapi/com/sun/star/awt/tree/XMutableTreeDataModel.idl new file mode 100644 index 0000000000..bd9a0a321d --- /dev/null +++ b/offapi/com/sun/star/awt/tree/XMutableTreeDataModel.idl @@ -0,0 +1,64 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module awt { module tree { + + +/** This is the editable version of the XTreeDataModel. + +
Note that only XTreeNode created from the same instance with createNode() + are valid nodes for this instance.
+ */ +interface XMutableTreeDataModel : XTreeDataModel +{ + /** creates a new tree node with the given value and given settings. + + @param DisplayValue + should be convertible to a string and is used by the XTreeControl + as a textual representation of the created node. + + @param ChildrenOnDemand + if `TRUE` is used as a parameter, the created node will be treated as a non-leaf + node by the XTreeControl, even when it has no child nodes. + + @returns + a new XMutableTreeNode that can be used for this model. + + @see XTreeNode::getDisplayValue() + @see XTreeNode::hasChildrenOnDemand() + */ + XMutableTreeNode createNode( [in] any DisplayValue, [in] boolean ChildrenOnDemand ); + + /** changes the root node of this model to RootNode. + + @param RootNode + the XMutableTreeNode that becomes the new root node of this model. + + @throws ::com::sun::star::lang::IllegalArgumentException + if RootNode is not a valid node of this XTreeDataModel. + */ + void setRoot( [in] XMutableTreeNode RootNode ) + raises( ::com::sun::star::lang::IllegalArgumentException ); +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/tree/XMutableTreeNode.idl b/offapi/com/sun/star/awt/tree/XMutableTreeNode.idl new file mode 100644 index 0000000000..30be32b26e --- /dev/null +++ b/offapi/com/sun/star/awt/tree/XMutableTreeNode.idl @@ -0,0 +1,100 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module awt { module tree { + + +/** Represents a mutable tree node as used by the MutableTreeDataModel + */ +interface XMutableTreeNode : XTreeNode +{ + /** appends ChildNode to this instance. + + @throws ::com::sun::star::lang::IllegalArgumentException + if ChildNode is not a valid node of the corresponding XTreeDataModel. + */ + void appendChild( [in] XMutableTreeNode ChildNode ) + raises( com::sun::star::lang::IllegalArgumentException ); + + /** inserts ChildNode to this instance at the given index. + + @param Index + the index where the node will be inserted to this instance. + + @param ChildNode + the node to insert. + + @throws ::com::sun::star::lang::IllegalArgumentException + if ChildNode is not a valid node of the corresponding XTreeDataModel. + + @throws ::com::sun::star::lang::IndexOutOfBoundsException + if Index is less than 0 or greater than XTreeNode::getChildCount(). + */ + void insertChildByIndex( [in] long Index, [in] XMutableTreeNode ChildNode ) + raises( com::sun::star::lang::IllegalArgumentException, + com::sun::star::lang::IndexOutOfBoundsException ); + + /** removes the node from this instance at the specified index. + + @param Index + the index of the node to be removed from this instance. + + @throws ::com::sun::star::lang::IndexOutOfBoundsException + if Index is less than 0 or greater than XTreeNode::getChildCount(). + */ + void removeChildByIndex( [in] long Index ) + raises( com::sun::star::lang::IndexOutOfBoundsException ); + + /** Changes if the children of this node are created on demand. + + @see XTreeNode::hasChildrenOnDemand() + */ + void setHasChildrenOnDemand( [in] boolean ChildrenOnDemand ); + + /** sets the display value of this node */ + void setDisplayValue( [in] any Value ); + + /** Stores an implementation dependent value. + +You can use this attribute to store data for this node that + is independent of the display value
+ */ + [attribute] any DataValue; + + /** The URL for a graphic that is rendered before the text part of this node. +If this URL is empty, no graphic is rendered. + */ + void setNodeGraphicURL( [in] string URL ); + + /** The URL for a graphic that is rendered to visualize expanded non leaf nodes. +
If URL is empty, XTreeControl::DefaultExpandedGraphicURL is used. + */ + void setExpandedGraphicURL( [in] string URL ); + + /** The URL for a graphic that is rendered to visualize collapsed non leaf nodes. +
If URL is empty, XTreeControl::DefaultCollapsedGraphicURL is used. + */ + void setCollapsedGraphicURL( [in] string URL ); +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/tree/XTreeControl.idl b/offapi/com/sun/star/awt/tree/XTreeControl.idl new file mode 100644 index 0000000000..d9765bb8d8 --- /dev/null +++ b/offapi/com/sun/star/awt/tree/XTreeControl.idl @@ -0,0 +1,260 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module awt { module tree { + + +/** An interface to a control that displays a set of hierarchical data as an outline. + + @see TreeControl + */ +interface XTreeControl +{ + /** This interfaces provides access to the selection of tree nodes for this control. + +
valid selection values for this interface are + XTreeNode or sequence<XTreeNode>.
+ + ::com::sun::star::view::XSelectionSupplier::getSelection() + returns an empty any for no selection, an any with XTreeNode for + a single selection and a sequence<XTreeNode> for a multiselection. + */ + interface ::com::sun::star::view::XMultiSelectionSupplier; + + // expanding/collapsing/visible + + /** Returns `TRUE` if Node is currently expanded. + + @param Node + the XTreeNode specifying the node to check. + + @returns + `FALSE` if Node or at least one of its parent nodes are collapsed, + `TRUE` if Node and all of its parent nodes are expanded. + + @throws ::com::sun::star::lang::IllegalArgumentException + if Node is not a valid node of the corresponding XTreeDataModel. + */ + boolean isNodeExpanded( [in] XTreeNode Node ) + raises( ::com::sun::star::lang::IllegalArgumentException ); + + /** Returns `TRUE` if Node is currently collapsed. + + @param Node + the XTreeNode specifying the node to check + + @returns + `TRUE` if Node or at least one of its parent nodes are collapsed, + `FALSE` if Node and all of its parent nodes are expanded + + @throws ::com::sun::star::lang::IllegalArgumentException + if Node is not a valid node of the corresponding XTreeDataModel. + */ + boolean isNodeCollapsed( [in] XTreeNode Node ) + raises( ::com::sun::star::lang::IllegalArgumentException ); + + /** Ensures that Node is currently visible. +This includes expanding all parent nodes and scroll the control so this + node is visible in the controls display area.
+ + @param Node + the XTreeNode specifying the node to make visible. + + @throws ::com::sun::star::lang::IllegalArgumentException + if Node is not a valid node of the corresponding XTreeDataModel. + + @throws ExpandVetoException + if Nodecan't be made visible since at least one of the parent nodes are + collapsed and expanding failed because at least one of the registered + XTreeExpansionListener raised an ExpandVetoException. + */ + void makeNodeVisible( [in] XTreeNode Node ) + raises( com::sun::star::lang::IllegalArgumentException, ExpandVetoException ); + + /** Returns `TRUE` if Node is currently visible. +Visible means it is either the root or all of its parents are expanded.
+ + @returns + `TRUE` if Node is visible, otherwise `FALSE` + + @throws ::com::sun::star::lang::IllegalArgumentException + if Node is not a valid node of the corresponding XTreeDataModel. + */ + boolean isNodeVisible( [in] XTreeNode Node ) + raises( com::sun::star::lang::IllegalArgumentException ); + + /** Ensures that Node is expanded and visible. +If Node is a leaf node, this will have no effect.
+ + @param Node + the XTreeNode identifying a node. + + @throws ::com::sun::star::lang::IllegalArgumentException + if Node is not a valid node of the corresponding XTreeDataModel. + + @throws ExpandVetoException + if expanding Node failed because at least one of the registered + XTreeExpansionListener raised an ExpandVetoException. + */ + void expandNode( [in] XTreeNode Node ) + raises( com::sun::star::lang::IllegalArgumentException, ExpandVetoException ); + + /** Ensures that Node is collapsed. + + @param Node + the XTreeNode identifying a node + + @throws ::com::sun::star::lang::IllegalArgumentException + if Node is not a valid node of the corresponding XTreeDataModel. + + @throws ExpandVetoException + if collapsing Node failed because at least one of the registered + XTreeExpansionListener raised an ExpandVetoException. + */ + void collapseNode( [in] XTreeNode Node ) + raises( com::sun::star::lang::IllegalArgumentException, ExpandVetoException ); + + /** Adds a listener for TreeExpansion events. + + @param Listener + a XTreeExpansionListener that will be notified when a tree + node is expanded or collapsed. + */ + void addTreeExpansionListener( [in] XTreeExpansionListener Listener ); + + /** Removes a listener for TreeExpansion events. + + @param Listener + the XTreeExpansionListener to remove. + */ + void removeTreeExpansionListener( [in] XTreeExpansionListener Listener ); + + /** If the given URL points to a loadable graphic, the graphic is rendered + before expanded non leaf nodes. + +This can be overridden for individual nodes by XTreeNode::getExpandedGraphicURL()
+ */ + [attribute] string DefaultExpandedGraphicURL; + + /** If the given URL points to a loadable graphic, the graphic is rendered + before collapsed non leaf nodes. + +This can be overridden for individual nodes by XTreeNode::getCollapsedGraphicURL()
+ */ + [attribute] string DefaultCollapsedGraphicURL; + + // tree geometry + + /** Returns the node at the specified location. + + @param x + an integer giving the number of pixels horizontally from the left edge of the controls display area + @param y + an integer giving the number of pixels vertically from the top edge of the controls display area + @returns + the XTreeNode for the node at that location, or 0 if there is no node at the given position + */ + XTreeNode getNodeForLocation( [in] long x, [in] long y ); + + /** Returns the node that is closest to x,y. +If no nodes are currently viewable, or there is no model, returns null, + otherwise it always returns a valid node. To test if the node is exactly + at x, y, use getNodeForLocation(). + + @param x + an integer giving the number of pixels horizontally from the left edge of the controls display area + @param y + an integer giving the number of pixels vertically from the top edge of the controls display area + @returns + the XTreeNode for the node closest to that location, null if nothing is viewable or there is no model + */ + XTreeNode getClosestNodeForLocation( [in] long x, [in] long y ); + + /** returns the rectangle occupied by the visual representation of the given node + + @param Node + the node whose geometry should be obtained + @throws ::com::sun::star::lang::IllegalArgumentException + if the given node is `NULL`, or does not belong to the tree's data model + */ + ::com::sun::star::awt::Rectangle + getNodeRect( [in] XTreeNode Node ) + raises( ::com::sun::star::lang::IllegalArgumentException ); + + // tree editing + + /** Returns `TRUE` if one of tree's nodes is being currently edited. +
The node that is being edited can be obtained using com::sun::star::view::XSelectionSupplier::getSelection(). + + @returns + `TRUE` if the user is currently editing a node + */ + boolean isEditing(); + + /** Ends the current editing session. +
All registered XTreeEditListener are notified if an editing session was in progress
+Has no effect if the tree isn't being edited.
+ + @returns + `TRUE` if editing was in progress and is now stopped, `FALSE` if editing was not in progress + */ + boolean stopEditing(); + + /** Cancels the current editing session. +Has no effect if the tree isn't being edited.
+ */ + void cancelEditing(); + + /** Selects Node and initiates editing. + +If TreeControlModel::Editable is `FALSE` or if there are no + registered XTreeEditListener, this call has no effect.
+ +Calling this method also ensures that Node will become visible.
+ + @param Node + the XTreeNode identifying a node. + + @throws ::com::sun::star::lang::IllegalArgumentException + if Node is not a valid node of the corresponding XTreeDataModel. + */ + void startEditingAtNode( [in] XTreeNode Node ) + raises( ::com::sun::star::lang::IllegalArgumentException ); + + /** Adds a XTreeEditListener. + + @param Listener + a XTreeEditListener that will be notified + before and after a tree node is edited. + */ + void addTreeEditListener( [in] XTreeEditListener Listener ); + + /** Removes a XTreeEditListener. + + @param Listener + the XTreeEditListener to remove + */ + void removeTreeEditListener( [in] XTreeEditListener Listener ); +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/tree/XTreeDataModel.idl b/offapi/com/sun/star/awt/tree/XTreeDataModel.idl new file mode 100644 index 0000000000..291637355e --- /dev/null +++ b/offapi/com/sun/star/awt/tree/XTreeDataModel.idl @@ -0,0 +1,63 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module awt { module tree { + + +/** An instance of this interface is used by the TreeControl to + retrieve the hierarchical outline data that is displayed in the actual control. + +If you implement your own XTreeDataModel you need to notify registered + XTreeDataModelListener if your model changes after the control is created. + If this is not done correctly the TreeControl will not update the data properly.
+ + If you do not need your own model implementation, you can also use the MutableTreeDataModel. +*/ +interface XTreeDataModel : ::com::sun::star::lang::XComponent +{ + /** Returns the root of the tree. +Returns null only if the tree has no nodes. + + @returns + the root of the tree + */ + XTreeNode getRoot(); + + /** Adds a listener for the TreeDataModelEvent posted after the tree changes. + + @param Listener + the listener to add. + */ + void addTreeDataModelListener( [in] XTreeDataModelListener Listener ); + + + /** Removes a listener previously added with addTreeDataModelListener(). + + @param Listener + the listener to remove. + */ + void removeTreeDataModelListener( [in] XTreeDataModelListener Listener ); + +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/tree/XTreeDataModelListener.idl b/offapi/com/sun/star/awt/tree/XTreeDataModelListener.idl new file mode 100644 index 0000000000..ef10c8c798 --- /dev/null +++ b/offapi/com/sun/star/awt/tree/XTreeDataModelListener.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 . + */ + + + +module com { module sun { module star { module awt { module tree { + + +/** An instance of this interface is used by the TreeControl to + get notifications about data model changes. + +
Usually you must not implement this interface yourself as it is already handled + by the TreeControl, but you must notify it correctly if + you implement the XTreeDataModel yourself
. + */ +interface XTreeDataModelListener: com::sun::star::lang::XEventListener +{ + /** Invoked after a node (or a set of siblings) has changed in some way. + The node(s) have not changed locations in the tree or altered their + children arrays, but other attributes have changed and may affect + presentation. + + Example: the name of a file has changed, but it is in the same location in the file system. + + To indicate the root has changed, TreeDataModelEvent::Nodes will contain + the root node and TreeDataModelEvent::ParentNode will be empty. + */ + void treeNodesChanged( [in] TreeDataModelEvent Event ); + + /** Invoked after nodes have been inserted into the tree. + + Use TreeDataModelEvent::ParentNode to get the parent of the new node(s). + TreeDataModelEvent::Nodes contains the new node(s). + */ + void treeNodesInserted( [in] TreeDataModelEvent Event ); + + /** Invoked after nodes have been removed from the tree. +Note that if a subtree is removed from the tree, + this method may only be invoked once for the root of the removed subtree, + not once for each individual set of siblings removed. + + Use TreeDataModelEvent::ParentNode to get the former parent of the deleted node(s). + TreeDataModelEvent::Nodes contains the removed node(s). + */ + void treeNodesRemoved( [in] TreeDataModelEvent Event ); + + /** Invoked after the tree has drastically changed structure from a given node down. + + Use TreeDataModelEvent::ParentNode to get the node which + structure has changed. TreeDataModelEvent::Nodes is empty. + */ + void treeStructureChanged( [in] TreeDataModelEvent Event ); +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/tree/XTreeEditListener.idl b/offapi/com/sun/star/awt/tree/XTreeEditListener.idl new file mode 100644 index 0000000000..b12d3b64c9 --- /dev/null +++ b/offapi/com/sun/star/awt/tree/XTreeEditListener.idl @@ -0,0 +1,64 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module awt { module tree { + + +/** You can implement this interface and register with XTreeControl::addTreeEditListener() + to get notifications when editing of a node starts and ends. + +
You have to set the TreeControlModel::Editable property to + `TRUE` before a tree supports editing.
+ */ +interface XTreeEditListener : ::com::sun::star::lang::XEventListener +{ + /** This method is called from the TreeControl implementation when editing of + Node is requested by calling XTreeControl::startEditingAtNode(). + + @param Node + the XTreeNode for that an edit request was fired by calling + XTreeControl::startEditingAtNode() + + @throws VetoException + if thrown the editing will not start. + */ + void nodeEditing( [in] XTreeNode Node ) + raises ( ::com::sun::star::util::VetoException ); + + /** This method is called from the TreeControl implementation when editing + of Node is finished and was not canceled. + +Implementations that register a XTreeEditListener must update the + display value at the Node.
+ + @param Node + the XTreeNode for that an edit request was fired by calling + XTreeControl::startEditingAtNode() + + @param NewText + the text that was entered by the user. + */ + void nodeEdited( [in] XTreeNode Node, [in] string NewText ); +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/tree/XTreeExpansionListener.idl b/offapi/com/sun/star/awt/tree/XTreeExpansionListener.idl new file mode 100644 index 0000000000..896c3d8d72 --- /dev/null +++ b/offapi/com/sun/star/awt/tree/XTreeExpansionListener.idl @@ -0,0 +1,67 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module awt { module tree { + + +/** An instance of this interface can get notifications from a TreeControl + when nodes are expanded or collapsed. + + @see XTreeControl::addTreeExpansionListener + @see XTreeControl::removeTreeExpansionListener + */ +interface XTreeExpansionListener: com::sun::star::lang::XEventListener +{ + /** Invoked when a node with children on demand is about to be expanded. + +This event is invoked before the treeExpanding() + event.
+ */ + void requestChildNodes( [in] TreeExpansionEvent Event ); + + /** Invoked whenever a node in the tree is about to be expanded. + + @throws ExpandVetoException + to notify the calling XTreeControl that expanding + TreeExpansionEvent::Node should fail. + */ + void treeExpanding( [in] TreeExpansionEvent Event ) + raises ( ExpandVetoException ); + + /** Invoked whenever a node in the tree is about to be collapsed. + + @throws ExpandVetoException + to notify the calling XTreeControl that collapsing + TreeExpansionEvent::Node should fail. + */ + void treeCollapsing( [in] TreeExpansionEvent Event ) + raises ( ExpandVetoException ); + + /** Called whenever a node in the tree has been successfully expanded. */ + void treeExpanded( [in] TreeExpansionEvent Event ); + + /** Called whenever a node in the tree has been successfully collapsed. */ + void treeCollapsed( [in] TreeExpansionEvent Event ); +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/awt/tree/XTreeNode.idl b/offapi/com/sun/star/awt/tree/XTreeNode.idl new file mode 100644 index 0000000000..da697962e0 --- /dev/null +++ b/offapi/com/sun/star/awt/tree/XTreeNode.idl @@ -0,0 +1,85 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module awt { module tree { + + +/** An instance implementing this interface represents the model data for an entry in a + XTreeDataModel. +The TreeControl uses this interface to retrieve the model + information needed to display a hierarchical outline
+Each XTreeNode in a XTreeDataModel must be unique. + */ +interface XTreeNode +{ + /** Returns the child tree node at Index. + + @throws ::com::sun::star::lang::IndexOutOfBoundsException + if Index is less than 0 or equal or greater than getChildCount(). + */ + XTreeNode getChildAt( [in] long Index ) + raises( com::sun::star::lang::IndexOutOfBoundsException ); + + /** Returns the number of child nodes. */ + long getChildCount(); + + /** Returns the parent node of this node. */ + XTreeNode getParent(); + + /** Returns the index of Node in this instances children. + @returns + The child index of Node, + or -1 if Node is no child of this instance. + */ + long getIndex( [in] XTreeNode Node); + + /** Returns `TRUE` if the children of this node are created on demand. +
A TreeControl will handle a node that returns `TRUE` always + like a node that has child nodes, even if getChildCount() + returns 0.
+ + @see TreeExpansionListener; + */ + boolean hasChildrenOnDemand(); + + /** If not empty, the textual representation of this any is used as the text part of this node. + */ + any getDisplayValue(); + + /** The URL for a graphic that is rendered before the text part of this node. +If this URL is empty, no graphic is rendered. + */ + string getNodeGraphicURL(); + + /** The URL for a graphic that is rendered to visualize expanded non leaf nodes. +
If URL is empty, XTreeControl::DefaultExpandedGraphicURL is used. + */ + string getExpandedGraphicURL(); + + /** The URL for a graphic that is rendered to visualize collapsed non leaf nodes. +
If URL is empty, XTreeControl::DefaultCollapsedGraphicURL is used. + */ + string getCollapsedGraphicURL(); +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart/AccessibleChartDocumentView.idl b/offapi/com/sun/star/chart/AccessibleChartDocumentView.idl new file mode 100644 index 0000000000..345d9196a6 --- /dev/null +++ b/offapi/com/sun/star/chart/AccessibleChartDocumentView.idl @@ -0,0 +1,122 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module chart { + +/** The AccessibleChartDocumentView service is supported + by a Component that represents the view of a Chart document to + provide an entry point to the document tree for accessibility. + +
An object that implements the AccessibleChartDocumentView + service provides information about itself and about the chart + subcomponents contained in the chart document displayed in a + window. This service gives a simplified view on the underlying + implementation. It tries both to keep the structure of the + accessibility representation tree as simple as possible and + provide as much relevant information as possible.
+ + @since OOo 1.1.2 +*/ +service AccessibleChartDocumentView +{ + /** Base interface for being accessible. It gives access to the + ::com::sun::star::accessibility::XAccessibleContext + interface. + */ + interface ::com::sun::star::accessibility::XAccessible; + + /** Provide access to a Chart document's view. + +You can access the following information:
+The main purpose of this interface is to provide a bounding + box of the currently visible area and to let the user find the + subcomponents of a chart that cover a given test point.
+ +The accessible Chart subcomponents all support the service + AccessibleChartElement
+ + @see AccessibleChartElement + */ + interface ::com::sun::star::accessibility::XAccessibleComponent; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart/AccessibleChartElement.idl b/offapi/com/sun/star/chart/AccessibleChartElement.idl new file mode 100644 index 0000000000..3fb023fe8f --- /dev/null +++ b/offapi/com/sun/star/chart/AccessibleChartElement.idl @@ -0,0 +1,174 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module chart { + +/** This service is supported by all components that are contained in + the view of a chart document that are controlled by the chart. + Shapes added by a user via the clipboard are not treated as chart + elements. + +The list of objects that implement this service is + ::com::sun::star::chart::ChartTitle, + ::com::sun::star::chart::ChartLegend, + ::com::sun::star::chart::Diagram, + ::com::sun::star::chart::ChartAxis, + ::com::sun::star::chart::ChartDataRowProperties, + ::com::sun::star::chart::ChartDataPointProperties. +
+ +The + ::com::sun::star::accessibility::XAccessibleExtendedComponent + is supported by all chart elements.
+ + @since OOo 1.1.2 +*/ +service AccessibleChartElement +{ + /** Base interface for being accessible. It gives access to the + ::com::sun::star::accessibility::XAccessibleContext + interface. + */ + interface ::com::sun::star::accessibility::XAccessible; + + /** Give access to the structural information of a chart element. + +You can access the following information for the shapes of the above listed types: +
setParent
method from the JAVA has
+ been removed, the reference to the parent has to be provided in an
+ implementation specific way.The coordinate oriented methods contains
,
+ getAccessibleAt
, getBounds
,
+ getLocation
, getLocationOnScreen
, and
+ getSize
work on pixel coordinates. (To transform between
+ the internal 100th of mm and pixels a chart element has to have access
+ to information that allows it to do so. This information is the
+ enclosing window's size in pixel, 100th of mm, and its own relative
+ position in one or the other coordinate system).
Focus handling depends on support of the + ::com::sun::star::accessibility::XAccessibleText and + ::com::sun::star::accessibility::XAccessibleEditableText + interfaces.
+ +Key bindings are not supported at the moment
+ */ + interface ::com::sun::star::accessibility::XAccessibleComponent; + + /** Give extended access to the graphical representation of a chart element. + +This interface is used primarily to provide the predominant + foreground and background colors and—if applicable, i.e. the + ::com::sun::star::accessibility::XAccessibleText + interface is supported—information about the font used to display + text.
+ +The foreground and background colors may in some cases be directly + taken from the object. In other cases, for example when a gradient or a + texture is used, they have to be interpolated. The color returned may + not be appropriate in all cases.
+ +Specifying the font used for displaying text depends on the + transformation of UNO API font information into the Java™ format. + However, if the UAA is used directly, this is of course not an + issue.
+ +The support of this interface is optional to reduce overhead in case + that no text is displayed and color information can not be determined + with an acceptable cost.
+ */ + [optional] interface ::com::sun::star::accessibility::XAccessibleExtendedComponent; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart/AreaDiagram.idl b/offapi/com/sun/star/chart/AreaDiagram.idl new file mode 100644 index 0000000000..3ff9018d51 --- /dev/null +++ b/offapi/com/sun/star/chart/AreaDiagram.idl @@ -0,0 +1,41 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module chart { + + +/** This is a service for area diagrams. + */ +published service AreaDiagram +{ + service com::sun::star::chart::Diagram; + service com::sun::star::chart::ChartStatistics; + service com::sun::star::chart::ChartAxisXSupplier; + service com::sun::star::chart::ChartTwoAxisYSupplier; + service com::sun::star::chart::ChartAxisZSupplier; + service com::sun::star::chart::Dim3DDiagram; + service com::sun::star::chart::StackableDiagram; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart/BarDiagram.idl b/offapi/com/sun/star/chart/BarDiagram.idl new file mode 100644 index 0000000000..56fd3b6659 --- /dev/null +++ b/offapi/com/sun/star/chart/BarDiagram.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 . + */ + + + + module com { module sun { module star { module chart { + + +/**This is a service for bar and column diagrams. + */ +published service BarDiagram +{ + service com::sun::star::chart::Diagram; + service com::sun::star::chart::ChartStatistics; + service com::sun::star::chart::ChartAxisXSupplier; + service com::sun::star::chart::ChartTwoAxisYSupplier; + service com::sun::star::chart::ChartAxisZSupplier; + service com::sun::star::chart::Dim3DDiagram; + service com::sun::star::chart::StackableDiagram; + + + /** Determines if the bars of a chart are drawn vertically or + horizontally. Default is vertical. + +If Vertical is `FALSE` you get a column chart rather than + a bar chart.
+ */ + [property] boolean Vertical; + + + /** If `TRUE`, determines that in a three-dimensional bar chart + the bars of each series are arranged behind each other in the + z-direction. If `FALSE` the arrangement of bars is like in + two-dimensional bar charts. + */ + [optional, property] boolean Deep; + + + /** determines if, in a stacked chart, there are connecting lines + between corresponding bars. Currently, bar charts with + horizontal bars do not support this property. + */ + [optional, property] boolean StackedBarsConnected; + + + /** If bars of a bar or column chart are attached to different + axis, this property determines how to display those. If + `TRUE`, the bars are grouped together in one block for each + axis, thus they are painted one group over the other. + +If `FALSE`, the bars are displayed side-by-side, as if + they were all attached to the same axis.
+ +If all data series of a bar or column chart are attached to + only one axis, this property has no effect.
+ */ + [optional, property] boolean GroupBarsPerAxis; + + + + /** Determines how many data rows are displayed as lines rather than + bars. + +If this property differs from zero the last + BarDiagram::NumberOfLines data rows are shown as lines. It is + currently supported by two dimensional vertical bar charts only.
+ + @deprecated + */ + [property] long NumberOfLines; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart/BubbleDiagram.idl b/offapi/com/sun/star/chart/BubbleDiagram.idl new file mode 100644 index 0000000000..809c2ceab7 --- /dev/null +++ b/offapi/com/sun/star/chart/BubbleDiagram.idl @@ -0,0 +1,37 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module chart { + + +/** a service for bubble diagrams. @since OOo 3.2 + */ +published service BubbleDiagram +{ + service com::sun::star::chart::Diagram; + service com::sun::star::chart::ChartAxisXSupplier; + service com::sun::star::chart::ChartTwoAxisYSupplier; + [optional] service com::sun::star::chart::ChartStatistics; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart/Chart3DBarProperties.idl b/offapi/com/sun/star/chart/Chart3DBarProperties.idl new file mode 100644 index 0000000000..49d41eb408 --- /dev/null +++ b/offapi/com/sun/star/chart/Chart3DBarProperties.idl @@ -0,0 +1,41 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module chart { + + +/** Specifies all the properties for the graphic object of a data point in a + three-dimensional bar diagram.@see BarDiagram + */ +published service Chart3DBarProperties +{ + interface com::sun::star::beans::XPropertySet; + + + /** Specifies the solid shape of a data point.@see ChartSolidType + */ + [property] long SolidType; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart/ChartArea.idl b/offapi/com/sun/star/chart/ChartArea.idl new file mode 100644 index 0000000000..955e6bd4ce --- /dev/null +++ b/offapi/com/sun/star/chart/ChartArea.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 . + */ + + + module com { module sun { module star { module chart { + + +/** Specifies the area elements of a chart, e.g. the + background area, the diagram wall, and the diagram floor of + three-dimensional charts. + */ +published service ChartArea +{ + service com::sun::star::drawing::FillProperties; + service com::sun::star::drawing::LineProperties; + + /** If the ChartArea may be stored as XML element, + this service should be supported in order to preserve unparsed + XML attributes. + + @since OOo 1.1.2 + */ + [optional] service com::sun::star::xml::UserDefinedAttributesSupplier; + + interface com::sun::star::beans::XPropertySet; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart/ChartAxis.idl b/offapi/com/sun/star/chart/ChartAxis.idl new file mode 100644 index 0000000000..4b3dd5f9b4 --- /dev/null +++ b/offapi/com/sun/star/chart/ChartAxis.idl @@ -0,0 +1,249 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module chart { + + +/** Specifies the axes in a diagram. + +Note: The text properties correlate to all axis description + elements, not to just a single text element.
+ */ +published service ChartAxis +{ + /** set the properties for the entire axis line as well as for the + tick marks. + */ + service com::sun::star::drawing::LineProperties; + + /** set the properties for all text labels of the axis + */ + service com::sun::star::style::CharacterProperties; + + /** If a ChartAxis may be stored as XML element, this + service should be supported in order to preserve unparsed XML + attributes. + + @since OOo 1.1.2 + */ + [optional] service com::sun::star::xml::UserDefinedAttributesSupplier; + + /** Access to the sub elements of an axis like title and grids. + @since OOo 3.4 + */ + [optional] interface com::sun::star::chart::XAxis; + + interface com::sun::star::beans::XPropertySet; + + /** Properties for scaling: + */ + + + /** Contains the maximum value for the axis scale. + */ + [optional, property] double Max; + + + /** Contains the minimum value for the axis scale. + */ + [optional, property] double Min; + + + /** Contains the distance between the main tick marks. + */ + [optional, property] double StepMain; + + + /** + Contains the number of help intervals within a main interval. E.g. a StepHelpCount of 5 divides + the main interval into 5 pieces and thus produces 4 help tick marks. + */ + [optional, property] long StepHelpCount; + + + /** @deprecated + User property StepHelpCount instead + Contains the distance between the help tick marks. + */ + [optional, property] double StepHelp; + + + /** The maximum value of the axis scale is calculated by the chart if + this property is `TRUE`. + */ + [optional, property] boolean AutoMax; + + + /** The minimum value of the axis scale is calculated by the chart if + this property is `TRUE`. + */ + [optional, property] boolean AutoMin; + + + /** The distance between the main tick marks is calculated by the chart + if this property is `TRUE`. + */ + [optional, property] boolean AutoStepMain; + + + /** The number of help intervals within a main interval is calculated by the + chart if this property is `TRUE`. + */ + [optional, property] boolean AutoStepHelp; + + + + /** Determines if the axis is scaled logarithmically or + not (linear). + */ + [optional, property] boolean Logarithmic; + + + /** determines which type of axis this is, e.g. a date-axis or a category-axis @see ChartAxisType + @since OOo 3.4 + */ + [optional, property] long AxisType; + + + /** if the current axis is a date-axis the intervals are chosen as given with TimeIncrement + @since OOo 3.4 + */ + [optional, maybevoid, property] TimeIncrement TimeIncrement; + + + /** Determines if the axis orientation is mathematical or reversed. + */ + [optional, property] boolean ReverseDirection; + + + /** Determines where the axis crosses the other axis. + */ + [optional, property] com::sun::star::chart::ChartAxisPosition CrossoverPosition; + + + /** Determines the scale value on the other axis when CrossoverPosition is set to VALUE. + */ + [optional, property] double CrossoverValue; + + + /** Indicates the reference value where bars or areas have their grounding. + This property has only an effect when the used ODF file format does not allow for + further axis positioning or the axis is a secondary y-axis. + */ + [optional, property] double Origin; + + + /** The origin is calculated by the chart if this property is `TRUE`. + */ + [optional, property] boolean AutoOrigin; + + /** Properties for interval marks: + */ + + + /** Determines the type of the marks.@see ChartAxisMarks + */ + [property] long Marks; + + + /** Determines the type of the help marks.@see ChartAxisMarks + */ + [property] long HelpMarks; + + /** Determines where the interval marks are placed. + */ + [optional, property] com::sun::star::chart::ChartAxisMarkPosition MarkPosition; + + /** Properties for axes labels: + */ + + + /** Determines whether to display text at the axis or not. + */ + [property] boolean DisplayLabels; + + + /** Contains the type id for the number formatter of the axis. + + @see com::sun::star::util::XNumberFormatter + */ + [property] long NumberFormat; + + + /** determines whether to use the number format given by the + container application, e.g. a spreadsheet document, or from + the own property #NumberFormat. + */ + [optional, property] boolean LinkNumberFormatToSource; + + + /** Determines where the axis labels are placed. + */ + [optional, property] com::sun::star::chart::ChartAxisLabelPosition LabelPosition; + + + /** Determines the rotation of the text elements + (axis description) in 100th degrees. + */ + [property] long TextRotation; + + + /** The axis description may be arranged in a special order for a + better placement. + */ + [property] com::sun::star::chart::ChartAxisArrangeOrderType ArrangeOrder; + + + /** Determines if long text is broken into multiple lines. + */ + [property] boolean TextBreak; + + + /** Determines if certain labels are hidden, if they would otherwise overlap. + In this case, the value of this property must be set to `FALSE`. + */ + [property] boolean TextCanOverlap; + + /** Properties related to bar charts: + */ + + + /** Determines the overlap of the bars in a bar-type chart. + +The value is given in percent of the width of the bars. The + valid range is -100% to +100%. +100% means full overlap, -100% + indicates a distance of one bar between 2 neighboring bars.
+ */ + [property] long Overlap; + + + /** Specifies the width of the gaps between each set of data points + in a bar chart. + +The value is given in percent of the width of a bar; the + valid range is 0 to 600%.
+ */ + [property] long GapWidth; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart/ChartAxisArrangeOrderType.idl b/offapi/com/sun/star/chart/ChartAxisArrangeOrderType.idl new file mode 100644 index 0000000000..845d26af8e --- /dev/null +++ b/offapi/com/sun/star/chart/ChartAxisArrangeOrderType.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 . + */ + + + + module com { module sun { module star { module chart { + + +/** Values specify the arrangement of the axes descriptions. + */ +published enum ChartAxisArrangeOrderType +{ + + /** The descriptions are arranged automatically. + +If there is enough space to put them side by side, this + arrangement is preferred. If the descriptions would overlap + when arranged side by side, they are staggered.
+ */ + AUTO, + + + /** The descriptions are arranged side by side. + */ + SIDE_BY_SIDE, + + + /** The descriptions are alternately put on two lines with the even + values out of the normal line. + */ + STAGGER_EVEN, + + + /** The descriptions are alternately put on two lines with the odd + values out of the normal line. + */ + STAGGER_ODD +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart/ChartAxisAssign.idl b/offapi/com/sun/star/chart/ChartAxisAssign.idl new file mode 100644 index 0000000000..6be3c8ec70 --- /dev/null +++ b/offapi/com/sun/star/chart/ChartAxisAssign.idl @@ -0,0 +1,44 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module chart { + + +/** These values specify to which y-axis a data row is assigned. + */ +published constants ChartAxisAssign +{ + + /** Assign row to primary y-axis + */ + const long PRIMARY_Y = 2; + + + /** Assign row to secondary y-axis + */ + const long SECONDARY_Y = 4; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart/ChartAxisLabelPosition.idl b/offapi/com/sun/star/chart/ChartAxisLabelPosition.idl new file mode 100644 index 0000000000..4b40752f0b --- /dev/null +++ b/offapi/com/sun/star/chart/ChartAxisLabelPosition.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 . + */ + + + + module com { module sun { module star { module chart { + + +/** Specifies the position of the axis labels with respect to the axis on the scale of the crossing axis. +*/ + +published enum ChartAxisLabelPosition +{ + + /** The labels are placed adjacent to the axis. When the axis itself is placed at the minimum or maximum of the scale ( that is when the property CrossoverPosition equals ChartAxisPosition_MINIMUM or ChartAxisPosition_MAXIMUM) + the labels are placed outside the coordinate system. Otherwise the labels are placed adjacent to the axis on that side that belongs to the lower values on the crossing axis. + E.g. when the ChartAxisLabelPosition is set to NEAR_AXIS for an y axis the labels are placed adjacent to the y axis on that side that belongs to the lower x values. + */ + NEAR_AXIS, + + + /** The labels are placed adjacent to the axis on the opposite side as for NEAR_AXIS. + */ + NEAR_AXIS_OTHER_SIDE, + + + /** The labels are placed outside the coordinate region on that side where the crossing axis has its minimum value. + E.g. when this is set for an y axis the labels are placed outside the diagram on that side where to the x axis has its minimum value. + */ + OUTSIDE_START, + + + /** The labels are placed outside the coordinate region on that side where the crossing axis has its maximum value. + E.g. when this is set for an y axis the labels are placed outside the diagram on that side where to the x axis has its maximum value. + */ + OUTSIDE_END +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart/ChartAxisMarkPosition.idl b/offapi/com/sun/star/chart/ChartAxisMarkPosition.idl new file mode 100644 index 0000000000..b0de5f87cf --- /dev/null +++ b/offapi/com/sun/star/chart/ChartAxisMarkPosition.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 . + */ + + + + module com { module sun { module star { module chart { + + +/** Specifies the position of the axis interval marks. +*/ + +published enum ChartAxisMarkPosition +{ + + /** The interval marks are drawn besides the axis labels. + */ + AT_LABELS, + + + /** The interval marks are drawn at the axis line. + This makes a difference to "AT_LABELS" only when the labels are not placed near the axis (@see ChartAxisLabelPosition). + */ + AT_AXIS, + + + /** Interval marks are drawn at the axis line and also besides the axis labels. + This makes a difference to "AT_LABELS" only when the labels are not placed near the axis (@see ChartAxisLabelPosition). + */ + AT_LABELS_AND_AXIS +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart/ChartAxisMarks.idl b/offapi/com/sun/star/chart/ChartAxisMarks.idl new file mode 100644 index 0000000000..5f61ca317a --- /dev/null +++ b/offapi/com/sun/star/chart/ChartAxisMarks.idl @@ -0,0 +1,54 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module chart { + + +/** With these constants you can specify how the tick-marks of an axis + are displayed. + +You can combine INNER
and OUTER
with
+ an arithmetical or-operation to get tick-marks that
+ extend in both directions.
It contains the data values as well as the descriptions for + each row and column.
+ */ +published service ChartDataArray +{ + service com::sun::star::chart::ChartData; + interface com::sun::star::chart::XChartDataArray; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart/ChartDataCaption.idl b/offapi/com/sun/star/chart/ChartDataCaption.idl new file mode 100644 index 0000000000..5d0e044c63 --- /dev/null +++ b/offapi/com/sun/star/chart/ChartDataCaption.idl @@ -0,0 +1,88 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module chart { + + +/** These values specify how the captions of data points are displayed. + */ +published constants ChartDataCaption +{ + + /** No captions are displayed. + */ + const long NONE = 0; + + + /** The caption contains the value of the data point in the number + format of the axis that is attached to the respective data + series. + */ + const long VALUE = 1; + + + /** The caption contains the value of the data point in percent of + all data points of one category. + +That means, if a data point is the first one of a series, + the percentage is calculated by using the first data points of + all available series.
+ */ + const long PERCENT = 2; + + + /** The caption contains the category name of the category to + which a data point belongs. + */ + const long TEXT = 4; + + + /** The number formatter is always used for displaying the value + as value. So this setting is deprecated. + + @deprecated + */ + const long FORMAT = 8; + + + /** The symbol of data column/row is additionally displayed in the caption. + */ + const long SYMBOL = 16; + + + /** The caption contains a custom text, which belongs + to a data point label. + + @since LibreOffice 7.1 + */ + const long CUSTOM = 32; + + /** The name of the data series is additionally displayed in the caption. + + @since LibreOffice 7.2 + */ + const long DATA_SERIES = 64; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart/ChartDataChangeEvent.idl b/offapi/com/sun/star/chart/ChartDataChangeEvent.idl new file mode 100644 index 0000000000..19ff34c0ff --- /dev/null +++ b/offapi/com/sun/star/chart/ChartDataChangeEvent.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 . + */ + + + + module com { module sun { module star { module chart { + + +/** describes a change that was applied to the data. + */ +published struct ChartDataChangeEvent: com::sun::star::lang::EventObject +{ + + /** specifies the type of change to the data. + */ + com::sun::star::chart::ChartDataChangeType Type; + + + /** specifies the column number in which the changes begin. + */ + short StartColumn; + + + /** specifies the column number in which the changes end. + */ + short EndColumn; + + + /** specifies the row number in which the changes begin. + */ + short StartRow; + + + /** specifies the row number in which the changes end. + */ + short EndRow; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart/ChartDataChangeType.idl b/offapi/com/sun/star/chart/ChartDataChangeType.idl new file mode 100644 index 0000000000..c1c083a465 --- /dev/null +++ b/offapi/com/sun/star/chart/ChartDataChangeType.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 . + */ + + + + module com { module sun { module star { module chart { + + +/** specifies the type of change that was applied to the data. + */ +published enum ChartDataChangeType +{ + + /** Major changes were applied to the data. + */ + ALL, + + + /** The range of columns and rows, given in the + ChartDataChangeEvent, has changed. + */ + DATA_RANGE, + + + /** The column given in the ChartDataChangeEvent, was + inserted. + */ + COLUMN_INSERTED, + + + /** The row given in the ChartDataChangeEvent, was + inserted. + */ + ROW_INSERTED, + + + /** The column given in the ChartDataChangeEvent, was + deleted. + */ + COLUMN_DELETED, + + + /** The row given in the ChartDataChangeEvent, was + deleted. + */ + ROW_DELETED + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart/ChartDataPoint.idl b/offapi/com/sun/star/chart/ChartDataPoint.idl new file mode 100644 index 0000000000..ace198da32 --- /dev/null +++ b/offapi/com/sun/star/chart/ChartDataPoint.idl @@ -0,0 +1,30 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module chart { + +/** @deprecated +*/ +published typedef sequenceText properties correlate to the data description of the data + point. There is a similar service for a group of graphic elements + called ChartDataRowProperties for the properties of + whole data rows.
+ + @see ChartDataRowProperties + */ +published service ChartDataPointProperties +{ + /** This service has to be supported for data points that can be + filled. + */ + [optional] service com::sun::star::drawing::FillProperties; + + service com::sun::star::drawing::LineProperties; + + /** These properties affect the characters of data captions if + those are displayed. + */ + service com::sun::star::style::CharacterProperties; + + /** If ChartDataPointProperties may be stored as XML + element, this service should be supported in order to preserve + unparsed XML attributes. + + @since OOo 1.1.2 + */ + [optional] service com::sun::star::xml::UserDefinedAttributesSupplier; + + + /** is only available if the chart is of type + BarDiagram and Dim3DDiagram and the + property ChartDataPointProperties::Dim3D is + set to `TRUE`. + + @see BarDiagram + @see Dim3DDiagram@see BarDiagram + @see Dim3DDiagram + */ + [optional] service com::sun::star::chart::Chart3DBarProperties; + + interface com::sun::star::beans::XPropertySet; + + + /** specifies how the captions of data points are displayed.@see ChartDataCaption + */ + [property] long DataCaption; + + + + /** specifies a string that is used to separate the parts of a data label (caption) + */ + [optional, property] string LabelSeparator; + + + /** specifies a number format for the display of the value in the data label + */ + [optional, property] long NumberFormat; + + + /** specifies a number format for the display of the percentage value in the data label + */ + [optional, property] long PercentageNumberFormat; + + + /** specifies a relative position for the data label + + @see DataLabelPlacement + */ + [optional, property] long LabelPlacement; + + + /** specifies the type of symbols if the current chart type + supports the usage of symbols. + + @see ChartSymbolType + */ + [optional, property] long SymbolType; + + + /** In charts that support symbols, you can set this property to + any valid URL that points to a graphic file. This graphic is + then used as symbol for each data point. + +When you query this value you get an internal URL of the + embedded graphic.
+ + @deprecated as of Libreoffice 6.1 + + @see ChartSymbolType + */ + [optional, property] string SymbolBitmapURL; + + /** the offset by which pie segments in a PieDiagram + are dragged outside from the center. This value is given in + percent of the radius. + */ + [optional, property] long SegmentOffset; + + /** specifies if the text of a data label (caption) must be wrapped + + @since LibreOffice 5.1 + */ + [optional, property] boolean TextWordWrap; + + /** In charts that support symbols, you can set this property to + a graphic object. This graphic is then used as symbol for each + data point. + + @since LibreOffice 6.1 + + @see ChartSymbolType + */ + [optional, property] com::sun::star::graphic::XGraphic SymbolBitmap; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart/ChartDataRow.idl b/offapi/com/sun/star/chart/ChartDataRow.idl new file mode 100644 index 0000000000..3711fb2872 --- /dev/null +++ b/offapi/com/sun/star/chart/ChartDataRow.idl @@ -0,0 +1,45 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module chart { + + +/** describes a single data row, specified by its name and + a sequence of data points. + +This struct is currently used nowhere.
+ + @deprecated + */ +published struct ChartDataRow +{ + /** The name of the data row. + */ + string Name; + + /** The points contained in this data row. + */ + sequence< sequenceFor this service, the properties supported by + ChartDataPointProperties are applied to all data + point elements contained in this group. They serve as a template; + thus, when changing a data point property afterwards
+ + @see ChartDataPointProperties + */ +published service ChartDataRowProperties +{ + service com::sun::star::chart::ChartDataPointProperties; + /** Statistical properties are not available for all types of + diagrams. + */ + [optional] service com::sun::star::chart::ChartStatistics; + + /** If ChartDataRowProperties may be stored as XML + file, this service should be supported in order to preserve + unparsed XML attributes. + + @since OOo 1.1.2 + */ + [optional] service com::sun::star::xml::UserDefinedAttributesSupplier; + + interface com::sun::star::beans::XPropertySet; + + + /** determines to which axis the data row is assigned. + +The axis must be a primary or secondary y-axis
+ + @see ChartAxisAssign + @see ChartAxisYSupplier + @see ChartTwoAxisYSupplier + */ + [property] long Axis; + + + /** holds the properties of the regression line, if such one is + enabled. + + @see ChartLine + @see ChartStatistics + */ + [optional, readonly, property] com::sun::star::beans::XPropertySet DataRegressionProperties; + + + /** holds the properties of the error markers, if those are + enabled. + + @see ChartLine + @see ChartStatistics + */ + [optional, readonly, property] com::sun::star::beans::XPropertySet DataErrorProperties; + + + /** holds the properties of the average line, if such one is + enabled. + + @see ChartLine + @see ChartStatistics + */ + [optional, readonly, property] com::sun::star::beans::XPropertySet DataMeanValueProperties; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart/ChartDataRowSource.idl b/offapi/com/sun/star/chart/ChartDataRowSource.idl new file mode 100644 index 0000000000..24535dc2a4 --- /dev/null +++ b/offapi/com/sun/star/chart/ChartDataRowSource.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 . + */ + + + + module com { module sun { module star { module chart { + + +/** specifies if the data rows (aka data series) displayed in the + chart, take their values from the row or the column in the underlying + data source (ChartDataArray). + */ +published enum ChartDataRowSource +{ + + /** values displayed as data rows are taken from the rows of the data source. + */ + ROWS, + + + /** values displayed as data rows are taken from the columns of the data source. + */ + COLUMNS + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart/ChartDataValue.idl b/offapi/com/sun/star/chart/ChartDataValue.idl new file mode 100644 index 0000000000..d4a7181c2c --- /dev/null +++ b/offapi/com/sun/star/chart/ChartDataValue.idl @@ -0,0 +1,52 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module chart { + + +/** describes a single data value, including the error + +This struct is currently used nowhere.
+ + @deprecated + */ +published struct ChartDataValue +{ + /** value by itself. + */ + double Value; + + + /** highest possible error value. + */ + double HighError; + + + /** lowest possible error value. + */ + double LowError; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart/ChartDocument.idl b/offapi/com/sun/star/chart/ChartDocument.idl new file mode 100644 index 0000000000..a2cd73fdc7 --- /dev/null +++ b/offapi/com/sun/star/chart/ChartDocument.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 . + */ + + + module com { module sun { module star { module chart { + + +/** is the service for a chart document. + +A chart document consists of a reference to the data source, + the diagram and some additional elements like a main title, a + sub-title or a legend. + +
@see Diagram + @see ChartLegend + @see ChartTitle + @see ChartDataArray + */ +published service ChartDocument +{ + /** If a ChartDocument may be stored as XML file, + this service should be supported in order to preserve unparsed + XML attributes. + + @since OOo 1.1.2 + */ + [optional] service ::com::sun::star::xml::UserDefinedAttributesSupplier; + + interface ::com::sun::star::chart::XChartDocument; + interface ::com::sun::star::beans::XPropertySet; + + [optional] interface ::com::sun::star::drawing::XDrawPageSupplier; + + + /** determines if the main title is shown or hidden. + */ + [property] boolean HasMainTitle; + + + /** determines if the subtitle is shown or hidden. + */ + [property] boolean HasSubTitle; + + + /** determines if the legend is shown or hidden. + */ + [property] boolean HasLegend; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart/ChartErrorCategory.idl b/offapi/com/sun/star/chart/ChartErrorCategory.idl new file mode 100644 index 0000000000..a6d5a99ab9 --- /dev/null +++ b/offapi/com/sun/star/chart/ChartErrorCategory.idl @@ -0,0 +1,82 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module chart { + + +/** specifies the category of error indicators. + */ +published enum ChartErrorCategory +{ + + /** error indicators are not displayed. + */ + NONE, + + + /** displays error indicators for the variance of the data row. + */ + VARIANCE, + + + /** displays error indicators for the standard deviation (square + root of variance) of the data row. + */ + STANDARD_DEVIATION, + + + /** The length of the error indicators is calculated for each data + point by taking the percentage given as + ChartStatistics::PercentageError of its + value. + + @see ChartStatistics + */ + PERCENT, + + + /** The length of the error indicators for all data points is + calculated by taking the percentage given as + ChartStatistics::ErrorMargin of the largest + data point value. + + @see ChartStatistics + */ + ERROR_MARGIN, + + + /** displays the same lower and upper error indicators for all + data points. + +The values for these are given as absolute numbers in + ChartStatistics::ConstantErrorLow and + ChartStatistics::ConstantErrorHigh
+ + @see ChartStatistics + */ + CONSTANT_VALUE + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart/ChartErrorIndicatorType.idl b/offapi/com/sun/star/chart/ChartErrorIndicatorType.idl new file mode 100644 index 0000000000..74a3be20c0 --- /dev/null +++ b/offapi/com/sun/star/chart/ChartErrorIndicatorType.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 . + */ + + + + module com { module sun { module star { module chart { + + +/** specifies how the error is indicated. + */ +published enum ChartErrorIndicatorType +{ + + /** displays no error indicators. + */ + NONE, + + + /** displays both the upper and lower values. + */ + TOP_AND_BOTTOM, + + + /** displays only the upper value. + */ + UPPER, + + + /** displays only the lower value. + */ + LOWER +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart/ChartGrid.idl b/offapi/com/sun/star/chart/ChartGrid.idl new file mode 100644 index 0000000000..fed39b3a32 --- /dev/null +++ b/offapi/com/sun/star/chart/ChartGrid.idl @@ -0,0 +1,49 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module chart { + + +/** specifies the grid of the diagram in a chart. + + + +The distance between the grid lines depends on the distance of the help + or main tick marks, which may be set in ChartAxis.
@see ChartAxis + */ +published service ChartGrid +{ + service com::sun::star::drawing::LineProperties; + + /** If a ChartGrid may be stored as XML element, this + service should be supported in order to preserve unparsed XML + attributes. + + @since OOo 1.1.2 + */ + [optional] service com::sun::star::xml::UserDefinedAttributesSupplier; + + interface com::sun::star::beans::XPropertySet; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart/ChartLegend.idl b/offapi/com/sun/star/chart/ChartLegend.idl new file mode 100644 index 0000000000..c40116e306 --- /dev/null +++ b/offapi/com/sun/star/chart/ChartLegend.idl @@ -0,0 +1,67 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module chart { + + +/** specifies the legend of a chart. + + + +The text/font properties which are specified in the service + com::sun::star::drawing::Shape correlate to all text + objects inside the legend.
+ */ +published service ChartLegend +{ + service com::sun::star::drawing::Shape; + + + /** If this property is `TRUE` the position is calculated by the application automatically. + Setting this property to false will have no effect. Instead use the interface com::sun::star::drawing::XShape + to set a concrete position. + */ + [optional, property] boolean AutomaticPosition; + + + service com::sun::star::style::CharacterProperties; + + + /** If a ChartLegend may be stored as XML file, + this service should be supported in order to preserve unparsed + XML attributes. + + @since OOo 1.1.2 + */ + [optional] service com::sun::star::xml::UserDefinedAttributesSupplier; + + + /** determines the alignment of the legend relative + to the diagram. + */ + [property] com::sun::star::chart::ChartLegendPosition Alignment; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart/ChartLegendExpansion.idl b/offapi/com/sun/star/chart/ChartLegendExpansion.idl new file mode 100644 index 0000000000..982692c23b --- /dev/null +++ b/offapi/com/sun/star/chart/ChartLegendExpansion.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 . + */ + +module com +{ +module sun +{ +module star +{ +module chart +{ + +/** Specifies sizing aspects of the legend + */ +enum ChartLegendExpansion +{ + /** The legend entries are arranged in a single row if possible. If not enough space is available further rows are added. + +This is usually used for legends that are displayed at the + top or bottom of the page.
+ */ + WIDE, + + /** The legend entries are stacked in a single column if possible. If not enough space is available further columns are added. + +This is usually used for legends that are displayed on the + left or right hand side of the page.
+ */ + HIGH, + + /** The legend entries are arranged in a way that the aspect ratio of the resulting legend is as near to 1 as possible. + */ + BALANCED, + + /** The size of the legend is given explicitly + */ + CUSTOM +}; + +} ; // chart +} ; // com +} ; // sun +} ; // star + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart/ChartLegendPosition.idl b/offapi/com/sun/star/chart/ChartLegendPosition.idl new file mode 100644 index 0000000000..42ebba140f --- /dev/null +++ b/offapi/com/sun/star/chart/ChartLegendPosition.idl @@ -0,0 +1,75 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module chart { + + +/** specifies one of the default positions of the legend in relation + to the diagram. + */ +published enum ChartLegendPosition +{ + + /** no chart legend is displayed. + +To disable the legend you should set the property + ChartDocument::HasLegend to `FALSE` instead + of setting this value.
+ */ + NONE, + + + /** displays the chart legend on the left side of the diagram. + +The second entry in the legend is placed below the first + one.
+ */ + LEFT, + + + /** displays the chart legend above the diagram. + +The second entry in the legend is placed on the right hand + side of the first one.
+ */ + TOP, + + + /** displays the chart legend on the right side of the diagram. + +The second entry in the legend is placed below the first + one.
+ */ + RIGHT, + + + /** displays the chart legend beneath the diagram. + +The second entry in the legend is placed on the right hand + side of the first one.
+ */ + BOTTOM +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart/ChartLine.idl b/offapi/com/sun/star/chart/ChartLine.idl new file mode 100644 index 0000000000..a9d30b4580 --- /dev/null +++ b/offapi/com/sun/star/chart/ChartLine.idl @@ -0,0 +1,36 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module chart { + + +/** specifies line elements in a chart (regression lines, etc.). + */ +published service ChartLine +{ + service com::sun::star::drawing::LineProperties; + interface com::sun::star::beans::XPropertySet; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart/ChartPieSegmentProperties.idl b/offapi/com/sun/star/chart/ChartPieSegmentProperties.idl new file mode 100644 index 0000000000..3a4f8166ea --- /dev/null +++ b/offapi/com/sun/star/chart/ChartPieSegmentProperties.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 . + */ + + + + module com { module sun { module star { module chart { + + +/** specifies all the properties for the graphic object of a + pie segment.@see PieDiagram + */ +published service ChartPieSegmentProperties +{ + service com::sun::star::chart::ChartDataPointProperties; + interface com::sun::star::beans::XPropertySet; + + + /** reflects the offset of a pie segment in percent of the radius. + + + +The default value for all the segments of a PieDiagram + is 0. If you change this value from 0 to 100 the segment is pulled out + from the center by its radius. + +
+Currently this property is supported by two dimensional pie + diagrams only.
+ */ + [property] long SegmentOffset; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart/ChartRegressionCurveType.idl b/offapi/com/sun/star/chart/ChartRegressionCurveType.idl new file mode 100644 index 0000000000..45eb6c35b6 --- /dev/null +++ b/offapi/com/sun/star/chart/ChartRegressionCurveType.idl @@ -0,0 +1,80 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module chart { + + +/** specifies the type of the regression curve to be displayed. + */ +published enum ChartRegressionCurveType +{ + + /** displays no regression curve. + */ + NONE, + + + /** displays a linear regression curve. + +The values of the series are approximated using the model + y = A⋅x + B.
+ */ + LINEAR, + + + /** displays a linear logarithmic regression curve. + +The values of the series are approximated using the model + y = A⋅log(x) + B.
+ */ + LOGARITHM, + + + /** displays an exponential regression curve. + +The values of the series are approximated using the model + y = A⋅eB⋅x.
+ + */ + EXPONENTIAL, + + + /** displays a polynomial regression curve. + */ + POLYNOMIAL, + + /** displays a regression curve using a power function. + +The values of the series are approximated using the model + y = A⋅xB.
+ */ + POWER + + /** displays a moving average regression curve. + */ + //MOVING_AVERAGE + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart/ChartSeriesAddress.idl b/offapi/com/sun/star/chart/ChartSeriesAddress.idl new file mode 100644 index 0000000000..b880603734 --- /dev/null +++ b/offapi/com/sun/star/chart/ChartSeriesAddress.idl @@ -0,0 +1,54 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module chart { + + +/** This structure describes a single data row, specified by its name + and a sequence of data points. + +The cell addresses are in the format of the application that + contains this chart.
+ */ +published struct ChartSeriesAddress +{ + /** contains the cell range address of the data for this series. + */ + string DataRangeAddress; + + + /** contains the cell address of label (i.e. name) of this series. + */ + string LabelAddress; + + + /** contains cell addresses for each domain of this series. + +For XY (scatter) diagrams at least one series has a + domain. Most of the other chart types use an empty sequence + here.
+ */ + sequence< string > DomainRangeAddresses; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart/ChartSolidType.idl b/offapi/com/sun/star/chart/ChartSolidType.idl new file mode 100644 index 0000000000..580bd27f6f --- /dev/null +++ b/offapi/com/sun/star/chart/ChartSolidType.idl @@ -0,0 +1,55 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module chart { + + +/** These values specify the type of solid shapes for data points of + 3D bar charts. + */ +published constants ChartSolidType +{ + + /** extruded rectangle, i.e., a cuboid + */ + const long RECTANGULAR_SOLID = 0; + + + /** cylinder with a circle as base + */ + const long CYLINDER = 1; + + + /** cone with a circle as base + */ + const long CONE = 2; + + + /** pyramidal with a square as base + */ + const long PYRAMID = 3; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart/ChartStatistics.idl b/offapi/com/sun/star/chart/ChartStatistics.idl new file mode 100644 index 0000000000..6a577d7f2d --- /dev/null +++ b/offapi/com/sun/star/chart/ChartStatistics.idl @@ -0,0 +1,144 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module chart { + + +/** offers statistical properties for the data in the chart. It is + available for a single data row and for the whole diagram. + */ +published service ChartStatistics +{ + interface com::sun::star::beans::XPropertySet; + + + /** specifies the lower limit of the error range of a + data row. + +this setting is effective if the + ChartStatistics::ErrorCategory is set to + ChartErrorCategory::CONSTANT_VALUE.
+ + @see ConstantErrorHigh + @see ErrorCategory + */ + [property] double ConstantErrorLow; + + + /** specifies the upper limit of the error range of a + data row. + +this setting is effective if the + ChartStatistics::ErrorCategory is set to + ChartErrorCategory::CONSTANT_VALUE.
+ + @see ConstantErrorLow + @see ErrorCategory + */ + [property] double ConstantErrorHigh; + + + /** determines if the mean value for a data row is + displayed as a line. + */ + [property] boolean MeanValue; + + + /** determines the type of error to indicate. + + @deprecated + + @see ChartErrorCategory + @see PercentageError + @see ErrorMargin + @see ConstantErrorLow + @see ConstantErrorHigh + @see ErrorIndicator + */ + [property] com::sun::star::chart::ChartErrorCategory ErrorCategory; + + /** determines the style of the error bars. Use this instead of + ErrorCategory + + @see ErrorBarStyle + */ + [optional, property] long ErrorBarStyle; + + + /** specifies the percentage that is used to display error bars. + +The length of the error indicators is calculated for each + data point by taking the given percentage of its value.
+ +this setting is effective if the + ChartStatistics::ErrorCategory is set to + ChartErrorCategory::PERCENT.
+ + @see ErrorCategory + */ + [property] double PercentageError; + + + /** specifies the percentage for the margin of errors. + +The length of the error indicators is calculated by taking + the percentage given of the largest data point value.
+ +this setting is effective if the + ChartStatistics::ErrorCategory is set to + ChartErrorCategory::ERROR_MARGIN.
+ + @see ErrorCategory + */ + [property] double ErrorMargin; + + + /** determines how the error is indicated. + +You can enable indicators pointing up, down or both.
+ + @see ErrorCategory + */ + [property] com::sun::star::chart::ChartErrorIndicatorType ErrorIndicator; + + + /** determines a type of regression for the data row values. + + @see ChartRegressionCurveType + */ + [property] com::sun::star::chart::ChartRegressionCurveType RegressionCurves; + + /** contains a cell range string for positive error bars. This + property is used when the ErrorBarCategory is set + to ErrorBarCategory::FROM_DATA. + */ + [optional, property] string ErrorBarRangePositive; + + /** contains a cell range string for negative error bars. This + property is used when the ErrorBarCategory is set + to ErrorBarCategory::FROM_DATA. + */ + [optional, property] string ErrorBarRangeNegative; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart/ChartSymbolType.idl b/offapi/com/sun/star/chart/ChartSymbolType.idl new file mode 100644 index 0000000000..82a9d627e5 --- /dev/null +++ b/offapi/com/sun/star/chart/ChartSymbolType.idl @@ -0,0 +1,115 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module chart { + + +/** These values specify the type of the symbol used for data points. + +This only applies to diagrams that use symbols like line + diagrams.
+ +The default symbols are currently: +
Symbol 0 | a square |
Symbol 1 | a diamond |
Symbol 2 | a triangle pointing down |
Symbol 3 | a triangle pointing up |
Symbol 4 | a triangle pointing right |
Symbol 5 | a triangle pointing left |
Symbol 6 | a bow tie |
Symbol 7 | a rotated bow tie |
The bitmap given by the URL set in the property + ChartDataPointProperties::SymbolBitmapURL is + copied so that the graphic is embedded.
+ + @see ChartDataPointProperties + */ + const long BITMAPURL = -1; + + + /** The default symbol for row 0 is used. + */ + const long SYMBOL0 = 0; + + + /** The default symbol for row 1 is used. + */ + const long SYMBOL1 = 1; + + + /** The default symbol for row 2 is used. + */ + const long SYMBOL2 = 2; + + + /** The default symbol for row 3 is used. + */ + const long SYMBOL3 = 3; + + + /** The default symbol for row 4 is used. + */ + const long SYMBOL4 = 4; + + + /** The default symbol for row 5 is used. + */ + const long SYMBOL5 = 5; + + + /** The default symbol for row 6 is used. + */ + const long SYMBOL6 = 6; + + + /** The default symbol for row 7 is used. + */ + const long SYMBOL7 = 7; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart/ChartTableAddressSupplier.idl b/offapi/com/sun/star/chart/ChartTableAddressSupplier.idl new file mode 100644 index 0000000000..3ce9e6f9de --- /dev/null +++ b/offapi/com/sun/star/chart/ChartTableAddressSupplier.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 . + */ + + +module com { module sun { module star { module chart { + +/** This is a helper service for access to table Address to + cell ranges of the container document of a chart. + + The cell addresses are in the format of the application that + contains this chart. +*/ +published service ChartTableAddressSupplier +{ + /** contains the address to the cells containing + the names of the categories. + + Note: Each value of a data series belongs exactly to one category. + */ + [property] string CategoriesRangeAddress; + + /** contains the addresses to the elements of a series. + This sequence should contain one element for each series in the chart. + + @see ChartSeriesAddress + */ + [property] sequence< com::sun::star::chart::ChartSeriesAddress > SeriesAddresses; + + /** contains the address to the main title. + */ + [optional, property] string MainTitleAddress; + + /** contains the address to the sub title. + + + */ + [optional, property] string SubTitleAddress; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart/ChartTitle.idl b/offapi/com/sun/star/chart/ChartTitle.idl new file mode 100644 index 0000000000..ae36db2f8e --- /dev/null +++ b/offapi/com/sun/star/chart/ChartTitle.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 . + */ + + + module com { module sun { module star { module chart { + + +/** specifies titles in a chart. + +In a chart there may be the following titles: the main title, + the sub title, and axis titles of the x- and y-axis.
+ */ +published service ChartTitle +{ + service com::sun::star::drawing::Shape; + + + /** If this property is `TRUE` the position is calculated by the application automatically. + Setting this property to false will have no effect. Instead use the interface com::sun::star::drawing::XShape + to set a concrete position. + */ + [optional, property] boolean AutomaticPosition; + + + /** If a ChartTitle may be stored as XML element, + this service should be supported in order to preserve unparsed + XML attributes. + + @since OOo 1.1.2 + */ + [optional] service com::sun::star::xml::UserDefinedAttributesSupplier; + + + /** specifies the rotation of the shape in 100th of degrees. + +Especially in three-dimensional charts, this property comes + in handy if you want to align the axis titles with the axis, + which are usually not vertical or horizontal in the + two-dimensional projection.
+ */ + [property] long TextRotation; + + + /** contains the text of the title. + +Note that you cannot change attributes of parts of a + title, e.g., put one word in bold characters. All formatting + affects the entire string.
+ */ + [property] string String; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart/ChartTwoAxisXSupplier.idl b/offapi/com/sun/star/chart/ChartTwoAxisXSupplier.idl new file mode 100644 index 0000000000..86c8cd4075 --- /dev/null +++ b/offapi/com/sun/star/chart/ChartTwoAxisXSupplier.idl @@ -0,0 +1,63 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module chart { + + +/** a helper service for chart documents which supply + primary and secondary x-axes. + */ +published service ChartTwoAxisXSupplier +{ + /** offers access to the axis object + */ + interface com::sun::star::chart::XTwoAxisXSupplier; + + service com::sun::star::chart::ChartAxisXSupplier; + + + /** determines if the secondary x-axis is shown or hidden. + + @see ChartAxis + */ + [property] boolean HasSecondaryXAxis; + + + /** determines for the secondary x-axis + if the labels at the tick marks are shown or hidden. + */ + [property] boolean HasSecondaryXAxisDescription; + + + /** determines if the title of the secondary X-axis is shown or hidden. + + @see ChartTitle + + @since OOo 3.0 + */ + [optional, property] boolean HasSecondaryXAxisTitle; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart/ChartTwoAxisYSupplier.idl b/offapi/com/sun/star/chart/ChartTwoAxisYSupplier.idl new file mode 100644 index 0000000000..ca51253a13 --- /dev/null +++ b/offapi/com/sun/star/chart/ChartTwoAxisYSupplier.idl @@ -0,0 +1,64 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module chart { + + +/** a helper service for chart documents which supply + primary and secondary y-axes. + */ +published service ChartTwoAxisYSupplier +{ + /** offers access to the axis object + */ + interface com::sun::star::chart::XTwoAxisYSupplier; + + service com::sun::star::chart::ChartAxisYSupplier; + + + /** determines if the secondary y-axis is shown or + hidden. + + @see ChartAxis + */ + [property] boolean HasSecondaryYAxis; + + + /** determines for the secondary y-axis + if the labels at the tick marks are shown or hidden. + */ + [property] boolean HasSecondaryYAxisDescription; + + + /** determines if the title of the secondary y-axis is shown or hidden. + + @see ChartTitle + + @since OOo 3.0 + */ + [optional, property] boolean HasSecondaryYAxisTitle; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart/DataLabelPlacement.idl b/offapi/com/sun/star/chart/DataLabelPlacement.idl new file mode 100644 index 0000000000..a26198e738 --- /dev/null +++ b/offapi/com/sun/star/chart/DataLabelPlacement.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 . + */ + + + + module com { module sun { module star { module chart { + + +/** These values specify where the captions/labels of data points are displayed. + */ +published constants DataLabelPlacement +{ + const long AVOID_OVERLAP = 0; + const long CENTER = 1; + const long TOP = 2; + const long TOP_LEFT = 3; + const long LEFT = 4; + const long BOTTOM_LEFT = 5; + const long BOTTOM = 6; + const long BOTTOM_RIGHT = 7; + const long RIGHT = 8; + const long TOP_RIGHT = 9; + const long INSIDE = 10; + const long OUTSIDE = 11; + const long NEAR_ORIGIN = 12; + /** @since LibreOffice 7.0 */ const long CUSTOM = 13; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart/Diagram.idl b/offapi/com/sun/star/chart/Diagram.idl new file mode 100644 index 0000000000..332970198d --- /dev/null +++ b/offapi/com/sun/star/chart/Diagram.idl @@ -0,0 +1,108 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module chart { + + +/** the base service for the diagram of the chart document. + +The diagram is the object that contains the actual plot.
+ +Different Diagram Types, e.g., PieDiagram or + LineDiagram, can be instantiated by the + com::sun::star::lang::XMultiServiceFactory of + the XChartDocument.
+ + */ +published service Diagram +{ + + interface com::sun::star::chart::XDiagram; + + /** Provides easier access to the different axes and their sub elements. + @since OOo 3.4 + */ + [optional] interface com::sun::star::chart::XAxisSupplier; + + /** Provides access to the titles of the secondary X axis and Y axis. + @since OOo 3.0 + */ + [optional] interface com::sun::star::chart::XSecondAxisTitleSupplier; + + /** + @since OOo 3.3 + */ + [optional] interface com::sun::star::chart::XDiagramPositioning; + + + /** If this property is `TRUE` the position is calculated by the application automatically. + Setting this property to false will have no effect. Instead use the interface com::sun::star::drawing::XShape + to set a concrete position (note com::sun::star::chart::XDiagram is derived from com::sun::star::drawing::XShape). + */ + [optional, property] boolean AutomaticPosition; + + + /** If this property is `TRUE` the size is calculated by the application automatically. + Setting this property to false will have no effect. Instead use the interface com::sun::star::drawing::XShape + to set a concrete size (note com::sun::star::chart::XDiagram is derived from com::sun::star::drawing::XShape). + */ + [optional, property] boolean AutomaticSize; + + + interface com::sun::star::beans::XPropertySet; + + + /** If a Diagram may be stored as XML file, this + service should be supported in order to preserve unparsed XML + attributes. + + @since OOo 1.1.2 + */ + [optional] service com::sun::star::xml::UserDefinedAttributesSupplier; + + + /** determines if the data for a data row is contained in the + columns or in the rows of the data array. + + @see ChartDataRowSource + @see ChartDataArray + */ + [property] com::sun::star::chart::ChartDataRowSource DataRowSource; + + + /** specifies how the caption of data points is displayed. + + @see ChartDataCaption + */ + [property] long DataCaption; + + + /** specifies how empty or invalid cells in the provided data should be handled when displayed + + @see MissingValueTreatment + */ + [optional, property] long MissingValueTreatment; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart/Dim3DDiagram.idl b/offapi/com/sun/star/chart/Dim3DDiagram.idl new file mode 100644 index 0000000000..e998ecbfd2 --- /dev/null +++ b/offapi/com/sun/star/chart/Dim3DDiagram.idl @@ -0,0 +1,63 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module chart { + + +/** is a service for diagrams that support the capability to render + themselves as three-dimensional diagrams as well as + two-dimensional ones. + */ +published service Dim3DDiagram +{ + /** gives access to the properties of the wall and floor objects + of the three-dimensional cuboid that contains the actual + diagram. + */ + interface com::sun::star::chart::X3DDisplay; + + /** makes it easy to set suitable defaults for illumination and rotation for 3D charts + */ + [optional] interface ::com::sun::star::chart::X3DDefaultSetter; + + + /** If set to `TRUE`, the chart becomes a three-dimensional + chart. Otherwise it is two-dimensional. + */ + [property] boolean Dim3D; + + /** Perspective of 3D charts ( [0,100] ). + */ + [optional, property] long Perspective; + + /** Horizontal rotation of 3D charts in degrees ( ]-180,180] ). + */ + [optional, property] long RotationHorizontal; + + /** Vertical rotation of 3D charts in degrees ( ]-180,180] ). + */ + [optional, property] long RotationVertical; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart/DonutDiagram.idl b/offapi/com/sun/star/chart/DonutDiagram.idl new file mode 100644 index 0000000000..67c3c8399b --- /dev/null +++ b/offapi/com/sun/star/chart/DonutDiagram.idl @@ -0,0 +1,37 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module chart { + + +/** a service for donut diagrams. + +Donut diagrams are also known as ring diagrams.
+*/ +published service DonutDiagram +{ + service com::sun::star::chart::Diagram; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart/ErrorBarStyle.idl b/offapi/com/sun/star/chart/ErrorBarStyle.idl new file mode 100644 index 0000000000..60e2213311 --- /dev/null +++ b/offapi/com/sun/star/chart/ErrorBarStyle.idl @@ -0,0 +1,87 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module chart { + +/** specifies the style of error indicators. + */ +published constants ErrorBarStyle +{ + /** error indicators are not displayed. + */ + const long NONE = 0; + + /** displays error indicators for the variance of the data. + */ + const long VARIANCE = 1; + + /** displays error indicators for the standard deviation (square + root of variance) of the data. + */ + const long STANDARD_DEVIATION = 2; + + /** the error indicators for all data points have the same + absolute value as length for either direction. + +The values for these are given as absolute numbers in + ChartStatistics::ConstantErrorLow and + ChartStatistics::ConstantErrorHigh
+ + @see ChartStatistics + */ + const long ABSOLUTE = 3; + + /** The length of the error indicators is calculated for each data + point by taking the percentage given as + ChartStatistics::PercentageError of its + value. + + @see ChartStatistics + */ + const long RELATIVE = 4; + + /** The length of the error indicators for all data points is + calculated by taking the percentage given as + ChartStatistics::ErrorMargin of the largest + data point value. + + @see ChartStatistics + */ + const long ERROR_MARGIN = 5; + + /** displays error indicators for the standard error, also known + as the standard deviation of the mean (SDOM). + */ + const long STANDARD_ERROR = 6; + + /** Uses values given by cell ranges of the container document. + +The values for the cell ranges are given in the properties + ChartStatistics::ErrorBarRangePositive for + positive indicators and + ChartStatistics::ErrorBarRangeNegative for + negative indicators.
+ */ + const long FROM_DATA = 7; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart/FilledNetDiagram.idl b/offapi/com/sun/star/chart/FilledNetDiagram.idl new file mode 100644 index 0000000000..65f74c8fc8 --- /dev/null +++ b/offapi/com/sun/star/chart/FilledNetDiagram.idl @@ -0,0 +1,40 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module chart { + + +/** specifies filled net diagrams. @since OOo 3.2 + +Net diagrams are also known as radar diagrams.
+ */ +published service FilledNetDiagram +{ + service com::sun::star::chart::Diagram; + service com::sun::star::chart::ChartAxisXSupplier; + service com::sun::star::chart::ChartAxisYSupplier; + service com::sun::star::chart::StackableDiagram; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart/LineDiagram.idl b/offapi/com/sun/star/chart/LineDiagram.idl new file mode 100644 index 0000000000..8ca0df15fe --- /dev/null +++ b/offapi/com/sun/star/chart/LineDiagram.idl @@ -0,0 +1,124 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module chart { + + +/** specifies line, spline and symbol diagrams. + */ +published service LineDiagram +{ + service com::sun::star::chart::Diagram; + service com::sun::star::chart::ChartStatistics; + service com::sun::star::chart::ChartAxisXSupplier; + service com::sun::star::chart::ChartTwoAxisYSupplier; + service com::sun::star::chart::ChartAxisZSupplier; + service com::sun::star::chart::Dim3DDiagram; + service com::sun::star::chart::StackableDiagram; + + + /** determines which type of symbols are displayed. + +In this interface, only the two values + ChartSymbolType::NONE and + ChartSymbolType::AUTO are supported. Later + versions may support the selection of the symbols shape.
+ +If you set this property to + ChartSymbolType::AUTO, you can change the + symbol shape for objects supporting the service + ChartDataPointProperties or + ChartDataRowProperties.
+ + @see ChartDataPointProperties + @see ChartDataRowProperties + */ + [property] long SymbolType; + + + /** specifies the size of symbols in 1/100th of a millimeter. + */ + [optional, property] com::sun::star::awt::Size SymbolSize; + + + /** Set this property to any valid URL that points to a graphic + file. This graphic is then used as symbol for all series. + +When you query this value you get an internal URL of the + embedded graphic.
+ + @deprecated + @see ChartSymbolType + */ + [optional, property] string SymbolBitmapURL; + + + /** determines if the chart type has lines connecting the data + points or contains just symbols. + */ + [property] boolean Lines; + + + /** determines if the chart is a spline-chart type and specifies + the type of splines. + + @see CurveStyle +You can set the following values: +
0 | lines are used instead of splines |
1 | use cubic splines |
2 | use B-splines |
3 | use stepped line with step start |
4 | use stepped line with step end |
5 | use stepped line with step center x |
6 | use stepped line with step center y |
Net diagrams are also known as radar diagrams.
+ */ +published service NetDiagram +{ + service com::sun::star::chart::Diagram; + service com::sun::star::chart::StackableDiagram; + service com::sun::star::chart::ChartAxisYSupplier; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart/PieDiagram.idl b/offapi/com/sun/star/chart/PieDiagram.idl new file mode 100644 index 0000000000..5db0359d77 --- /dev/null +++ b/offapi/com/sun/star/chart/PieDiagram.idl @@ -0,0 +1,36 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module chart { + + +/** a service for pie diagrams. + */ +published service PieDiagram +{ + service com::sun::star::chart::Diagram; + service com::sun::star::chart::Dim3DDiagram; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart/StackableDiagram.idl b/offapi/com/sun/star/chart/StackableDiagram.idl new file mode 100644 index 0000000000..f5284c85c0 --- /dev/null +++ b/offapi/com/sun/star/chart/StackableDiagram.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 . + */ + + + + module com { module sun { module star { module chart { + + +/** + +a helper service for stackable chart types (e.g., charts in + which the data rows may be displayed stacked on each other or in + percent relation). + */ +published service StackableDiagram +{ + + /** If `TRUE`, the series of the diagram are stacked and each + category sums up to 100%. + */ + [property] boolean Percent; + + + /** If `TRUE`, the series of the diagram are stacked. + +If you have a stacked bar chart, you can easily determine + the sum of data in each category, by taking the top of the + topmost bar.
+ */ + [property] boolean Stacked; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart/StockDiagram.idl b/offapi/com/sun/star/chart/StockDiagram.idl new file mode 100644 index 0000000000..c920197c44 --- /dev/null +++ b/offapi/com/sun/star/chart/StockDiagram.idl @@ -0,0 +1,116 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module chart { + + +/** specifies a diagram which can be used for presenting stock quotes. + +Note that the data must have a specific structure for stock + diagrams. Let us assume that data is interpreted, such that + series are taken from columns (see property + Diagram::DataRowSource). Then you need tables of + the following structures for different types:
+ +
+ StockDiagram::Volume is `FALSE`
+ StockDiagram::UpDown is `FALSE`
+
+
Low | High | Close |
... | ... | ... |
+ StockDiagram::Volume is `TRUE`
+ StockDiagram::UpDown is `FALSE`
+
+
Volume | Low | High | Close |
... | ... | ... | ... |
+ StockDiagram::Volume is `FALSE`
+ StockDiagram::UpDown is `TRUE`
+
+
Open | Low | High | Close |
... | ... | ... | ... |
+ StockDiagram::Volume is `TRUE`
+ StockDiagram::UpDown is `TRUE`
+
+
Volume | Open | Low | High | Close |
... | ... | ... | ... | ... |
The values of the volume are represented as columns like + those of a BarDiagram.
+ +If this property is set to `TRUE`, the values of the first + series of the chart data are interpreted as volume.
+ */ + [property] boolean Volume; + + + /** indicates if a stock chart contains data representing the + value of stocks on the opening and closing date. + +The difference will be indicated by bars. The color + of the bar will be significant for positive or negative + differences between open and closed data.
+ +If this property is `FALSE`, the values of the first + series (or second if StockDiagram::Volume is + `TRUE`) of the chart data are interpreted as the day's lowest + value. The next series is interpreted as the day's highest + value, and the last series is interpreted as the closing + value.
+ +If this property is set to `TRUE`, one additional series + is needed with the opening value of the stocks. It is assumed + as the series before the series with the day's lowest + value.
+ */ + [property] boolean UpDown; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart/TimeIncrement.idl b/offapi/com/sun/star/chart/TimeIncrement.idl new file mode 100644 index 0000000000..e27dd053bd --- /dev/null +++ b/offapi/com/sun/star/chart/TimeIncrement.idl @@ -0,0 +1,52 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module chart { + + +/** A TimeIncrement describes how tickmarks are positioned on the scale of a date-time axis. +@since OOo 3.4 +*/ +published struct TimeIncrement +{ + /** if the any contains a struct of type ::com::sun::star::chart::TimeInterval + this is used as a fixed distance value for the major tickmarks. Otherwise, if the any is empty or contains an + incompatible type, the distance between major tickmarks is calculated automatically by the application. + */ + any MajorTimeInterval; + + /** if the any contains a struct of type ::com::sun::star::chart::TimeInterval + this is used as a fixed distance value for the minor tickmarks. Otherwise, if the any is empty or contains an + incompatible type, the distance between minor tickmarks is calculated automatically by the application. + */ + any MinorTimeInterval; + + /** if the any contains a constant of type ::com::sun::star::chart::TimeUnit + this is the smallest time unit that is displayed on the date-time axis. + Otherwise, if the any is empty or contains an incompatible type, + the resolution is chosen automatically by the application. + */ + any TimeResolution; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart/TimeInterval.idl b/offapi/com/sun/star/chart/TimeInterval.idl new file mode 100644 index 0000000000..cf8574cd0e --- /dev/null +++ b/offapi/com/sun/star/chart/TimeInterval.idl @@ -0,0 +1,42 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module chart { + + +/** Describes an interval on a date-axis +@since OOo 3.4 +*/ +published struct TimeInterval +{ + /** specifies the number of units + */ + long Number; + + /** specifies a unit for the interval +is a value out of the constant group ::com::sun::star::chart::TimeUnit.
+ */ + long TimeUnit; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart/TimeUnit.idl b/offapi/com/sun/star/chart/TimeUnit.idl new file mode 100644 index 0000000000..05bbe093aa --- /dev/null +++ b/offapi/com/sun/star/chart/TimeUnit.idl @@ -0,0 +1,37 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module chart { + + +/** Specifies a unit for intervals on a date-time axis +@since OOo 3.4 + */ +published constants TimeUnit +{ + const long DAY = 0; + const long MONTH = 1; + const long YEAR = 2; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart/X3DDefaultSetter.idl b/offapi/com/sun/star/chart/X3DDefaultSetter.idl new file mode 100644 index 0000000000..a51859c4a1 --- /dev/null +++ b/offapi/com/sun/star/chart/X3DDefaultSetter.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 . + */ + + + + module com { module sun { module star { module chart { + + +/** makes it easy to set suitable defaults for illumination and rotation for 3D charts + + @see Dim3DDiagram + */ +published interface X3DDefaultSetter : com::sun::star::uno::XInterface +{ + /** The result may depend on the current chart type and the current shade mode. + */ + void set3DSettingsToDefault(); + + /** sets a suitable default for the rotation of the current 3D chart. + The result may depend on the current chart type. + */ + void setDefaultRotation(); + + /** set suitable defaults for the illumination of the current 3D chart. + The result may dependent on other 3D settings as rotation or shade mode. It may depend on the current chart type also. + */ + void setDefaultIllumination(); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart/X3DDisplay.idl b/offapi/com/sun/star/chart/X3DDisplay.idl new file mode 100644 index 0000000000..d69fb2b1cc --- /dev/null +++ b/offapi/com/sun/star/chart/X3DDisplay.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 . + */ + + + + module com { module sun { module star { module chart { + + +/** gives access to 3D elements of a three-dimensional chart. + + @see Dim3DDiagram + */ +published interface X3DDisplay: com::sun::star::uno::XInterface +{ + + /** @returns + the properties of the diagram wall(s). + +This specifies the properties of the two side walls of the + chart scene.
+ +Note that this property is also valid for two-dimensional + diagrams. There the properties returned here affect the + background rectangle of the diagram.
+ + @see ChartArea + */ + com::sun::star::beans::XPropertySet getWall(); + + + /** @returns + the properties of the floor. + +This is only valid for three-dimensional diagrams.
+ + @see ChartArea + */ + com::sun::star::beans::XPropertySet getFloor(); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart/XAxis.idl b/offapi/com/sun/star/chart/XAxis.idl new file mode 100644 index 0000000000..27fecc859b --- /dev/null +++ b/offapi/com/sun/star/chart/XAxis.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 . + */ + +module com { module sun { module star { module chart { + +/** Allows easier access to the different subelements of an axis. +@since OOo 3.4 +*/ + +interface XAxis : ::com::sun::star::uno::XInterface +{ + /** @returns + the title of the axis. The returned object supports the properties described in service ChartTitle. + */ + com::sun::star::beans::XPropertySet getAxisTitle(); + + /** @returns + the properties of the major grid of the axis. The returned object supports service ChartGrid. + */ + com::sun::star::beans::XPropertySet getMajorGrid(); + + /** @returns + the properties of the minor grid of the axis. The returned object supports service ChartGrid. + */ + com::sun::star::beans::XPropertySet getMinorGrid(); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart/XAxisSupplier.idl b/offapi/com/sun/star/chart/XAxisSupplier.idl new file mode 100644 index 0000000000..02e959040c --- /dev/null +++ b/offapi/com/sun/star/chart/XAxisSupplier.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 . + */ + +module com { module sun { module star { module chart { + +/** Easier access to the different axes within a chart. +@since OOo 3.4 +*/ + +interface XAxisSupplier : ::com::sun::star::uno::XInterface +{ + /** @returns + the primary axis of the specified dimension. The returned object supports service ChartAxis. + + @param nDimensionIndex + Parameter nDimensionIndex says whether it is a x, y or z-axis (0 for x). + */ + com::sun::star::chart::XAxis getAxis( [in] long nDimensionIndex ); + + /** @returns + the secondary axis of the specified dimension. The returned object supports service ChartAxis. + + @param nDimensionIndex + Parameter nDimensionIndex says whether it is a x, y or z-axis (0 for x). + */ + com::sun::star::chart::XAxis getSecondaryAxis( [in] long nDimensionIndex ); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart/XAxisXSupplier.idl b/offapi/com/sun/star/chart/XAxisXSupplier.idl new file mode 100644 index 0000000000..d1e7d438cf --- /dev/null +++ b/offapi/com/sun/star/chart/XAxisXSupplier.idl @@ -0,0 +1,76 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module chart { + + +/** gives access to the x-axis of a chart. + +Note that not all diagrams are capable of displaying an + x-axis, e.g., the PieDiagram.
+ + @see XDiagram + */ +published interface XAxisXSupplier: com::sun::star::uno::XInterface +{ + + /** @returns + the x-axis title shape. + + @see ChartTitle + */ + com::sun::star::drawing::XShape getXAxisTitle(); + + + /** @returns + the properties of the x-axis of the diagram. + +The returned property set contains scaling properties as + well as formatting properties.
+ + @see ChartAxis + */ + com::sun::star::beans::XPropertySet getXAxis(); + + + /** @returns + the properties of the main grid (major grid) of the + x-axis of the diagram. + + @see ChartGrid + */ + com::sun::star::beans::XPropertySet getXMainGrid(); + + + /** @returns + the properties of the help grid (minor grid) of the + x-axis of the diagram. + + @see ChartGrid + */ + com::sun::star::beans::XPropertySet getXHelpGrid(); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart/XAxisYSupplier.idl b/offapi/com/sun/star/chart/XAxisYSupplier.idl new file mode 100644 index 0000000000..56db0c5191 --- /dev/null +++ b/offapi/com/sun/star/chart/XAxisYSupplier.idl @@ -0,0 +1,76 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module chart { + + +/** gives access to the y-axis of a chart. + +Note that not all diagrams are capable of displaying a + y-axis, e.g., the PieDiagram.
+ + @see XDiagram + */ +published interface XAxisYSupplier: com::sun::star::uno::XInterface +{ + + /** @returns + the y-axis title shape. + + @see ChartTitle + */ + com::sun::star::drawing::XShape getYAxisTitle(); + + + /** @returns + the properties of the y-axis of the diagram. + +The returned property set contains scaling properties as + well as formatting properties.
+ + @see ChartAxis + */ + com::sun::star::beans::XPropertySet getYAxis(); + + + /** @returns + the properties of the help grid (minor grid) of the + y-axis of the diagram. + + @see ChartGrid + */ + com::sun::star::beans::XPropertySet getYHelpGrid(); + + + /** @returns + the properties of the main grid (major grid) of the + y-axis of the diagram. + + @see ChartGrid + */ + com::sun::star::beans::XPropertySet getYMainGrid(); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart/XAxisZSupplier.idl b/offapi/com/sun/star/chart/XAxisZSupplier.idl new file mode 100644 index 0000000000..b807b66981 --- /dev/null +++ b/offapi/com/sun/star/chart/XAxisZSupplier.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 . + */ + + + + module com { module sun { module star { module chart { + + +/** gives access to the z-axis of a chart. + + @see XDiagram + */ +published interface XAxisZSupplier: com::sun::star::uno::XInterface +{ + + /** @returns + the z-axis title shape. + + @see ChartTitle + */ + com::sun::star::drawing::XShape getZAxisTitle(); + + + /** @returns + the properties of the main grid (major grid) of the + z-axis of the diagram. + + @see ChartGrid + */ + com::sun::star::beans::XPropertySet getZMainGrid(); + + + /** @returns + the properties of the help grid (minor grid) of the + z-axis of the diagram. + + @see ChartGrid + */ + com::sun::star::beans::XPropertySet getZHelpGrid(); + + + /** @returns + the properties of the z-axis of the diagram. + +The returned property set contains scaling properties as + well as formatting properties.
+ + @see ChartAxis + */ + com::sun::star::beans::XPropertySet getZAxis(); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart/XChartData.idl b/offapi/com/sun/star/chart/XChartData.idl new file mode 100644 index 0000000000..4de04058f7 --- /dev/null +++ b/offapi/com/sun/star/chart/XChartData.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 . + */ + + + + module com { module sun { module star { module chart { + + +/** manages the data of the chart. + + @see XChartDocument + */ +published interface XChartData: com::sun::star::uno::XInterface +{ + + /** allows a component supporting the + XChartDataChangeEventListener interface to + register as listener. The component will be notified with a + ChartDataChangeEvent every time the chart's data + changes. + + @param aListener + the component that is to be added as listener + + @see XChartDataChangeEventListener + @see ChartDataChangeEvent + */ + void addChartDataChangeEventListener( [in] com::sun::star::chart::XChartDataChangeEventListener aListener ); + + + /** removes a previously registered listener. + + @param aListener + the component that is to be removed + */ + void removeChartDataChangeEventListener( [in] com::sun::star::chart::XChartDataChangeEventListener aListener ); + + + /** @returns + the value which is to be used as an indicator for a + missing value in the data. + +In IEEE arithmetic format it is one of the NaN values, so + there are no conflicts with existing numeric values.
+ */ + double getNotANumber(); + + + /** checks whether the value given is equal to the indicator value + for a missing value. + +In IEEE arithmetic format it is one of the NaN values, so + there are no conflicts with existing numeric values.
+ +Always use this method to check, if a value is not a + number. If you compare the value returned by + XChartData::getNotANumber() to another double + value using the = operator, you may not get the desired + result!
+ + @returns + `TRUE` if the number given is interpreted by the chart as + a missing value. + + @param nNumber + the number that you want to check for validity. + */ + boolean isNotANumber( [in] double nNumber ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart/XChartDataArray.idl b/offapi/com/sun/star/chart/XChartDataArray.idl new file mode 100644 index 0000000000..c2b0ccf48b --- /dev/null +++ b/offapi/com/sun/star/chart/XChartDataArray.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 . + */ + + + module com { module sun { module star { module chart { + + +/** gives access to data represented as an array of rows. + +Can be obtained from interface XChartDocument via method getData().
+ +If used for an XYDiagram, the row number 0 + represents the x-values.
+ */ +published interface XChartDataArray: XChartData +{ + + /** retrieves the numerical data as a nested sequence of values. + + @returns + the values as a sequence of sequences. The inner sequence + represents rows. + */ + sequence< sequence< double > > getData(); + + + /** sets the chart data as an array of numbers. + + @param aData + the values as a sequence of sequences. The inner sequence + represents rows. + */ + void setData( [in] sequence< sequence< double > > aData ); + + + /** retrieves the description texts for all rows. + + @returns + a sequence of strings, each representing the description + of a row. + */ + sequence< string > getRowDescriptions(); + + + /** sets the description texts for all rows. + + @param aRowDescriptions + a sequence of strings which represent a description for + each row. + */ + void setRowDescriptions( [in] sequence< string > aRowDescriptions ); + + + /** retrieves the description texts for all columns. + + @returns + a sequence of strings, each representing the description + of a column. + */ + sequence< string > getColumnDescriptions(); + + + /** sets the description texts for all columns. + + @param aColumnDescriptions + a sequence of strings which represent a description for + each column. + */ + void setColumnDescriptions( [in] sequence< string > aColumnDescriptions ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart/XChartDataChangeEventListener.idl b/offapi/com/sun/star/chart/XChartDataChangeEventListener.idl new file mode 100644 index 0000000000..aacfc96dc0 --- /dev/null +++ b/offapi/com/sun/star/chart/XChartDataChangeEventListener.idl @@ -0,0 +1,49 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module chart { + + +/** makes it possible to receive events when chart data changes. + */ +published interface XChartDataChangeEventListener: com::sun::star::lang::XEventListener +{ + + /** is called whenever chart data changes in value or structure. + +This interface must be implemented by components that wish + to get notified of changes in chart data. They can be + registered at an XChartData component.
+ + @param aEvent + the event that gives further information on what changed. + + @see ChartDataChangeEvent + @see XChartData + */ + void chartDataChanged( [in] com::sun::star::chart::ChartDataChangeEvent aEvent ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart/XChartDocument.idl b/offapi/com/sun/star/chart/XChartDocument.idl new file mode 100644 index 0000000000..9b1c759a31 --- /dev/null +++ b/offapi/com/sun/star/chart/XChartDocument.idl @@ -0,0 +1,146 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module chart { + + +/** manages the chart document. + + @see XDiagram + @see XChartData + */ +published interface XChartDocument: com::sun::star::frame::XModel +{ + + /** @returns + the shape of the main title of the chart document. + + @see ChartTitle + */ + com::sun::star::drawing::XShape getTitle(); + + + /** @returns + the shape of the subtitle of the chart document. + +Usually the subtitle is smaller than the main title by + default. And it is most commonly placed below the main title + by default.
+ + @see ChartTitle + */ + com::sun::star::drawing::XShape getSubTitle(); + + + /** @returns + the shape of the legend of the chart document. + + @see ChartLegend + */ + com::sun::star::drawing::XShape getLegend(); + + + /** @returns + the properties of the background area of the chart document. + +The area's extent is equal to the document size. If you + want to access properties of the background area of the + diagram, in which the actual data is represented, you have to + change the chart wall which you get from the + X3DDisplay.
+ + @see ChartArea + @see X3DDisplay + */ + com::sun::star::beans::XPropertySet getArea(); + + + /** @returns + the diagram of the chart document. + + @see Diagram + */ + com::sun::star::chart::XDiagram getDiagram(); + + + /** sets the diagram for the chart document. + +Setting a new diagram implicitly disposes the previous + diagram.
+ + @param xDiagram + the new diagram that should be set for the chart. To + create such a diagram component, you can use the + com::sun::star::lang::XMultiServiceFactory, + which should be implemented by an + XChartDocument. + */ + void setDiagram( [in] com::sun::star::chart::XDiagram xDiagram ); + + + /** @returns + the data of the chart. + +The returned object supports interface XChartDataArray + which can be used to access the concrete data.
+ +Since OOo 3.3 the returned object also supports interface XComplexDescriptionAccess + which can be used to access complex hierarchical axis descriptions.
+ +Since OOo 3.4 the returned object also supports interface XDateCategories.
+ + @see XChartData + @see XChartDataArray + @see XComplexDescriptionAccess + @see XDateCategories + */ + com::sun::star::chart::XChartData getData(); + + + /** attaches data to the chart. + +The given object needs to support interface XChartDataArray.
+ +Since OOo 3.3 if the given object might support interface XComplexDescriptionAccess + which allows to set complex hierarchical axis descriptions.
+ +Since OOo 3.4 if the given object might support interface XDateCategories + which allows to set date values as x values for category charts.
+ +The given data is copied before it is applied to the chart. + So changing xData after this call will have no effect on the chart.
+ + @see XChartData + @see XChartDataArray + @see XComplexDescriptionAccess + @see XDateCategories + + @param xData + the object that provides the new data. + */ + void attachData( [in] com::sun::star::chart::XChartData xData ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart/XComplexDescriptionAccess.idl b/offapi/com/sun/star/chart/XComplexDescriptionAccess.idl new file mode 100644 index 0000000000..7181e82fca --- /dev/null +++ b/offapi/com/sun/star/chart/XComplexDescriptionAccess.idl @@ -0,0 +1,77 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module chart { + + +/** Offers access to complex column and row descriptions. + +Can be obtained from interface XChartDocument via method getData().
+ +@since OOo 3.3 +*/ + +published interface XComplexDescriptionAccess : XChartDataArray +{ + + /** retrieves the description texts for all rows. + + @returns + a sequence of sequences of strings representing the descriptions + of all rows. The outer index represents different rows. + The inner index represents the different levels (usually there is only one). + */ + sequence< sequence< string > > getComplexRowDescriptions(); + + + /** sets the description texts for all rows. + + @param rRowDescriptions + a sequence of sequences of strings representing the descriptions of all + rows. The outer index represents different rows. + The inner index represents the different levels (usually there is only one). + */ + void setComplexRowDescriptions( [in] sequence< sequence< string > > rRowDescriptions ); + + + /** retrieves the description texts for all columns. + + @returns + a sequence of sequences of strings representing the descriptions + of all columns. The outer index represents different columns. + The inner index represents the different levels (usually there is only one). + */ + sequence< sequence< string > > getComplexColumnDescriptions(); + + + /** sets the description texts for all columns. + + @param rColumnDescriptions + a sequence of sequences of strings which represent the descriptions of + all columns. The outer index represents different columns. + The inner index represents the different levels (usually there is only one). + */ + void setComplexColumnDescriptions( [in] sequence< sequence< string > > rColumnDescriptions ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart/XDateCategories.idl b/offapi/com/sun/star/chart/XDateCategories.idl new file mode 100644 index 0000000000..7868818925 --- /dev/null +++ b/offapi/com/sun/star/chart/XDateCategories.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 . + */ + + + module com { module sun { module star { module chart { + + +/** Allows to set date values as categories. + +Can be obtained from interface XChartDocument via method getData().
+ +@since OOo 3.4 +*/ + +published interface XDateCategories +{ + + /** sets dates as categories + + @param rDates + a sequence of sequences of doubles representing dates. + */ + void setDateCategories( [in] sequence< double > rDates ); + + + /** retrieves the date values if the category x-axis id a date axis + + @returns + a sequence of doubles representing dates. + */ + sequence< double > getDateCategories(); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart/XDiagram.idl b/offapi/com/sun/star/chart/XDiagram.idl new file mode 100644 index 0000000000..47cf5bba7d --- /dev/null +++ b/offapi/com/sun/star/chart/XDiagram.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 . + */ + + + module com { module sun { module star { module chart { + + +/** manages the diagram of the chart document. + + @see XChartDocument + */ +published interface XDiagram: com::sun::star::drawing::XShape +{ + + /** @returns + a string representing the diagram type. This string + contains the fully qualified name of the corresponding + service. + */ + string getDiagramType(); + + + /** @returns + the properties of the specified data row (series). + + @param nRow + the index of the series (0-based) + + @see ChartDataRowProperties + */ + com::sun::star::beans::XPropertySet getDataRowProperties( [in] long nRow ) + raises( com::sun::star::lang::IndexOutOfBoundsException ); + + + /** @returns + the properties of the specified data point. + + @param nCol + the index of the data point of a series (0-based). + @param nRow + the index of a series (0-based). + + @see ChartDataPointProperties + */ + com::sun::star::beans::XPropertySet getDataPointProperties( [in] long nCol, + [in] long nRow ) + raises( com::sun::star::lang::IndexOutOfBoundsException ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart/XDiagramPositioning.idl b/offapi/com/sun/star/chart/XDiagramPositioning.idl new file mode 100644 index 0000000000..7f0f498d37 --- /dev/null +++ b/offapi/com/sun/star/chart/XDiagramPositioning.idl @@ -0,0 +1,84 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module chart { + + +/** allow for different positioning options for a diagram + + @see Diagram + */ +interface XDiagramPositioning : com::sun::star::uno::XInterface +{ + /** the diagram will be placed automatically + */ + void setAutomaticDiagramPositioning(); + + /** @returns whether the diagram is placed automatically + */ + boolean isAutomaticDiagramPositioning(); + + /** place the inner diagram part excluding any axes, labels and titles + @param PositionRect + specifies the position and size in 100/th mm + */ + void setDiagramPositionExcludingAxes( [in] com::sun::star::awt::Rectangle PositionRect ); + + /** @returns true in case the diagram position was set with method setDiagramPositionExcludingAxes + */ + boolean isExcludingDiagramPositioning(); + + /** @returns the position rectangle of the inner diagram part excluding any axes, labels and titles. + Position and size are given in 100/th mm. + It might be necessary to calculate the positioning so this method can be expensive and the result may depend on different other settings. + */ + com::sun::star::awt::Rectangle calculateDiagramPositionExcludingAxes(); + + + /** place the outer diagram part including the axes and axes labels, but excluding the axes titles. + @param PositionRect + specifies the position and size in 100/th mm + */ + void setDiagramPositionIncludingAxes( [in] com::sun::star::awt::Rectangle PositionRect ); + + /** @returns the position rectangle of the diagram including the axes and axes labels, but excluding the axes titles. + Position and size are given in 100/th mm. + It might be necessary to calculate the positioning so this method can be expensive and the result may depend on different other settings. + */ + com::sun::star::awt::Rectangle calculateDiagramPositionIncludingAxes(); + + /** place the diagram including the axes, axes labels and axes titles. + For the placement the current axis titles are taken into account, so the titles must be initialized properly before this method is called. + @param PositionRect + specifies the position and size in 100/th mm + */ + void setDiagramPositionIncludingAxesAndAxisTitles( [in] com::sun::star::awt::Rectangle PositionRect ); + + /** @returns the position rectangle of the diagram including the axes, axes labels and axes titles. + Position and size are given in 100/th mm. + It might be necessary to calculate the positioning so this method can be expensive and the result may depend on different other settings. + */ + com::sun::star::awt::Rectangle calculateDiagramPositionIncludingAxesAndAxisTitles(); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart/XSecondAxisTitleSupplier.idl b/offapi/com/sun/star/chart/XSecondAxisTitleSupplier.idl new file mode 100644 index 0000000000..02b838ce73 --- /dev/null +++ b/offapi/com/sun/star/chart/XSecondAxisTitleSupplier.idl @@ -0,0 +1,32 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module chart { + +interface XSecondAxisTitleSupplier: com::sun::star::uno::XInterface +{ + com::sun::star::drawing::XShape getSecondXAxisTitle(); + + com::sun::star::drawing::XShape getSecondYAxisTitle(); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart/XStatisticDisplay.idl b/offapi/com/sun/star/chart/XStatisticDisplay.idl new file mode 100644 index 0000000000..807115f171 --- /dev/null +++ b/offapi/com/sun/star/chart/XStatisticDisplay.idl @@ -0,0 +1,75 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module chart { + + +/** gives access to statistical elements for the chart. + +Statistical elements are used by a + StockDiagram.
+ + @see XChartDocument + @see StockDiagram + */ +published interface XStatisticDisplay: com::sun::star::uno::XInterface +{ + + /** @returns + the properties of the up bars of a stock chart which has + StockDiagram::UpDown set to `TRUE`. + +The UpBar is the box that is drawn between the + open and close value of a stock, when the closing value is + above the opening value, i.e., the stock price rose.
+ + @see ChartArea + */ + com::sun::star::beans::XPropertySet getUpBar(); + + + /** @returns + the properties of the down bars of a stock chart which has + StockDiagram::UpDown set to `TRUE`. + +The DownBar is the box that is drawn between the + open and close value of a stock, when the closing value is + below the opening value, i.e., the stock price fell.
+ + @see ChartArea + */ + com::sun::star::beans::XPropertySet getDownBar(); + + + /** @returns + the properties of the lines that are drawn between the + lowest and highest stock value during a day. + + @see ChartLine + */ + com::sun::star::beans::XPropertySet getMinMaxLine(); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart/XTwoAxisXSupplier.idl b/offapi/com/sun/star/chart/XTwoAxisXSupplier.idl new file mode 100644 index 0000000000..0bec4fe712 --- /dev/null +++ b/offapi/com/sun/star/chart/XTwoAxisXSupplier.idl @@ -0,0 +1,49 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module chart { + + +/** gives access to both the primary and the secondary x-axis + of a chart. + + @see XDiagram + */ +published interface XTwoAxisXSupplier: com::sun::star::chart::XAxisXSupplier +{ + + /** @returns + the properties of the secondary x-axis of the + diagram. + +The returned property set contains scaling properties as + well as formatting properties.
+ + @see ChartAxis + */ + com::sun::star::beans::XPropertySet getSecondaryXAxis(); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart/XTwoAxisYSupplier.idl b/offapi/com/sun/star/chart/XTwoAxisYSupplier.idl new file mode 100644 index 0000000000..b3d8620377 --- /dev/null +++ b/offapi/com/sun/star/chart/XTwoAxisYSupplier.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 . + */ + + + + module com { module sun { module star { module chart { + + +/** gives access to both the primary and the secondary y-axis of a diagram.@see XChartDocument + */ +published interface XTwoAxisYSupplier: com::sun::star::chart::XAxisYSupplier +{ + + /** @returns + the properties of the secondary y-axis of the + diagram. + +The returned property set contains scaling properties as + well as formatting properties.
+ + @see ChartAxis + */ + com::sun::star::beans::XPropertySet getSecondaryYAxis(); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart/XYDiagram.idl b/offapi/com/sun/star/chart/XYDiagram.idl new file mode 100644 index 0000000000..5f6fffe3a3 --- /dev/null +++ b/offapi/com/sun/star/chart/XYDiagram.idl @@ -0,0 +1,44 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module chart { + + +/** a service for X/Y diagrams (Also known as scatter charts). + +The special thing about X/Y diagrams is that the first series + of data contains x-values. The other series contain + y-values. Together both form two-dimensional coordinates, + at which data points are placed.
+ */ +published service XYDiagram +{ + service com::sun::star::chart::Diagram; + service com::sun::star::chart::ChartStatistics; + service com::sun::star::chart::ChartAxisXSupplier; + service com::sun::star::chart::ChartTwoAxisYSupplier; + service com::sun::star::chart::LineDiagram; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/Axis.idl b/offapi/com/sun/star/chart2/Axis.idl new file mode 100644 index 0000000000..83bff4d834 --- /dev/null +++ b/offapi/com/sun/star/chart2/Axis.idl @@ -0,0 +1,142 @@ +/* -*- 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 . + */ + +module com +{ +module sun +{ +module star +{ +module chart2 +{ + +service Axis +{ + service ::com::sun::star::drawing::LineProperties; + + service ::com::sun::star::style::CharacterProperties; + service ::com::sun::star::beans::PropertySet; + [optional] service ::com::sun::star::style::CharacterPropertiesAsian; + [optional] service ::com::sun::star::style::CharacterPropertiesComplex; + + interface ::com::sun::star::chart2::XAxis; + [optional] interface ::com::sun::star::chart2::XTitled; + + /** Determines, whether the axis should be rendered by the view. + */ + [property] boolean Show; + + /** Determines where the axis crosses the other axis. + */ + [optional, property] com::sun::star::chart::ChartAxisPosition CrossoverPosition; + + /** Determines the scale value on the other axis when CrossoverPosition is set to VALUE. + */ + [optional, property] double CrossoverValue; + + /** Determines whether to display text at the axis or not. + */ + [property] boolean DisplayLabels; + + /** Determines where the axis labels are placed. + */ + [optional, property] com::sun::star::chart::ChartAxisLabelPosition LabelPosition; + + /** Determines how to stagger the labels at the axis (side by side, even, odd, auto ) + */ + [property] ::com::sun::star::chart::ChartAxisArrangeOrderType ArrangeOrder; + + /** Determines whether the labels are allowed to break into more than one line + */ + [property] boolean TextBreak; + + /** Determines whether the labels are allowed to overlap + */ + [property] boolean TextOverlap; + + /** Determines whether the characters in a single labels should be stacked one upon each other + */ + [property] boolean StackCharacters; + + /** Determines the rotation of the text labels in degrees + */ + [property] double TextRotation; + + /** A NumberFormat key. + +If this property is not set, it is treated as auto. This + means linked to the source format.
+ +To determine a source format, the axis can query the + XDataSequences used by the data series attached + to it (see XDataSequence::getNumberFormatKeyByIndex()). +
+ */ + [property, maybevoid] long NumberFormat; + + [property] ::com::sun::star::awt::Size ReferencePageSize; + + /** determines what kind of tickmarks should be shown for major ticks. + + @see TickmarkStyle. + */ + [property] long MajorTickmarks; + + /** determines what kind of tickmarks should be shown for minor ticks. + + @see TickmarkStyle. + */ + [property] long MinorTickmarks; + + /** Determines where the interval marks are placed. + */ + [optional, property] com::sun::star::chart::ChartAxisMarkPosition MarkPosition; + + /** Determines display units are available for axis + + @since LibreOffice 4.3 + */ + [optional, property] boolean DisplayUnits; + + /** Determines built in display unit value for axis + + @since LibreOffice 4.3 + */ + [optional, property] string BuiltInUnit; + + /** Compatibility option: determines which strategy should be tried first for fixing axis labels overlapping issues + + @since LibreOffice 5.1 + */ + [optional, property] boolean TryStaggeringFirst; + + /** This attribute specifies the shift of the first major tick from the origin. + + @since LibreOffice 7.0 + */ + [optional, property] long MajorOrigin; + +}; + +} ; // chart2 +} ; // com +} ; // sun +} ; // star + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/AxisOrientation.idl b/offapi/com/sun/star/chart2/AxisOrientation.idl new file mode 100644 index 0000000000..1cb59968f4 --- /dev/null +++ b/offapi/com/sun/star/chart2/AxisOrientation.idl @@ -0,0 +1,38 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module chart2 { + + +enum AxisOrientation +{ + /** means equal to the primary writing direction + */ + MATHEMATICAL, + + /** means the opposite of the primary writing direction + */ + REVERSE +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/AxisType.idl b/offapi/com/sun/star/chart2/AxisType.idl new file mode 100644 index 0000000000..b23e6a51fb --- /dev/null +++ b/offapi/com/sun/star/chart2/AxisType.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 . + */ + +module com +{ +module sun +{ +module star +{ +module chart2 +{ + +constants AxisType +{ + /** the axis represent real numbers + */ + const long REALNUMBER = 0; + /** the axis represent real numbers in percent + */ + const long PERCENT = 1; + /** the axis represent discrete categories + */ + const long CATEGORY = 2; + /** the axis shows the series names (z axis) + */ + const long SERIES = 3; + /** the axis shows dates + */ + const long DATE = 4; +}; + +} ; // chart2 +} ; // com +} ; // sun +} ; // star + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/CandleStickChartType.idl b/offapi/com/sun/star/chart2/CandleStickChartType.idl new file mode 100644 index 0000000000..d574d10ae8 --- /dev/null +++ b/offapi/com/sun/star/chart2/CandleStickChartType.idl @@ -0,0 +1,106 @@ +/* -*- 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 . + */ + +module com +{ +module sun +{ +module star +{ +module chart2 +{ + +/** chart type service for candlestick charts. + */ +service CandleStickChartType +{ + /** The base service describing generic chart types. + */ + service ChartType; + + /** If this property is `TRUE`, the candlesticks are shown as + Japanese candlesticks. This implies that the property + #ShowFirst is also `TRUE`. + +Japanese candlesticks show the first and last value as + boxes. A rising course (i.e. if the last value is greater + than the first one) is shown by a white box. A falling course + is shown by a black box.
+ +Default is `FALSE`.
+ + @see WhiteDay + @see BlackDay + */ + [maybedefault, property] boolean Japanese; + + /** If the candlestick chart shows Japanese candlesticks, that is + the property #Japanese is `TRUE`, the + property set given here contains the formatting attributes of + the white boxes, i.e. the boxes shown for rising values. + +The com::sun::star::beans::XPropertySet + given here must support the services + com::sun::star::drawing::FillProperties + and + com::sun::star::drawing::LineProperties.
+ */ + [maybevoid, property] com::sun::star::beans::XPropertySet WhiteDay; + + /** If the candlestick chart shows Japanese candlesticks, that is + the property #Japanese is `TRUE`, the + property set given here contains the formatting attributes of + the black boxes, i.e. the boxes shown for falling values. + +The com::sun::star::beans::XPropertySet + given here must support the services + com::sun::star::drawing::FillProperties + and + com::sun::star::drawing::LineProperties.
+ */ + [maybevoid, property] com::sun::star::beans::XPropertySet BlackDay; + + /** If this property is `TRUE`, the first value (which would be + the opening course in a stock chart) is shown in the chart. + This also makes the role "values-first" mandatory. + +This property is only evaluated for non-Japanese + candlestick charts, as Japanese candlesticks always require to + show the first value.
+ +Default is `FALSE`.
+ */ + [maybedefault, property] boolean ShowFirst; + + /** If this property is `TRUE`, the low and high values are shown + in the chart. This also makes the roles "values-min" and + "values-max" mandatory. + +Default is `TRUE`.
+ */ + [maybedefault, property] boolean ShowHighLow; +}; + +} ; // chart2 +} ; // star +} ; // sun +} ; // com + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/CartesianCoordinateSystem2d.idl b/offapi/com/sun/star/chart2/CartesianCoordinateSystem2d.idl new file mode 100644 index 0000000000..302b4c0762 --- /dev/null +++ b/offapi/com/sun/star/chart2/CartesianCoordinateSystem2d.idl @@ -0,0 +1,29 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module chart2 { + +/** + @since LibreOffice 4.1 + */ +service CartesianCoordinateSystem2d : XCoordinateSystem; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/CartesianCoordinateSystem3d.idl b/offapi/com/sun/star/chart2/CartesianCoordinateSystem3d.idl new file mode 100644 index 0000000000..046d7d44f7 --- /dev/null +++ b/offapi/com/sun/star/chart2/CartesianCoordinateSystem3d.idl @@ -0,0 +1,29 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module chart2 { + +/** + @since LibreOffice 4.1 + */ +service CartesianCoordinateSystem3d : XCoordinateSystem; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/ChartDocument.idl b/offapi/com/sun/star/chart2/ChartDocument.idl new file mode 100644 index 0000000000..357742e6f2 --- /dev/null +++ b/offapi/com/sun/star/chart2/ChartDocument.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 . + */ + +module com +{ +module sun +{ +module star +{ +module chart2 +{ + +service ChartDocument +{ + /** this interface is derived from + com::sun::star::frame::XModel. Thus model + functionality is available via this interface. + */ + interface XChartDocument; + + /** offers connection to data + */ + interface data::XDataReceiver; + + /** gives access to the main title of a chart document + */ + interface XTitled; + + /** maintains all style families applying to any object in the + chart. + */ + interface ::com::sun::star::style::XStyleFamiliesSupplier; + + /** maintains all number formats used anywhere in the chart. + */ + interface ::com::sun::star::util::XNumberFormatsSupplier; + + /** Allows passing arguments to createInstanceWithArguments. + +The following arguments are allowed in the given order:
+ ++The service CoordinateSystemType represents a special type of coordinate system. +For example a 2 dimensional Cartesian coordinate system is a CoordinateSystemType +and different from for example a 3 dimensional spherical coordinate system. +
+A CoordinateSystemType is a stateless service which has no owner and does not +enable cyclic references, thus its lifetime can be handled by reference or it +may be implemented as a singleton.
+*/ + +service CoordinateSystemType +{ + /** required interface + */ +// interface ::com::sun::star::chart2::XCoordinateSystemType; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/CoordinateSystemTypeID.idl b/offapi/com/sun/star/chart2/CoordinateSystemTypeID.idl new file mode 100644 index 0000000000..2c3d602de6 --- /dev/null +++ b/offapi/com/sun/star/chart2/CoordinateSystemTypeID.idl @@ -0,0 +1,30 @@ +/* -*- 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 . + */ + + + +module com { module sun { module star { module chart2 { + + +typedef string CoordinateSystemTypeID; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/CurveStyle.idl b/offapi/com/sun/star/chart2/CurveStyle.idl new file mode 100644 index 0000000000..c8f27c58e5 --- /dev/null +++ b/offapi/com/sun/star/chart2/CurveStyle.idl @@ -0,0 +1,111 @@ +/* -*- 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 . + */ + +module com +{ +module sun +{ +module star +{ +module chart2 +{ + +/** Sets the type of curves that are drawn for line charts. + */ +enum CurveStyle +{ + /** Lines between data points are not smoothed + */ + LINES, + + /** Data points are connected via a smoothed cubic spline curve. + The data points themselves are part of to the curve. + */ + CUBIC_SPLINES, + + /** Data points are connected via a parametric, interpolating + B-spline curve. + */ + B_SPLINES, + + /** + * Non-uniform rational b-splines + */ + NURBS, + + /** Data points are connected via a 2-segmented stepped line. + The line starts horizontally. + + \verbatim + O + | + | + | + O-----+ + \endverbatim + */ + STEP_START, + + /** Data points are connected via a 2-segmented stepped line. + The line ends horizontally. + + \verbatim + +------O + | + | + | + O + \endverbatim + */ + STEP_END, + + /** Data points are connected via a 3-segmented stepped line. + The lines is horizontal till the center of the X values. + + \verbatim + +--O + | + | + | + O--+ + \endverbatim + */ + STEP_CENTER_X, + + /** Data points are connected via a 3-segmented stepped line. + The lines is horizontal at the center of the Y values. + + \verbatim + O + | + +-----+ + | + O + \endverbatim + */ + STEP_CENTER_Y +}; + +} ; // chart2 +} ; // com +} ; // sun +} ; // star + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/DataPoint.idl b/offapi/com/sun/star/chart2/DataPoint.idl new file mode 100644 index 0000000000..09cac13716 --- /dev/null +++ b/offapi/com/sun/star/chart2/DataPoint.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 . + */ + +module com +{ +module sun +{ +module star +{ +module chart2 +{ + +service DataPoint +{ + service DataPointProperties; + + service ::com::sun::star::style::CharacterProperties; + [optional] service ::com::sun::star::style::CharacterPropertiesAsian; + [optional] service ::com::sun::star::style::CharacterPropertiesComplex; + + + /** this property handles the style. This property must support + the service com::sun::star::style::Style. + +It should provide templates for all properties in this + service, thus it must also support DataPoint.
+ */ +// [property] ::com::sun::star::style::XStyle Style; + + /** Gives the offset of the data point. For PieDiagrams this + would be the percentage by which pies are dragged out of the + cake. + */ + [optional, property] double Offset; +}; + +} ; // chart2 +} ; // com +} ; // sun +} ; // star + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/DataPointCustomLabelField.idl b/offapi/com/sun/star/chart2/DataPointCustomLabelField.idl new file mode 100644 index 0000000000..d5d59d75e4 --- /dev/null +++ b/offapi/com/sun/star/chart2/DataPointCustomLabelField.idl @@ -0,0 +1,19 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */ +/* + * 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/. + */ + +module com { module sun { module star { module chart2 { + +/** + @since LibreOffice 6.1 +*/ +service DataPointCustomLabelField : XDataPointCustomLabelField; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ \ No newline at end of file diff --git a/offapi/com/sun/star/chart2/DataPointCustomLabelFieldType.idl b/offapi/com/sun/star/chart2/DataPointCustomLabelFieldType.idl new file mode 100644 index 0000000000..aec51e5a5c --- /dev/null +++ b/offapi/com/sun/star/chart2/DataPointCustomLabelFieldType.idl @@ -0,0 +1,30 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */ +/* + * 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/. + */ + +module com { module sun { module star { module chart2 { + +/** The Field type enumeration for custom data point labels. + + @since LibreOffice 6.1 + */ +enum DataPointCustomLabelFieldType +{ + TEXT, + VALUE, + SERIESNAME, + CATEGORYNAME, + CELLREF, + NEWLINE, + PERCENTAGE, + CELLRANGE +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ diff --git a/offapi/com/sun/star/chart2/DataPointGeometry3D.idl b/offapi/com/sun/star/chart2/DataPointGeometry3D.idl new file mode 100644 index 0000000000..06b678a21b --- /dev/null +++ b/offapi/com/sun/star/chart2/DataPointGeometry3D.idl @@ -0,0 +1,55 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module chart2 { + + +/** These values specify the geometry of data points in + 3D bar charts. + */ +constants DataPointGeometry3D +{ + + /** a cuboid + */ + const long CUBOID = 0; + + + /** a cylinder with a circle as base + */ + const long CYLINDER = 1; + + + /** a cone with a circle as base + */ + const long CONE = 2; + + + /** a pyramid with a square as base + */ + const long PYRAMID = 3; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/DataPointLabel.idl b/offapi/com/sun/star/chart2/DataPointLabel.idl new file mode 100644 index 0000000000..98bd39d62b --- /dev/null +++ b/offapi/com/sun/star/chart2/DataPointLabel.idl @@ -0,0 +1,80 @@ +/* -*- 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 . + */ + + +module com +{ +module sun +{ +module star +{ +module chart2 +{ + +struct DataPointLabel +{ + /** if `TRUE`, the value that is represented by a data point is + displayed next to it. + + @see #ShowNumberInPercent + */ + boolean ShowNumber; + + /** This is only effective, if #ShowNumber is + `TRUE`. If this member is also `TRUE`, the numbers are + displayed as percentages of a category. + +That means, if a data point is the first one of a series, + the percentage is calculated by using the first data points of + all available series.
+ */ + boolean ShowNumberInPercent; + + /** The caption contains the category name of the category to + which a data point belongs. + */ + boolean ShowCategoryName; + + /** The symbol of data series is additionally displayed in the + caption. + */ + boolean ShowLegendSymbol; + + /** The caption contains a custom label text, which belongs + to a data point label. + + @since LibreOffice 7.1 + */ + boolean ShowCustomLabel; + + /** The name of the data series is additionally displayed in the caption. + + @since LibreOffice 7.2 + */ + boolean ShowSeriesName; +}; + + + +} ; // chart2 +} ; // com +} ; // sun +} ; // star + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/DataPointProperties.idl b/offapi/com/sun/star/chart2/DataPointProperties.idl new file mode 100644 index 0000000000..b2dd116396 --- /dev/null +++ b/offapi/com/sun/star/chart2/DataPointProperties.idl @@ -0,0 +1,328 @@ +/* -*- 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 . + */ + +module com +{ +module sun +{ +module star +{ +module chart2 +{ + +service DataPointProperties +{ + /** to give access to the properties required by this service. + */ + service ::com::sun::star::beans::PropertySet; + + /** to give access to the fill properties + + Note that there is access for some of them + through some alias. + + @since LibreOffice 5.1 + */ + service ::com::sun::star::drawing::FillProperties; + + + /** points to a style that also supports this service (but not + this property) that is used as default, if the PropertyState + of a property isDEFAULT_VALUE
.
+ */
+// [optional, property] ::com::sun::star::style::XStyle Style;
+
+ // Common Properties
+
+
+ /** This is the main color of a data point.
+
+ For charts with filled areas, like bar-charts, this should
+ map to the FillColor
of the objects. For
+ line-charts this should map to the LineColor
+ property.
For charts with filled areas, like bar-charts, this should
+ map to the FillTransparence
of the objects. For
+ line-charts this should map to the
+ LineTransparence
property.
LineColor
.
+
+ @see com::sun::star::drawing::LineProperties
+ */
+ [property] long BorderColor;
+ /** Is used for borders around filled objects. See
+ LineStyle
.
+
+ @see com::sun::star::drawing::LineProperties
+ */
+ [property] ::com::sun::star::drawing::LineStyle BorderStyle;
+ /** Is used for borders around filled objects. See
+ LineWidth
.
+
+ @see com::sun::star::drawing::LineProperties
+ */
+ [property] long BorderWidth;
+ /** Is used for borders around filled objects. See
+ LineDash
.
+
+ @see com::sun::star::drawing::LineProperties
+ */
+ [property] ::com::sun::star::drawing::LineDash BorderDash;
+
+ /** The name of a dash that can be found in the
+ com::sun::star::container::XNameContainer
+ "com.sun.star.drawing.LineDashTable", that can be created via
+ the
+ com::sun::star::uno::XMultiServiceFactory
+ of the ChartDocument.
+ */
+ [optional, property] string BorderDashName;
+
+ /** Is used for borders around filled objects. See
+ LineTransparence
.
+
+ @see com::sun::star::drawing::LineProperties
+ */
+ [optional, property] short BorderTransparency;
+
+
+ // Line Properties
+ [property] ::com::sun::star::drawing::LineStyle LineStyle;
+ /** Is only used for line-chart types.
+
+ @see com::sun::star::drawing::LineProperties
+ */
+ [property] long LineWidth;
+ /** Is only used for line-chart types.
+
+ @see com::sun::star::drawing::LineProperties
+ */
+ [property] ::com::sun::star::drawing::LineDash LineDash;
+
+ /** The name of a dash that can be found in the
+ com::sun::star::container::XNameContainer
+ "com.sun.star.drawing.LineDashTable", that can be created via
+ the
+ com::sun::star::uno::XMultiServiceFactory
+ of the ChartDocument.
+ */
+ [optional, property] string LineDashName;
+
+
+ // bitmap properties /copied from drawing::FillProperties
+
+ /** This is the horizontal offset where the tile starts.
+
+ It is given in percent in relation to the width of the bitmap. + */ + [property] short FillBitmapOffsetX; + + /** This is the vertical offset where the tile starts. + + It is given in percent in relation to the width of the bitmap. + */ + [property] short FillBitmapOffsetY; + + /** Every second line of tiles is moved the given percent of the + width of the bitmap. + */ + [property] short FillBitmapPositionOffsetX; + + /** Every second row of tiles is moved the given percent of the + width of the bitmap. + */ + [property] short FillBitmapPositionOffsetY; + + /** The RectanglePoint specifies the position inside of the bitmap to + use as the top left position for rendering. + */ + [property] com::sun::star::drawing::RectanglePoint FillBitmapRectanglePoint; + + /** specifies if the size is given in percentage or + as an absolute value. + +
If this is `TRUE`, the properties FillBitmapSizeX + and FillBitmapSizeY contain the size of the tile in percent + of the size of the original bitmap. If this + is `FALSE`, the size of the tile is specified + with 1/100th mm. + */ + [property] boolean FillBitmapLogicalSize; + + /** This is the width of the tile for filling. + +
Depending on the property FillBitmapLogicalSize, this is + either relative or absolute. + */ + [property] long FillBitmapSizeX; + + /** This is the height of the tile for filling. + +
Depending on the property FillBitmapLogicalSize, this + is either relative or absolute. + */ + [property] long FillBitmapSizeY; + + /** this enum selects how an area is filled with a single bitmap. + */ + [property] com::sun::star::drawing::BitmapMode FillBitmapMode; + + + /** + */ + [optional, property] Symbol Symbol; + + /** describes a value by which a data point is moved from its + default position in percent of the maximum allowed distance. + +
This is especially useful for the explosion of pie-chart + segments.
+ */ + [optional, property] double Offset; + + /** describes the geometry of a 3 dimensional data point. + Number is one of constant group DataPointGeometry3D. +This is especially used for 3D bar-charts.
+CUBOID==0 CYLINDER==1 CONE==2 PYRAMID==3 CUBOID==else
+ */ + [optional, property] long Geometry3D; + + [property] DataPointLabel Label; + + /** specifies a text with possible fields that is used as a data point label, + if set then Label property is ignored + + @since LibreOffice 6.1 + */ + [optional, property] sequenceThis size is used to resize text in the view when the size + of the page has changed since the font sizes were set + (automatic text scaling).
+ */ + [maybevoid, property] com::sun::star::awt::Size ReferencePageSize; + + // statistics + + /** If void, no error bars are shown for the data point in + x-direction. + +The com::sun::star::beans::XPropertySet + must support the service ErrorBar.
+ */ + [optional, maybevoid, property] com::sun::star::beans::XPropertySet ErrorBarX; + + /** If void, no error bars are shown for the data point in + y-direction. + +The com::sun::star::beans::XPropertySet + must support the service ErrorBar.
+ */ + [optional, maybevoid, property] com::sun::star::beans::XPropertySet ErrorBarY; + + /** In case #ErrorBarX and + #ErrorBarY both are set, and error bars are + shown, a box spanning all error-indicators is rendered. + */ + [optional, maybevoid, property] boolean ShowErrorBox; + + + /** A value between 0 and 100 indicating the percentage how round an edge should be. + */ + [optional, maybevoid, property] short PercentDiagonal; + + /** Custom position on the page associated to the CUSTOM label placement. + + @since LibreOffice 7.0 + */ + [optional, maybevoid, property] ::com::sun::star::chart2::RelativePosition CustomLabelPosition; +}; + +} ; // chart2 +} ; // com +} ; // sun +} ; // star + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/DataSeries.idl b/offapi/com/sun/star/chart2/DataSeries.idl new file mode 100644 index 0000000000..66109180a9 --- /dev/null +++ b/offapi/com/sun/star/chart2/DataSeries.idl @@ -0,0 +1,193 @@ +/* -*- 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 . + */ + +module com +{ +module sun +{ +module star +{ +module chart2 +{ + + // NOTES + + // ability to be combined - data series combiner (another component?) + // coordinatesystem-supplier + // chart-type ? property string rendererServiceName + + +/** reflects the model data of the object that has all the information + for a DataRenderer to create a visible data series in + a chart. + +It combines one or more DataSequences which are + interpreted by evaluating their role-string.
+ + @see DataSequenceRole + */ +service DataSeries +{ + /** allows to connect a CoordinateSystem to a DataSeries + */ +// service CoordinateSystemSupplier; + +// service ChartTypeSupplier; + /** the property interface by which the properties of all + supported services are exchanged + */ + service ::com::sun::star::beans::PropertySet; + + /** these properties serve as default for data points. + +So, an attribute for a data point comes from one point in + the following hierarchy:
+ +The objects returned by the + com::sun::star::container::XIndexAccess + are of type + com::sun::star::beans::XPropertySet + and support the service + DataPoint. + */ +// interface ::com::sun::star::container::XIndexContainer; + + /** establishes a broadcaster-listener mechanism for the + com::sun::star::container::XIndexContainer + to keep changes and the property + DataSeries::AttributedDataPoints in sync. + */ +// interface ::com::sun::star::container::XContainer; + + /** Holds regression curves (aka trend-lines) for a data series. + */ + [optional] interface XRegressionCurveContainer; + + + /** This service will be used to render this data series. + +
This service name can be used to determine which DataSeries + are of the same type.
+ +The result of the + DataSeries::DataSequenceRoles depends on the + renderer service set here.
+ */ + // stored at the DataSeriesGroup now +// [property] string DataRendererServiceName; + + /** a sequence of indexes denoting which data points have set + properties that differ from the default. + +The default values are determined by the properties set at + the #DataPointProperties of the data + series.
+ +If the sequence is empty, that means that all data points + look alike. They are formatted using the property values set + in the data series.
+ +The indexes in this sequence match the indexes used by the + XIndexContainer.
+ +This property is especially useful for large data series + with only some formatted data points, because you do not have + to iterate over all elements.
+ */ + [readonly, optional, property] sequence< long > AttributedDataPoints; + + /** indicates whether this series should be stacked with respect to the previous series. + */ + [property] StackingDirection StackingDirection; + + /** If `TRUE`, the data points of this series get different + colors by default, like in a pie chart. + */ + [optional, property] boolean VaryColorsByPoint; + + /** This property describes whether the series should be shown at + the main value axis or at the secondary value axis. Having + this property not set or setting it to 0 means that this data + series will be scaled at the primary y-axis ( of the + coordinate system in which this series is hosted ). + +Setting this property to 1 means that this series should be + scaled at the secondary y-axis. If there is no secondary axis + the main axis should be used for scaling instead.
+ +If you want to scale a series at a different x or z axis + you need to create an additional coordinate system and host + this series there.
+ */ + [optional, property] long AttachedAxisIndex; + + /** This property describes whether the legend entry for the + the data series should be shown. + + @since LibreOffice 6.3 + */ + [optional, property] boolean ShowLegendEntry; + + /** A sequence of indexes denoting which data points shouldn't be + shown in the legend. + + @since LibreOffice 7.0 + */ + [optional, property] sequenceIf a relative position is given the diagram is not automatically placed, + but instead is placed relative on the page.
+ */ + [property, maybevoid] ::com::sun::star::chart2::RelativePosition RelativePosition; + + /** The size of the diagram as relative size of the page size. + */ + [property] ::com::sun::star::chart2::RelativeSize RelativeSize; + + /** The attributes RelativePosition and RelativeSize should be used for the inner coordinate region without axis labels and without data labels. + */ + [optional, property] boolean PosSizeExcludeLabels; + + /** Sort data points by x values for rendering + */ + [optional, property] boolean SortByXValues; + + /** Draw connection lines for stacked bar charts. + */ + [optional, property] boolean ConnectBars; + + /** If bars of a bar or column chart are attached to different + axis, this property determines how to display those. If + `TRUE`, the bars are grouped together in one block for each + axis, thus they are painted one group over the other. + +If `FALSE`, the bars are displayed side-by-side, as if + they were all attached to the same axis.
+ +If all data series of a bar or column chart are attached to + only one axis, this property has no effect.
+ */ + [optional, property] boolean GroupBarsPerAxis; + + /** Starting angle in degrees for pie charts and doughnut charts. + */ + [optional, property] long StartingAngle; + + [optional, property] boolean RightAngledAxes; + + /** Perspective of 3D charts ( [0,100] ). + */ + [optional, property] long Perspective; + + /** Horizontal rotation of 3D charts in degrees ( ]-180,180] ). + */ + [optional, property] long RotationHorizontal; + + /** Vertical rotation of 3D charts in degrees ( ]-180,180] ). + */ + [optional, property] long RotationVertical; + + /** specifies how empty or invalid cells in the provided data should be handled when displayed + + @see ::com::sun::star::chart::MissingValueTreatment + */ + [optional, property] long MissingValueTreatment; + + [optional, property] string ExternalData; + +}; + +} ; // chart2 +} ; // com +} ; // sun +} ; // star + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/ErrorBar.idl b/offapi/com/sun/star/chart2/ErrorBar.idl new file mode 100644 index 0000000000..ed339a5a7e --- /dev/null +++ b/offapi/com/sun/star/chart2/ErrorBar.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 . + */ + +module com +{ +module sun +{ +module star +{ +module chart2 +{ + +service ErrorBar +{ + service ::com::sun::star::drawing::LineProperties; + + /** allows attaching data sequences to the error bars. + @see data::DataSequenceRole + */ + [optional] interface data::XDataSink; + + /** allows querying data sequences that were set at error bars. + @see data::DataSequenceRole + */ + [optional] interface data::XDataSource; + /** + @see ::com::sun::star::chart::ErrorBarStyle + */ + [property] long ErrorBarStyle; + + [property] double PositiveError; + + [property] double NegativeError; + + /** The weight for the standard deviation. + */ + [property] double Weight; + + [property] boolean ShowPositiveError; + + [property] boolean ShowNegativeError; +}; + +} ; // chart2 +} ; // com +} ; // sun +} ; // star + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/ExponentialRegressionCurve.idl b/offapi/com/sun/star/chart2/ExponentialRegressionCurve.idl new file mode 100644 index 0000000000..e56da980bd --- /dev/null +++ b/offapi/com/sun/star/chart2/ExponentialRegressionCurve.idl @@ -0,0 +1,32 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module chart2 { + + +/** + @since LibreOffice 4.1 +*/ +service ExponentialRegressionCurve : com::sun::star::chart2::XRegressionCurve; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/ExponentialScaling.idl b/offapi/com/sun/star/chart2/ExponentialScaling.idl new file mode 100644 index 0000000000..2d34c2d920 --- /dev/null +++ b/offapi/com/sun/star/chart2/ExponentialScaling.idl @@ -0,0 +1,35 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module chart2 { + + +/** Scaling that scales a value x by taking the power of the + base to x. + +If not mentioned explicitly, the base for the power function is + 10.0
+*/ +service ExponentialScaling : com::sun::star::chart2::XScaling; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/FillBitmap.idl b/offapi/com/sun/star/chart2/FillBitmap.idl new file mode 100644 index 0000000000..dece329804 --- /dev/null +++ b/offapi/com/sun/star/chart2/FillBitmap.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 . + */ + + +module com +{ +module sun +{ +module star +{ +module chart2 +{ + +/** This structure contains all properties of a bitmap when used as + FillStyle. + + @see com::sun::star::drawing::FillProperties + */ +struct FillBitmap +{ + /** a URL to the bitmap used. This may be an internal URL of the + graphics manager. + */ + string aURL; + + /** This is the horizontal and vertical offset where the tile + starts. + +It is given in percent in relation to the width of the + bitmap.
+ */ + com::sun::star::awt::Point aOffset; + + /** Every second line (X) / row (Y) of tiles is moved the given + percent of the width of the bitmap. + */ + com::sun::star::awt::Point aPositionOffset; + + /** The RectanglePoint specifies the position inside of the bitmap + to use as the top left position for rendering. + */ + com::sun::star::drawing::RectanglePoint aRectanglePoint; + + /** specifies if the size is given in percentage or as an absolute + value. + +If this is `TRUE`, the properties SizeX and + SizeY contain the size of the tile in percent of the + size of the original bitmap. If this is `FALSE`, the size of + the tile is specified with 1/100th mm.
+ */ + boolean bLogicalSize; + + /** This is the size of the tile for filling. + +Depending on the property LogicalSize, this is + either relative or absolute.
+ */ + com::sun::star::awt::Size aSize; + + /** this enum selects how an area is filled with a single bitmap. + +It may be repeated, stretched or displayed with blank space + around it.
+ */ + com::sun::star::drawing::BitmapMode aBitmapMode; +}; + +} ; // chart2 +} ; // com +} ; // sun +} ; // star + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/FormattedString.idl b/offapi/com/sun/star/chart2/FormattedString.idl new file mode 100644 index 0000000000..49db3ec7e0 --- /dev/null +++ b/offapi/com/sun/star/chart2/FormattedString.idl @@ -0,0 +1,26 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module chart2 { + +service FormattedString : XFormattedString2; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/GridProperties.idl b/offapi/com/sun/star/chart2/GridProperties.idl new file mode 100644 index 0000000000..0183fbc26e --- /dev/null +++ b/offapi/com/sun/star/chart2/GridProperties.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 . + */ + +module com +{ +module sun +{ +module star +{ +module chart2 +{ + +/** Must be supported by all grids + */ +service GridProperties +{ + /** properties for formatting the grid lines + */ + service ::com::sun::star::drawing::LineProperties; + + /** Determines, whether the grid should be rendered by the view. + */ + [property] boolean Show; +}; + +} ; // chart2 +} ; // com +} ; // sun +} ; // star + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/IncrementData.idl b/offapi/com/sun/star/chart2/IncrementData.idl new file mode 100644 index 0000000000..e4c42cbb0e --- /dev/null +++ b/offapi/com/sun/star/chart2/IncrementData.idl @@ -0,0 +1,76 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module chart2 { + + +/** An IncrementData describes how tickmarks are positioned on the scale of an axis. + +@see Axis +@see Grid +@see Scale +@see XScaling +*/ +struct IncrementData +{ + /** if the any contains a double value this is used as a fixed + Distance value. Otherwise, if the any is empty or contains an + incompatible type, the Distance is meant to be calculated + automatically by the view component representing the model + containing this increment. + */ + any Distance; + + /** + #PostEquidistant rules whether the member #Distance + describes a distance before or after the scaling is applied. + +If #PostEquidistant equals `TRUE` #Distance + is given in values after XScaling is applied, thus resulting + main tickmarks will always look equidistant on the screen. + If #PostEquidistant equals `FALSE` #Distance + is given in values before XScaling is applied.
+ */ + any PostEquidistant; + + /** if the any contains a double value this is used as a fixed + BaseValue. Otherwise, if the any is empty or contains an + incompatible type, the BaseValue is meant to be calculated + automatically by the view component representing the model + containing this increment. + */ + any BaseValue; + + /** #SubIncrements describes the positioning of further + sub tickmarks on the scale of an axis. + +The first SubIncrement in this sequence determines how the + distance between two neighboring main tickmarks is divided for positioning + of further sub tickmarks. Every following SubIncrement determines the + positions of subsequent tickmarks in relation to their parent tickmarks + given by the preceding SubIncrement.
+ */ + sequence< SubIncrement > SubIncrements; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/Legend.idl b/offapi/com/sun/star/chart2/Legend.idl new file mode 100644 index 0000000000..eb5b2d1a27 --- /dev/null +++ b/offapi/com/sun/star/chart2/Legend.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 . + */ + +module com +{ +module sun +{ +module star +{ +module chart2 +{ + +/** Describes a legend for a Diagram. + */ +service Legend +{ + service ::com::sun::star::drawing::FillProperties; + service ::com::sun::star::drawing::LineProperties; + service ::com::sun::star::beans::PropertySet; + + /** The interface for registering and removing legend entries. + */ + interface ::com::sun::star::chart2::XLegend; + + /** Provides an automated position + */ + [property] LegendPosition AnchorPosition; + + /** Determines how the aspect ratio of the legend should roughly + be. + +Set the Expansion to + ::com::sun::star::chart#HIGH + for a legend that is positioned on the right or left hand + side. Use ::com::sun::star::chart::WIDE for a legend + that is positioned on top or the bottom.
+ */ + [property] ::com::sun::star::chart::ChartLegendExpansion Expansion; + + /** Determines, whether the legend should be rendered by the view. + */ + [property] boolean Show; + + /** Determines, whether the legend should overlay the chart. + + @since LibreOffice 7.0 + */ + [property] boolean Overlay; + + /** contains the size of the page at the time when properties were + set (e.g. the CharHeight). + +This way it is possible to resize objects (like text) in + the view without modifying the model.
+ */ + [property, maybevoid] com::sun::star::awt::Size ReferencePageSize; + + /** The position is as a relative position on the page. + +If a relative position is given the legend is not automatically placed, + but instead is placed relative on the page.
+ +If `VOID`, the legend position is solely determined by the + #AnchorPosition.
+ */ + [property, maybevoid] ::com::sun::star::chart2::RelativePosition RelativePosition; +}; + +} ; // chart2 +} ; // com +} ; // sun +} ; // star + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/LegendPosition.idl b/offapi/com/sun/star/chart2/LegendPosition.idl new file mode 100644 index 0000000000..074b62bd62 --- /dev/null +++ b/offapi/com/sun/star/chart2/LegendPosition.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 . + */ + +module com +{ +module sun +{ +module star +{ +module chart2 +{ + +enum LegendPosition +{ + /** In LTR mode this is the left-hand side + */ + LINE_START, + + /** In LTR mode this is the right-hand side + +This usually is the default.
+ */ + LINE_END, + + /** In LTR mode this is the top side + */ + PAGE_START, + + /** In LTR mode this is the bottom side + */ + PAGE_END, + + /** The position of the legend is given by an offset value + */ + CUSTOM +}; + +} ; // chart2 +} ; // com +} ; // sun +} ; // star + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/LightSource.idl b/offapi/com/sun/star/chart2/LightSource.idl new file mode 100644 index 0000000000..498bec1c48 --- /dev/null +++ b/offapi/com/sun/star/chart2/LightSource.idl @@ -0,0 +1,52 @@ +/* -*- 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 . + */ + +module com +{ +module sun +{ +module star +{ +module chart2 +{ + +struct LightSource +{ + /** the light source's color + */ + long nDiffuseColor; + + /** the direction into which the light-source points + */ + ::com::sun::star::drawing::Direction3D aDirection; + + boolean bIsEnabled; + + /** When `TRUE`, the specularity of material is taken into + account when lighting an object. + */ + boolean bSpecular; +}; + +} ; // chart2 +} ; // com +} ; // sun +} ; // star + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/LinearRegressionCurve.idl b/offapi/com/sun/star/chart2/LinearRegressionCurve.idl new file mode 100644 index 0000000000..be59430bf5 --- /dev/null +++ b/offapi/com/sun/star/chart2/LinearRegressionCurve.idl @@ -0,0 +1,32 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module chart2 { + + +/** + @since LibreOffice 4.1 +*/ +service LinearRegressionCurve : com::sun::star::chart2::XRegressionCurve; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/LinearScaling.idl b/offapi/com/sun/star/chart2/LinearScaling.idl new file mode 100644 index 0000000000..dbabd86810 --- /dev/null +++ b/offapi/com/sun/star/chart2/LinearScaling.idl @@ -0,0 +1,36 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module chart2 { + + +/** Scaling that scales a value x by calculating m ⋅ + x + t. + +If not mentioned explicitly, the parameter m is 1.0 + and t is 0.0, which means the transformation is an + identical mapping.
+*/ +service LinearScaling : com::sun::star::chart2::XScaling; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/LogarithmicRegressionCurve.idl b/offapi/com/sun/star/chart2/LogarithmicRegressionCurve.idl new file mode 100644 index 0000000000..0e61259e68 --- /dev/null +++ b/offapi/com/sun/star/chart2/LogarithmicRegressionCurve.idl @@ -0,0 +1,32 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module chart2 { + + +/** + @since LibreOffice 4.1 +*/ +service LogarithmicRegressionCurve : com::sun::star::chart2::XRegressionCurve; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/LogarithmicScaling.idl b/offapi/com/sun/star/chart2/LogarithmicScaling.idl new file mode 100644 index 0000000000..cf6b273636 --- /dev/null +++ b/offapi/com/sun/star/chart2/LogarithmicScaling.idl @@ -0,0 +1,34 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module chart2 { + + +/** Scaling that scales values by taking their logarithm. + +If not mentioned explicitly, the base for the logarithm is + 10.0
+*/ +service LogarithmicScaling : com::sun::star::chart2::XScaling; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/LogicTargetModel.idl b/offapi/com/sun/star/chart2/LogicTargetModel.idl new file mode 100644 index 0000000000..4d5e9f7cab --- /dev/null +++ b/offapi/com/sun/star/chart2/LogicTargetModel.idl @@ -0,0 +1,52 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module chart2 { + +/** +The properties of this service correspond to the similar named attributes + and subelements of the XML element chart2:increment in the chart2 file format.
+*/ +service LogicTargetModel +{ + /** identifies an instance of this service within one chart document. + */ + [ readonly, property ] string ID; + + /** identifies an instance of the service com::sun::star::chart2::LegendModel within one chart document. + * that instance is used to automatically calculate missing properties + */ + [ property ] string LegendID; + + /** not BOUND nor CONSTRAINED in terms of Listener notifications, + * each element in the sequence must implement the service com::sun::star::chart2::CoordinateSystem + */ + [ property ] sequence< ::com::sun::star::beans::XPropertySet > CoordinateSystems; + + /** MAYBEVOID, not BOUND nor CONSTRAINED in terms of Listener notifications, + * each element in the sequence must implement the service com::sun::star::chart2::LogicTargetModel + */ + [ property ] sequence< ::com::sun::star::beans::XPropertySet > LogicTargetModels; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/MovingAverageRegressionCurve.idl b/offapi/com/sun/star/chart2/MovingAverageRegressionCurve.idl new file mode 100644 index 0000000000..81ddba32f7 --- /dev/null +++ b/offapi/com/sun/star/chart2/MovingAverageRegressionCurve.idl @@ -0,0 +1,32 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module chart2 { + + +/** + @since LibreOffice 4.1 +*/ +service MovingAverageRegressionCurve : com::sun::star::chart2::XRegressionCurve; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/MovingAverageType.idl b/offapi/com/sun/star/chart2/MovingAverageType.idl new file mode 100644 index 0000000000..3b39f62c4e --- /dev/null +++ b/offapi/com/sun/star/chart2/MovingAverageType.idl @@ -0,0 +1,30 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */ +/* + * 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/. + */ + +module com +{ +module sun +{ +module star +{ +module chart2 +{ + +constants MovingAverageType { + const long Prior = 1; + const long Central = 2; + const long AveragedAbscissa = 3; +}; + +} ; // chart2 +} ; // com +} ; // sun +} ; // star + +/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ diff --git a/offapi/com/sun/star/chart2/PieChartOffsetMode.idl b/offapi/com/sun/star/chart2/PieChartOffsetMode.idl new file mode 100644 index 0000000000..1c08faa558 --- /dev/null +++ b/offapi/com/sun/star/chart2/PieChartOffsetMode.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 . + */ + +module com +{ +module sun +{ +module star +{ +module chart2 +{ + +/** Mode used for a pie chart template to determine the initial state + of exploded pies. + */ +enum PieChartOffsetMode +{ + /** Default, no pies are exploded. + */ + NONE, + + /** All pies are exploded by a certain percentage. The default is + 10 percent. + */ + ALL_EXPLODED +}; + +} ; // chart2 +} ; // com +} ; // sun +} ; // star + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/PolarCoordinateSystem2d.idl b/offapi/com/sun/star/chart2/PolarCoordinateSystem2d.idl new file mode 100644 index 0000000000..cc61b46cca --- /dev/null +++ b/offapi/com/sun/star/chart2/PolarCoordinateSystem2d.idl @@ -0,0 +1,29 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module chart2 { + +/** + @since LibreOffice 4.1 + */ +service PolarCoordinateSystem2d : XCoordinateSystem; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/PolarCoordinateSystem3d.idl b/offapi/com/sun/star/chart2/PolarCoordinateSystem3d.idl new file mode 100644 index 0000000000..c1fa6a6a00 --- /dev/null +++ b/offapi/com/sun/star/chart2/PolarCoordinateSystem3d.idl @@ -0,0 +1,29 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module chart2 { + +/** + @since LibreOffice 4.1 + */ +service PolarCoordinateSystem3d : XCoordinateSystem; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/PolynomialRegressionCurve.idl b/offapi/com/sun/star/chart2/PolynomialRegressionCurve.idl new file mode 100644 index 0000000000..1f5300db67 --- /dev/null +++ b/offapi/com/sun/star/chart2/PolynomialRegressionCurve.idl @@ -0,0 +1,32 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module chart2 { + + +/** + @since LibreOffice 4.1 +*/ +service PolynomialRegressionCurve : com::sun::star::chart2::XRegressionCurve; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/PotentialRegressionCurve.idl b/offapi/com/sun/star/chart2/PotentialRegressionCurve.idl new file mode 100644 index 0000000000..c0c2aec7b9 --- /dev/null +++ b/offapi/com/sun/star/chart2/PotentialRegressionCurve.idl @@ -0,0 +1,32 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module chart2 { + + +/** + @since LibreOffice 4.1 +*/ +service PotentialRegressionCurve : com::sun::star::chart2::XRegressionCurve; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/PowerScaling.idl b/offapi/com/sun/star/chart2/PowerScaling.idl new file mode 100644 index 0000000000..56b260f416 --- /dev/null +++ b/offapi/com/sun/star/chart2/PowerScaling.idl @@ -0,0 +1,35 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module chart2 { + + +/** Scaling that scales a value x by taking the power of + x to the exponent. + +If not mentioned explicitly, the exponent for the power + function is 10.0
+*/ +service PowerScaling : com::sun::star::chart2::XScaling; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/PropertyPool.idl b/offapi/com/sun/star/chart2/PropertyPool.idl new file mode 100644 index 0000000000..7fb2419c01 --- /dev/null +++ b/offapi/com/sun/star/chart2/PropertyPool.idl @@ -0,0 +1,54 @@ +/* -*- 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 . + */ + +module com +{ +module sun +{ +module star +{ +module chart2 +{ + +service PropertyPool +{ + /** must be usable as a style + */ + service ::com::sun::star::style::Style; + + /** must provide defaults for all properties + +As the service + com::sun::star::style::Style implies the + implementation of + com::sun::star::beans::XPropertySet, the + method + com::sun::star::style::XDefaultsSupplier::getDefaults() + should return itself. + */ + interface ::com::sun::star::style::XDefaultsSupplier; +}; + +} ; // chart2 +} ; // com +} ; // sun +} ; // star + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/RegressionCurve.idl b/offapi/com/sun/star/chart2/RegressionCurve.idl new file mode 100644 index 0000000000..c99a6ee012 --- /dev/null +++ b/offapi/com/sun/star/chart2/RegressionCurve.idl @@ -0,0 +1,44 @@ +/* -*- 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 . + */ + +module com +{ +module sun +{ +module star +{ +module chart2 +{ + +service RegressionCurve +{ + service ::com::sun::star::beans::PropertySet; + service ::com::sun::star::drawing::LineProperties; + + interface XRegressionCurve; + + [property] long MovingAverageType; +}; + +} ; // chart2 +} ; // com +} ; // sun +} ; // star + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/RegressionCurveEquation.idl b/offapi/com/sun/star/chart2/RegressionCurveEquation.idl new file mode 100644 index 0000000000..11675ccbf2 --- /dev/null +++ b/offapi/com/sun/star/chart2/RegressionCurveEquation.idl @@ -0,0 +1,52 @@ +/* -*- 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 . + */ + +module com +{ +module sun +{ +module star +{ +module chart2 +{ + +service RegressionCurveEquation +{ + service ::com::sun::star::beans::PropertySet; + service ::com::sun::star::drawing::FillProperties; + service ::com::sun::star::drawing::LineProperties; + service ::com::sun::star::style::CharacterProperties; + + [property] boolean ShowEquation; + [property] string XName; + [property] string YName; + [property] boolean ShowCorrelationCoefficient; + + [property, maybevoid] ::com::sun::star::chart2::RelativePosition RelativePosition; + [property, maybevoid] ::com::sun::star::awt::Size ReferencePageSize; + + [property] long NumberFormat; +}; + +} ; // chart2 +} ; // com +} ; // sun +} ; // star + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/RegressionEquation.idl b/offapi/com/sun/star/chart2/RegressionEquation.idl new file mode 100644 index 0000000000..707f7d5404 --- /dev/null +++ b/offapi/com/sun/star/chart2/RegressionEquation.idl @@ -0,0 +1,29 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module chart2 { + +/** + @since LibreOffice 4.1 +*/ +service RegressionEquation : com::sun::star::beans::XPropertySet; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/RelativePosition.idl b/offapi/com/sun/star/chart2/RelativePosition.idl new file mode 100644 index 0000000000..ffafdb0119 --- /dev/null +++ b/offapi/com/sun/star/chart2/RelativePosition.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 . + */ + +module com +{ +module sun +{ +module star +{ +module chart2 +{ + +/** Determines a position of an object relative to a size defined by other means. + Values from 0 to 1 cover the entire reference rectangle. Values + may also be outside this range, especially negative. + */ +struct RelativePosition +{ + /** The position in the primary direction. + The direction is defined by the object using this point. + +
For example for western languages the primary direction may be + the horizontal distance measured from left to right.
+ +The values are relative to a reference size (for example the page size). + Values between 0 and 1 span the complete bounding rectangle.
+ */ + double Primary; + + /** The position in the secondary direction. + The direction is defined by the object using this point. + +For example for western languages the secondary direction may be + the vertical distance measured from top to bottom.
+ +The values are relative to a reference size (for example the page size). + Values between 0 and 1 span the complete bounding rectangle.
+ */ + double Secondary; + + /** This indicates how the object is placed at the relative position. + +The Anchor indicates which point of the placed object + will be placed at the coordinates given within Primary and Secondary.
+ +For example if Anchor is TOP_LEFT the top left corner of an object will + be placed at the given coordinates. If Anchor is RIGHT the right middle corner of the object will + be placed at the given coordinates.
+ */ + ::com::sun::star::drawing::Alignment Anchor; +}; + +} ; // chart2 +} ; // com +} ; // sun +} ; // star + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/RelativeSize.idl b/offapi/com/sun/star/chart2/RelativeSize.idl new file mode 100644 index 0000000000..1647d93cda --- /dev/null +++ b/offapi/com/sun/star/chart2/RelativeSize.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 . + */ + +module com +{ +module sun +{ +module star +{ +module chart2 +{ + +/** Gives a position relative to some size defined by other means. + Values from 0 to 1 cover the entire reference rectangle. Values + may also be greater than one, meaning a bigger size than the + reference size. Negative values are not allowed. + */ +struct RelativeSize +{ + /** The extension in the primary direction. The direction is + defined by the object using this point. + +Typically, the direction is determined by an + Orientation. Another typical use would be the + direction of a given orientation-angle.
+ +The values are relative to the page or an object. Values + between 0 and 1 span the complete bounding rectangle of the + page/object.
+ +For a western Orientation this is the + width.
+ */ + double Primary; + + /** The extension in the secondary direction. The direction is + defined by the object using this point. + +Typically, the direction is determined by an + Orientation. Another typical use would be the + direction perpendicular to a given orientation-angle.
+ +The values are relative to the page or an object. Values + between 0 and 1 span the complete bounding rectangle of the + page/object.
+ +For a western Orientation this is the + height.
+ */ + double Secondary; +}; + +} ; // chart2 +} ; // com +} ; // sun +} ; // star + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/ScaleData.idl b/offapi/com/sun/star/chart2/ScaleData.idl new file mode 100644 index 0000000000..94c6da7a6d --- /dev/null +++ b/offapi/com/sun/star/chart2/ScaleData.idl @@ -0,0 +1,99 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module chart2 { + + +struct ScaleData +{ + /** if the any contains a double value this is used as a fixed + maximum. Otherwise, if the any is empty or contains an + incompatible type, the maximum is automatic. + +If the maximum is automatic, this means, each view that + represents the model containing this scale, has to calculate a + maximum by its own means.
+ */ + any Minimum; + + /** if the any contains a double value this is used as a fixed + minimum. Otherwise, if the any is empty or contains an + incompatible type, the minimum is automatic. + +If the minimum is automatic, this means, each view that + represents the model containing this scale, has to calculate a + minimum by its own means.
+ */ + any Maximum; + + + /** The Origin indicates where other axes cross this axis. + If the any contains a double value that value is used. + Otherwise an appropriate value has to be calculated + by that instances using Origin. + */ + any Origin; + + /** Axis orientation (standard or reversed). + +If used at the Y axis in pie charts or doughnut charts, specifies + the rotation direction of the pie. The value + AxisOrientation::MATHEMATICAL rotates the pie + counterclockwise, the value AxisOrientation::REVERSE + rotates the pie clockwise.
+ +Note: Is this a good place for the axis orientation? Two axes may + use the same scale, but point into two different directions.
+ */ + AxisOrientation Orientation; + + XScaling Scaling; + + com::sun::star::chart2::data::XLabeledDataSequence Categories; + + /** describes the type of the axis. + +It can be a real number axis or a category axis or something else. + AxisType is one value out of the constant group AxisType.
+ */ + long AxisType; + + /** if true an AxisType CATEGORY is interpreted as DATE if the underlying data given in Categories are dates + */ + boolean AutoDateAxis; + + /** describes whether data points on category or date axis are placed between tickmarks or not + if true the maximum on the scale will be expanded for one interval + */ + boolean ShiftedCategoryPosition; + + /** increment data to be used for not date-time axis + */ + IncrementData IncrementData; + + /** increment data to be used in case of date-time axis + */ + ::com::sun::star::chart::TimeIncrement TimeIncrement; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/Scaling.idl b/offapi/com/sun/star/chart2/Scaling.idl new file mode 100644 index 0000000000..5b64219274 --- /dev/null +++ b/offapi/com/sun/star/chart2/Scaling.idl @@ -0,0 +1,31 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module chart2 { + + +/** stateless service +*/ +service Scaling : com::sun::star::chart2::XScaling; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/StackingDirection.idl b/offapi/com/sun/star/chart2/StackingDirection.idl new file mode 100644 index 0000000000..7a89a4c40e --- /dev/null +++ b/offapi/com/sun/star/chart2/StackingDirection.idl @@ -0,0 +1,42 @@ +/* -*- 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 . + */ + +module com +{ +module sun +{ +module star +{ +module chart2 +{ + +enum StackingDirection +{ + NO_STACKING, + Y_STACKING, + Z_STACKING +}; + +} ; // chart2 +} ; // com +} ; // sun +} ; // star + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/StandardDiagramCreationParameters.idl b/offapi/com/sun/star/chart2/StandardDiagramCreationParameters.idl new file mode 100644 index 0000000000..b49dcb88f4 --- /dev/null +++ b/offapi/com/sun/star/chart2/StandardDiagramCreationParameters.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 . + */ + +module com +{ +module sun +{ +module star +{ +module chart2 +{ + +/** parameters that may be passed to + XChartTypeTemplate::createDiagramByDataSource(). + */ +service StandardDiagramCreationParameters +{ + /** States whether the first XLabeledDataSequence in + a data-source is used as categories. + */ + [optional, property] boolean HasCategories; + + /** If categories are given they should be used as x values also if a chart type requires x values. + Default is true. + */ + [optional, property] boolean UseCategoriesAsX; +}; + +} ; // chart2 +} ; // com +} ; // sun +} ; // star + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/SubIncrement.idl b/offapi/com/sun/star/chart2/SubIncrement.idl new file mode 100644 index 0000000000..943e7eb081 --- /dev/null +++ b/offapi/com/sun/star/chart2/SubIncrement.idl @@ -0,0 +1,40 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module chart2 { + + +struct SubIncrement +{ + /** should contain nothing for auto, or an integer value + for an explicit interval count. + */ + any IntervalCount; + + /** should contain nothing for auto, or a boolean value + for an explicit setting. + */ + any PostEquidistant; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/Symbol.idl b/offapi/com/sun/star/chart2/Symbol.idl new file mode 100644 index 0000000000..9721352cc7 --- /dev/null +++ b/offapi/com/sun/star/chart2/Symbol.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 . + */ + + +module com { module sun { module star { module chart2 { + + +/** properties that are used for DataSeries that display symbols. + */ +struct Symbol +{ + /** determines which of the following members determines the + appearance of the symbol. + */ + SymbolStyle Style; + + /** The given polygon is used as symbol. + */ + com::sun::star::drawing::PolyPolygonBezierCoords PolygonCoords; + + /** Use the nth standard symbol, if #Style is set + to SymbolStyle::STANDARD. + +If n is the number of standard symbols available in an + implementation, the symbol number is + #StandardSymbol modulo n.
+ +The default implementation for example currently uses 8 different + standard symbols that are matched to the numbers 0 to 7. + +
value StandardSymbol | visible Symbol |
---|---|
0 | square |
1 | diamond |
2 | down arrow |
3 | up arrow |
4 | right arrow |
5 | left arrow |
6 | bowtie |
7 | sandglass |
Only effective if #Style is + SymbolStyle::AUTO, + SymbolStyle::STANDARD or + SymbolStyle::POLYGON.
+ */ + long BorderColor; + + /** The color used for filling symbols that contain closed polygons. + +Only effective if #Style is + SymbolStyle::AUTO, + SymbolStyle::STANDARD or + SymbolStyle::POLYGON.
+ */ + long FillColor; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/SymbolStyle.idl b/offapi/com/sun/star/chart2/SymbolStyle.idl new file mode 100644 index 0000000000..9aee7d6405 --- /dev/null +++ b/offapi/com/sun/star/chart2/SymbolStyle.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 . + */ + + +module com { module sun { module star { module chart2 { + + +/** determines what kind of symbol to use + */ +enum SymbolStyle +{ + /** The symbol is invisible + */ + NONE, + + /** The symbol is taken automatically. + +This will typically be the nth standard symbol for the nth + data series.
+ */ + AUTO, + + /** uses one of the standard symbols. Which standard symbol is + given in Symbol::StandardSymbol. + */ + STANDARD, + + /** uses the symbol given in the + com::sun::star::drawing::PolyPolygonBezierCoords + given in Symbol::PolygonCoords. + */ + POLYGON, + + /** uses the graphic given in + Symbol::Graphic as symbol. + */ + GRAPHIC +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/TickmarkStyle.idl b/offapi/com/sun/star/chart2/TickmarkStyle.idl new file mode 100644 index 0000000000..ee647f856c --- /dev/null +++ b/offapi/com/sun/star/chart2/TickmarkStyle.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 . + */ + +module com +{ +module sun +{ +module star +{ +module chart2 +{ + +constants TickmarkStyle +{ + /** Do not display any marks. + */ + const long NONE = 0; + + /** Display marks that point into the diagram area. + */ + const long INNER = 1; + + /** Display marks that point out of the diagram area. + */ + const long OUTER = 2; + + // note: to get both, add INNER and OUTER +}; + +} ; // chart2 +} ; // com +} ; // sun +} ; // star + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/Title.idl b/offapi/com/sun/star/chart2/Title.idl new file mode 100644 index 0000000000..d727ef2b3b --- /dev/null +++ b/offapi/com/sun/star/chart2/Title.idl @@ -0,0 +1,75 @@ +/* -*- 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 . + */ + +//FIXME does not existIf a relative position is given the title is not automatically placed, + but instead is placed relative on the page.
+ */ + [property, maybevoid] ::com::sun::star::chart2::RelativePosition RelativePosition; + + + /** contains the size of the page at the time when properties were + set (e.g. the CharHeight). + +This way it is possible to resize objects (like text) in + the view without modifying the model.
+ */ + [property, maybevoid] com::sun::star::awt::Size ReferencePageSize; +}; + +} ; // chart2 +} ; // com +} ; // sun +} ; // star + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/TransparencyStyle.idl b/offapi/com/sun/star/chart2/TransparencyStyle.idl new file mode 100644 index 0000000000..2c52ce9c36 --- /dev/null +++ b/offapi/com/sun/star/chart2/TransparencyStyle.idl @@ -0,0 +1,52 @@ +/* -*- 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 . + */ + +module com +{ +module sun +{ +module star +{ +module chart2 +{ + +enum TransparencyStyle +{ + /** no transparency attribute is evaluated + */ + NONE, + + /** The property Transparency is evaluated, TransparencyGradient + is ignored + */ + LINEAR, + + /** The property TransparencyGradient is evaluated, Transparency + is ignored + */ + GRADIENT +}; + +} ; // chart2 +} ; // com +} ; // sun +} ; // star + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/XAnyDescriptionAccess.idl b/offapi/com/sun/star/chart2/XAnyDescriptionAccess.idl new file mode 100644 index 0000000000..6b7dcd27c4 --- /dev/null +++ b/offapi/com/sun/star/chart2/XAnyDescriptionAccess.idl @@ -0,0 +1,82 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module chart2 { + + +/** Offers any access to column and row descriptions. +This allows to set date values as categories. + +Can be obtained from interface XChartDocument via method getData().
+ +@since OOo 3.4 +*/ + +interface XAnyDescriptionAccess : ::com::sun::star::chart::XComplexDescriptionAccess +{ + + /** retrieves the descriptions for all rows. + + @returns + a sequence of sequences of anys representing the descriptions + of all rows. The outer index represents different rows. + The inner index represents the different levels (usually there is only one). + The any might be strings for category text axis or doubles for date axis. + */ + sequence< sequence< any > > getAnyRowDescriptions(); + + + /** sets the descriptions for all rows. + + @param rRowDescriptions + a sequence of sequences of anys representing the descriptions of all + rows. The outer index represents different rows. + The inner index represents the different levels (usually there is only one). + The any might be strings for category text axis or doubles for date axis. + */ + void setAnyRowDescriptions( [in] sequence< sequence< any > > rRowDescriptions ); + + + /** retrieves the descriptions for all columns. + + @returns + a sequence of sequences of anys representing the descriptions + of all columns. The outer index represents different columns. + The inner index represents the different levels (usually there is only one). + The any might be strings for category text axis or doubles for date axis. + */ + sequence< sequence< any > > getAnyColumnDescriptions(); + + + /** sets the descriptions for all columns. + + @param rColumnDescriptions + a sequence of sequences of anys which represent the descriptions of + all columns. The outer index represents different columns. + The inner index represents the different levels (usually there is only one). + The any might be strings for category text axis or doubles for date axis. + */ + void setAnyColumnDescriptions( [in] sequence< sequence< any > > rColumnDescriptions ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/XAxis.idl b/offapi/com/sun/star/chart2/XAxis.idl new file mode 100644 index 0000000000..2306547d51 --- /dev/null +++ b/offapi/com/sun/star/chart2/XAxis.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 . + */ + +module com +{ +module sun +{ +module star +{ +module chart2 +{ + +interface XAxis : ::com::sun::star::uno::XInterface +{ + void setScaleData( [in] ScaleData aScale ); + + ScaleData getScaleData(); + + /** the returned property set must support the service + GridProperties + */ + com::sun::star::beans::XPropertySet getGridProperties(); + + /** the returned property sets must support the service + GridProperties + +If you do not want to render certain a sub-grid, in the + corresponding XPropertySet the property + GridProperties::Show must be `FALSE`.
+ */ + sequence< com::sun::star::beans::XPropertySet > getSubGridProperties(); + + /** the returned property sets must support the service + TickProperties + */ + sequence< com::sun::star::beans::XPropertySet > getSubTickProperties(); +}; + +} ; // chart2 +} ; // com +} ; // sun +} ; // star + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/XChartDocument.idl b/offapi/com/sun/star/chart2/XChartDocument.idl new file mode 100644 index 0000000000..439c90861a --- /dev/null +++ b/offapi/com/sun/star/chart2/XChartDocument.idl @@ -0,0 +1,127 @@ +/* -*- 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 . + */ + +module com +{ +module sun +{ +module star +{ +module chart2 +{ + +interface XChartDocument : ::com::sun::star::frame::XModel +{ + /** @todo allow more than one diagram + +Notes: this is preliminary, we need an API that supports + more than one diagram. The method name getDiagram exists in + the css.chart API, so there is would be no way to choose either + this or the other method from Basic (it would chose one or the + other by random).
+ */ + XDiagram getFirstDiagram(); + + /** @todo allow more than one diagram + +Notes: this is preliminary, we need an API that supports + more than one diagram. The method name setDiagram exists in + the css.chart API, so there is would be no way to choose either + this or the other method from Basic (it would chose one or the + other by random).
+ */ + void setFirstDiagram( [in] XDiagram xDiagram ); + + /** creates an internal + com::sun::star::chart2::XDataProvider that + is handled by the chart document itself. + +When the model is stored, the data provider will also be + stored in a sub-storage.
+ + @param bCloneExistingData + if `TRUE` and a data provider was previously attached, + its referred data will be copied to the new internal data + provider. Note, that the range representation set before + will usually change after cloning. + + @throws com::sun::star::util:CloseVetoException + If the new data provider could not be created due to a + failed removal of the former data provider. + */ + void createInternalDataProvider( [in] boolean bCloneExistingData ) + raises( com::sun::star::util::CloseVetoException ); + + /** @return `TRUE` if the data provider set at the chart document + is an internal one. + +This is the case directly after + createInternalDataProvider() has been called, + but this is not necessary. The chart can also create an + internal data provider by other means, e.g. a call to + com::sun::star::frame::XModel::initNew(). +
+ */ + boolean hasInternalDataProvider(); + + /** Returns the currently set data provider. This may be an + internal one, if createInternalDataProvider() + has been called before, or an external one if + XDataReceiver::attachDataProvider() has been + called. + */ + com::sun::star::chart2::data::XDataProvider getDataProvider(); + + /** sets a new component that is able to create different chart + type templates (components of type + ChartTypeTemplate) + */ + void setChartTypeManager( [in] XChartTypeManager xNewManager ); + + /** retrieves the component that is able to create different chart + type templates (components of type + ChartTypeTemplate) + */ + XChartTypeManager getChartTypeManager(); + + /** Gives access to the page background appearance. + + @return + the properties of the background area of the chart + document. + +The area's extent is equal to the document size. If you + want to access properties of the background area of a single + diagram (the part where data points are actually plotted in), + you have to get its wall. You can get the wall by calling + XDiagram::getWall().
+ */ + com::sun::star::beans::XPropertySet getPageBackground(); + + /** Creates a default chart type for a brand-new chart object. + */ + void createDefaultChart(); +}; + +} ; // chart2 +} ; // com +} ; // sun +} ; // star + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/XChartShape.idl b/offapi/com/sun/star/chart2/XChartShape.idl new file mode 100644 index 0000000000..d9cc7c6fa3 --- /dev/null +++ b/offapi/com/sun/star/chart2/XChartShape.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 . + */ + + + +module com { module sun { module star { module chart2 { + + +/** +this interface is used for a wrapper of objects implementing the service com::sun::star::drawing::Shape +*/ + +//interface XChartShape : ::com::sun::star::beans::XPropertySet +interface XChartShape : ::com::sun::star::uno::XInterface +{ + /** the method corresponds to the identical methods of the interface com::sun::star::beans::XPropertySet + */ + void setPropertyValue( [in] string aPropertyName, + [in] any aValue ) + raises( com::sun::star::beans::UnknownPropertyException, + com::sun::star::beans::PropertyVetoException, + com::sun::star::lang::IllegalArgumentException, + com::sun::star::lang::WrappedTargetException ); + + /** the method corresponds to the identical methods of the interface com::sun::star::beans::XPropertySet + */ + any getPropertyValue( [in] string PropertyName ) + raises( com::sun::star::beans::UnknownPropertyException, + com::sun::star::lang::WrappedTargetException ); + + /** the method corresponds to the identical methods of the interface com::sun::star::drawing::XShape + */ + com::sun::star::awt::Point getPosition(); + + /** the method corresponds to the identical methods of the interface com::sun::star::drawing::XShape + */ + void setPosition( [in] com::sun::star::awt::Point aPosition ); + + /** the method corresponds to the identical methods of the interface com::sun::star::drawing::XShape + */ + com::sun::star::awt::Size getSize(); + + /** the method corresponds to the identical methods of the interface com::sun::star::drawing::XShape + */ + void setSize( [in] com::sun::star::awt::Size aSize ) + raises( com::sun::star::beans::PropertyVetoException ); + + /** the method corresponds to the identical methods of the interface com::sun::star::drawing::XShape + * ??????????? deprecated + * + */ + string getShapeType(); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/XChartShapeContainer.idl b/offapi/com/sun/star/chart2/XChartShapeContainer.idl new file mode 100644 index 0000000000..2d34c3c765 --- /dev/null +++ b/offapi/com/sun/star/chart2/XChartShapeContainer.idl @@ -0,0 +1,41 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module chart2 { + + +interface XChartShapeContainer : ::com::sun::star::uno::XInterface +{ + /** a renderer creates ChartShapes and adds it to this container + */ + void addShape( [in] com::sun::star::drawing::XShape xShape ); + + /** a renderer can remove ChartShapes from this container (e.g. if the visible range has changed) + */ + void removeShape( [in] com::sun::star::drawing::XShape xShape ); + com::sun::star::drawing::XShape getShape(); + + //... provide something for creation of Transformation ... +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/XChartType.idl b/offapi/com/sun/star/chart2/XChartType.idl new file mode 100644 index 0000000000..7e216a00a4 --- /dev/null +++ b/offapi/com/sun/star/chart2/XChartType.idl @@ -0,0 +1,85 @@ +/* -*- 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 . + */ + +module com +{ +module sun +{ +module star +{ +module chart2 +{ + +interface XChartType : com::sun::star::uno::XInterface +{ + /** A string representation of the chart type. + This needs to be the service-name which can be used to create a chart type. + */ + string getChartType(); + + /** Creates a coordinate systems that fits the chart-type with its + current settings and for the given dimension. + + @throws IllegalArgumentException + This chart type cannot be displayed in the given dimension. + */ + XCoordinateSystem createCoordinateSystem( [in] long DimensionCount ) + raises( com::sun::star::lang::IllegalArgumentException ); + + /** Returns a sequence of roles that are understood by this chart + type. + +All roles must be listed in the order in which they are + usually parsed. This ensures that gluing sequences together + and splitting them up apart again results in the same + structure as before.
+ +Note, that this does not involve optional roles, like + error-bars.
+ */ + sequence< string > getSupportedMandatoryRoles(); + + /** Returns a sequence of roles that are understood in addition to + the mandatory roles (see + XChartType::getSupportedMandatoryRoles()). + +An example for an optional role are error-bars.
+ */ + sequence< string > getSupportedOptionalRoles(); + + /** Returns a sequence with supported property mapping roles. + +An example for a property mapping role is FillColor.
+ */ + sequence< string > getSupportedPropertyRoles(); + + /** Returns the role of the XLabeledDataSequence of + which the label will be taken to identify the + DataSeries in dialogs or the legend. + */ + string getRoleOfSequenceForSeriesLabel(); +}; + +} ; // chart2 +} ; // com +} ; // sun +} ; // star + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/XChartTypeContainer.idl b/offapi/com/sun/star/chart2/XChartTypeContainer.idl new file mode 100644 index 0000000000..3e6174d8fb --- /dev/null +++ b/offapi/com/sun/star/chart2/XChartTypeContainer.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 . + */ + +module com +{ +module sun +{ +module star +{ +module chart2 +{ + +interface XChartTypeContainer : com::sun::star::uno::XInterface +{ + /** add a chart type to the chart type container + + @throws IllegalArgumentException + If the given chart type is already contained in the chart type container. + */ + void addChartType( [in] XChartType aChartType ) + raises( com::sun::star::lang::IllegalArgumentException ); + + /** removes one data series from the chart type container. + */ + void removeChartType( [in] XChartType aChartType ) + raises( com::sun::star::container::NoSuchElementException ); + + /** retrieve all chart types + */ + sequence< XChartType > getChartTypes(); + + /** set all chart types + */ + void setChartTypes( [in] sequence< XChartType > aChartTypes ) + raises( com::sun::star::lang::IllegalArgumentException ); +}; + +} ; // chart2 +} ; // com +} ; // sun +} ; // star + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/XChartTypeManager.idl b/offapi/com/sun/star/chart2/XChartTypeManager.idl new file mode 100644 index 0000000000..c2c17c92e2 --- /dev/null +++ b/offapi/com/sun/star/chart2/XChartTypeManager.idl @@ -0,0 +1,38 @@ +/* -*- 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 . + */ + +module com +{ +module sun +{ +module star +{ +module chart2 +{ + +interface XChartTypeManager : ::com::sun::star::uno::XInterface +{ +}; + +} ; // chart2 +} ; // com +} ; // sun +} ; // star + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/XChartTypeTemplate.idl b/offapi/com/sun/star/chart2/XChartTypeTemplate.idl new file mode 100644 index 0000000000..994f5e9ea8 --- /dev/null +++ b/offapi/com/sun/star/chart2/XChartTypeTemplate.idl @@ -0,0 +1,224 @@ +/* -*- 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_chart2_XChartTypeTemplate_idl +#define com_sun_star_chart2_XChartTypeTemplate_idl + +#includeFor standard parameters that may be used, see the + service StandardDiagramCreationParameters. +
+ + @return + The new diagram which represents this + ChartTypeTemplate. + */ + XDiagram createDiagramByDataSource( + [in] com::sun::star::chart2::data::XDataSource xDataSource, + [in] sequence< com::sun::star::beans::PropertyValue > aArguments ); + + /** @return + `TRUE` if the template does support categories + */ + boolean supportsCategories(); + + /** Analyses the given diagram and reinterprets its + DataSeries and Categories and + creates a new diagram based on these series. + +Note, that if matchesTemplate() returns + `TRUE` for the given XDiagram, the latter should + not be changed.
+ + @param xDiagram + The diagram given will be modified such that it represents + this ChartTypeTemplate. + */ + void changeDiagram( [in] XDiagram xDiagram ); + + /** Changes the given diagramxDiagram
by using the
+ new data given in xDataSource
.
+
+ Note that the data is interpreted in a way that fits this + template, but not necessarily the chart-types of the diagram. + This method should only be called if the data-format of the + diagram is compatible with the data-format of this + template.
+ +Ideally a matchesTemplate() call for the + given diagram should return `TRUE` before this method is + called.
+ + @param xDiagram + The diagram to be changed. + + @param xDataSource + This data source will be interpreted in a chart-type + specific way and the DataSeries found in +xDiagram
will be adapted to the new data.
+ Missing data series will be created and unused ones will
+ be deleted in xDiagram
.
+
+ @param aArguments
+ Arguments that tell the template how to slice the given
+ range. The properties should be defined in a separate
+ service.
+
+ For standard parameters that may be used, see the + service StandardDiagramCreationParameters. +
+ */ + void changeDiagramData( + [in] XDiagram xDiagram, + [in] com::sun::star::chart2::data::XDataSource xDataSource, + [in] sequence< com::sun::star::beans::PropertyValue > aArguments ); + + /** States whether the given diagram could have been created by + the template. + +The template will parse the DataSeriesTree of + the diagram to determine if the structure matches the one + which would have been created by + createDiagramByDataSource().
+ +For analysis all parts of the diagram may be used,
+ e.g. also properties set at the data series (like symbols)./p>
+
+ @param xDiagram
+ The diagram to be analyzed.
+
+ @param bAdaptProperties
+ If `TRUE` the properties of the template are set, such
+ that the template matches more accurately. E.g. for a
+ line-chart with symbols the property "Symbol" would be set
+ to `TRUE`. If this parameter is `FALSE` the template
+ itself stays unmodified.
+
+ @return
+ `TRUE` if the diagram given is structurally identical to
+ a diagram that was created using
+ createDiagramByDataSource() or
+ changeDiagram(). If `FALSE` is returned
+ the template stays unmodified even if
+ bAdaptProperties
is `TRUE`.
+ */
+ boolean matchesTemplate( [in] XDiagram xDiagram,
+ [in] boolean bAdaptProperties );
+
+ /** Provides a chart type object that can be used to create new
+ series.
+
+ @param aFormerlyUsedChartTypes
+ The list can be used to copy some aspects from old chart types during the creation of a new chart type.
+ The list might be empty.
+ */
+ XChartType getChartTypeForNewSeries( [in] sequence< XChartType > aFormerlyUsedChartTypes );
+
+ /**
+ This used to have a return type of XDataInterpreter.
+ Then I removed the whole XChartTypeTemplate interface in
+ commit 58766f997d59e4684f2887fd8cdeb12d2f8a9366.
+ Which turned out to be a bad idea, so I restored it.
+ I restored it in this form because I want to restore binary compatibility with vtable
+ layout, but I don't want to restore the XDataInterpreter stuff, which was not
+ useful for external use.
+ */
+ com::sun::star::uno::XInterface getDataInterpreter();
+
+ /** Applies a chart-type specific style (e.g. symbols) to all series in the
+ sequence aSeries.
+
+ @param xSeries
+ a single data series to which a style will be applied
+
+ @param nChartTypeGroupIndex
+ Denotes in which chart-type group the series lies, such this method
+ can apply different styles for different chart-type groups
+
+ @param nSeriesIndex
+ The index of the series inside the current chart-type group.
+ nSeriesIndex does not uniquely identify a data series alone, but
+ only together with nChartTypeGroupIndex
+
+ @param nSeriesCount
+ The number of series in the current chart-type group.
+
+ @todo In the future, this should only change the "Style" property and no
+ hard attributes.
+ */
+ void applyStyle( [in] XDataSeries xSeries,
+ [in] long nChartTypeGroupIndex,
+ [in] long nSeriesIndex,
+ [in] long nSeriesCount );
+
+ /** Resets all styles that were changed from the default at any
+ object in the chart and have not been later modified.
+
+
In createDiagramByDataSource() or + changeDiagram() a template might e.g. change + the page background color or the line style of all data + series. This method should reset all objects that still have + the changed settings to the default.
+ +If for example the template changed the + com::sun::star::drawing::LineStyle of all + series to NONE, this method should reset all series with + LineStyle NONE back to SOLID. If a series has a style DASH, + it must not be changed.
+ */ + void resetStyles( [in] XDiagram xDiagram ); +}; + +} ; // chart2 +} ; // com +} ; // sun +} ; // star + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/XColorScheme.idl b/offapi/com/sun/star/chart2/XColorScheme.idl new file mode 100644 index 0000000000..59372c155f --- /dev/null +++ b/offapi/com/sun/star/chart2/XColorScheme.idl @@ -0,0 +1,54 @@ +/* -*- 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 . + */ + +module com +{ +module sun +{ +module star +{ +module chart2 +{ + +interface XColorScheme : ::com::sun::star::uno::XInterface +{ + /** returns the default color for the nth data series. + +This may be a system wide color or a color coming from a + color scheme.
+ +Usually there exist a fixed number of default colors. This + method should always return a valid Color. If the index (i) + is higher than the number of default colors (n), the method + should return the modulus (i mod n), i.e., the colors should + repeat in a cyclic way.
+ + @param nIndex + The index of the series. This is used to obtain the + correct default color. + */ + ::com::sun::star::util::Color getColorByIndex( [in] long nIndex ); +}; + +} ; // chart2 +} ; // com +} ; // sun +} ; // star + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/XCoordinateSystem.idl b/offapi/com/sun/star/chart2/XCoordinateSystem.idl new file mode 100644 index 0000000000..5d19623f86 --- /dev/null +++ b/offapi/com/sun/star/chart2/XCoordinateSystem.idl @@ -0,0 +1,76 @@ +/* -*- 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 . + */ + +module com +{ +module sun +{ +module star +{ +module chart2 +{ + +interface XCoordinateSystem : ::com::sun::star::uno::XInterface +{ + /** the dimension of the coordinate-system. + */ + long getDimension(); + + /** identifies the type of coordinate system (e.g. Cartesian, polar ...) + */ + string getCoordinateSystemType(); + + /** return a service name from which the view component for this coordinate system can be created + */ + string getViewServiceName(); + + /** The dimension says whether it is a x, y or z axis. + The index says whether it is a primary or a secondary axis. + Use nIndex == 0 for a primary axis. + */ + void setAxisByDimension( [in] long nDimension, + [in] XAxis xAxis, + [in] long nIndex ) + raises( com::sun::star::lang::IndexOutOfBoundsException ); + + /** The dimension says whether it is a x, y or z axis. + The index indicates whether it is a primary or a secondary axis or maybe more in future. + Use nIndex == 0 for a primary axis. + An empty Reference will be returned if the given nDimension and nIndex are in the valid range but no axis is set for those values. + An IndexOutOfBoundsException will be thrown if nDimension is lower than 0 or greater than the value returned by getDimension() + and/or if nIndex is lower 0 or greater than the value returned by getMaxAxisIndexByDimension(nDimension). + */ + XAxis getAxisByDimension( [in] long nDimension, [in] long nIndex ) + raises( com::sun::star::lang::IndexOutOfBoundsException ); + + /** In one dimension there could be several axes to enable main and secondary axis and maybe more in future. + This method returns the maximum index at which an axis exists for the given dimension. + It is allowed that some indexes in between do not have an axis. + */ + long getMaximumAxisIndexByDimension( [in] long nDimension ) + raises( com::sun::star::lang::IndexOutOfBoundsException ); +}; + +} ; // chart2 +} ; // com +} ; // sun +} ; // star + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/XCoordinateSystemContainer.idl b/offapi/com/sun/star/chart2/XCoordinateSystemContainer.idl new file mode 100644 index 0000000000..3f77cab95b --- /dev/null +++ b/offapi/com/sun/star/chart2/XCoordinateSystemContainer.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 . + */ + +module com +{ +module sun +{ +module star +{ +module chart2 +{ + +interface XCoordinateSystemContainer : com::sun::star::uno::XInterface +{ + /** add a coordinate system to the coordinate system container + + @throws IllegalArgumentException + If the given coordinate system is already contained in the container. + */ + void addCoordinateSystem( [in] XCoordinateSystem aCoordSys ) + raises( com::sun::star::lang::IllegalArgumentException ); + + /** removes one coordinate system from the coordinate system container. + */ + void removeCoordinateSystem( [in] XCoordinateSystem aCoordSys ) + raises( com::sun::star::container::NoSuchElementException ); + + /** retrieve all coordinate systems + */ + sequence< XCoordinateSystem > getCoordinateSystems(); + + /** set all coordinate systems + */ + void setCoordinateSystems( [in] sequence< XCoordinateSystem > aCoordinateSystems ) + raises( com::sun::star::lang::IllegalArgumentException ); +}; + +} ; // chart2 +} ; // com +} ; // sun +} ; // star + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/XDataPointCustomLabelField.idl b/offapi/com/sun/star/chart2/XDataPointCustomLabelField.idl new file mode 100644 index 0000000000..f889ba387b --- /dev/null +++ b/offapi/com/sun/star/chart2/XDataPointCustomLabelField.idl @@ -0,0 +1,64 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */ +/* + * 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/. + */ + +module com { module sun { module star { module chart2 { + +/** + Provides interface for DataPointCustomLabelField service. + + @since LibreOffice 6.1 +*/ +interface XDataPointCustomLabelField : XFormattedString2 +{ + DataPointCustomLabelFieldType getFieldType(); + + void setFieldType( [in] DataPointCustomLabelFieldType fieldType ); + + string getGuid(); + + void setGuid( [in] string guid ); + + /** + Indicates whether the label field's content is sourced from a cell[range] or not. + + @since LibreOffice 7.3 + */ + boolean getDataLabelsRange(); + + /** + Sets whether the label field's content is sourced from a cell[range] or not. + + @since LibreOffice 7.3 + */ + void setDataLabelsRange( [in] boolean dataLabelsRange ); + + /** + Returns the address of the cell[range] from which the content of this field is sourced. + + @since LibreOffice 7.3 + */ + string getCellRange(); + + /** + Sets the address of the cell[range] from which the content of this field is sourced. + + @since LibreOffice 7.3 + */ + void setCellRange( [in] string cellRange ); + +}; + + + +} ; // chart2 +} ; // com +} ; // sun +} ; // star + +/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ diff --git a/offapi/com/sun/star/chart2/XDataProviderAccess.idl b/offapi/com/sun/star/chart2/XDataProviderAccess.idl new file mode 100644 index 0000000000..ffbedca6c9 --- /dev/null +++ b/offapi/com/sun/star/chart2/XDataProviderAccess.idl @@ -0,0 +1,33 @@ +/* -*- 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/. + */ + +module com { module sun { module star { module chart2 { + + +/** Provides access to chart2 data providers for a given document + + @since LibreOffice 6.1 + + */ +interface XDataProviderAccess : com::sun::star::uno::XInterface +{ + + /** creates a data provider for chart2, if possible + + @see com::sun::star::chart2::data::XDataProvider + + */ + com::sun::star::chart2::data::XDataProvider createDataProvider(); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/XDataSeries.idl b/offapi/com/sun/star/chart2/XDataSeries.idl new file mode 100644 index 0000000000..c2fc19b8e5 --- /dev/null +++ b/offapi/com/sun/star/chart2/XDataSeries.idl @@ -0,0 +1,64 @@ +/* -*- 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 . + */ + +module com +{ +module sun +{ +module star +{ +module chart2 +{ + +/** A data series represents the object that has all the knowledge to + be rendered as a visual data series. + */ +interface XDataSeries : ::com::sun::star::uno::XInterface +{ + /** @returns + the element at the specified index. + + @param nIndex + specifies the index of the data point within the series. The first index is 0. + + @throws com::sun::star::lang::IndexOutOfBoundsException + if the index is not valid. + */ + ::com::sun::star::beans::XPropertySet getDataPointByIndex( [in] long nIndex ) + raises( ::com::sun::star::lang::IndexOutOfBoundsException ); + + /** the formatting of the specified data point is cleared + + @param nIndex + specifies the index of the data point within the series. The first index is 0. + */ + void resetDataPoint( [in] long nIndex ); + + /** all data point formatting are cleared + */ + void resetAllDataPoints(); +}; + +} ; // chart2 +} ; // com +} ; // sun +} ; // star + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/XDataSeriesContainer.idl b/offapi/com/sun/star/chart2/XDataSeriesContainer.idl new file mode 100644 index 0000000000..ce8ac9f519 --- /dev/null +++ b/offapi/com/sun/star/chart2/XDataSeriesContainer.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 . + */ + +module com +{ +module sun +{ +module star +{ +module chart2 +{ + +interface XDataSeriesContainer : com::sun::star::uno::XInterface +{ + /** add a data series to the data series container + + @throws IllegalArgumentException + If the given data series is already contained in the data series container. + */ + void addDataSeries( [in] XDataSeries aDataSeries ) + raises( com::sun::star::lang::IllegalArgumentException ); + + /** removes one data series from the data series container. + */ + void removeDataSeries( [in] XDataSeries aDataSeries ) + raises( com::sun::star::container::NoSuchElementException ); + + /** retrieve all data series + */ + sequence< XDataSeries > getDataSeries(); + + /** set all data series + */ + void setDataSeries( [in] sequence< XDataSeries > aDataSeries ) + raises( com::sun::star::lang::IllegalArgumentException ); +}; + +} ; // chart2 +} ; // com +} ; // sun +} ; // star + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/XDataTable.idl b/offapi/com/sun/star/chart2/XDataTable.idl new file mode 100644 index 0000000000..3903df2f84 --- /dev/null +++ b/offapi/com/sun/star/chart2/XDataTable.idl @@ -0,0 +1,32 @@ +/* -*- 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/. + */ + +module com +{ +module sun +{ +module star +{ +module chart2 +{ + +/** Interface for the data table of a diagram + + The data table of a chart is an chart element, that shows the + values used to visualize the chart in a table. + + @since LibreOffice 7.5 + */ +interface XDataTable : ::com::sun::star::uno::XInterface +{ +}; + +}; }; }; }; // com::sun::star::chart2 + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/XDefaultSizeTransmitter.idl b/offapi/com/sun/star/chart2/XDefaultSizeTransmitter.idl new file mode 100644 index 0000000000..216f7dc220 --- /dev/null +++ b/offapi/com/sun/star/chart2/XDefaultSizeTransmitter.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 . + */ + +module com +{ +module sun +{ +module star +{ +module chart2 +{ + +/** Allows to set a default size. This size will be used in case no further information si available. + */ +interface XDefaultSizeTransmitter : ::com::sun::star::uno::XInterface +{ + /** set a default size + @param aSize100ThMm + specifies a size in hundredth mm. + */ + void setDefaultSize( [in] ::com::sun::star::awt::Size aSize100ThMm ); +}; + +} ; // chart2 +} ; // com +} ; // sun +} ; // star + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/XDiagram.idl b/offapi/com/sun/star/chart2/XDiagram.idl new file mode 100644 index 0000000000..5020c608f1 --- /dev/null +++ b/offapi/com/sun/star/chart2/XDiagram.idl @@ -0,0 +1,100 @@ +/* -*- 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 . + */ + +module com +{ +module sun +{ +module star +{ +module chart2 +{ + +interface XDiagram : ::com::sun::star::uno::XInterface +{ + /** returns the property set that determines the visual appearance + of the wall. + +The wall is the area behind the union of all + coordinate systems used in a diagram.
+ */ + com::sun::star::beans::XPropertySet getWall(); + + /** returns the property set that determines the visual appearance + of the floor if any. + +The floor is the bottom of a 3D diagram. + For a 2D diagram NULL is returned.
+ */ + com::sun::star::beans::XPropertySet getFloor(); + + /** returns the legend, which may represent data series and other + information about a diagram in a separate box. + */ + XLegend getLegend(); + + /** sets a new legend. + */ + void setLegend( [in] XLegend xLegend ); + + /** returns an XColorScheme that defines the default + colors for data series (or data points) in the diagram. + */ + XColorScheme getDefaultColorScheme(); + + /** sets an XColorScheme that defines the default + colors for data series (or data points) in the diagram. + */ + void setDefaultColorScheme( [in] XColorScheme xColorScheme ); + + /** sets new data to the diagram. + + @param xDataSource + This data source will be interpreted in a chart-type + specific way and the DataSeries found in +xDiagram
will be adapted to the new data.
+ Missing data series will be created and unused ones will
+ be deleted.
+
+ @param aArguments
+ Arguments tells how to slice the given data.
+
+ For standard parameters that may be used, see the + service StandardDiagramCreationParameters. +
+ */ + void setDiagramData( [in] com::sun::star::chart2::data::XDataSource xDataSource, + [in] sequence< com::sun::star::beans::PropertyValue > aArguments ); + + + /** returns the data table + */ + XDataTable getDataTable(); + + /** sets a new data table. + */ + void setDataTable([in] XDataTable xDataTable); +}; + +} ; // chart2 +} ; // com +} ; // sun +} ; // star + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/XDiagramProvider.idl b/offapi/com/sun/star/chart2/XDiagramProvider.idl new file mode 100644 index 0000000000..80940343ce --- /dev/null +++ b/offapi/com/sun/star/chart2/XDiagramProvider.idl @@ -0,0 +1,44 @@ +/* -*- 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 . + */ + +module com +{ +module sun +{ +module star +{ +module chart2 +{ + +/** Gives access to a single diagram. This interface is needed by the + wrapper for the old API (namespace com::sun::star::chart). + */ +interface XDiagramProvider : ::com::sun::star::uno::XInterface +{ + XDiagram getDiagram(); + + void setDiagram( [in] XDiagram xDiagram ); +}; + +} ; // chart2 +} ; // com +} ; // sun +} ; // star + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/XFormattedString.idl b/offapi/com/sun/star/chart2/XFormattedString.idl new file mode 100644 index 0000000000..b427ea9ce7 --- /dev/null +++ b/offapi/com/sun/star/chart2/XFormattedString.idl @@ -0,0 +1,41 @@ +/* -*- 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 . + */ + +module com +{ +module sun +{ +module star +{ +module chart2 +{ + +interface XFormattedString : ::com::sun::star::uno::XInterface +{ + string getString(); + + void setString( [in] string String ); +}; + +} ; // chart2 +} ; // com +} ; // sun +} ; // star + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/XFormattedString2.idl b/offapi/com/sun/star/chart2/XFormattedString2.idl new file mode 100644 index 0000000000..5ae052e842 --- /dev/null +++ b/offapi/com/sun/star/chart2/XFormattedString2.idl @@ -0,0 +1,44 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module chart2 { + +/** + Provides unified interface for FormattedString service. + + @since LibreOffice 4.1 +*/ +interface XFormattedString2 +{ + /** Access to various character properties. + + Supports the properties of the + com::sun::star::style::CharacterProperties service, and also optionally + those of the com::sun::star::style::CharacterPropertiesAsian and + com::sun::star::style::CharacterPropertiesComplex services. + */ + interface com::sun::star::beans::XPropertySet; + + interface com::sun::star::chart2::XFormattedString; + +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/XInternalDataProvider.idl b/offapi/com/sun/star/chart2/XInternalDataProvider.idl new file mode 100644 index 0000000000..322c65240f --- /dev/null +++ b/offapi/com/sun/star/chart2/XInternalDataProvider.idl @@ -0,0 +1,82 @@ +/* -*- 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 . + */ + +module com +{ +module sun +{ +module star +{ +module chart2 +{ + +/** An internal DataProvider that has more access to data than a plain + DataProvider. + */ +interface XInternalDataProvider : com::sun::star::chart2::data::XDataProvider +{ + boolean hasDataByRangeRepresentation( [in] string aRange ); + sequence< any > getDataByRangeRepresentation( [in] string aRange ); + void setDataByRangeRepresentation( [in] string aRange, [in] sequence< any > aNewData ); + + /** @note Note that -1 is allowed as the sequence is inserted + after the given index. So to insert a sequence as the + new first sequence (index 0), you would pass -1 here. + */ + void insertSequence( [in] long nAfterIndex ); + void deleteSequence( [in] long nAtIndex ); + /** same as insertSequence with nAfterIndex being the largest + current index of the data, i.e. (size - 1) + */ + void appendSequence(); + + void insertDataPointForAllSequences( [in] long nAfterIndex ); + void deleteDataPointForAllSequences( [in] long nAtIndex ); + void swapDataPointWithNextOneForAllSequences( [in] long nAtIndex ); + + /** If range representations of data sequences change due to + internal structural changes, they must be registered at the + data provider. + +Sequences that are directly retrieved via the methods of + the XDataProvider interface are already registered. If a + labeled data sequence was created by cloning an existing one, + it has to be explicitly registered via this method.
+ */ + void registerDataSequenceForChanges( [in] com::sun::star::chart2::data::XDataSequence xSeq ); + + /** insert an additional sequence for categories nLevel>=1; + categories at level 0 are always present and cannot be inserted or deleted + @since OOo 3.3 + */ + void insertComplexCategoryLevel( [in] long nLevel ); + /** deletes an additional sequence for categories at nLevel>=1; + categories at level 0 are always present and cannot be deleted + @since OOo 3.3 + */ + void deleteComplexCategoryLevel( [in] long nLevel ); +}; + +} ; // chart2 +} ; // com +} ; // sun +} ; // star + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/XLabeled.idl b/offapi/com/sun/star/chart2/XLabeled.idl new file mode 100644 index 0000000000..00e81e9ec8 --- /dev/null +++ b/offapi/com/sun/star/chart2/XLabeled.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 . + */ + +module com +{ +module sun +{ +module star +{ +module chart2 +{ + +interface XLabeled +{ + void setLabel( [in] XTitle xTitle ); + + XTitle getLabel(); + + void setOwnAnchor( [in] ::com::sun::star::drawing::RectanglePoint aAnchorPoint ); + + ::com::sun::star::drawing::RectanglePoint getOwnAnchor(); + + void setLabelAnchor( [in] ::com::sun::star::drawing::RectanglePoint aAnchorPoint ); + + ::com::sun::star::drawing::RectanglePoint getLabelAnchor(); + + void setOffset( [in] sequence< double > aOffsetVector ); + + sequence< double > getOffset(); +}; + +} ; // chart2 +} ; // com +} ; // sun +} ; // star + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/XLegend.idl b/offapi/com/sun/star/chart2/XLegend.idl new file mode 100644 index 0000000000..3818004977 --- /dev/null +++ b/offapi/com/sun/star/chart2/XLegend.idl @@ -0,0 +1,40 @@ +/* -*- 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 . + */ + +module com +{ +module sun +{ +module star +{ +module chart2 +{ + +/** interface for the legend of a diagram + */ +interface XLegend : ::com::sun::star::uno::XInterface +{ +}; + +} ; // chart2 +} ; // com +} ; // sun +} ; // star + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/XRegressionCurve.idl b/offapi/com/sun/star/chart2/XRegressionCurve.idl new file mode 100644 index 0000000000..7c0ed2ba34 --- /dev/null +++ b/offapi/com/sun/star/chart2/XRegressionCurve.idl @@ -0,0 +1,43 @@ +/* -*- 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 . + */ + +module com +{ +module sun +{ +module star +{ +module chart2 +{ + +interface XRegressionCurve : com::sun::star::uno::XInterface +{ + XRegressionCurveCalculator getCalculator(); + + ::com::sun::star::beans::XPropertySet getEquationProperties(); + + void setEquationProperties( [in] ::com::sun::star::beans::XPropertySet xEquationProperties ); +}; + +} ; // chart2 +} ; // com +} ; // sun +} ; // star + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/XRegressionCurveCalculator.idl b/offapi/com/sun/star/chart2/XRegressionCurveCalculator.idl new file mode 100644 index 0000000000..1011a3015d --- /dev/null +++ b/offapi/com/sun/star/chart2/XRegressionCurveCalculator.idl @@ -0,0 +1,177 @@ +/* -*- 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 . + */ + +module com +{ +module sun +{ +module star +{ +module chart2 +{ + +interface XRegressionCurveCalculator : com::sun::star::uno::XInterface +{ + /** set calculation properties for curve calculation. + + @param degree + Degree of polynomial regression curve, value should be greater than zero + If the curve is not polynomial, this property has no effect. + + @param period + Period of a moving average regression curve, value should be greater or equal to 2 + If the curve is not moving average regression curve, this property has no effect. + + @param forceIntercept + Should force the intercept value. + + @param interceptValue + Intercept value. + + @param movingType + Only if regression type is "Moving Average" + @see ::com::sun::star::chart2::MovingAverageType + + */ + void setRegressionProperties( [in] long degree, + [in] boolean forceIntercept, + [in] double interceptValue, + [in] long period, + [in] long movingType); + + /** recalculates the parameters of the internal regression curve according to + the x- and y-values given. + + @param aXValues + All x-values that represent the measurement points on + which the regression is based + + @param aYValues + All y-values that represent the measurement points on + which the regression is based + */ + void recalculateRegression( [in] sequence< double > aXValues, + [in] sequence< double > aYValues); + + + /** calculates the value of the regression curve for x. + + @param x + The abscissa value for which the value of the regression + curve should be calculated. All numbers that are part of + the domain of the regression function are valid. + + @return + If x is element of the domain of the regression + curve function, the result is its value. + + @throws com::sun::star::lang::IllegalArgumentException + If x is not part of the domain of the regression + function. + */ + double getCurveValue( [in] double x ) + raises( com::sun::star::lang::IllegalArgumentException ); + + /** calculate multiple points of a regression curve at once. Note + that this method may optimize the output by returning less + points, e.g. for a line you may get only two resulting points + instead of nPointCount() points. This is only + allowed if the parameter + bMaySkipPointsInCalculation() is set to + `TRUE`. + +It is important that a renderer takes the scalings into + account. When one of these parameters is unknown, no + optimization must be done.
+ + @param min the abscissa value for the starting point. + @param max the abscissa value for the ending point. + + @param nPointCount the number of points to calculate. + + @param bMaySkipPointsInCalculation determines whether it is + allowed to skip points in the calculation. When this + parameter is `TRUE` it is assumed that the underlying + coordinate system is Cartesian. + + @param xScalingX a scaling that is used for the values in + x-direction + + @param xScalingY a scaling that is used for the values in + y-direction + */ + sequence< com::sun::star::geometry::RealPoint2D > getCurveValues( + [in] double min, + [in] double max, + [in] long nPointCount, + [in] XScaling xScalingX, + [in] XScaling xScalingY, + [in] boolean bMaySkipPointsInCalculation ) + raises( com::sun::star::lang::IllegalArgumentException ); + + /** Returns the value of the correlation coefficient for the given + regression. This value is often denoted as r or + R. + +The value of r is signed. Often + r2 is used instead of r to denote + a regression curve's accuracy.
+ + @return + The return value is the fraction of the variance in the + data that is explained by the regression. + */ + double getCorrelationCoefficient(); + + /** Retrieve a string showing the regression curve's function with + calculated parameters. + + @return + The string returned contains the regression curve's + formula in a form"f(x) = ...", where the + calculated parts are filled out. For a linear regression + you might get
"f(x) = 0.341 x + 1.45". + */ + string getRepresentation(); + + /** Returns a representation using the given number format for formatting all numbers + contained in the formula. Wrap equation to fit in nFormulaLength characters + + @see getRepresentation + */ + string getFormattedRepresentation( [in] com::sun::star::util::XNumberFormatsSupplier xNumFmtSupplier, + [in] long nNumberFormatKey, + [in] long nFormulaLength ); + + /** Set the names of X and Y variables of the equation to replace "x" and "f(x)" in representation + + @param aXName string of the name of X variable + @param aYName string of the name of Y variable + */ + void setXYNames( [in] string aXName, + [in] string aYName ); + +}; + +} ; // chart2 +} ; // com +} ; // sun +} ; // star + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/XRegressionCurveContainer.idl b/offapi/com/sun/star/chart2/XRegressionCurveContainer.idl new file mode 100644 index 0000000000..0ee55a4d17 --- /dev/null +++ b/offapi/com/sun/star/chart2/XRegressionCurveContainer.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 . + */ + +module com +{ +module sun +{ +module star +{ +module chart2 +{ + +interface XRegressionCurveContainer : com::sun::star::uno::XInterface +{ + /** add a regression curve to the container + + @throws IllegalArgumentException + If the given regression curve is already contained in the + container. + */ + void addRegressionCurve( [in] XRegressionCurve aRegressionCurve ) + raises( com::sun::star::lang::IllegalArgumentException ); + + /** removes one regression curve from the container. + */ + void removeRegressionCurve( [in] XRegressionCurve aRegressionCurve ) + raises( com::sun::star::container::NoSuchElementException ); + + /** retrieve all regression curves + */ + sequence< XRegressionCurve > getRegressionCurves(); + + /** set all regression curves + */ + void setRegressionCurves( [in] sequence< XRegressionCurve > aRegressionCurves ) + raises( com::sun::star::lang::IllegalArgumentException ); +}; + +} ; // chart2 +} ; // com +} ; // sun +} ; // star + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/XScaling.idl b/offapi/com/sun/star/chart2/XScaling.idl new file mode 100644 index 0000000000..331d60cd33 --- /dev/null +++ b/offapi/com/sun/star/chart2/XScaling.idl @@ -0,0 +1,52 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module chart2 { + + +interface XScaling : ::com::sun::star::uno::XInterface +{ + /** + * Given a numeric value, return the scaled value that conforms + * to a predefined scaling rule. For instance, for linear + * scaling, given a x value, the method may return a y value as + * defined by y = Ax + B for predefined values of A and B. + * + * @param value input value from which to calculate the scaled + * value. + * + * @return scaled value based on a predefined scaling rule. + */ + double doScaling( [in] double value ); + + /** + * Get an interface object that conforms to a scaling rule that + * is the reverse of the original scaling rule. + * + * @return interface object that represents the reversed + * scaling rule. + */ + com::sun::star::chart2::XScaling getInverseScaling(); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/XTarget.idl b/offapi/com/sun/star/chart2/XTarget.idl new file mode 100644 index 0000000000..1ea6e56dbb --- /dev/null +++ b/offapi/com/sun/star/chart2/XTarget.idl @@ -0,0 +1,36 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module chart2 { + +//................... wrong --> XDrawGroup + +// [in] com::sun::star::drawing::XShapes xShapes + +interface XTarget : ::com::sun::star::uno::XInterface +{ + void addDrawElement(); //(DrawElement); + + //... provide something for creation of Transformation ... +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/XTimeBased.idl b/offapi/com/sun/star/chart2/XTimeBased.idl new file mode 100644 index 0000000000..414347786a --- /dev/null +++ b/offapi/com/sun/star/chart2/XTimeBased.idl @@ -0,0 +1,33 @@ +/* -*- 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/. + */ + +module com { module sun { module star { module chart2 { + +interface XTimeBased : com::sun::star::uno::XInterface +{ + + /** + * @return + * FALSE if the data wrapped around + */ + boolean switchToNext( [in] boolean wrap); + + /** + * point is the zero based index into the time based array + * + * @return FALSE if the point is outside of the supported array + */ + boolean setToPointInTime( [in] long point ); + + void setRange( [in] long start, [in] long end ); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/XTitle.idl b/offapi/com/sun/star/chart2/XTitle.idl new file mode 100644 index 0000000000..924c310ea3 --- /dev/null +++ b/offapi/com/sun/star/chart2/XTitle.idl @@ -0,0 +1,41 @@ +/* -*- 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 . + */ + +module com +{ +module sun +{ +module star +{ +module chart2 +{ + +interface XTitle : ::com::sun::star::uno::XInterface +{ + sequence< XFormattedString > getText(); + + void setText( [in] sequence< XFormattedString > Strings ); +}; + +} ; // chart2 +} ; // com +} ; // sun +} ; // star + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/XTitled.idl b/offapi/com/sun/star/chart2/XTitled.idl new file mode 100644 index 0000000000..4cdafd44a3 --- /dev/null +++ b/offapi/com/sun/star/chart2/XTitled.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 . + */ + +module com +{ +module sun +{ +module star +{ +module chart2 +{ + +/** Interface to be implemented by objects that support having a title of type + XTitle. + */ +interface XTitled : ::com::sun::star::uno::XInterface +{ + /** get the object holding the title's content and formatting + */ + XTitle getTitleObject(); + + /** set a new title object replacing the former one + */ + void setTitleObject( [in] XTitle Title ); +}; + +} ; // chart2 +} ; // com +} ; // sun +} ; // star + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/data/DataFilter.idl b/offapi/com/sun/star/chart2/data/DataFilter.idl new file mode 100644 index 0000000000..03a74b7342 --- /dev/null +++ b/offapi/com/sun/star/chart2/data/DataFilter.idl @@ -0,0 +1,55 @@ +/* -*- 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 . + */ + +module com +{ +module sun +{ +module star +{ +module chart2 +{ +module data +{ + +/** A filter gets some data and provides some data. The received data + is typically (but not necessarily) different from the data that + can be retrieved by a filter. + */ +service DataFilter +{ + /** A DataFilter is a DataSink, because you can set some data at a + DataFilter. + */ + service DataSink; + + /** A DataFilter is a DataSource, because you can get some data + from a DataFilter. + */ + service DataSource; +}; + +} ; // data +} ; // chart2 +} ; // com +} ; // sun +} ; // star + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/data/DataProvider.idl b/offapi/com/sun/star/chart2/data/DataProvider.idl new file mode 100644 index 0000000000..3e93245e4f --- /dev/null +++ b/offapi/com/sun/star/chart2/data/DataProvider.idl @@ -0,0 +1,54 @@ +/* -*- 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 . + */ + +module com +{ +module sun +{ +module star +{ +module chart2 +{ +module data +{ + +service DataProvider +{ + /** For accessing data a component provides for being used by + charts. + */ + interface ::com::sun::star::chart2::data::XDataProvider; + + /** allows you to convert the ranges a data provider deals with + internally into valid XML. + */ + [optional] interface ::com::sun::star::chart2::data::XRangeXMLConversion; + + /** If set to false `FALSE`, values from hidden cells are not returned. + */ + [optional, property] boolean IncludeHiddenCells; +}; + +} ; // data +} ; // chart2 +} ; // com +} ; // sun +} ; // star + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/data/DataSequence.idl b/offapi/com/sun/star/chart2/data/DataSequence.idl new file mode 100644 index 0000000000..138acdef1a --- /dev/null +++ b/offapi/com/sun/star/chart2/data/DataSequence.idl @@ -0,0 +1,135 @@ +/* -*- 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 . + */ + +module com +{ +module sun +{ +module star +{ +module chart2 +{ +module data +{ + +/** describes a container for a sequence of values. + +
With the interface XDataSequence it is possible to + transfer a complete sequence of values. + +
With the optional + com::sun::star::container::XIndexReplace it is + possible to modify single elements, if the corresponding + DataProvider supports modification of its values.
+ */ +service DataSequence +{ + /** provides read- and write-access to the underlying data. + */ + interface XDataSequence; + + /** you may implement this interface to allow a fast access to + numerical data. With this interface you can get a + `sequence` of `double` values. + */ + [optional] interface XNumericalDataSequence; + + /** you may implement this interface to allow a fast access to + textual data. With this interface you can get a + `sequence` of `string` values. + */ + [optional] interface XTextualDataSequence; + + /** provides read- and write-access to single elements of the + underlying data. + +Only when supporting this interface, it is possible for + client applications to modify the content of the data that is + provided by this DataSequence.
+ */ + [optional] interface ::com::sun::star::container::XIndexReplace; + + /** Allows creating copies of data sequences. If this interface + is not supported, the same object will be shared if used by + multiple objects. + +Cloning is especially useful when using identifiers. A + cloned data sequence will get a new identifier while the + source range representation is identical to the original + one.
+ +Note that, when this interface is not implemented the + releasing of identifiers at the XDataProvider + will not work properly, because more than one object may use + the same identifier. So, when an object releases the + identifier, another object might use a stale identifier.
+ */ + [optional] interface ::com::sun::star::util::XCloneable; + + /** is used to broadcast change events whenever the content (data) + or the range representations change. + */ + interface com::sun::star::util::XModifyBroadcaster; + + /** the property interface by which the properties of all + supported services are exchanged + */ + interface ::com::sun::star::beans::XPropertySet; + + + /** The key (index) of the number format that this sequence should + be formatted with. + +The key identifies a number format in an + com::sun::star::util::XNumberFormats + object. This object can be retrieved by the + com::sun::star::util::XNumberFormatsSupplier + interface supported by + com::sun::star::chart::ChartDocument.
+ + @todo use proper number format instead of a transient key. + */ +// [optional, property] long NumberFormatKey; + + /** The role of the series inside a data series. This may be any + string. However some strings are predefined and should always + be used in the same way. + + @see DataSequenceRole + */ + [property] DataSequenceRole Role; + + /** If set to false `FALSE`, values from hidden cells are not returned. + */ + [optional, property] boolean IncludeHiddenCells; + + /** a sequence of indexes that identify values that are hidden in the underlying + data provider. + */ + [optional, property] sequence< long > HiddenValues; +}; + +} ; // data +} ; // chart2 +} ; // com +} ; // sun +} ; // star + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/data/DataSequenceRole.idl b/offapi/com/sun/star/chart2/data/DataSequenceRole.idl new file mode 100644 index 0000000000..44914ad66d --- /dev/null +++ b/offapi/com/sun/star/chart2/data/DataSequenceRole.idl @@ -0,0 +1,98 @@ +/* -*- 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 . + */ + +module com +{ +module sun +{ +module star +{ +module chart2 +{ +module data +{ + +/** a string that states in what way a DataSequence + should be used. If this property is an empty string, no + proposition about usage is made. + +The strings can have any value. However some values are + predefined and should always be interpreted in the same way.
+ +In a candle-stick chart you have the following roles:
+ +In case of a range spanning more than one column and row, + the shorter range of both should be used (e.g. a spreadsheet + range A1:B10 should treat columns as short side).
+ +In case of a rectangular range, or a range that is composed + of more than one contiguous sub-regions, the short side cannot + be determined, thus + XDataSequence::generateLabel() will return an + empty sequence.
+ */ + SHORT_SIDE, + + + /** This is exactly the opposite of SHORT_SIDE. I.e., if + SHORT_SIDE has the same effect as ROW, LONG_SIDE will have the + same effect as COLUMN and the other way round. + + @see LabelOrigin::SHORT_SIDE + */ + LONG_SIDE, + + + /** Uses the column name for label generation. A spreadsheet + range A1:A6 could, e.g., result in "Column A". + +If a range consists of more than one column the result of + label generation may be empty. Of course, it could also + succeed with a string like "Columns A to B". + */ + COLUMN, + + + /** Uses the column name for label generation. A spreadsheet + range A2:D2 could, e.g., result in "Row 2". + +
If a range consists of more than one row the result of + label generation may be empty. Of course, it could also + succeed with a string like "Rows 1-3". + */ + ROW +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/data/LabeledDataSequence.idl b/offapi/com/sun/star/chart2/data/LabeledDataSequence.idl new file mode 100644 index 0000000000..98f5a60360 --- /dev/null +++ b/offapi/com/sun/star/chart2/data/LabeledDataSequence.idl @@ -0,0 +1,43 @@ +/* -*- 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 . + */ + +module com +{ +module sun +{ +module star +{ +module chart2 +{ +module data +{ + +/** describes a container for a sequence pair of value-sequences, one + for a label and one for the associated data. + */ +service LabeledDataSequence : XLabeledDataSequence2; + +} ; // data +} ; // chart2 +} ; // com +} ; // sun +} ; // star + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/data/PivotTableFieldEntry.idl b/offapi/com/sun/star/chart2/data/PivotTableFieldEntry.idl new file mode 100644 index 0000000000..5893d0698b --- /dev/null +++ b/offapi/com/sun/star/chart2/data/PivotTableFieldEntry.idl @@ -0,0 +1,56 @@ +/* -*- 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/. + * + */ + +module com +{ +module sun +{ +module star +{ +module chart2 +{ +module data +{ + +/** + * Pivot table field entry data. + * + * @since LibreOffice 5.4 + */ +struct PivotTableFieldEntry +{ + /** + * Name of the field entry. + */ + string Name; + + /** + * The index of the field entry. + */ + long DimensionIndex; + + /** + * The output position of the field entry in its field type. + */ + long DimensionPositionIndex; + + /** + * Does it have some members that are hidden (filtered). + */ + boolean HasHiddenMembers; +}; + +}; // data +}; // chart2 +}; // com +}; // sun +}; // star + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/data/RangeHighlightListener.idl b/offapi/com/sun/star/chart2/data/RangeHighlightListener.idl new file mode 100644 index 0000000000..3ad09c243d --- /dev/null +++ b/offapi/com/sun/star/chart2/data/RangeHighlightListener.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 . + */ + +module com +{ +module sun +{ +module star +{ +module chart2 +{ +module data +{ + +/** A selection change listener that is attached to a + XRangeHighlighter in order to get notified about + selection changes that affect range highlighting. + */ +service RangeHighlightListener +{ + interface ::com::sun::star::view::XSelectionChangeListener; +}; + +} ; // data +} ; // chart2 +} ; // com +} ; // sun +} ; // star + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/data/RangeHighlighter.idl b/offapi/com/sun/star/chart2/data/RangeHighlighter.idl new file mode 100644 index 0000000000..8e2b2e5203 --- /dev/null +++ b/offapi/com/sun/star/chart2/data/RangeHighlighter.idl @@ -0,0 +1,42 @@ +/* -*- 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 . + */ + +module com +{ +module sun +{ +module star +{ +module chart2 +{ +module data +{ + +service RangeHighlighter +{ + interface XRangeHighlighter; +}; + +} ; // data +} ; // chart2 +} ; // com +} ; // sun +} ; // star + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/data/TabularDataProviderArguments.idl b/offapi/com/sun/star/chart2/data/TabularDataProviderArguments.idl new file mode 100644 index 0000000000..2f3149c746 --- /dev/null +++ b/offapi/com/sun/star/chart2/data/TabularDataProviderArguments.idl @@ -0,0 +1,147 @@ +/* -*- 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 . + */ + +module com +{ +module sun +{ +module star +{ +module chart2 +{ +module data +{ + +service TabularDataProviderArguments +{ + /** the range address string spanning all data. + +
The range address string must be interpretable by the + component that implements XDataProvider and gets + this property as argument to + XDataProvider::detectArguments().
+ +The representation string is of a form that may be used in the + user interface. Example for OOo Calc: "$Sheet1.$A$1:$D$7", + example for OOo Writer: "<Table1.A1:D7>".
+ +When used as input, this range will be split in columns or + rows depending on the property + #DataRowSource.
+ +When used as output of + XDataProvider::detectArguments() this is the + range that spans the ranges of all given + XDataSequences. If the result is ambiguous, + i.e., a splitting of this range would not yield the same + result, this property should be empty. The latter is the + case, when ranges are overlapping, the lengths of sequences + are not equal or even if the order of two sequences is swapped + (e.g. data comes from column A, C, B).
+ */ + [property] string CellRangeRepresentation; + + /** determines, whether data sequences are created out of columns + or rows in a table. + +If this property is not given as argument it is assumed to + com::sun::star::chart::ChartDataRowSource::COLUMNS, + i.e., the default is "take data from columns".
+ */ + [property] ::com::sun::star::chart::ChartDataRowSource DataRowSource; + + /** If data comes from columns, the first row will provide the + labels for all sequences, if data comes from rows, the first + column will provide the labels for all sequences. + +Even if this property is false, the + XLabeledDataSequence may contain a label, but + this will not be the first cell of the selection. It may be a + generic string like "Column C".
+ +If this property is not given as argument it is assumed to + be `FALSE`, i.e., the default is "no labels".
+ */ + [property] boolean FirstCellAsLabel; + + /** determines the order of the created labeled sequences + +For example a SequenceMapping of [3,0,2,1] indicates that + the sequence from old position "3" should now be the first one. + Then comes the sequence from old position "0". Then that one + from old position "2" and then the sequence from old position "1".
+ +If the SequenceMapping contains invalid indexes just + ignore those single indexes. For example if you only have three + labeled sequences and a SequenceMapping [2,5,1,0], you should + ignore the "5" and continue to place the sequence from + old index "1" to the next new position and so on.
+ +If the given SequenceMapping does not cover all existing + labeled sequences just put the remaining sequences in old order + behind the others. For example you have 4 sequences and a + SequenceMapping [3,1]. The result should be as if [3,1,0,2] + was given.
+ */ + [property] sequence< long > SequenceMapping; + + /** If `FALSE` the data provider may create a data sequence + containing generated categories that fit the rest of the data, + like e.g. "Row 12", "Row 13", etc. + +This property is not relevant for the splitting up of the + data. It just indicates, if the chart wants to use part of + the data as categories, so that generic categories can be + returned if it doesn't.
+ +The generic category labeled sequence returned should be + the first one in the returned XDataSource. It + needs no label. The values should have their role set to + "categories". The generic strings returned should also be + localized.
+ */ + [optional, property] boolean HasCategories; + + /** This property is for providing proprietary table indexes for + each table appearing in a range given in + CellRangeRepresentation. + + @deprecated + +This argument is supported by Spreadsheets in order to be + able to export a document into the StarOffice 5.0 binary + format.
+ +Example: If you have the sheets (Sheet1, Sheet2, Sheet3) in + your document and a chart uses the range + "Sheet2.A1:.A5 Sheet3.A1:.A5 Sheet2.B1:.B5 Sheet1:B1:.B5", your + TableNumberList would be "1 2 1 0". A simple range like + "Sheet1.A1:.E4" would have the TableNumberList in "0"
. + */ + [optional, property] string TableNumberList; +}; + +} ; // data +} ; // chart2 +} ; // com +} ; // sun +} ; // star + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/data/XDataProvider.idl b/offapi/com/sun/star/chart2/data/XDataProvider.idl new file mode 100644 index 0000000000..715e2cc2a1 --- /dev/null +++ b/offapi/com/sun/star/chart2/data/XDataProvider.idl @@ -0,0 +1,169 @@ +/* -*- 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 . + */ + +module com +{ +module sun +{ +module star +{ +module chart2 +{ +module data +{ + +/** An application that provides data for a chart must implement this + interface. + */ +interface XDataProvider : ::com::sun::star::uno::XInterface +{ + /** If `TRUE` is returned, a call to createDataSource with the + same arguments must return a valid XDataSequence object. If + `FALSE` is returned, createDataSource throws an exception. + */ + boolean createDataSourcePossible( [in] sequence< com::sun::star::beans::PropertyValue > aArguments ); + + /** Creates a data source object that matches the given range + representation string. + +This can be used for creating the necessary data for a new + chart out of a previously selected range of cells in a + spreadsheet.
+ + @param aArguments + Arguments that tell the data provider how to slice the + given range. The properties should be defined in a + separate service. + +For spreadsheets and text document tables there exists a + service TabularDataProviderArguments + describing valid values for this list.
+ + @return + a data source containing DataSequences that + span the entire region given inaArguments
.
+
+ @throws ::com::sun::star::lang::IllegalArgumentException
+ may be raised by the XDataProvider if it is
+ unable to interpret the arguments passed in
+ aArguments
appropriately.
+ */
+ XDataSource createDataSource(
+ [in] sequence< com::sun::star::beans::PropertyValue > aArguments )
+ raises( com::sun::star::lang::IllegalArgumentException );
+
+ /** Tries to find out with what parameters the passed
+ DataSource most probably was created.
+
+ if xDataSource is a data source that was created with + createDataSource(), the arguments returned here + should be the same than the ones passed to the function. + Of course, this cannot be guaranteed. However, if detection + is ambiguous, the returned arguments should be empty.
+ +This method may merge representation strings together if + adjacent ranges appear successively in the range identifiers. + E.g., if the first range refers to "$Sheet1.$A$1:$A$8" and the + second range refers to "$Sheet1.$B$1:$B$8", those should be + merged together to "$Sheet1.$A$1:$B$8".
+ + @param xDataSource + A data source containing all data used in a chart. + + @return + Arguments that when being passed to + createDataSource() should in an ideal case + return the same data source asxDataSource
.
+ */
+ sequence< com::sun::star::beans::PropertyValue > detectArguments(
+ [in] XDataSource xDataSource );
+
+ /** If `TRUE` is returned, a call to
+ createDataSequenceByRangeRepresentation with the same argument must
+ return a valid XDataSequence object. If `FALSE` is returned,
+ createDataSequenceByRangeRepresentation throws an exception.
+ */
+ boolean createDataSequenceByRangeRepresentationPossible( [in] string aRangeRepresentation );
+
+ /** creates a single data sequence for the given data range.
+
+ @param aRangeRepresentation
+ is a string that can be interpreted by the component that
+ implements this interface. The representation string is
+ of a form that may be used in the user interface.
+
+ @see createDataSource
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if the given range does not contain a valid range
+ representation for a one-dimensional range of data.
+ */
+ XDataSequence createDataSequenceByRangeRepresentation(
+ [in] string aRangeRepresentation )
+ raises( com::sun::star::lang::IllegalArgumentException );
+
+ /** Creates a single data sequence from the string value array representation
+
+ @param aRole
+ The role of the sequence inside a data series. This may be any
+ string. However some strings are predefined and should always
+ be used in the same way.
+
+ @param aValueArray
+ is a string that contains the value representation of the
+ sequence to be created.
+
+ @param aRoleQualifier
+ is a string that describes the role of the sequence.
+ This may be any string. However some strings are predefined
+ and should always be used in the same way.
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if the given value array does not contain a valid value array
+ representation.
+ */
+ XDataSequence createDataSequenceByValueArray( [in] string aRole, [in] string aValueArray,
+ [in] string aRoleQualifier )
+ raises( com::sun::star::lang::IllegalArgumentException );
+
+ /** Returns a component that is able to change a given range
+ representation to another one. This usually is a
+ controller-component that uses the GUI to allow a user to
+ select a new range.
+
+ This method may return nothing, if it does not support + range selection or if there is no current controller available + that offers the functionality.
+ + @return + The component for selecting a new range. It must support + XComponent, in order to inform the receiver + about its lifetime. + */ + com::sun::star::sheet::XRangeSelection getRangeSelection(); +}; + +} ; // data +} ; // chart2 +} ; // com +} ; // sun +} ; // star + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/data/XDataReceiver.idl b/offapi/com/sun/star/chart2/data/XDataReceiver.idl new file mode 100644 index 0000000000..a0b8b5bee1 --- /dev/null +++ b/offapi/com/sun/star/chart2/data/XDataReceiver.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 . + */ + +module com +{ +module sun +{ +module star +{ +module chart2 +{ +module data +{ + +interface XDataReceiver : ::com::sun::star::uno::XInterface +{ + /** attaches a component that provides data for the document. + +The previously set data provider will be released.
+ + @param xProvider + The new DataProvider. If it is an empty reference, the + ChartDocument will have no data. + */ + void attachDataProvider( [in] XDataProvider xProvider ); + + void setArguments( [in] sequence< com::sun::star::beans::PropertyValue > aArguments ) + raises( com::sun::star::lang::IllegalArgumentException ); + + /** returns a list of all range strings for which data has been + requested by the most recently attached data provider, and + which is still used. + +This list may be used by the data provider to swap charts + out of memory, but still get informed by changes of ranges + while the chart is not loaded.
+ @return a list of used range strings. + */ + sequence< string > getUsedRangeRepresentations(); + + /** Returns the data requested by the most recently attached data + provider, that is still used. + */ + XDataSource getUsedData(); + + /** attaches an XNumberFormatsSupplier to this + XDataReceiver. + +The given number formats will be used for display purposes.
+ */ + void attachNumberFormatsSupplier( [in] com::sun::star::util::XNumberFormatsSupplier xSupplier ); + + /** Returns a component at which a view representing the data of + the attached data provider may listen for highlighting the + data ranges used by the currently selected objects in the data + receiver component. + +This is typically used by a spreadsheet to highlight the + ranges used by the currently selected object in a chart.
+ +The range highlighter is optional, i.e., this method may + return an empty object.
+ */ + XRangeHighlighter getRangeHighlighter(); + + /** A callback object to execute a foreign popup menu window. + + @since LibreOffice 5.4 + */ + com::sun::star::awt::XRequestCallback getPopupRequest(); +}; + +} ; // data +} ; // chart2 +} ; // com +} ; // sun +} ; // star + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/data/XDataSequence.idl b/offapi/com/sun/star/chart2/data/XDataSequence.idl new file mode 100644 index 0000000000..926dce75ec --- /dev/null +++ b/offapi/com/sun/star/chart2/data/XDataSequence.idl @@ -0,0 +1,123 @@ +/* -*- 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 . + */ + +module com +{ +module sun +{ +module star +{ +module chart2 +{ +module data +{ + +/** allows access to a one-dimensional sequence of data. + +The data that is stored in this container may contain different + types.
+ */ +interface XDataSequence : ::com::sun::star::uno::XInterface +{ + /** retrieves the data stored in this component. + + @return a sequence containing the actual data. This sequence + is a copy of the internal data. Therefore changing + this object does not affect the content of the + XDataSequence object. + */ + sequence< any > getData(); + + /** returns the (UI) range representation string used by this + XDataSequence. + */ + string getSourceRangeRepresentation(); + + /** creates a label that describes the origin of this data + sequence. + +This is useful, if a XLabeledDataSequence has + no label sequence. In this case you can call this method at + the value sequence to obtain a fitting replacement label.
+ +The sequence returned here may be empty if no suitable + label can be generated.
+ +The strings returned should be localized.
+ + @param eLabelOrigin + denotes what part of the range should be used for label + generation. If you have, e.g., one cell only, the + parameter COLUMN enables you to get the name of the cell's + column, the parameter ROW will give you its row name. + + If you have a non quadratic range you can ask for labels for + the longer side with parameter LONG_SIDE or you can obtain labels + for the shorter side with parameter SHORT_SIDE. + + If the range is not structured in a tabular way you may receive + no label. + + @return + Suitable labels for the given sequence depending on the range + of the sequence and the parametereLabelOrigin
passed.
+ In a spreadsheet this would typically be a label like "Column x"
+ for the short side used as DataSeries name and maybe a
+ sequence "Row 1" "Row 2" "Row 3" for the long side to be used
+ as categories for example.
+
+ Example: Assuming this sequence has a Range representation spanning
+ row 5 and 6 in column 8. Following sequences of strings or similar strings
+ are expected as return values:
+
+ generateLabel( SHORT_SIDE ) -> "Column 8"
+ generateLabel( LONG_SIDE ) -> "Row 5" "Row 6"
+ generateLabel( COLUMN ) -> "Column 8"
+ generateLabel( ROW ) -> "Row 5" "Row 6"
+
+ Which strings exactly you return depends on the naming scheme of the application
+ which provides its tabular data.
+ */
+ sequence< string > generateLabel( [in] com::sun::star::chart2::data::LabelOrigin eLabelOrigin );
+
+ /** returns a number format key for the value at the given index
+ in the data sequence. If nIndex is -1, a key for the entire
+ sequence should be returned, e.g. the most commonly used one.
+
+ If number formats are not supported, or there is no + heuristic to return a key for the entire series, return 0 + here.
+ +The number format key must be valid for the + com::sun::star::util::XNumberFormatsSupplier + given by the XDataProvider, or 0 which is assumed + to be always valid.
+ */ + long getNumberFormatKeyByIndex( [in] long nIndex ) + raises( ::com::sun::star::lang::IndexOutOfBoundsException ); +}; + +} ; // data +} ; // chart2 +} ; // com +} ; // sun +} ; // star + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/data/XDataSink.idl b/offapi/com/sun/star/chart2/data/XDataSink.idl new file mode 100644 index 0000000000..3bb152a2f7 --- /dev/null +++ b/offapi/com/sun/star/chart2/data/XDataSink.idl @@ -0,0 +1,64 @@ +/* -*- 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 . + */ + +module com +{ +module sun +{ +module star +{ +module chart2 +{ +module data +{ + +/** is a container for sequences of data. With this interface data + can only be written to. + +If you want to be able to also read the data set here, your + component must also implement XDataSource.
+ */ +interface XDataSink : ::com::sun::star::uno::XInterface +{ + /** sets new data sequences. The elements set here must support + the service DataSequence. + +If the data consist only of floating point numbers (double + values), the instances set here should also support the + service NumericalDataSequence.
+ +If the data consist only of strings, the instances set here + should also support the service + TextualDataSequence.
+ +If one of the derived services is supported by one element + of the sequence, it should be available for all elements in + the sequence.
+ */ + void setData( [in] sequence< XLabeledDataSequence > aData ); +}; + +} ; // data +} ; // chart2 +} ; // com +} ; // sun +} ; // star + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/data/XDataSource.idl b/offapi/com/sun/star/chart2/data/XDataSource.idl new file mode 100644 index 0000000000..2a5ed19976 --- /dev/null +++ b/offapi/com/sun/star/chart2/data/XDataSource.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 . + */ + +module com +{ +module sun +{ +module star +{ +module chart2 +{ +module data +{ + + +/** provides access to sequences of data. With this interface data + can only be read from. + +If the data stored consists only of floating point numbers (double + values), the returned instances should also support the service + NumericalDataSequence.
+ +If the data stored consists only of strings, the returned + instances should also support the service + TextualDataSequence.
+ */ +interface XDataSource : ::com::sun::star::uno::XInterface +// : ::com::sun::star::container::XIndexAccess +{ + /** returns data sequences. + + @return a sequence of objects that support at least the + service DataSequence. + +If the data stored consist only of floating point numbers + (double values), the returned instances should also support + the service NumericalDataSequence.
+ +If the data stored consist only of strings, the returned + instances should also support the service + TextualDataSequence.
+ */ + sequence< XLabeledDataSequence > getDataSequences(); +}; + +} ; // data +} ; // chart2 +} ; // com +} ; // sun +} ; // star + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/data/XDatabaseDataProvider.idl b/offapi/com/sun/star/chart2/data/XDatabaseDataProvider.idl new file mode 100644 index 0000000000..b604b60d2d --- /dev/null +++ b/offapi/com/sun/star/chart2/data/XDatabaseDataProvider.idl @@ -0,0 +1,191 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module chart2 { module data { + + +/** identifies a XDataProvider for result sets. + + @see XDataProvider + @see DataProvider + */ +interface XDatabaseDataProvider +{ + /** For accessing data a component provides for being used by + charts. + */ + interface XDataProvider; + + /** allows you to convert the ranges a data provider deals with + internally into valid XML. + */ + interface XRangeXMLConversion; + + /** allows access to the properties of the instance. + */ + interface com::sun::star::lang::XInitialization; + + /** allows life-time control of the database data provider. + */ + interface com::sun::star::lang::XComponent; + + /** allows access to the properties of the instance. + */ + interface com::sun::star::beans::XPropertySet; + + interface com::sun::star::sdbc::XParameters; + interface com::sun::star::sdbc::XRowSet; + + /** is used for subreports and contains the names of columns of the parent report. +These columns are typically the foreign key fields of the parent report. + The values of these columns are used to identify the data for the subreport. + Each time the parent report changes its current row, the subreport requeries + it's data based on the values of the master fields.
+If the report is no sub report (e.g. its parent is not a report itself), this + property is not evaluated.
+ + */ + [attribute,bound] sequenceEntries in this sequence can either denote column names in the sub report,
+ or parameter names.
+ For instance, you could base the report on the SQL statement
+ SELECT * FROM invoices WHERE cust_ref = :cid
, and add cid
+ to the DetailFields property. In this case, the parameter will be filled from
+ the corresponding master field.
+ Alternatively, you could simply base your report on the table invoices
,
+ and add the column name cust_ref
to the DetailFields. In this case,
+ and implicit filter clause WHERE cust_ref = :<new_param_name>
will
+ be created, and the artificial parameter will be filled from the corresponding
+ master field.
+ If a string in this property denotes both a column name and a parameter name, it
+ is undefined which way it is interpreted, but implementations of the service are required
+ to either decide for the parameter or the column, and proceed as usual.
+
The columns specified herein typically represent a part of the primary key + fields or their aliases of the detail report.
+If the report is no sub report (e.g. its parent is not a report itself), this + property is not evaluated.
+ * + */ + [attribute,bound] sequenceIn case of a #CommandType of CommandType::COMMAND,
+ means in case the #Command specifies an SQL statement, the inherited
+ com::sun::star::sdbc::RowSet::EscapeProcessing
+ becomes relevant:
+ It then can be to used to specify whether the SQL statement should be analyzed on the
+ client side before sending it to the database server.
+ The default value for com::sun::star::sdbc::RowSet::EscapeProcessing
+ is `TRUE`. By switching it to `FALSE`, you can pass backend-specific SQL statements,
+ which are not standard SQL, to your database.
#Command needs to be interpreted depending on the value of this property.
+ +This property is only meaningful together with the #Command + property, thus either both or none of them are present.
+ + @see com::sun::star::sdb::CommandType + */ + [attribute,bound] long CommandType; + + /** specifies an additional filter to optionally use. + +The Filter string has to form a SQL WHERE-clause, without the WHERE-string itself.
+ +If a #DataSourceName, #Command and #CommandType + are specified, a RowSet can be created with this information. If the results provided by the + row set are to be additionally filtered, the Filter property can be used.
+ +Note that the Filter property does not make sense if a resultSet has been specified + in the DataAccessDescriptor.
+ + @see com::sun::star::sdb::RowSet + @see ResultSet + */ + [attribute,bound] string Filter; + + /** indicates whether the filter should be applied or not, + default is `FALSE`. + */ + [attribute,bound] boolean ApplyFilter; + + /** additional having clause for the row set + */ + [attribute,bound] string HavingClause + { + set raises (com::sun::star::beans::UnknownPropertyException); + }; + + /** additional group by for the row set + */ + [attribute,bound] string GroupBy + { + set raises (com::sun::star::beans::UnknownPropertyException); + }; + + /** is an additional sort order definition for a row set. + */ + [attribute,bound] string Order; + + /** specifies if the #Command should be analyzed on the client side before sending it + to the database server. + +The default value of this property is `TRUE`. By switching it to `FALSE`, you can pass + backend-specific SQL statements, which are not standard SQL, to your database.
+ +This property is usually present together with the #Command and + #CommandType properties, and is evaluated if and only if #CommandType + equals CommandType::COMMAND.
+ */ + [attribute,bound] boolean EscapeProcessing; + + /** specifies the maximal count of rows which should be fetched. +A value of zero implies that no limit exists.
+ */ + [attribute,bound] long RowLimit; + + /** specifies the active connection which is used to create the resulting report. + */ + [attribute,bound] com::sun::star::sdbc::XConnection ActiveConnection + { + set raises (com::sun::star::lang::IllegalArgumentException); + }; + /** is the name of the data source to use, this could be a named data source + or the URL of a data access component. + */ + [attribute,bound] string DataSourceName; +}; + + + }; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/data/XLabeledDataSequence.idl b/offapi/com/sun/star/chart2/data/XLabeledDataSequence.idl new file mode 100644 index 0000000000..04e944eda4 --- /dev/null +++ b/offapi/com/sun/star/chart2/data/XLabeledDataSequence.idl @@ -0,0 +1,66 @@ +/* -*- 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 . + */ + +module com +{ +module sun +{ +module star +{ +module chart2 +{ +module data +{ + +/** allows access to a one-dimensional sequence of data. + +The data that is stored in this container may contain different + types.
+ */ +interface XLabeledDataSequence : ::com::sun::star::uno::XInterface +{ + /** returns an XDataSequence containing the actual + data. + */ + XDataSequence getValues(); + + /** sets a new XDataSequence containing the actual + data. + */ + void setValues( [in] XDataSequence xSequence ); + + /** returns an XDataSequence containing the label for + the labeled sequence. + */ + XDataSequence getLabel(); + + /** sets a new XDataSequence containing the label for + the labeled sequence. + */ + void setLabel( [in] XDataSequence xSequence ); +}; + +} ; // data +} ; // chart2 +} ; // com +} ; // sun +} ; // star + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/data/XLabeledDataSequence2.idl b/offapi/com/sun/star/chart2/data/XLabeledDataSequence2.idl new file mode 100644 index 0000000000..6177630ca9 --- /dev/null +++ b/offapi/com/sun/star/chart2/data/XLabeledDataSequence2.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 . + */ + +module com +{ +module sun +{ +module star +{ +module chart2 +{ +module data +{ + +/** + @since LibreOffice 4.1 + */ +interface XLabeledDataSequence2 +{ + /** provides read- and write-access to the underlying data. + */ + interface XLabeledDataSequence; + + /** is used to broadcast when the sequence for labels or values + change their identity, or their content changes. + +The LabeledDataSequence should add itself at its + XDataSequences for values and labels, and forward any change + events coming from there.
+ */ + interface com::sun::star::util::XModifyBroadcaster; + + /** Allows creating copies of data sequences. If this interface + is not supported, the same object will be shared if used by + multiple objects. + +If a LabeledDataSequence is cloned, it has to + query its contents for the + com::sun::star::util::XCloneable interface + and use it if available.
+ */ + interface ::com::sun::star::util::XCloneable; +}; + +} ; // data +} ; // chart2 +} ; // com +} ; // sun +} ; // star + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/data/XNumericalDataSequence.idl b/offapi/com/sun/star/chart2/data/XNumericalDataSequence.idl new file mode 100644 index 0000000000..d010e71adc --- /dev/null +++ b/offapi/com/sun/star/chart2/data/XNumericalDataSequence.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 . + */ + +module com +{ +module sun +{ +module star +{ +module chart2 +{ +module data +{ + +/** allows access to a one-dimensional sequence of double precision + floating-point numbers. + */ +interface XNumericalDataSequence : ::com::sun::star::uno::XInterface +{ + /** retrieves data as `double` values. + */ + sequence< double > getNumericalData(); +}; + +} ; // data +} ; // chart2 +} ; // com +} ; // sun +} ; // star + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/data/XPivotTableDataProvider.idl b/offapi/com/sun/star/chart2/data/XPivotTableDataProvider.idl new file mode 100644 index 0000000000..dd07af5aba --- /dev/null +++ b/offapi/com/sun/star/chart2/data/XPivotTableDataProvider.idl @@ -0,0 +1,75 @@ +/* -*- 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/. + */ + +module com { module sun { module star { module chart2 { module data { + +/** + * Data provider specific for pivot chart data. + * + * @since LibreOffice 5.4 + */ +interface XPivotTableDataProvider : com::sun::star::uno::XInterface +{ + /** names of column fields from the associated pivot table + */ + sequenceFor example spreadsheet ranges consisting of more than one + consecutive region are usually separated by a semicolon + whereas in XML you separate multiple regions by a space.
+ */ + string convertRangeToXML( [in] string aRangeRepresentation ) + raises( com::sun::star::lang::IllegalArgumentException ); + + /** converts an XML-style range into the internal + DataProvider's format. + */ + string convertRangeFromXML( [in] string aXMLRange ) + raises( com::sun::star::lang::IllegalArgumentException ); +}; + +} ; // data +} ; // chart2 +} ; // com +} ; // sun +} ; // star + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/data/XSheetDataProvider.idl b/offapi/com/sun/star/chart2/data/XSheetDataProvider.idl new file mode 100644 index 0000000000..64563ba858 --- /dev/null +++ b/offapi/com/sun/star/chart2/data/XSheetDataProvider.idl @@ -0,0 +1,27 @@ +/* -*- 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/. + */ + +module com { module sun { module star { module chart2 { module data { + +/** + * Interface specific to spreadsheet data provider backend. + */ +interface XSheetDataProvider : com::sun::star::uno::XInterface +{ + boolean createDataSequenceByFormulaTokensPossible( + [in] sequence< com::sun::star::sheet::FormulaToken > aTokens ); + + XDataSequence createDataSequenceByFormulaTokens( + [in] sequence< com::sun::star::sheet::FormulaToken > aTokens ) + raises( com::sun::star::lang::IllegalArgumentException ); +}; + +};};};};}; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/data/XTextualDataSequence.idl b/offapi/com/sun/star/chart2/data/XTextualDataSequence.idl new file mode 100644 index 0000000000..41f4da2160 --- /dev/null +++ b/offapi/com/sun/star/chart2/data/XTextualDataSequence.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 . + */ + +module com +{ +module sun +{ +module star +{ +module chart2 +{ +module data +{ + +/** allows access to a one-dimensional sequence of strings. + */ +interface XTextualDataSequence : ::com::sun::star::uno::XInterface +{ + /** retrieves the data as strings + */ + sequence< string > getTextualData(); +}; + +} ; // data +} ; // chart2 +} ; // com +} ; // sun +} ; // star + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/AccessRootElement.idl b/offapi/com/sun/star/configuration/AccessRootElement.idl new file mode 100644 index 0000000000..b6ad21801c --- /dev/null +++ b/offapi/com/sun/star/configuration/AccessRootElement.idl @@ -0,0 +1,146 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module configuration { + +/** provides information about the root element of a hierarchy and + about the hierarchy as a whole. + +Provides information about the element and the whole hierarchy. + Allows controlling the lifetime of the hierarchy. + Allows observing changes in the hierarchy as a whole. +
+ +When access to a hierarchy is first obtained from a factory or provider, + this is the initial object that is created by the factory. + It represents the root of the accessible part of the hierarchy. +
+ +NOTE: In this description "hierarchy" may actually + designate a part or fragment of a larger hierarchy. It is that part that is + rooted in the element represented by an implementation of this service + and that is accessible starting from this element. +
+ +Generally it is not possible to navigate the parent or siblings, if any, + of this element, so com::sun::star::container::XChild is + not supported. +
+ + @see com::sun::star::configuration::UpdateRootElement + Implementations that support modifying data in the hierarchy + implement service UpdateRootElement. + + @see com::sun::star::configuration::SetElement + A complementary service, for children of a dynamic homogeneous container. + + @see com::sun::star::configuration::GroupElement + A complementary service, for children of a static heterogeneous collection. + + @see com::sun::star::configuration::ConfigurationProvider + Objects provided by a ConfigurationProvider implement this service. +*/ +published service AccessRootElement +{ +/** the basic service for accessing information about an element in the + hierarchy. +*/ + service HierarchyElement; + +/** allows controlling or observing the lifetime of the whole hierarchy. + +The owner of the hierarchy may dispose of this object + using com::sun::star::lang::XComponent::dispose(). + As this object owns its child elements and, recursively, the whole hierarchy, + any descendant elements obtained, directly or indirectly, from this object + will also be disposed. Disposing of the object does not affect a persistent + representation of the hierarchy. +
+ +When an implementation is obtained from a factory or provider, ownership + of it is usually transferred to the client. See the documentation + of the particular provider or factory service for details. +
+ +The provider of this object may still dispose of this object, when the + lifetime of the provider ends or if these objects represent + the root of only a fragment of an enclosing hierarchy and + this fragment is removed from the complete hierarchy by an outside source. +
+ +Clients may register a com::sun::star::lang::XEventListener + to be notified when the object is disposed for either cause. +
+*/ + interface com::sun::star::lang::XComponent; + +/** allows registering listeners that observe the whole hierarchy. + +A client can register an + com::sun::star::util::XChangesListener, + which will receive notifications for any changes within the + hierarchy (fragment) this object represents. +
+ +An implementation will collect as many changes as possible into a single + com::sun::star::util::ChangesEvent. For Example: +
+ ++ If com::sun::star::beans::XMultiPropertySet::setPropertyValues() + or com::sun::star::beans::XMultiHierarchicalPropertySet::setHierarchicalPropertyValues() + is used on an element of the hierarchy to change multiple values within + the hierarchy, all changes will be notified with a single event. +
+ +If an outside source uses + com::sun::star::util::XChangesBatch::commitChanges() + on an overlapping hierarchy access, all relevant changes will be notified + with a single event. +
+ + @see UpdateRootElement + @see com::sun::star::util::XChangesBatch +*/ + interface com::sun::star::util::XChangesNotifier; + +/** provides access to the locale that applies to locale-dependent data + in this hierarchy. [optional] + +This interface may be missing if the implementation does not support + locale-dependent data in the hierarchy or if the (partial) hierarchy rooted + in this object does not contain any locale-dependent elements. +
+ +Changing the locale is generally not supported. If it is supported, + there is no guarantee that values already loaded into the hierarchy, or an + application cache, are refreshed to reflect the new locale. Use of + com::sun::star::lang::XLocalizable::setLocale() + is therefore not recommended. +
+*/ + [optional] interface com::sun::star::lang::XLocalizable; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/AdministrationProvider.idl b/offapi/com/sun/star/configuration/AdministrationProvider.idl new file mode 100644 index 0000000000..69cad55206 --- /dev/null +++ b/offapi/com/sun/star/configuration/AdministrationProvider.idl @@ -0,0 +1,169 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module configuration { + +/** manages one, or more, complete sets of configuration data for + administrative purposes and serves as a factory for objects that + provide access to subsets of these shared configurations. + +Shared sets of configuration data usually serve to provide defaults, + which are used if no individual settings are present. Depending on the data + store multiple layers of defaults may be combined with a user-specific layer + to make up the final configuration. +
+Many aspects of the supported behavior depend strongly on the underlying + data store and on the administrative structures it defines. With some data + stores this service also enables access to individual user's configuration + data by an administrator. +
+On the other hand, in the simplest model there is only a single layer of + default data which is accessible through this service. +
+An implementation is usually obtained from a + com::sun::star::lang::ServiceManager. The arguments passed to + com::sun::star::lang::XMultiComponentFactory::createInstanceWithArgumentsAndContext() + select the configuration data source. They may also define the scope of + administrable data or contain credentials to be used to authorize the + administrative access. Missing parameters may be filled in + from the context or the environment. +
+ + @see com::sun::star::configuration::ConfigurationProvider + Offers the same services and creates the same accessor objects as this + service, but accesses the personal configuration. + +A ConfigurationProvider provides access to the personal + layer of configuration data of the current user context. It should in + most cases be used when using the configuration data, although + for most contexts an AdministrationProvider can be used as + a drop-in replacement. +
+ */ +published service AdministrationProvider +{ +/** allows creating access objects for specific views such as subsets and fragments + of the configuration. + +The parameter aServiceSpecifier passed to
+ com::sun::star::lang::XMultiServiceFactory::createInstanceWithArguments()
+ supports at least the service specifiers
+ "com.sun.star.configuration.ConfigurationAccess"
and
+ "com.sun.star.configuration.ConfigurationUpdateAccess"
.
+
Using the first of these service specifiers requests a read-only view of + the configuration. + The object that is created implements service ConfigurationAccess. + To reflect its element role as root of the view, it implements + service AccessRootElement. +
+ +Using the second form requests an updatable view of the configuration.
+ The object that is created should implement service
+ ConfigurationUpdateAccess. To reflect its element role
+ which includes controlling updates for the whole view, it implements
+ service UpdateRootElement.
+
If the root element of the view is marked read-only (as indicated
+ by com::sun::star::beans::PropertyAttributes::READONLY),
+ the implementation may either raise an exception or return a (read-only)
+ ConfigurationAccess/AccessRootElement instead.
+
The arguments passed to + com::sun::star::lang::XMultiServiceFactory::createInstanceWithArguments() + in parameter aArguments specify the administrative entity for which + data should be administered. In other words they determine the layer to which + changes will apply. They also specify the view of that configuration that + should be created. That is, they determine the subset of elements that can be + accessed starting from the returned object. Each element of the argument + sequence should be a com::sun::star::beans::PropertyValue + or a com::sun::star::beans::NamedValue, + so that the parameters can be identified by name rather than by position. +
+ +What combinations of arguments are supported depends on the service name + and on the data store being administered. +
+ +With both of the standard service-specifiers above, an implementation must
+ accept a single argument named nodepath
of type `string`.
+ This argument must contain the absolute path to an element of the
+ configuration. The view that is selected consists of the named element and
+ all its descendants. The administrative entity is the default for the
+ AdministrationProvider. Usually this is the largest entity
+ encompassing all entities accessible from this instance. In other words this
+ can be used to influence as global a scope as possible.
+
Other arguments can be used to select a more specific entity and to control + the behavior of the view. These are different for different implementations + and data stores. Whether and how they are used may also depend on properties + that were selected when the provider was created. +
+ +An implementation may ignore unknown arguments.
+ +Some parameters that are commonly supported are described for service + ConfigurationProvider. +
+One notable difference exists for parameter "Locale"
. For a
+ ConfigurationProvider the default behavior usually is to select
+ the locale set up for the user. But this service by default gets data for all
+ locales for which data is present. Locale-dependent values in this case are
+ replaced by a SetAccess using the language names as accessors.
+ This also allows targeted setting of values for selected locales.
+ This behavior can be requested explicitly by specifying a special argument
+ value locale = "*"
.
+
com::sun::star::lang::XMultiServiceFactory::createInstance() + may be unusable. Only an implementation that supports service names that can be + used with no further arguments support this method. It should return the + same result as if + com::sun::star::lang::XMultiServiceFactory::createInstanceWithArguments() + had been called using an empty sequence of arguments. +
+*/ + interface com::sun::star::lang::XMultiServiceFactory; + + +/** allows controlling or observing the lifetime of the configuration. + +The owner of the provider may dispose of this object + using com::sun::star::lang::XComponent::dispose(). +
+ +Views created by the provider generally refer to data that is managed by + the provider. Therefore, disposing of the provider will cause all objects + belonging to these views to be disposed of as well. This does not apply to + snapshot views that have their own copy of the data, if available. +
+ +*/ + interface com::sun::star::lang::XComponent; + +}; + + +}; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/CannotLoadConfigurationException.idl b/offapi/com/sun/star/configuration/CannotLoadConfigurationException.idl new file mode 100644 index 0000000000..ea8e76ab10 --- /dev/null +++ b/offapi/com/sun/star/configuration/CannotLoadConfigurationException.idl @@ -0,0 +1,34 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module configuration { + + +/** is thrown when an application tries to create a configuration provider + but the configuration can't be loaded + */ +published exception CannotLoadConfigurationException: com::sun::star::uno::Exception +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/ConfigurationAccess.idl b/offapi/com/sun/star/configuration/ConfigurationAccess.idl new file mode 100644 index 0000000000..b189f69a80 --- /dev/null +++ b/offapi/com/sun/star/configuration/ConfigurationAccess.idl @@ -0,0 +1,223 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module configuration { + +/** provides read access to a fragment of the configuration hierarchy. + +Values that are direct or indirect descendants of a root element can be + retrieved and, if themselves objects, navigated. Other interfaces provide + access to information about this element and its context. + Changes to values in the hierarchy can be monitored by event listeners. +
+ +Descendants of this service also implement this service. +
+ +Ultimately the configuration holds values. These values are organized into + a hierarchy using structural elements. The structure is defined in advance in + a schema. Necessary information from the schema is stored in the configuration + repository itself and is accessible through an implementation of this service. +
+ +Two different kinds of structural elements are used in the configuration + hierarchy: +
+Objects in the configuration hierarchy, for example, implementations of this service, + can thus be classified in the following ways: +
+Several types of simple values can be used in the configuration. + In addition to the basic (scalar) types, sequences of the basic types are + supported. The basic types are: +
+ +Values are represented as `string`.
+Sequences are represented as `string[]`.
+"human-readable" here excludes non-printing characters + except for CR, LF and TAB [Unicode code points 9,10,13]. + For binary data, use type binary instead.
+Values are represented as `boolean`. +
Sequences are represented as `boolean[]`.
+Values are represented as `short`.
+Sequences are represented as `short[]`.
+Values are represented as `long`.
+Sequences are represented as `long[]`.
+Values are represented as `hyper`.
+Sequences are represented as `hyper[]`.
+Values are represented as `double`.
+Sequences are represented as `double[]`.
+Values are represented as `byte[]`.
+Sequences are represented as `byte[][]`.
+Within templates an additional type any can occur. When + such a template is used to create a new SetElement, the type + of the element is initially reported as `any` (having no value). + When the value of such an element is first set, it will assume the type used. +
+ +If the schema marks a value as nullable (which is indicated by + attribute com::sun::star::beans::PropertyAttribute::MAYBEVOID ), + its contents may be `NULL`. +
+ +The configuration should support explicit access to default values + (implementing com::sun::star::beans::XPropertyState + and com::sun::star::beans::XPropertyWithState). +
+ + @see ConfigurationProvider + Root instances of this service can be requested from a + ConfigurationProvider. + + @see ConfigurationUpdateAccess + an extended service that includes facilities for modifying + configuration data. +*/ +published service ConfigurationAccess +{ + /** provides interfaces to access child and descendent elements. + +An implementation actually implements a specialization of this service, + which depends on its Container role. +
+ +Implementations shall implement exactly one of:
+An implementation actually implements a specialization of this service, + which depends on its Element role. +
+ +Implementations shall implement exactly one of:
+This is an alternative to GroupAccess. +
+ */ + [optional] service SetAccess; + + /** specializes HierarchyAccess, + if this element is a Group. +This is an alternative to SetAccess. +
+ */ + [optional] service GroupAccess; + + /** specializes HierarchyElement, + if this element is the Root of the whole hierarchy. +This is an alternative to SetElement + or GroupElement. +
+ + @see ConfigurationProvider + Instances obtained from a ConfigurationProvider will + implement this version of HierarchyElement. + */ + [optional] service AccessRootElement; + + /** specializes HierarchyElement, + if this element may be contained in a Set. +This is an alternative to AccessRootElement + or GroupElement. +
+ */ + [optional] service SetElement; + + /** specializes HierarchyElement, + if this element is a child of a Group. +This is an alternative to AccessRootElement + or SetElement. +
+*/ + [optional] service GroupElement; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/ConfigurationProvider.idl b/offapi/com/sun/star/configuration/ConfigurationProvider.idl new file mode 100644 index 0000000000..0ea4ed7ac6 --- /dev/null +++ b/offapi/com/sun/star/configuration/ConfigurationProvider.idl @@ -0,0 +1,231 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module configuration { + +/** manages one, or more, complete sets of configuration data and serves as a + factory for objects that provide access to a subset of the configuration. + +An implementation is usually obtained from a + com::sun::star::lang::ServiceManager. The arguments passed to + com::sun::star::lang::XMultiComponentFactory::createInstanceWithArgumentsAndContext() + select the configuration data source. Arguments must be provided as + com::sun::star::beans::NamedValue + or com::sun::star::beans::PropertyValue. + If the parameters given are incomplete missing values are taken + from the context or the environment. If an instance already exists for the + given set of arguments, the existing instance may be reused. + In particular, instantiating a provider without explicit arguments to access + the default configuration data will always yield the same + com::sun::star::configuration::DefaultProvider object. +
+Some arguments for
+ com::sun::star::lang::XMultiServiceFactory::createInstanceWithArguments()
+ may be given default values during creation of this service. In particular
+ this applies to the parameters "Locale"
and "EnableAsync"
.
+
The parameter aServiceSpecifier passed to
+ com::sun::star::lang::XMultiServiceFactory::createInstanceWithArguments()
+ supports at least the service specifiers
+ "com.sun.star.configuration.ConfigurationAccess"
and
+ "com.sun.star.configuration.ConfigurationUpdateAccess"
.
+
Using the first of these service specifiers requests a read-only view of + the configuration. + The object that is created implements service ConfigurationAccess. + To reflect its element role as root of the view, it implements + service AccessRootElement. +
+ +Using the second form requests an updatable view of the configuration.
+ The object that is created should implement service
+ ConfigurationUpdateAccess. To reflect its element role
+ which includes controlling updates for the whole view, it implements
+ service UpdateRootElement.
+
If the root element of the view is marked read-only (as indicated
+ by com::sun::star::beans::PropertyAttributes::READONLY),
+ the implementation may either raise an exception or return a (read-only)
+ ConfigurationAccess/AccessRootElement instead.
+
The arguments passed to + com::sun::star::lang::XMultiServiceFactory::createInstanceWithArguments() + in parameter aArguments specify the view of the configuration that + should be created. That is, they determine the subset of elements that can be + accessed starting from the returned object. Each element of the argument + sequence should be a com::sun::star::beans::PropertyValue + or a com::sun::star::beans::NamedValue, + so that the parameters can be identified by name rather than by position. +
+ +What combinations of arguments are supported depends on the service name. +
+ +With both of the standard service-specifiers above, an implementation must
+ accept a single argument named nodepath
of type `string`.
+ This argument must contain the absolute path to an element of the
+ configuration. The view that is selected consists of the named element and
+ all its descendants.
+
Other arguments can be used to control the behavior of the view. These + are different for different implementations. Whether and how they are used + may also depend on the configuration store and configuration that were + selected when the provider was created. +
+ +An implementation must ignore unknown arguments.
+ +Some parameters that are commonly supported are:
+ +"nodepath"
: `string`"depth"
: `short`"locale"
: com::sun::star::lang::LocaleExample: In the hierarchy
+
+ A - B1 - C1 + | + - B2 - C2 (localized: de, en, fr, ..) + | | + | - C3 - D1 + | | | + | | - D2 - E1 + | | + | - C4 - D3 - E2 - F1 + | | | + | | - F2 + | | + | - C5 + | + - B3 + | + - B4 - C6 - D4 - E3 + ++
nodepath = "/A/B2"
,
+ depth = 2
and locale = <Locale for en_US>
+ would result in the tree fragment
++(A-) B2 - C2 (en) + | + - C3 - D1 + | | + | - D2 (..) + | + - C4 - D3 (..) + | + - C5 + ++ +
"enableasync"
: `boolean`This parameter was formerly called "lazywrite"
.
+ The old name should still be supported for compatibility.
+
"nocache"
: `boolean`This parameter is not supported by all implementations and may be + silently ignored ! +
+com::sun::star::lang::XMultiServiceFactory::createInstance() + may be unusable. Only an implementation that supports service names that can be + used with no further arguments support this method. It should return the + same result as if + com::sun::star::lang::XMultiServiceFactory::createInstanceWithArguments() + had been called using an empty sequence of arguments. +
+*/ + interface com::sun::star::lang::XMultiServiceFactory; + + +/** allows controlling or observing the lifetime of the configuration. + +The owner of the provider may dispose of this object + using com::sun::star::lang::XComponent::dispose(). + Note that the default provider is owned by the + com::sun::star::lang::ServiceManager and should not be + disposed of by user code. +
+ +Views created by the provider generally refer to data that is managed by + the provider. Therefore, disposing of the provider will cause all objects + belonging to these views to be disposed of as well. This does not apply to + snapshot views that have their own copy of the data, if available. +
+ +*/ + interface com::sun::star::lang::XComponent; + +}; + + +}; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/ConfigurationRegistry.idl b/offapi/com/sun/star/configuration/ConfigurationRegistry.idl new file mode 100644 index 0000000000..7782d99840 --- /dev/null +++ b/offapi/com/sun/star/configuration/ConfigurationRegistry.idl @@ -0,0 +1,86 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module configuration { + + + +/* provides access to a configuration tree as a registry. + +This service is deprecated, + com.sun.star.configuration::ConfigurationProvider should + be used instead.
+ +Using the com::sun::star::registry::XSimpleRegistry + interface, the service can be bound to a subtree within the + configuration tree, as provided by an + com.sun.star.configuration::ConfigurationProvider + service, which must be accessible from the service factory you use for the + creation of this service. +
+There are some restrictions when accessing a configuration tree using a registry. + Most of them are implications of the fact that a configuration tree is very static in + it's structure. Removal and addition of sub nodes is allowed only for special + nodes, and even then the new elements have to comply to a given scheme (which is some + kind of attribute of the container node). So for instance the + com.sun.star.registry::XRegistryKey::createKey() method is not allowed + for some nodes. +
+ Thus anybody using this service is strongly advised to read and understand the specification + of a configuration provider (com.sun.star.configuration::ConfigurationProvider) + and all of its aspects. +
+ + @version 1.0 2000/07/06 +*/ + +published service ConfigurationRegistry +{ + /** controls the binding of the object to a configuration sub tree. +com::sun::star::registry::XSimpleRegistry::open() + is used to open a special subtree within the configuration tree. +
+The parameters of this method control the location of the root of the to-be-opened + configuration node and the access mode (read only or updatable). +
+ */ + interface com::sun::star::registry::XSimpleRegistry; + + /** is used to commit changes to the configuration. +As specified for the + com::sun::star::configuration::ConfigurationUpdateAccess + service, all changes made to a configuration subtree have to be committed + before they become persistent. + To do this for a configuration accessed as a registry, call + com::sun::star::util::XFlushable::flush(). +
+Warning:Changes that are not flushed will be + lost. +
+ */ + interface com::sun::star::util::XFlushable; +}; + + + +}; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/ConfigurationUpdateAccess.idl b/offapi/com/sun/star/configuration/ConfigurationUpdateAccess.idl new file mode 100644 index 0000000000..731cae0a6b --- /dev/null +++ b/offapi/com/sun/star/configuration/ConfigurationUpdateAccess.idl @@ -0,0 +1,114 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module configuration { + +/** provides modifying access to a fragment of the configuration hierarchy. + +Extends ConfigurationAccess to support modifying values + or inserting and removing elements. +
+ +Descendants of this service also implement this service + unless they are marked read-only (which is indicated by attribute + com::sun::star::beans::PropertyAttribute::READONLY), + in which case they only need implement ConfigurationAccess. +
+ +The classification of implementations that is described for + ConfigurationAccess applies to implementations of this service + as well. Therefore an implementation will support one of several alternate + services describing its Container role and one of several alternate + services describing its Element role. These services are + extensions of the respective services documented for ConfigurationAccess. +
+The HierarchyAccess specialization implemented will be + further specialized to support modifying access. + Implementations shall therefore implement one of SetUpdate or + GroupUpdate depending on the Container role. +
+ +If the HierarchyElement specialization that is implemented + is AccessRootElement, the implementation must support the + extended functionality of UpdateRootElement. Otherwise, there + are no new requirements mandated by the Element role. +
+ + */ + service ConfigurationAccess; + + /** specializes SetAccess to support modifying the element. + +Implemented, if this element is a Set. + Otherwise service GroupUpdate is provided. +
+ */ + [optional] service SetUpdate; + + /** specializes GroupAccess to support modifying contained + data. + +Implemented, if this element is a Group. + Otherwise service SetUpdate is provided. +
+ */ + [optional] service GroupUpdate; + + /** specializes AccessRootElement to support transaction-like + control over a batch of changes accumulated within the tree fragment. + +Implemented, if this element is the Root of the whole hierarchy. + Otherwise either SetElement or GroupElement is provided. +
+ + @see ConfigurationProvider + Instances obtained from a ConfigurationProvider will + implement this version of HierarchyElement. + */ + [optional] service UpdateRootElement; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/CorruptedConfigurationException.idl b/offapi/com/sun/star/configuration/CorruptedConfigurationException.idl new file mode 100644 index 0000000000..68db2bc474 --- /dev/null +++ b/offapi/com/sun/star/configuration/CorruptedConfigurationException.idl @@ -0,0 +1,44 @@ +/* -*- 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 . + */ + + + +module com { module sun { module star { module configuration { + + +/** This exception is thrown in case a configuration + does not exists or contains corrupt data. + + This exception must be used as base exception to derive + specialized exceptions from it which identify a concrete + error case. + + @since OOo 2.3 + */ +published exception CorruptedConfigurationException : ::com::sun::star::uno::RuntimeException +{ + /** Instead of the message part of an exception, this value + describe the type of corruption more in detail. */ + string Details; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/CorruptedUIConfigurationException.idl b/offapi/com/sun/star/configuration/CorruptedUIConfigurationException.idl new file mode 100644 index 0000000000..db4bb5ed02 --- /dev/null +++ b/offapi/com/sun/star/configuration/CorruptedUIConfigurationException.idl @@ -0,0 +1,38 @@ +/* -*- 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 . + */ + + + +module com { module sun { module star { module configuration { + + +/** This exception is thrown in case the global UI configuration + (including menubars/toolbars and accelerators) + does not exists or contains corrupted data. + + @since OOo 2.3 + */ +published exception CorruptedUIConfigurationException : ::com::sun::star::configuration::CorruptedConfigurationException +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/DefaultProvider.idl b/offapi/com/sun/star/configuration/DefaultProvider.idl new file mode 100644 index 0000000000..065bfcca38 --- /dev/null +++ b/offapi/com/sun/star/configuration/DefaultProvider.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 . + */ + + + +module com { module sun { module star { module configuration { + + +/** + is a ConfigurationProvider, that is + the default ConfigurationProvider for its + com::sun::star::uno::XComponentContext. + +This object is accessible as singleton + theDefaultProvider
. + + @since OOo 1.1.2 +*/ +published service DefaultProvider +{ + + /** characterizes the functionality. + */ + service ConfigurationProvider ; + + /**Provides refresh capabilities, data can be refreshed from the backend(s) into + the in-memory cache. + */ + [optional] interface com::sun::star::util::XRefreshable; + + /** Enables the data to be flushed from the in-memory cache to the backend(s). + */ + [optional] interface com::sun::star::util::XFlushable; + + /** Enable setting/getting locale for Provider + + @since OOo 2.0 + */ + + [optional] interface com::sun::star::lang::XLocalizable; + + /** Property to enable/disable asynchronous write-back from in-memory cache to backend(s) + + @since OOo 2.0 + */ + + [optional,property] boolean EnableAsync; + +} ; + + +} ; } ; } ; } ; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/GroupAccess.idl b/offapi/com/sun/star/configuration/GroupAccess.idl new file mode 100644 index 0000000000..8bc46460b1 --- /dev/null +++ b/offapi/com/sun/star/configuration/GroupAccess.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 . + */ + + +module com { module sun { module star { module configuration { + +/** provides access to a predefined heterogeneous group of values and nested + trees as part of a hierarchy. + +Provides access to, and information about, its children and descendants + viewed either as properties or as contained elements. +
+ +Groups are static collections within the hierarchy.
+ +The number and names of contained elements are fixed in advance + and each child may have a different type. +
+ +This service subsumes two alternate ways of accessing child and descendent
+ elements. These strongly overlap, supporting the basic identity
+ xGroup.getPropertyValue( aName ) == xGroup.getByName( aName )
.
+
This view is meaningful only for a static fragment of the hierarchy + Object's properties may change, but not which properties they have. + Therefore, dynamic elements of the hierarchy (see SetAccess) + do not implement service PropertyHierarchy. +
+ +If such elements occur as properties or subproperties of an implementation, + it is not specified whether direct subproperty access using + com::sun::star::beans::XHierarchicalPropertySet or + com::sun::star::beans::XMultiHierarchicalPropertySet can + be used to access descendants of such elements. +
+ +Similarly, information about such descendants may not be available from + the com::sun::star::beans::XHierarchicalPropertySetInfo + the implementation provides. +
+ +If an implementation is part of a read-only view of the hierarchy, + all properties and subproperties will be reported as having attribute + com::sun::star::beans::PropertyAttribute::READONLY set, + and attempts to change property values will fail. +
+*/ + service PropertyHierarchy; + +/** provides access to the state of child elements of an implementation. [optional] + +This interface should be present, if the hierarchy supports default values + for simple (non-object) properties and the group contains such properties. +
+ +For properties that are objects themselves, the semantic documented for + service HierarchyAccess applies. +
+ */ + [optional] interface com::sun::star::beans::XPropertyState; + +/** provides access to the states of multiple child elements of + an implementation. [optional] + +This interface should be present, if the hierarchy supports default values + for simple (non-object) properties and the group contains such properties. +
+ +For properties that are objects themselves, the semantic documented for + service HierarchyAccess applies. +
+*/ + [optional] interface com::sun::star::beans::XMultiPropertyStates; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/GroupElement.idl b/offapi/com/sun/star/configuration/GroupElement.idl new file mode 100644 index 0000000000..9c2ab8dd42 --- /dev/null +++ b/offapi/com/sun/star/configuration/GroupElement.idl @@ -0,0 +1,67 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module configuration { + +/** provides information about a predefined element contained in a + heterogeneous group of elements within a hierarchy. + +Provides information about the element. + Provides access to its containing group object. +
+ +A group element bears a predefined name. It may only exist within a + containing group object. +
+ + @see com::sun::star::configuration::GroupAccess + Parent objects of this service generally implement service GroupAccess. + + @see com::sun::star::configuration::SetElement + A complementary service, for elements of a dynamic homogeneous container. + + @see com::sun::star::configuration::AccessRootElement + A complementary service, for the root element of a hierarchy. + +*/ +published service GroupElement +{ +/** is the basic service for accessing information about an element in the + hierarchy. +*/ + service HierarchyElement; + +/** provides access to the containing group object. + +In this service this interface is mandatory
+ +com::sun::star::container::XChild::getParent() + shall not return NULL. +
+ +Setting a different parent is not supported.
+*/ + interface com::sun::star::container::XChild; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/GroupUpdate.idl b/offapi/com/sun/star/configuration/GroupUpdate.idl new file mode 100644 index 0000000000..11b16f2612 --- /dev/null +++ b/offapi/com/sun/star/configuration/GroupUpdate.idl @@ -0,0 +1,71 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module configuration { + +/** provides write access to a predefined heterogeneous group of values + and nested trees as part of a hierarchy. + +This service extends GroupAccess to support + modifying values. +
+*/ +published service GroupUpdate +{ +/** is the basic service providing read access to a group element of the + hierarchy. + +Any child and descendant objects support modifying access as well, + unless they represent a read-only tree element as indicated by + com::sun::star::beans::PropertyAttribute::READONLY. +
+*/ + service GroupAccess; + +/** allows replacing values. + +This service extends the interface
+ com::sun::star::container::XNameAccess supported
+ by service GroupAccess to allow changing values.
+ This strongly overlaps with functionality available through
+ PropertyHierarchy (from GroupAccess), so that
+ xGroup.setPropertyValue( aName, aValue )
is equivalent to
+ xGroup.replaceByName( aName, aValue )
.
+
Changes can be observed by registering a listener with interface + com::sun::star::beans::XPropertySet or + com::sun::star::beans::XMultiPropertySet. +
+ +Elements of this group may be replaced only if they are of simple type. + The type returned by + com::sun::star::container::XElementAccess::getElementType() + must not be an interface type. Replacing whole subtrees is not supported. +
+*/ + interface com::sun::star::container::XNameReplace; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/HierarchyAccess.idl b/offapi/com/sun/star/configuration/HierarchyAccess.idl new file mode 100644 index 0000000000..849b4f759e --- /dev/null +++ b/offapi/com/sun/star/configuration/HierarchyAccess.idl @@ -0,0 +1,146 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module configuration { + +/** provides access to a hierarchy of descendant elements. + +Subnodes are accessed by their name. Values that are direct or indirect + descendants of this tree node can be retrieved. Non-value subnodes can be + navigated using container interfaces. + Other interfaces provide access to information about this node. + Changes to values in the subtree can be monitored by event listeners. +
+ +Elements of this container that are not simple values + are similar containers themselves, thus (recursively) forming a + hierarchical tree. +
+ +Implementations of this service usually also implement + service HierarchyElement, which concerns the complementary role + of being accessible as an element of the hierarchy. +
+*/ +published service HierarchyAccess +{ +/** allows access to immediate children of this node. + +com::sun::star::container::XNameAccess::getByName() + returns an `any` holding either a simple value or an interface + on another HierarchyAccess if the child is not a simple value. +
+*/ + interface com::sun::star::container::XNameAccess; + +/** allows access to all descendants of this node + +com::sun::star::container::XHierarchicalNameAccess::getByHierarchicalName() + returns an `any` holding either a simple value or an interface + on another HierarchyAccess if the descendant is not a simple value. +
+*/ + interface com::sun::star::container::XHierarchicalNameAccess; + +/** allows attaching listeners to this node to monitor changes to immediate child nodes. +*/ + interface com::sun::star::container::XContainer; + +/** provides support for inexact names. +Exact names can be obtained for simple or hierarchical names for use in + com::sun::star::container::XNameAccess, + com::sun::star::container::XHierarchicalNameAccess, + com::sun::star::beans::XPropertySet or + any other interfaces that allow access to or manipulation of subnodes + selected by name or hierarchical name. +
+If an inexact name could be matched to either a simple or a hierarchical + name, the simple (immediate child) name is preferred. +
+*/ + interface com::sun::star::beans::XExactName; + +/** provides information about immediate children of this node. [optional] + +This interface may be missing, if the hierarchy supports no traits that are + described by com::sun::star::beans::PropertyAttribute + values or if the same information is available by other means, + e.g. if the implementation supports + com::sun::star::beans::XPropertySet::getPropertySetInfo(). +
+ +If a child of this node is an object that implements + com::sun::star::beans::XProperty, then this implementation + returns the same com::sun::star::beans::Property for that + child as the child itself. +
+*/ + [optional] interface com::sun::star::beans::XPropertySetInfo; + +/** provides access to the state of child elements of an implementation. [optional] + +This interface may be missing if the hierarchy (or a hierarchy fragment + that contains this implementation as element) does not support default values or + if the node does not support accessing the default state of individual children. +
+ +If elements that are not simple values, but objects themselves, support + a default state (as indicated by + com::sun::star::beans::PropertyAttribute::MAYBEDEFAULT), + they should implement + com::sun::star::beans::XPropertyWithState, in which case + the com::sun::star::beans::PropertyState applies to all + their children and recursively to all descendants. +
+ +If an implementation is part of a read-only view of the hierarchy, + attempts to change property states will fail. +
+*/ + [optional] interface com::sun::star::beans::XPropertyState; + +/** provides access to the states of multiple child elements of + an implementation. [optional] + +This interface may be missing if the hierarchy (or a hierarchy fragment + that contains this implementation as element) does not support default values + if the node does not support accessing the default state of individual children. +
+ +If elements that are not simple values, but objects themselves, support + a default state (as indicated by + com::sun::star::beans::PropertyAttribute::MAYBEDEFAULT), + they should implement + com::sun::star::beans::XPropertyWithState, in which case + the com::sun::star::beans::PropertyState applies to all + their children and recursively to all descendants. +
+ +If an implementation is part of a read-only view of the hierarchy, + attempts to change property states will fail. +
+*/ + [optional] interface com::sun::star::beans::XMultiPropertyStates; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/HierarchyElement.idl b/offapi/com/sun/star/configuration/HierarchyElement.idl new file mode 100644 index 0000000000..92ccd327a1 --- /dev/null +++ b/offapi/com/sun/star/configuration/HierarchyElement.idl @@ -0,0 +1,99 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module configuration { + +/** provides information about an element within a hierarchy. + +The local name and the full hierarchical name can be retrieved. + Attributes detailing the role of the element can be queried. + The state of the element (regarding defaults) can be accessed. +
+ +Implementations of this service usually also implement + service HierarchyAccess, which concerns the complementary role + of providing access to subelements of the hierarchy. +
+*/ +published service HierarchyElement +{ +/** provides the complete hierarchical name of this element + within the hierarchy tree. +*/ + interface com::sun::star::container::XHierarchicalName; + +/** provides the local name of this element within its parent. + +Renaming an element is generally not supported.
+*/ + interface com::sun::star::container::XNamed; + +/** provides a property descriptor for this element.[optional] + +This interface may be missing, if the hierarchy supports no traits that are + described by com::sun::star::beans::PropertyAttribute + values. +
+ +If the parent of this object implements + com::sun::star::beans::XPropertySetInfo, then this returns + the same com::sun::star::beans::Property as the + com::sun::star::beans::XPropertySetInfo of the parent. +
+*/ + [optional] interface com::sun::star::beans::XProperty; + +/** provides access to the default state of this element. [optional] + +This interface may be missing, if the hierarchy supports access to + a default state and values only for simple values or not at all. +
+ +If the parent of this object implements + com::sun::star::beans::XPropertyState, then members + of this interface have the same effect as corresponding members of the parent. +
+ +If an implementation is part of a read-only view of the hierarchy, + attempts to change property states will fail. +
+*/ + [optional] interface com::sun::star::beans::XPropertyWithState; + +/** provides access to the parent of this element [optional]. + +This interface may be missing if this object is not obtained + as a child or descendant of another tree node, for example, directly from a factory or provider. +
+ +com::sun::star::container::XChild::getParent() + returns NULL, if this object is currently not contained in another node. +
+ +Setting a different parent is, generally, not supported.
+*/ + [optional] interface com::sun::star::container::XChild; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/InstallationIncompleteException.idl b/offapi/com/sun/star/configuration/InstallationIncompleteException.idl new file mode 100644 index 0000000000..9e79a641e5 --- /dev/null +++ b/offapi/com/sun/star/configuration/InstallationIncompleteException.idl @@ -0,0 +1,34 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module configuration { + + +/** is thrown when creating a configuration provider fails because + the user's installation for the is missing or incomplete + */ +published exception InstallationIncompleteException: com::sun::star::configuration::CannotLoadConfigurationException +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/InvalidBootstrapFileException.idl b/offapi/com/sun/star/configuration/InvalidBootstrapFileException.idl new file mode 100644 index 0000000000..e207f73483 --- /dev/null +++ b/offapi/com/sun/star/configuration/InvalidBootstrapFileException.idl @@ -0,0 +1,36 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module configuration { + + +/** is thrown when creating a configuration provider fails because + a bootstrap file needed to locate the configuration contains invalid data + */ +published exception InvalidBootstrapFileException: com::sun::star::configuration::CannotLoadConfigurationException +{ + /// the URL of the bootstrap file that is invalid + string BootstrapFileURL; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/MissingBootstrapFileException.idl b/offapi/com/sun/star/configuration/MissingBootstrapFileException.idl new file mode 100644 index 0000000000..ebbbb047d0 --- /dev/null +++ b/offapi/com/sun/star/configuration/MissingBootstrapFileException.idl @@ -0,0 +1,36 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module configuration { + + +/** is thrown when creating a configuration provider fails because + a bootstrap file needed to locate the configuration is missing + */ +published exception MissingBootstrapFileException: com::sun::star::configuration::CannotLoadConfigurationException +{ + /// the URL of the bootstrap file that could not be found + string BootstrapFileURL; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/PropertyHierarchy.idl b/offapi/com/sun/star/configuration/PropertyHierarchy.idl new file mode 100644 index 0000000000..bbef3f09c9 --- /dev/null +++ b/offapi/com/sun/star/configuration/PropertyHierarchy.idl @@ -0,0 +1,75 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module configuration { + +/** provides access to and information about properties and subproperties + of an implementation. + +Properties in a property set may be full-fledged objects that have + properties themselves (and so on recursively), thereby forming a hierarchy + of properties. This service describes such a hierarchy, and allows + direct access even to subproperties. +
+ + @see com::sun::star::beans::XProperty + Properties of an implementation that are objects themselves will often + implement com::sun::star::beans::XProperty to allow + direct access to information about the object. + If such objects have properties of their own, they should fully implement + PropertyHierarchy again. +*/ +published service PropertyHierarchy +{ +/** provides access to and information about the immediate properties of an implementation. +*/ + interface com::sun::star::beans::XPropertySet; + +/** provides access to and information about the immediate properties + of an implementation. + +This interface allows retrieving or setting multiple properties at once. + Accesses are guaranteed to occur as single atomic operations even if + multiple threads are accessing the object simultaneously. +
+*/ + interface com::sun::star::beans::XMultiPropertySet; + +/** provides access to and information about the whole hierarchy + of properties and subproperties of an implementation. +*/ + interface com::sun::star::beans::XHierarchicalPropertySet; + +/** provides access to and information about the whole hierarchy + of properties and subproperties of an implementation. + +This interface allows retrieving or setting multiple properties at once. + Accesses are guaranteed to occur as single atomic operations even if + multiple threads are accessing the object simultaneously. +
+*/ + interface com::sun::star::beans::XMultiHierarchicalPropertySet; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/ReadOnlyAccess.idl b/offapi/com/sun/star/configuration/ReadOnlyAccess.idl new file mode 100644 index 0000000000..124dc2b6e6 --- /dev/null +++ b/offapi/com/sun/star/configuration/ReadOnlyAccess.idl @@ -0,0 +1,29 @@ +/* -*- 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/. + */ + +module com { module sun { module star { module configuration { + +/** Provides easy read-only access to the complete configuration. + +This service is still unpublished and unstable.
+ + @since LibreOffice 4.0 +*/ +service ReadOnlyAccess: com::sun::star::container::XHierarchicalNameAccess { + /** Service constructor. + + @param locale a string representation of the locale to use for localized + properties; use*
for all-locale access
+ */
+ create([in] string locale);
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/configuration/ReadWriteAccess.idl b/offapi/com/sun/star/configuration/ReadWriteAccess.idl
new file mode 100644
index 0000000000..e84bc9da5f
--- /dev/null
+++ b/offapi/com/sun/star/configuration/ReadWriteAccess.idl
@@ -0,0 +1,29 @@
+/* -*- 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/.
+ */
+
+module com { module sun { module star { module configuration {
+
+/** Provides easy read/write access to the complete configuration.
+
+ This service is still unpublished and unstable.
+ + @since LibreOffice 4.0 +*/ +service ReadWriteAccess: com::sun::star::configuration::XReadWriteAccess { + /** Service constructor. + + @param locale a string representation of the locale to use for localized + properties; use*
for all-locale access
+ */
+ create([in] string locale);
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/configuration/SetAccess.idl b/offapi/com/sun/star/configuration/SetAccess.idl
new file mode 100644
index 0000000000..a3f362dbcb
--- /dev/null
+++ b/offapi/com/sun/star/configuration/SetAccess.idl
@@ -0,0 +1,80 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module configuration {
+
+/** provides access to a dynamic, homogeneous set of values or nested
+ trees within a hierarchy.
+
+ Also provides information about the template for elements. + Allows normalizing externally generated names. +
+ +Sets are dynamic containers within the hierarchy.
+ +The number and names of contained elements are not fixed in advance, + but all elements have to be of one predetermined type. +
+ + @see com::sun::star::configuration::SetElement + Child objects of this service generally implement SetElement. + The template name returned by the child from + XTemplateInstance::getTemplateName() + corresponds to the name returned by the set from + XTemplateContainer::getElementTemplateName(). + + @see com::sun::star::configuration::GroupAccess + A complementary service that provides for static heterogeneous groups of + elements within the hierarchy. + +*/ +published service SetAccess +{ +/** is the basic service for accessing child and descendent nodes in a hierarchy. + +External names (from foreign namespaces) should be normalized using + com::sun::star::util::XStringEscape::escapeString() + (if available) before using them as element names. +
+*/ + service HierarchyAccess; + +/** is the basic service providing information about and access to elements + of a not necessarily hierarchical set. + +Interface com::sun::star::configuration::XTemplateContainer, + which is optional in SimpleSetAccess must always be implemented + in this service, if the elements are of object type.
+*/ + service SimpleSetAccess; + +/** allows attaching listeners to this node to monitor changes to the set. + +In this service, support for notifications is mandatory. +
+*/ + interface com::sun::star::container::XContainer; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/SetElement.idl b/offapi/com/sun/star/configuration/SetElement.idl new file mode 100644 index 0000000000..0d44945820 --- /dev/null +++ b/offapi/com/sun/star/configuration/SetElement.idl @@ -0,0 +1,157 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module configuration { + +/** provides information about a dynamic element that can be inserted into a + homogeneous set of elements within a hierarchy. + +Provides information about the element. + Provides access to its containing set object. + Allows controlling the lifetime of the element. +
+ +Set elements may be added to and removed from the hierarchy at runtime. + They bear user-defined names. They may exist independently, outside any + container. +
+ +New set element instances generally are created through members of + com::sun::star::lang::XSingleServiceFactory or, + if supported, com::sun::star::lang::XMultiServiceFactory + on an implementation of SetUpdate. Initially, they are not + contained in a set object and have no meaningful name. +
+ +While an instance is not contained in a set object, it is owned by + the client and can be disposed by calling + com::sun::star::lang::XComponent::dispose(). The name + of the object can freely be changed in that situation though without + persistent effect. +
+ +When the instance is inserted into a set (this includes replacing an + existing element), ownership is transferred to the container. + While it is contained in the container, clients must not dispose the + object. When inserted, the name of the object is fixed and is used to + identify it within the container. An implementation may support + com::sun::star::container::XNamed::setName() even in + this case. If it does, changing the name has the same effect of removing + the object (under the old name) and then reinserting it into the same + container (using the new name). +
+ +When an instance is removed from a set (this includes being replaced by + a new element), ownership is transferred to the client again. It can then be + disposed or reinserted into a container. An instance can only be inserted + into a container, if it was obtained from the same hierarchy. +
+ +When a set element is removed from its set from outside the hierarchy, the + container disposes of the object. This occurrence can be detected by registering + a com::sun::star::lang::XEventListener with the object. +
+ +If an implementation is part of a read-only view of the hierarchy, + changing the name or parent is not supported (the object can't be removed from + its container anyway). +
+ + @see com::sun::star::configuration::SetAccess + Parent objects of this service generally implement service SetAccess. + + @see com::sun::star::configuration::GroupElement + A complementary service for elements of a static heterogeneous collection. + + @see com::sun::star::configuration::AccessRootElement + A complementary service for the root element of a hierarchy. + +*/ +published service SetElement +{ +/** is the basic service for accessing information about an element in the + hierarchy. +*/ + service HierarchyElement; + +/** provides access to the containing set object. + +In this service, this interface is mandatory
+ +com::sun::star::container::XChild::getParent() + returns `NULL`, if the object is currently not contained in a container. +
+ +An implementation may also support + com::sun::star::container::XChild::setParent(). + If it does, changing the parent has the effect of first removing the object + from its old parent (if any) and then inserting it into the new parent + (unless that is `NULL`) under the same name. The new parent must be part of + the same hierarchy as the old one. The name of the object must have been set + before. +
+*/ + interface com::sun::star::container::XChild; + +/** allows controlling or observing the lifetime of the object. + +Clients may dispose of the object using + com::sun::star::lang::XComponent::dispose(), only if + the object is currently not contained in a container ( + com::sun::star::container::XChild::getParent() + returns `NULL`). +
+ +Clients may register a com::sun::star::lang::XEventListener + to be notified, if the object is removed from its container by an outside source. +
+*/ + interface com::sun::star::lang::XComponent; + +/** provides information about the type of the element. + +Set elements have a predetermined structure (their type), + that is described by and can be generated from a template. +
+ +If the object was created using interface + com::sun::star::lang::XSingleServiceFactory + on an implementation of SetUpdate, this interface describes the + same template as interface XTemplateContainer on that + SetUpdate. +
+If the object was created using interface + com::sun::star::lang::XMultiServiceFactory + on an implementation of SetUpdate, this interface describes the + template whose name was used as a service identifier for the factory method. +
+Otherwise, the semantics of the information provided about the template depends on the + implementation. +
+ + @see com::sun::star::configuration::XTemplateContainer +*/ + interface com::sun::star::configuration::XTemplateInstance; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/SetUpdate.idl b/offapi/com/sun/star/configuration/SetUpdate.idl new file mode 100644 index 0000000000..e7916a6a01 --- /dev/null +++ b/offapi/com/sun/star/configuration/SetUpdate.idl @@ -0,0 +1,84 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module configuration { + +/** provides write access to a dynamic homogeneous set of values or nested + trees within a hierarchy. + +Allows adding and removing elements. + Helps creates new elements to be added. +
+ +This service extends SetAccess to support + modifying the container. +
+ +Any child and descendant objects support modifying access as well, + unless they represent a read-only tree element (as indicated by + com::sun::star::beans::PropertyAttribute::READONLY). +
+*/ +published service SetUpdate +{ +/** is the basic service providing read access to a set within the + hierarchy. +*/ + service SetAccess; + +/** is the basic service providing modifying access to a + not necessarily hierarchical set. + +Changes can be observed by registering a listener with interface + com::sun::star::container::XContainer. +
+ +If the elements of this set are of object type, new elements are constructed + to match the tree structure prescribed by the element template of this set, when + using interfaces com::sun::star::lang::XSingleServiceFactory + and (if supported) com::sun::star::lang::XMultiServiceFactory. +
+ +Objects that are removed from a set can be reinserted into any set supporting + the same template within the same hierarchy. Even under a different name. +
+ +Implementations that support insertion of objects that weren't obtained + from within the hierarchy must reject elements that don't have the correct + structure as described by the template, even if the object returns the + correct template name from XTemplateInstance::getTemplateName(). +
+ +Other ways in which an element may be moved among or within compatible sets + include com::sun::star::container::XChild::setParent() + and com::sun::star::container::XNamed::setName(), if + the element implements them. +
+ + @see com::sun::star::configuration::SetElement +*/ + service SimpleSetUpdate; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/SimpleSetAccess.idl b/offapi/com/sun/star/configuration/SimpleSetAccess.idl new file mode 100644 index 0000000000..2719e6df35 --- /dev/null +++ b/offapi/com/sun/star/configuration/SimpleSetAccess.idl @@ -0,0 +1,93 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module configuration { + +/** provides access to a dynamic, homogeneous, nonhierarchical set of values + or objects. + +Also provides information about the template for elements. + Allows normalizing externally generated names. +
+ +Sets are dynamic containers.
+ +The number and names of contained elements is not fixed in advance, + but all elements have to be of one predetermined type. +
+*/ +published service SimpleSetAccess +{ +/** is the basic service for accessing child and descendent nodes. + +External names from foreign namespaces should be normalized using + com::sun::star::util::XStringEscape::escapeString(), + if available, before using them as element names. +
+*/ + interface com::sun::star::container::XNameAccess; + +/** provides additional information about the element type. [optional] + +All set elements, if they are not just simple values, but whole trees, + must have a predetermined structure (their type) + that is described by and can be generated from a template. + The semantics of the information provided about the template depends on the + implementation. +
+ +This interface may be missing, if the implementation can support only + one predefined type or if the elements are of a simple type and + no further information is available. In the latter case, + com::sun::star::container::XElementAccess::getElementType() + provides all the information there is about the element's type. +
+*/ + [optional] interface com::sun::star::configuration::XTemplateContainer; + +/** allows normalizing and denormalizing external names. [optional] + +Elements of a set often correspond to external entities, + for example, files, web pages, and people whose names obey different rules and + restrictions than names that are valid in the hierarchical naming scheme. +
+ +This interface may be missing if there are no naming restrictions, + if the implementation handles any such conversions internally, + or if clients must enforce such restrictions themselves. In the last case, + the naming scheme documentation must fully document any restrictions. +
+*/ + [optional] interface com::sun::star::util::XStringEscape; + +/** allows attaching listeners to this node to monitor changes to the set. [optional] + +This interface may be missing if the implementation does not support + notifications. +
+*/ + [optional] interface com::sun::star::container::XContainer; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/SimpleSetUpdate.idl b/offapi/com/sun/star/configuration/SimpleSetUpdate.idl new file mode 100644 index 0000000000..117e034ebf --- /dev/null +++ b/offapi/com/sun/star/configuration/SimpleSetUpdate.idl @@ -0,0 +1,155 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module configuration { + +/** provides write access to a dynamic, homogeneous, non-hierarchical set of + values or objects. + +Allows adding and removing elements. + Helps create new elements to be added. +
+ +This service extends SimpleSetAccess to support + modifying the container. Any child objects shall in turn support + modifying access. +
+*/ +published service SimpleSetUpdate +{ +/** is the basic service providing read access to a (not necessarily + hierarchical) set. +*/ + service SimpleSetAccess; + +/** allows inserting, removing, and replacing elements. + +This interface extends the interface + com::sun::star::container::XNameAccess supported + by service SimpleSetAccess to allow modifying the container. +
+ +If available, changes can be observed by registering a listener with interface + com::sun::star::container::XContainer. +
+ +If the elements of this set are of simple type (the type returned by + com::sun::star::container::XElementAccess::getElementType() + is not an interface type), then values of that type can directly be passed to + com::sun::star::container::XNameContainer::insertByName() + and + com::sun::star::container::XNameContainer::replaceByName(). +
+ +Otherwise new elements have to be constructed to match the type + prescribed by the element template of this set. Such elements can be created + using interfaces com::sun::star::lang::XSingleServiceFactory + and, if supported, com::sun::star::lang::XMultiServiceFactory. +
+ +Objects to be inserted must not be contained in any set at the time of + insertion. com::sun::star::container::XChild::getParent() + must return `NULL`. If a name had been assigned to the object prior to insertion + (using com::sun::star::container::XNamed::setName() + or by other means), this name is ignored and will be lost. + After insertion the name of the object is the name that was used as argument + to com::sun::star::container::XNameContainer::insertByName() + or com::sun::star::container::XNameContainer::replaceByName(). +
+ + +Objects that are removed using + com::sun::star::container::XNameContainer::removeByName() + or replaced using + com::sun::star::container::XNameContainer::replaceByName() + remain valid and can be reinserted into a set supporting the same template and + even under a different name. +
+ +An implementation need not support insertion of objects that were not + obtained in one of the ways described above. If it does, the implementation + must reject elements that do not have the correct structure as described + by the template. +
+*/ + interface com::sun::star::container::XNameContainer; + +/** allows creating an object that can be inserted into this set. [conditional] + +This interface shall be implemented by an implementation, + if and only if the element type of the set, as returned by + com::sun::star::container::XElementAccess::getElementType(), + is an object type, such as an interface. +
+ +Using com::sun::star::lang::XSingleServiceFactory::createInstance() + an instance of the element template of this set is created. If the set + supports multiple templates or variations of the basic template, a default + variant of the basic template is instantiated. If an implementation supports + variations, they may be specified by passing arguments to + com::sun::star::lang::XSingleServiceFactory::createInstanceWithArguments(). + There are no predefined arguments for all versions of this service. +
+ +The object created is not contained in the set and does not have a name yet. + It may subsequently be inserted into the set and named using + com::sun::star::container::XNameContainer::insertByName() + or + com::sun::star::container::XNameContainer::replaceByName(). +
+*/ + [optional] interface com::sun::star::lang::XSingleServiceFactory; + +/** allows creating various objects that can be inserted into this set. [optional] + +This interface may be implemented by an implementation of + service SetUpdate to support creating elements from other than + the basic element template. An example of this would be an + implementation that supports inheritance, allowing the use of + templates derived from the basic template by extension. +
+ +This interface may only be implemented if the element type of the set + (as returned by + com::sun::star::container::XElementAccess::getElementType()) + is an object type, such as an interface. An implementation should also implement + interface XTemplateContainer which is optional in this service. +
+ +The service identifier argument passed + to com::sun::star::lang::XMultiServiceFactory::createInstance() + or com::sun::star::lang::XMultiServiceFactory::createInstanceWithArguments() + names the template to be instantiated or otherwise identifies the structure + to be built. The implementation must at least support using the template + name obtained from XTemplateContainer::getElementTemplateName() + as a service identifier, in which case the result shall be the same as if + the corresponding member of com::sun::star::lang::XSingleServiceFactory + had been called. +
+ +*/ + [optional] interface com::sun::star::lang::XMultiServiceFactory; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/Update.idl b/offapi/com/sun/star/configuration/Update.idl new file mode 100644 index 0000000000..9bdf1be140 --- /dev/null +++ b/offapi/com/sun/star/configuration/Update.idl @@ -0,0 +1,32 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module configuration { + +/* Provides access to internal update features of the configuration provider. + +This singleton is unpublished and unstable.
+ + @since OOo 3.3 +*/ +singleton Update: XUpdate; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/UpdateRootElement.idl b/offapi/com/sun/star/configuration/UpdateRootElement.idl new file mode 100644 index 0000000000..e3fe9f3fa4 --- /dev/null +++ b/offapi/com/sun/star/configuration/UpdateRootElement.idl @@ -0,0 +1,89 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module configuration { + +/** provides update control for a hierarchy of configuration items + and information about the hierarchy as a whole as well as its root. + +Extends AccessRootElement by adding support for + collecting changes and applying them to a backend store as a single batch. +
+ +An implementation represents the root of a partial hierarchy. [See the + documentation for AccessRootElement]. The hierarchy in turn is + a view onto a fragment of persistent data tree that can be accessed + through several such views, or even several processes, simultaneously. +
+ +Elements of the hierarchy, such as descendants of this root element, + may support modification by providing appropriate + interfaces. Changes done this way initially only affect these objects + themselves and other objects within the same hierarchy, such as other + descendants of this root element. +
+ +The accumulated changes within this hierarchy can be managed using + com::sun::star::util::XChangesBatch. Pending changes + will become persistent and visible from other overlapping hierarchies + only when com::sun::star::util::XChangesBatch::commitChanges() + is called. If the hierarchy is disposed or discarded without committing + changes, the changes will be lost. +
+ + @see com::sun::star::configuration::GroupUpdate + @see com::sun::star::configuration::SetUpdate +*/ +published service UpdateRootElement +{ +/** provides (read-only) access to information about the root element of + (a fragment of) the hierarchy. It also provides some functionality concerning + the hierarchy (fragment) accessible from that element as a whole. +*/ + service AccessRootElement; + +/** allows managing changes within the hierarchy. + +com::sun::star::util::XChangesBatch::getPendingChanges() + reports all changes within the hierarchy that are done through (direct or + indirect) descendants of this element. The same set of changes is committed + to persistent storage and/or made visible to other objects accessing the same + data set, when + com::sun::star::util::XChangesBatch::commitChanges() + is invoked. +
+ +If the implementation supports + com::sun::star::lang::XLocalizable::setLocale(), changes + will be considered to apply to the locale that is set when + com::sun::star::util::XChangesBatch::commitChanges() + is invoked. +
+ + @see AccessRootElement + @see com::sun::star::util::XChangesNotifier +*/ + interface com::sun::star::util::XChangesBatch; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/XDocumentation.idl b/offapi/com/sun/star/configuration/XDocumentation.idl new file mode 100644 index 0000000000..7c82659eb2 --- /dev/null +++ b/offapi/com/sun/star/configuration/XDocumentation.idl @@ -0,0 +1,66 @@ +/* -*- 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/. + */ + +module com { module sun { module star { module configuration { + +/* Is used to deliver documentation for the configuration. + +This interface is still unpublished and unstable.
+ + @since LibreOffice 24.2 +*/ +interface XDocumentation { + /** @returns + the description for the requested object + + @param aName + the hierarchical name of the object. + + @throws NoSuchElementException + if an element under aName does not exist. + */ + string getDescriptionByHierarchicalName( [in] string aName ) + raises( com::sun::star::container::NoSuchElementException ); + + /** @returns + the type for the requested object + + @param aName + the hierarchical name of the object. + + @throws NoSuchElementException + if an element under aName does not exist. + + @throws InvalidStateException + when the type of the object could not be resolved. + */ + type getTypeByHierarchicalName( [in] string aName ) + raises( com::sun::star::container::NoSuchElementException, + com::sun::star::util::InvalidStateException ); + + /** @returns + whether the requested object was modified + + @param aName + the hierarchical name of the object. + + @throws NoSuchElementException + if an element under aName does not exist. + + @throws InvalidStateException + when the object has an invalid type + */ + boolean getModifiedByHierarchicalName( [in] string aName ) + raises( com::sun::star::container::NoSuchElementException, + com::sun::star::util::InvalidStateException ); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/XReadWriteAccess.idl b/offapi/com/sun/star/configuration/XReadWriteAccess.idl new file mode 100644 index 0000000000..f164c875c3 --- /dev/null +++ b/offapi/com/sun/star/configuration/XReadWriteAccess.idl @@ -0,0 +1,29 @@ +/* -*- 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/. + */ + +module com { module sun { module star { module configuration { + +/* Provides easy read/write access to the complete configuration. + +This interface is still unpublished and unstable.
+ + @since LibreOffice 3.6 +*/ +interface XReadWriteAccess { + interface com::sun::star::container::XHierarchicalNameReplace; + + interface com::sun::star::util::XChangesBatch; + + // @since LibreOffice 5.0 + interface com::sun::star::beans::XHierarchicalPropertySetInfo; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/XTemplateContainer.idl b/offapi/com/sun/star/configuration/XTemplateContainer.idl new file mode 100644 index 0000000000..834febfbbf --- /dev/null +++ b/offapi/com/sun/star/configuration/XTemplateContainer.idl @@ -0,0 +1,62 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module configuration { + + +/** is implemented by objects that contain instances of a named template to + provide information about the template. + +An implementation will also implement + com::sun::star::lang::XSingleServiceFactory, in which case + that interface creates instances of the specified template. +
+If multiple templates are supported, the supported factory interface may be + com::sun::star::lang::XMultiServiceFactory, in which case + the `string` returned from + XTemplateContainer::getElementTemplateName() can be used as + the service name argument. +
+ + @see XTemplateInstance + */ +published interface XTemplateContainer: com::sun::star::uno::XInterface +{ + + /** retrieves the name of the template + +If instances of multiple templates are accepted by the container, + this is the name of the basic or primary template. +
+Instances of the template must be created + using an appropriate factory. +
+ + @returns + the name of the (default) template for elements. + */ + string getElementTemplateName(); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/XTemplateInstance.idl b/offapi/com/sun/star/configuration/XTemplateInstance.idl new file mode 100644 index 0000000000..2e4d4772f5 --- /dev/null +++ b/offapi/com/sun/star/configuration/XTemplateInstance.idl @@ -0,0 +1,52 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module configuration { + + +/** is implemented by objects that are instances of a named template to provide + information about the template. + +Template names are similar to service names, but apply to structure and + content, rather than to type. +
+Often a template description can be retrieved from a repository and then be + interpreted by a factory object. Templates provide a means to build + new kinds of objects dynamically. +
+ + @see XTemplateContainer + */ +published interface XTemplateInstance: com::sun::star::uno::XInterface +{ + + /** retrieves the name of the template + + @returns + the name of the template this object was built from or conforms to. + */ + string getTemplateName(); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/XUpdate.idl b/offapi/com/sun/star/configuration/XUpdate.idl new file mode 100644 index 0000000000..0a0f25a2e6 --- /dev/null +++ b/offapi/com/sun/star/configuration/XUpdate.idl @@ -0,0 +1,44 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module configuration { + +/* Provides access to internal update features of the configuration provider. + +This interface is unpublished and unstable.
+ + @since OOo 3.3 +*/ +interface XUpdate { + void insertExtensionXcsFile([in] boolean shared, [in] string fileUri); + + void insertExtensionXcuFile([in] boolean shared, [in] string fileUri); + + void removeExtensionXcuFile([in] string fileUri); + // fileUri must exactly match corresponding insertExtensionXcuFile + // argument + + void insertModificationXcuFile( + [in] string fileUri, [in] sequence< string > includedPaths, + [in] sequence< string > excludedPaths); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/AuthenticationFailedException.idl b/offapi/com/sun/star/configuration/backend/AuthenticationFailedException.idl new file mode 100644 index 0000000000..8f60035c6b --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/AuthenticationFailedException.idl @@ -0,0 +1,35 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module configuration { +module backend { + +/** + Exception thrown when authentication to the underlying backend fails + due to an unknown user-id or invalid credentials. + + @since OOo 1.1.2 + */ +published exception AuthenticationFailedException : BackendSetupException { +} ; + +} ; +} ; } ; } ; } ; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/Backend.idl b/offapi/com/sun/star/configuration/backend/Backend.idl new file mode 100644 index 0000000000..73fd05760b --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/Backend.idl @@ -0,0 +1,71 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module configuration { module backend { + + +/** + provides access to a configuration database composed of one or more + storage backends containing settings used by software modules. + +Configuration data is organized into layers which are selected + by components and entities. +
+ +Components are characterized by configuration schemas. + A component contains configuration data for a particular + application domain or software module. +
+Entities are organized hierarchically in organizations, + groups, roles and individual users. Each element of the associated + hierarchy corresponds to a layer that applies to an entity. +
+A layer contains data for multiple components + associated to a single entity. +
+ + @since OOo 1.1.2 +*/ +published service Backend +{ + + /** + provides access to configuration schemas. + */ + interface XSchemaSupplier ; + + + /** + provides access to the layer data. + */ + interface XBackend ; + + + /** + provides information about supported and special entities. + */ + [optional] interface XBackendEntities ; + +} ; + + +} ; } ; } ; } ; } ; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/BackendAccessException.idl b/offapi/com/sun/star/configuration/backend/BackendAccessException.idl new file mode 100644 index 0000000000..86a945ef53 --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/BackendAccessException.idl @@ -0,0 +1,36 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module configuration { +module backend { + +/** + Generic exception thrown when physical access to an underlying + backend fails. +
Wraps an exception that originates in the underlying access layer.
+ + @since OOo 1.1.2 + */ +published exception BackendAccessException : ::com::sun::star::lang::WrappedTargetException { +} ; + +} ; +} ; } ; } ; } ; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/BackendAdapter.idl b/offapi/com/sun/star/configuration/backend/BackendAdapter.idl new file mode 100644 index 0000000000..ed154498df --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/BackendAdapter.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 . + */ + + +module com { module sun { module star { module configuration { module backend { + + +/** + implements Backend retrieving data + from a SingleBackend. + + @since OOo 1.1.2 +*/ +published service BackendAdapter +{ + + /** provides access to configuration data. + */ + service Backend ; + + + /** + This interface, that is optional in Backend, is + mandatory in this service. + */ + interface XBackendEntities ; + + + /** + allows initializing the backend to use. + +If this interface is present, a SingleBackend + may be passed, that is used to access the data. + Also a com::sun::star::configuration::bootstrap::BootstrapContext + can be passed, that provides further settings for the backend. +
+ +If this interface is missing, the real backend to use is determined + from the com::sun::star::uno::XComponentContext. +
+ */ + [optional] interface com::sun::star::lang::XInitialization ; + +} ; + + +} ; } ; } ; } ; } ; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/BackendSetupException.idl b/offapi/com/sun/star/configuration/backend/BackendSetupException.idl new file mode 100644 index 0000000000..be88df4cbc --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/BackendSetupException.idl @@ -0,0 +1,44 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module configuration { +module backend { + +/** + Generic exception thrown when setting up a connection to an underlying + backend fails. +Indicates an error that originates in the underlying access layer.
+ + @since OOo 1.1.2 + */ +published exception BackendSetupException : ::com::sun::star::configuration::CannotLoadConfigurationException { + + /** The exception that is raised by the underlying backend implementation. +May be a numeric error code, a message `string` or `VOID`, + if the original exception is not represented as a + com::sun::star::uno::Exception. +
+ */ + any BackendException; +} ; + +} ; +} ; } ; } ; } ; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/CannotConnectException.idl b/offapi/com/sun/star/configuration/backend/CannotConnectException.idl new file mode 100644 index 0000000000..35f19f2070 --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/CannotConnectException.idl @@ -0,0 +1,44 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module configuration { +module backend { + +/** + Exception thrown when a connection to the underlying backend + cannot be established. + +Examples of this include +
Any future attempts to access data from the backend through this object + will also fail. +
+ + @since OOo 1.1.2 + */ +published exception ConnectionLostException : BackendAccessException { +} ; + +} ; +} ; } ; } ; } ; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/CopyImporter.idl b/offapi/com/sun/star/configuration/backend/CopyImporter.idl new file mode 100644 index 0000000000..6c66ae9284 --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/CopyImporter.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 . + */ + + +module com { module sun { module star { module configuration { module backend { + + +/** + imports data into a configuration layer by copying over existing data. + + + @since OOo 1.1.2 +*/ +published service CopyImporter +{ + + /** allows importing configuration data into a backend. + +In this implementation, the changes are copied over any + XLayer data that already exists in the Backend, + replacing it completely. +
+ */ + service Importer ; + + + /** allows initializing the implementation with settings that control + its behavior . + +This interface, which is optional in Importer + is mandatory in this service and supports the following arguments + which must be provided as + com::sun::star::beans::NamedValue: +
Overwrite
: `boolean`The source and destination repositories are selected by arguments + passed to + com::sun::star::task::XJob::execute(). + The names and meanings of such arguments depend on + the implementation. Each implementation must document such arguments. +
+ +Implementations may return a value from + com::sun::star::task::XJob::execute() + that indicates the status of job execution. The type and meaning of + such status indicators depend on the implementation. +
+If `VOID` or `TRUE` is returned, this indicates successful + execution. If an + com::sun::star::uno::Exception is returned, + it represents an error condition encountered during execution. +
+ +The following arguments to + com::sun::star::task::XJob::execute() + should be supported by implementations. Implementations must document + a failure to support any of these arguments: +
ImporterService
: `string`OverwriteExisting
: `boolean`TruncateExisting
: `boolean`Entity
: `string`Component
: `string`LayerFilter
: LayerFilterThis object is accessible as singleton within the context
. + + @since OOo 1.1.2 +*/ +service DefaultBackend +{ + + /** characterizes the functionality. + */ + service Backend ; + +} ; + + +} ; } ; } ; } ; } ; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/HierarchyBrowser.idl b/offapi/com/sun/star/configuration/backend/HierarchyBrowser.idl new file mode 100644 index 0000000000..203d5d6b30 --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/HierarchyBrowser.idl @@ -0,0 +1,66 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module configuration { module backend { + + +/** + allows scanning a configuration data repository for available components . + + @since OOo 1.1.2 +*/ +published service HierarchyBrowser +{ + + /** allows executing a scan of the repository + +The repository to browse is selected by arguments passed to + com::sun::star::task::XJob::execute(). + The names and meanings of such arguments depend on + the implementation. Each implementation must document such arguments. +
+ +The following argument to + com::sun::star::task::XJob::execute() + must be supported by all implementations: +
ExcludeComponents
: `string[]` or `string`The return value of + com::sun::star::task::XJob::execute() + is a list of components found. The format in which components are + returned may depend on the implementation. Each implementation + should support returning component identifiers that are compatible + with some implementation of Backend. +
+ */ + interface com::sun::star::task::XJob ; + +} ; + + +} ; } ; } ; } ; } ; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/Importer.idl b/offapi/com/sun/star/configuration/backend/Importer.idl new file mode 100644 index 0000000000..859fb20ccb --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/Importer.idl @@ -0,0 +1,63 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module configuration { module backend { + + +/** + imports data into a configuration layer. + +The configuration changes are read from a XLayer + and stored into a Backend. +
+ + @since OOo 1.1.2 +*/ +published service Importer +{ + + /** allows importing configuration data into a backend. + */ + interface XLayerImporter ; + + + /** allows initializing the implementation with settings that control + its behavior . + +Arguments are provided as + com::sun::star::beans::NamedValue. + Implementations specify which arguments they support. + +
Notify
: `boolean`Examples of this include +
The well known requests handled by this service include +
The continuation restrictions are as follows: Let C be the + subset of the provided continuations that are of type + com::sun::star::task::XInteractionApprove, + com::sun::star::task::XInteractionDisapprove, + com::sun::star::task::XInteractionRetry, or + com::sun::star::task::XInteractionAbort (or of a + derived type). All other continuations are ignored for these requests. + The request is only handled if the set C is any of the + following: +
The arguments must be a sequence of + com::sun::star::beans::PropertyValues. The + currently supported properties are: +
"Parent"
of type
+ com::sun::star::awt::XWindow denotes the
+ parent window for any GUI dialogs the interaction handler pops up;
+ it is strongly recommended that this property is supplied;"Context"
of type `string` is a
+ textual description of the current context (used, e.g., as a first
+ line of text in error boxes); this property is optional.A layer contains the configuration setting changes to be performed + on a default settings tree to obtain the values of those settings + for a given entity and component. +
+ + @see com::sun::star::configuration::backend::Schema + Service providing access to schema data for a configuration component. + + @see com::sun::star::configuration::backend::UpdatableLayer + Service providing write access to a configuration data layer. + + @since OOo 1.1.2 + */ +published service Layer +{ + + /** + provides read access to the contents of the configuration layer. + */ + interface XLayer ; + + + /** + provides read access to sublayers accessible through an + additional criterion (for instance the locale they contain data for). + */ + [optional] interface XCompositeLayer ; + + + /** + provides a way to detect changes to the layer. + +Timestamps should be considered as opaque markers and + can only safely be compared for equality and + only to timestamps generated by the same implementation. + When the content of the Layer changes, + the timestamp is guaranteed to change to a different value. +
+The timestamp format depends on the implementation. + If the timestamp is a representation of the time of the last change, + the recommended format is "YYYYMMDDhhmmssZ". +
+ */ + [optional] interface com::sun::star::util::XTimeStamped ; + + + /** + The URL of the layer data. + + @since OOo 2.0 + */ + [property,optional,readonly] string URL ; + +} ; + + +} ; } ; } ; } ; } ; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/LayerDescriber.idl b/offapi/com/sun/star/configuration/backend/LayerDescriber.idl new file mode 100644 index 0000000000..32f94f33b5 --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/LayerDescriber.idl @@ -0,0 +1,45 @@ +/* -*- 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 . + */ + + + + +module com { module sun { module star { module configuration { module backend { + + +/** + describe the contents of a layer to an XLayerHandler object. The contents of + the layer is contained in the sequence of PropertyInfo structures + @see PropertyInfo + +*/ +service LayerDescriber +{ + + + /** + describes a set of configuration data to an XLayerHandler Object. + */ + interface com::sun::star::configuration::backend::XLayerContentDescriber ; + + +} ; +} ; } ; } ; } ; } ; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/LayerFilter.idl b/offapi/com/sun/star/configuration/backend/LayerFilter.idl new file mode 100644 index 0000000000..19adec28f4 --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/LayerFilter.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 . + */ + + +module com { module sun { module star { module configuration { module backend { + + +/** + provides a filtered version of a configuration data Layer. + +A layer filter wraps a source XLayer object and + provides access to a filtered version of its data. + The data read from the filter usually is produced from the source data + by adding and removing elements or modifying values. +
+ + @see com::sun::star::configuration::backend::DataImporter + Service that supports applying a LayerFilter to imported data. + + @since OOo 2.0 + */ +published service LayerFilter +{ + + /** + provides read access to the filtered contents. + +Method XLayer::readData() will render a filtered version + of the data produced by the same method of the source object. +
+ */ + interface XLayer ; + + + /** + provides a means to set the source data for the filter. + + Call com::sun::star::lang::XInitialization::initialize()()
+ with a single argument of type com::sun::star::beans::NamedValue,
+ where com::sun::star::beans::NamedValue::Name is "Source"
+ and com::sun::star::beans::NamedValue::Value
+ is an object implementing XLayer.
+
The configuration layer data is read from a XLayer + and the changed layer is provided as XLayer again or + described to a XLayerHandler. +
+ + @see com::sun::star::configuration::backend::UpdatableLayer + Service describes a layer and accepts a changed layer... + + @since OOo 1.1.2 +*/ +published service LayerUpdateMerger +{ + + /** accepts events describing the changes. + */ + interface com::sun::star::configuration::backend::XUpdateHandler ; + + + /** allows initializing layer data source and target. + +Both source and target of the update can be provided by passing a + XUpdatableLayer object. Alternatively they can be + provided individually by providing a XLayer object as + data source and an XLayerHandler object to receive the + updated data. +
+Implementations can provide more arguments to fine tune the behavior. + Such arguments are provided as + com::sun::star::beans::NamedValue. + Implementations should support the following named arguments: +
Overwrite
: `boolean`Truncate
: `boolean`Data to be imported can be a single layer either from a full local + configuration database or from a particular OOR Update XML file. +
+Data is imported into the DefaultBackend. +
+ + @see com::sun::star::configuration::backend::LocalHierarchyBrowser + Service that can be used to locate available layer files or components. + + @see com::sun::star::configuration::backend::LocalSingleBackend + Service that can be used to access a local configuration database. + + @since OOo 1.1.2 +*/ +published service LocalDataImporter +{ + + /** provides for running an import job + + The implementation returns `VOID` from
+ com::sun::star::task::XJob::execute()
+ to indicates successful execution. If import is not executed,
+ because OverwriteExisting =
`TRUE` was specified,
+ a com::sun::star::lang::IllegalAccessException
+ is returned.
+
If `VOID` or `TRUE` is returned, this indicates successful + execution. If an + com::sun::star::uno::Exception is returned, + it represents an error condition encountered during execution. +
+ +The standard arguments to + com::sun::star::task::XJob::execute() + are all supported by implementations. Additionally the following + argument is required to select the data source: +
LayerDataUrl
: `string` If no Component
is provided, this must be the
+ location of an OOR Update XML file, which will be imported
+ directly.
+
If a Component
is provided, the
+ LayerDataUrl
is treated as Entity
+ (i.e. Layer directory base URL) for a local
+ configuration database and the appropriate component
+ from that repository is imported.
+
Implementations may support additional parameters to select + a destination Backend, that is not the + DefaultBackend. +
+ */ + service DataImporter ; + +} ; + + +} ; } ; } ; } ; } ; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/LocalHierarchyBrowser.idl b/offapi/com/sun/star/configuration/backend/LocalHierarchyBrowser.idl new file mode 100644 index 0000000000..e4cf1eea0f --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/LocalHierarchyBrowser.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 . + */ + + +module com { module sun { module star { module configuration { module backend { + + +/** + is a HierarchyBrowser, that browses a configuration database + stored in the local file system. + + @see com::sun::star::configuration::backend::LocalSingleBackend + + @since OOo 1.1.2 +*/ +published service LocalHierarchyBrowser +{ + + /** allows browsing a configuration hierarchy for components. + +Either a schema repository or a layer directory can be browsed. + Components can be retrieved either as component names or as + file URLs. +
+ + The following additional arguments are supported for
+ com::sun::star::task::XJob::execute():
+
+
SchemaDataUrl
: `string`LayerDataUrl
should not be specified.
+ LayerDataUrl
: `string`SchemaDataUrl
should not be specified.
+ FetchComponentNames
: `boolean`Typically this member should contain an exception characterizing + the error in detail. +
+For example the following exceptions may be used: +
If no more detail information is available, this may be left `VOID`. +
+ */ + any ErrorDetails; +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/MergeImporter.idl b/offapi/com/sun/star/configuration/backend/MergeImporter.idl new file mode 100644 index 0000000000..72d4422c7d --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/MergeImporter.idl @@ -0,0 +1,54 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module configuration { module backend { + + +/** + imports data into a configuration layer by merging with existing data. + +No named arguments to + com::sun::star::lang::XInitialization::initialize() + are supported. +
+ + @since OOo 1.1.2 +*/ +published service MergeImporter +{ + + /** allows importing configuration data into a backend. + +In this implementation, the changes are merged with any + XLayer data that already exists in the Backend, + replacing it completely. +
+ + @see LayerUpdateMerger + Service that can be used to perform merging of changes into a layer. + */ + service Importer ; + +} ; + + +} ; } ; } ; } ; } ; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/MergeRecoveryRequest.idl b/offapi/com/sun/star/configuration/backend/MergeRecoveryRequest.idl new file mode 100644 index 0000000000..ebe66522e0 --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/MergeRecoveryRequest.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 . + */ + + +module com { module sun { module star { module configuration { module backend { + + +/** is passed to an InteractionHandler when merging fails due to + invalid layer data or access problems. + + @since OOo 2.0 + */ +exception MergeRecoveryRequest: ::com::sun::star::uno::Exception +{ + /** + data that provides more detailed information about the + reason and location of the error. + +Typically this member should contain an exception characterizing + the error in detail. +
+For example the following exceptions may be used: +
If no more detail information is available, this may be left `VOID`. +
+ */ + any ErrorDetails; + + /** + Identifier of the layer object containing the invalid data. + */ + string ErrorLayerId; + + /** + specifies whether the requester wants to remove or skip the invalid layer. + + If `TRUE` the requester wants to remove the underlying data of
+ the layer.
+ If `FALSE` the request is to skip the underlying data this time,
+ but without removing it.
+
If present a type + com::sun::star::configuration::bootstrap::BootstrapContext + must be passed, that provides further backend initialization settings. +
+ + + */ + + [optional] interface com::sun::star::lang::XInitialization ; + +} ; + + +} ; } ; } ; } ; } ; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/NodeAttribute.idl b/offapi/com/sun/star/configuration/backend/NodeAttribute.idl new file mode 100644 index 0000000000..70ab66e65a --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/NodeAttribute.idl @@ -0,0 +1,81 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module configuration { module backend { + + +/** These values are used to specify the behavior of a node or property + in a layer. + +The values were chosen so they can be combined with values from + SchemaAttribute +
+ + @see com::sun::star::configuration::backend::SchemaAttribute + During merging the values may be combined with static attributes + from the schema. + + @since OOo 1.1.2 + */ +published constants NodeAttribute +{ + + /** indicates that a node or property may not be changed or overridden + in subsequent layers + */ + const short FINALIZED = 256; + + + /** indicates that a set item may not be removed or replaced + in subsequent layers. + */ + const short MANDATORY = 512; + + + /** indicates that a node or property may not be changed + in this or subsequent layer. + */ + const short READONLY = 1024; + + + /** indicates that contents shall be fused. + +Used in XLayerHandler::addOrReplaceNode(), + XLayerHandler::addOrReplaceNodeFromTemplate(), + XUpdateHandler::addOrReplaceNode(), and + XUpdateHandler::addOrReplaceNodeFromTemplate().
+ + @since OOo 2.0.3 + */ + const short FUSE = 2048; + + + /** can be used to mask the node attributes from merged attributes + */ + const short MASK = 32512; // 0xFF00, changed to 0x7F00 because only 3 bits + // are masked and fixing a bug in idlc + +}; + + +}; }; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/OfflineBackend.idl b/offapi/com/sun/star/configuration/backend/OfflineBackend.idl new file mode 100644 index 0000000000..239273c39e --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/OfflineBackend.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 . + */ + + +module com { module sun { module star { module configuration { module backend { + + +/** + implements BackendAdapter that maintains a cache so it + can operate even if the SingleBackend holding the data + is inaccessible. + + @see com::sun::star::configuration::backend::OnlineBackend + + @since OOo 1.1.2 +*/ +published service OfflineBackend +{ + + /** provides access to configuration data from a SingleBackend. + +If no backend is provided during initialization or if the context
+ contains an Offline
flag that is `TRUE`, then off-line mode
+ is activated. This may fail, if the off-line cache has not been filled
+ during a previous execution.
+
Less entities may be available from XBackendEntities, + when operating in off-line mode than when operating with an on-line + SingleBackend. +
+If off-line mode is not invoked, the implementation behaves + like any other BackendAdapter. +
+ + */ + service BackendAdapter ; + +} ; + + +} ; } ; } ; } ; } ; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/OnlineBackend.idl b/offapi/com/sun/star/configuration/backend/OnlineBackend.idl new file mode 100644 index 0000000000..cbcd295281 --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/OnlineBackend.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 . + */ + + +module com { module sun { module star { module configuration { module backend { + + +/** + implements a BackendAdapter that requires that + the SingleBackend holding the data + is continuously accessible. + + @see com::sun::star::configuration::backend::OfflineBackend + + @since OOo 1.1.2 +*/ +published service OnlineBackend +{ + + /** provides access to configuration data from a SingleBackend. + + */ + service BackendAdapter ; + +} ; + + +} ; } ; } ; } ; } ; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/PlatformBackend.idl b/offapi/com/sun/star/configuration/backend/PlatformBackend.idl new file mode 100644 index 0000000000..1a1c9ef759 --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/PlatformBackend.idl @@ -0,0 +1,41 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module configuration { module backend { + + +/** + implements SingleLayerStratum that + provides access to a single layer of configuration data from external data store +*/ +service PlatformBackend +{ + + /** + provides access to configuration data. + */ + service SingleLayerStratum; + +} ; + + +} ; } ; } ; } ; } ; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/PropertyInfo.idl b/offapi/com/sun/star/configuration/backend/PropertyInfo.idl new file mode 100644 index 0000000000..c135c09c7d --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/PropertyInfo.idl @@ -0,0 +1,54 @@ +/* -*- 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 . + */ + + + +module com { module sun { module star { module configuration { module backend { + + +/** This structure contains all the information related to a property + @see XLayerContentDescriber +*/ +struct PropertyInfo +{ + /** The full name of the Property + * for eg. org.openoffice.Inet/Settings/ooInetHTTPProxyName + */ + string Name; + + /** The type of the Property + */ + string Type; + + /** The value of the property + */ + any Value; + + /** Is the property protected, if true the property can not + * be over written in later layer. + */ + boolean Protected; + + +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/Schema.idl b/offapi/com/sun/star/configuration/backend/Schema.idl new file mode 100644 index 0000000000..1dafa166cf --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/Schema.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 . + */ + + +module com { module sun { module star { module configuration { module backend { + + +/** + provides read only access to a configuration component schema. + +A component is a set of hierarchically organized and semantically + related configuration settings, e.g StarWriter settings. +
+A component schema contains two separate sections, one which + describes the templates to be used in the dynamic containers (sets) of + the component and one which describes the component's data structure. +
+ + @see com::sun::star::configuration::backend::Layer + Service providing access to individual + configuration data for an entity. + + @since OOo 1.1.2 + */ +published service Schema +{ + + /** + handles access to the schema data for a component. +The data can be read either in its entirety (templates and component + description) or each of its parts can be accessed. +
+ */ + interface XSchema ; + + + /** + The URL of the layer data. + + @since OOo 2.0 + */ + [property,optional,readonly] string URL ; + +} ; + + +} ; } ; } ; } ; } ; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/SchemaAttribute.idl b/offapi/com/sun/star/configuration/backend/SchemaAttribute.idl new file mode 100644 index 0000000000..334d61930e --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/SchemaAttribute.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 . + */ + + +module com { module sun { module star { module configuration { module backend { + + +/** These values are used to specify the behavior of a node or property + in the schema. + + @see com::sun::star::configuration::backend::NodeAttribute + During merging the values may be combined with node attributes. + + @since OOo 1.1.2 + */ +published constants SchemaAttribute +{ + + /** indicates that a property value can't be null. + */ + const short REQUIRED = 1; + + + /** indicates that the content of the node or the value of the property + may depend on the locale. + */ + const short LOCALIZED = 2; + + + /** indicates that properties can be added to the node at runtime + */ + const short EXTENSIBLE = 4; + + + /** can be used to mask the schema attributes from merged attributes + */ + const short MASK = 255; // 0x00FF + +}; + + +}; }; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/SchemaSupplier.idl b/offapi/com/sun/star/configuration/backend/SchemaSupplier.idl new file mode 100644 index 0000000000..e6992d21e7 --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/SchemaSupplier.idl @@ -0,0 +1,41 @@ +/* -*- 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 . + */ + + + +module com { module sun { module star { module configuration { module backend { + + +/** + provides access to configuration schemas +*/ +service SchemaSupplier +{ + /** + provides access to configuration schemas. + */ + interface XSchemaSupplier ; + + +} ; + + +} ; } ; } ; } ; } ; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/SingleBackend.idl b/offapi/com/sun/star/configuration/backend/SingleBackend.idl new file mode 100644 index 0000000000..06947c3062 --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/SingleBackend.idl @@ -0,0 +1,72 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module configuration { module backend { + + +/** + is a configuration storage backends containing a complete + configuration database, including user data, default or + policy layers and schemata. + +Configuration data is organized into layers which are selected + by components and entities. +
+ +Components are characterized by configuration schemas. + A component contains configuration data for a particular + application domain or software module. +
+Entities are organized hierarchically in organizations, + groups, roles and individual users. Each element of the associated + hierarchy corresponds to a layer that applies to an entity. +
+Layers contains data for multiple components + associated to a single entity. +
+ + @since OOo 1.1.2 +*/ +published service SingleBackend +{ + + /** + provides access to configuration schemas. + */ + interface XSchemaSupplier ; + + + /** + provides access to the layer data. + */ + interface XMultiLayerStratum ; + + + /** + provides information about supported and special entities. + */ + interface XBackendEntities ; + +} ; + + +} ; } ; } ; } ; } ; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/SingleBackendAdapter.idl b/offapi/com/sun/star/configuration/backend/SingleBackendAdapter.idl new file mode 100644 index 0000000000..bc0df52937 --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/SingleBackendAdapter.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 . + */ + + +module com { module sun { module star { module configuration { module backend { + + +/** + implements a simple BackendAdapter that can be used for + normal configuration operation. + +
All real functionality is provided by the wrapped SingleBackend. + + @see com::sun::star::configuration::backend::OnlineBackend + + @since OOo 1.1.2 +*/ +published service SingleBackendAdapter +{ + + /** provides access to configuration data from a SingleBackend. + */ + service BackendAdapter ; + +} ; + + +} ; } ; } ; } ; } ; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/SingleLayerStratum.idl b/offapi/com/sun/star/configuration/backend/SingleLayerStratum.idl new file mode 100644 index 0000000000..acd6835480 --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/SingleLayerStratum.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 . + */ + + + +module com { module sun { module star { module configuration { module backend { + + +/** + Provides access to a single layer of configuration data +*/ +service SingleLayerStratum +{ + /** + provides access to single layer of configuration data. + */ + interface XSingleLayerStratum ; + + + + /** + provides information about supported and special entities. + */ + [optional] interface XBackendEntities ; + + +} ; + + +} ; } ; } ; } ; } ; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/StratumCreationException.idl b/offapi/com/sun/star/configuration/backend/StratumCreationException.idl new file mode 100644 index 0000000000..1836a0de7f --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/StratumCreationException.idl @@ -0,0 +1,45 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module configuration { module backend { + + +/** is passed to an InteractionHandler when creating a stratum backend fails. + + @since OOo 2.0 + */ +exception StratumCreationException : BackendSetupException +{ + /** + Identifier of the stratum service that could not be created. + */ + string StratumService; + + /** + Initialization data passed to the stratum instance. + */ + string StratumData; + +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/SystemIntegration.idl b/offapi/com/sun/star/configuration/backend/SystemIntegration.idl new file mode 100644 index 0000000000..5987b7b5b1 --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/SystemIntegration.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 . + */ + +module com { module sun { module star { module configuration { module backend { + + +/** + provides access to a configuration data composed of one or more + platform backends containing settings used by software modules. + + */ +service SystemIntegration +{ + /** + provides access to the layer data. + */ + interface XBackend ; + + /** + allows initialization of backend data sources + +
no parameters need to be passed as backends are initialized + using the service registration database "services.rdb". +
+ + */ + + interface com::sun::star::lang::XInitialization ; +} ; + + +} ; } ; } ; } ; } ; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/TemplateIdentifier.idl b/offapi/com/sun/star/configuration/backend/TemplateIdentifier.idl new file mode 100644 index 0000000000..c3a8e5dc54 --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/TemplateIdentifier.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 . + */ + + + +module com { module sun { module star { module configuration { module backend { + + +/** holds the data needed to identify a template. + + @since OOo 1.1.2 + + */ +published struct TemplateIdentifier +{ + /** specifies the name of the template. + +The name is unique within a component.
+ */ + string Name; + + + /** specifies the component where the template originates. + + */ + string Component; + + +}; + + +}; }; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/UpdatableLayer.idl b/offapi/com/sun/star/configuration/backend/UpdatableLayer.idl new file mode 100644 index 0000000000..39b4206272 --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/UpdatableLayer.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 . + */ + + +module com { module sun { module star { module configuration { module backend { + + +/** + provides read/write access to a configuration data layer. + +A layer contains the configuration setting changes to be performed + on a default layer (or schema) to obtain the values of those settings + for a given entity and component. +
+An updatable layer can be read or replaced with another layer. +
+ + @since OOo 1.1.2 + */ +published service UpdatableLayer +{ + + /** + handles read access to the contents of the layer. + +If the implementation supports + com::sun::star::util::XTimeStamped, + then after executing XUpdatableLayer::replaceWith() + the timestamp will be the one for the replaced contents and + if reading after updates is supported the next read will reproduce the + replaced data. +
+ */ + service Layer ; + + + /** + provides write access to the contents of the layer. + +Depending of the actual type (simple, i.e pure XLayer or + composite, i.e XCompositeLayer) of the current layer and + the provided replacement layer, the operation performed + by XUpdatableLayer::replaceWith(), will vary. +
+For the different current/replacement layer combinations, we have: +
Data can be retrieved on behalf of one or more entities.
+ +There is an implied owner entity associated to the object + when it is created. This entity should be used for normal data access. + For administrative operations data of other entities can be accessed. +
+ + @see com::sun::star::configuration::backend::XBackendEntities + @see com::sun::star::configuration::backend::XSchemaSupplier + + @since OOo 1.1.2 +*/ +published interface XBackend : ::com::sun::star::uno::XInterface +{ + + /** + retrieves the layers associated to the owner + entity for a component. + + @param aComponent + component whose data will be accessed + + @returns + a list of objects allowing access to the + component data for each layer associated to + the current entity + + @throws com::sun::star::lang::IllegalArgumentException + if the component identifier is invalid + + @throws com::sun::star::configuration::backend::BackendAccessException + if an error occurs while accessing the data. + + @see com::sun::star::configuration::backend::XBackendEntities::getOwnerEntity() + */ + sequenceThe owner entity is the default entity for the backend. + For normal configuration data access the owner entity + should always be used. +
+ + @see com::sun::star::configuration::backend::XBackend::listOwnLayers() + @see com::sun::star::configuration::backend::XBackend::getOwnUpdateHandler() + */ + string getOwnerEntity() ; + + + /** + provides the entity id of an entity for general administrative access. + +The admin entity is an entity that should be used to + read and manage configuration data that applies to all entities + within the backend. +
+ + @returns + an entity identifier for the admin entity or + an empty string, if there is no entity that can be used for + general administrative access. + + */ + string getAdminEntity() ; + + + /** + determines, if a given entity id exists in this backend. + + @param aEntity + The name of an entity. + + @throws com::sun::star::configuration::backend::BackendAccessException + if an error occurs while accessing the backend. + + @returns + `TRUE`, if aEntity is a valid, existing entity for this backend, + `FALSE` otherwise. + */ + boolean supportsEntity([in] string aEntity) + raises( BackendAccessException ); + + + /** + determines, if two given entity ids denote the same entity. + + @param aEntity + The name of an entity. + + @param aOtherEntity + The name of another entity. + + @returns + `TRUE`, if aEntity and aOtherEntity denote the same entity + within this backend, `FALSE` otherwise. + + @throws com::sun::star::configuration::backend::BackendAccessException + if an error occurs while accessing the backend. + + @throws com::sun::star::lang::IllegalArgumentException + if either entity does not exist. + */ + boolean isEqualEntity([in] string aEntity, [in] string aOtherEntity) + raises( BackendAccessException, com::sun::star::lang::IllegalArgumentException) ; + +} ; + + +} ; } ; } ; } ; } ; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/XCompositeLayer.idl b/offapi/com/sun/star/configuration/backend/XCompositeLayer.idl new file mode 100644 index 0000000000..3c233ec8e3 --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/XCompositeLayer.idl @@ -0,0 +1,82 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module configuration { module backend { + + +/** + provides read access to layers that contain sublayers accessible through an + additional criterion (for instance the locale they contain data for). + + @since OOo 1.1.2 + */ +published interface XCompositeLayer : XLayer +{ + + /** + Returns a list of the criteria that can be used to access the + sublayers. + + @return + a list supported sublayer identifiers + + @throws com::sun::star::lang::WrappedTargetException + if an error occurs in the retrieval of the data. + */ + sequenceMust be one the identifiers returned by + XCompositeLayer::listSubLayerIds() +
+ + @throws com::sun::star::lang::NullPointerException + if a `NULL` handler is passed. + @throws com::sun::star::lang::IllegalArgumentException + if the identifier is invalid. + @throws com::sun::star::lang::WrappedTargetException + if an error occurs in the access to or processing of the data. + @throws com::sun::star::configuration::backend::MalformedDataException + if the data read from the layer is rejected as invalid by the + XLayerHandler. + */ + void readSubLayerData([in] XLayerHandler aHandler, [in] string aSubLayerId) + raises (com::sun::star::lang::NullPointerException, + com::sun::star::lang::IllegalArgumentException, + com::sun::star::lang::WrappedTargetException, + MalformedDataException) ; + +} ; + + +} ; } ; } ; } ; } ; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/XLayer.idl b/offapi/com/sun/star/configuration/backend/XLayer.idl new file mode 100644 index 0000000000..7785987693 --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/XLayer.idl @@ -0,0 +1,57 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module configuration { module backend { + + +/** + provides read access to the data contained in a layer. + + @since OOo 1.1.2 +*/ +published interface XLayer : ::com::sun::star::uno::XInterface +{ + + /** + describes the contents of the layer to an XLayerHandler. + + @param aHandler + Handler object that will receive calls + describing the contents of the layer + + @throws com::sun::star::lang::NullPointerException + if a `NULL` handler is passed. + @throws com::sun::star::lang::WrappedTargetException + if an error occurs in the access to or processing of the data. + @throws com::sun::star::configuration::backend::MalformedDataException + if the data read from the layer is rejected as invalid by the + XLayerHandler. + */ + void readData([in] XLayerHandler aHandler) + raises (com::sun::star::lang::NullPointerException, + com::sun::star::lang::WrappedTargetException, + MalformedDataException) ; + +} ; + + +} ; } ; } ; } ; } ; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/XLayerContentDescriber.idl b/offapi/com/sun/star/configuration/backend/XLayerContentDescriber.idl new file mode 100644 index 0000000000..5bd5bf53d4 --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/XLayerContentDescriber.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 . + */ + + +module com { module sun { module star { module configuration { module backend { + + +/** + describe the contents of a layer to an XLayerHandler object. The contents of + the layer is contained in the sequence of PropertyInfo structures + @see PropertyInfo + +*/ +interface XLayerContentDescriber : ::com::sun::star::uno::XInterface +{ + + /** + describes the contents of the layer to an XLayerHandler. + + @param aHandler + Handler object that will receive calls + describing the contents of the layer + + @param aPropertyInfos + sequence of PropertyInfo structs contained + all required property information + + @throws com::sun::star::lang::NullPointerException + if a `NULL` handler is passed. + @throws com::sun::star::configuration::backend::MalformedDataException + if the data read from the layer is rejected as invalid by the + XLayerHandler. + */ + void describeLayer([in] XLayerHandler aHandler, + [in] sequenceSubsequent calls describe the contents of the layer + until a matching call to XLayerHandler::endLayer() + is encountered. +
+ + @throws com::sun::star::configuration::backend::MalformedDataException + if there is an unfinished layer in progress + + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + */ + void startLayer( ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + /** receives notification that a layer description is complete. + +Must match a previous call to XLayerHandler::startLayer(). +
+ + @throws com::sun::star::configuration::backend::MalformedDataException +Not every implementation can detect each condition
+ + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + */ + void endLayer( ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + /** receives notification that a description of a node override is started. + +Subsequent calls describe overrides to properties and members + or items of the node until a matching call to + XLayerHandler::endNode()is encountered. +
+ + @param aName + specifies the name of the node. + + @param aAttributes + specifies attribute values to be applied to the node. + +The value is a combination of + NodeAttribute flags. +
+The attributes are combined cumulatively with those + set on lower layers. +
+ + @param bClear + if `TRUE`, specifies that the node should be cleared to an empty + state by removing all non-mandatory children from lower layers prior + to applying the overrides. + + @throws com::sun::star::configuration::backend::MalformedDataException +Not every implementation can detect each condition
+ + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + + @see com::sun::star::configuration::backend::NodeAttribute + */ + void overrideNode( [in] string aName, + [in] short aAttributes, + [in] boolean bClear ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + /** receives notification that a new item is started. + +The current node must be a set and + a preexisting item (if any) must be removable. +
+The new item will be created from the default template + of the set. +
+Subsequent calls describe the difference from the template + of properties and members or items of the node until + a matching call to XLayerHandler::endNode() + is encountered. +
+ + @param aName + specifies the name of the item. + + @param aAttributes + specifies attribute values to be applied to the new node. + +The value is a combination of + NodeAttribute flags. Note that + NodeAttribute::FUSE has an impact on the + semantics of this method. +
+ + @throws com::sun::star::configuration::backend::MalformedDataException +Not every implementation can detect each condition
+ + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + + @see com::sun::star::configuration::backend::NodeAttribute + */ + void addOrReplaceNode( [in] string aName, + [in] short aAttributes ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + /** receives notification that a new item based on a particular template + is started. + +The current node must be a set and + a preexisting item (if any) must be removable. +
+Subsequent calls describe the difference from the template + of properties and members or items of the node until + a matching call to XLayerHandler::endNode() + is encountered. +
+ + @param aName + specifies the name of the item. + + @param aTemplate + specifies the template to use for the new node + + @param aAttributes + specifies attribute values to be applied to the new node. + +The value is a combination of + NodeAttribute flags. Note that + NodeAttribute::FUSE has an impact on the + semantics of this method. +
+ + @throws com::sun::star::configuration::backend::MalformedDataException +Not every implementation can detect each condition
+ + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + + @see com::sun::star::configuration::backend::NodeAttribute + */ + void addOrReplaceNodeFromTemplate( [in] string aName, + [in] TemplateIdentifier aTemplate, + [in] short aAttributes ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + /** receives notification that a node description is complete. + +Must match the last open call to + XLayerHandler::overrideNode(), + XLayerHandler::addOrReplaceNode() or + XLayerHandler::addOrReplaceNodeFromTemplate(). +
+ + @throws com::sun::star::configuration::backend::MalformedDataException +Not every implementation can detect each condition
+ + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + */ + void endNode( ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + /** receives notification that a node is dropped from a set. + +The current node must be a set and + the item must be removable. +
+ + @param aName + specifies the name of the node. + + @throws com::sun::star::configuration::backend::MalformedDataException +Not every implementation can detect each condition
+ + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + */ + void dropNode( [in] string aName ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + /** receives notification that an existing property is modified. + +Subsequent calls describe new value(s) for the property until a + matching call to XLayerHandler::endProperty() + is encountered. +
+ + @param aName + specifies the name of the property. + + @param aAttributes + specifies the new attributes of the property. + +The value is a combination of + NodeAttribute flags. +
+The attributes are combined cumulatively with those + set on lower layers. +
+ + @param aType + specifies the type of the property. + +This must be the same type as is already defined in the schema + or lower layers, unless the previous type was unspecified + (as indicated by + com::sun::star::uno::TypeClass::ANY.) +
+A `VOID` type indicates that the type is unspecified + in this layer. + In this case any subsequent value may be of a generic type + (e.g. `string` or - for list values - + `string[]`.) Such values may be + converted to the type defined in the schema by + the implementation. +
+ + @param bClear + if `TRUE`, specifies that the property should be cleared to an empty + state by discarding all values from lower layers prior + to applying the overrides. + + @throws com::sun::star::configuration::backend::MalformedDataException +Not every implementation can detect each condition
+ + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + + @see com::sun::star::configuration::backend::NodeAttribute + */ + void overrideProperty( [in] string aName, + [in] short aAttributes, + [in] type aType, + [in] boolean bClear ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + + /** receives notification that the value of the current property + is overridden. + + @param aValue + specifies the new value of the property. + +The value must match the type of the current property. + If the property does not have the + SchemaAttribute::REQUIRED flag set, + the value can be `VOID`. +
+If the current property is localized, this value applies + to the default locale. +
+ + @throws com::sun::star::configuration::backend::MalformedDataException +Not every implementation can detect each condition
+ + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + + @see com::sun::star::configuration::backend::NodeAttribute + */ + void setPropertyValue( [in] any aValue ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + + /** receives notification that the value of the current localized property + is overridden for a specific locale . + + @param aValue + specifies the new value of the property. + +The value must match the type of the current property. + If the property does not have the + SchemaAttribute::REQUIRED flag set, + the value can be `VOID`. +
+ + @param aLocale + specifies the locale this value should apply to. + + @throws com::sun::star::configuration::backend::MalformedDataException +Not every implementation can detect each condition
+ + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + + @see com::sun::star::configuration::backend::NodeAttribute + */ + void setPropertyValueForLocale([in] any aValue, + [in] string aLocale ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + + /** receives notification that a property description is complete. + +Must match an open call to + XLayerHandler::overrideProperty(), +
+ + @throws com::sun::star::configuration::backend::MalformedDataException +Not every implementation can detect each condition
+ + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + */ + void endProperty( ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + /** receives notification that a property having a `VOID` value is added + to the current node. + +The current node must be extensible. +
+ + @param aName + specifies the name of the new property. + + @param aAttributes + specifies the attributes of the new property. + +The value is a combination of + NodeAttribute flags and may also contain the + SchemaAttribute::REQUIRED flag. +
+NodeAttribute::MANDATORY need not be set, + as dynamically added properties always are mandatory + in subsequent layers. +
+ + @param aType + specifies the type of the new property. + + @throws com::sun::star::configuration::backend::MalformedDataException +Not every implementation can detect each condition
+ + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + + @see com::sun::star::configuration::backend::SchemaAttribute + */ + void addProperty( [in] string aName, + [in] short aAttributes, + [in] type aType ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + + /** receives notification that a property having a non-`VOID` value + is added to the current node. + +The current node must be extensible. +
+ + @param aName + specifies the name of the new property. + + @param aAttributes + specifies the attributes of the new property. + +The value is a combination of + NodeAttribute flags and may also contain the + SchemaAttribute::REQUIRED flag. +
+ +NodeAttribute::MANDATORY need not be set, + as dynamic properties always are mandatory + in subsequent layers. +
+ + @param aValue + specifies the value of the new property. + +The value also determines the type. + Therefore the value must not be `VOID`. +
+ + @throws com::sun::star::configuration::backend::MalformedDataException +Not every implementation can detect each condition
+ + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + + @see com::sun::star::configuration::backend::SchemaAttribute + */ + void addPropertyWithValue( [in] string aName, + [in] short aAttributes, + [in] any aValue ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + +}; + + +}; }; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/XLayerImporter.idl b/offapi/com/sun/star/configuration/backend/XLayerImporter.idl new file mode 100644 index 0000000000..f35c0307e3 --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/XLayerImporter.idl @@ -0,0 +1,120 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module configuration { module backend { + + +/** allows importing a layer into a Backend + + @since OOo 1.1.2 +*/ +published interface XLayerImporter : ::com::sun::star::uno::XInterface +{ + + /** gets the target backend for importing. + + @returns + the Backend into which layers are + imported by XLayerImporter::importLayer(). + + */ + XBackend getTargetBackend(); + + + /** sets the target backend for importing. + + @param aBackend + a Backend into which layers should be + imported by XLayerImporter::importLayer(). + + @throws com::sun::star::lang::NullPointerException + if the backend passed is `NULL`. + */ + void setTargetBackend([in] XBackend aBackend) + raises (com::sun::star::lang::NullPointerException) ; + + + /** Imports the layer given into the backend. + +This method imports data for the current entity of the backend.
+ + @param aLayer + a layer whose data will be imported into the backend + + @throws com::sun::star::lang::NullPointerException + if the layer passed is `NULL` or no backend is available. + + @throws com::sun::star::configuration::backend::MalformedDataException + if the layer passed is invalid + + @throws com::sun::star::lang::IllegalArgumentException + if the layer passed is for a component + that doesn't exist in the backend + + @throws com::sun::star::lang::WrappedTargetException + if an error occurs in the backend or source layer. + + @see com::sun::star::configuration::backend::XBackend::getOwnUpdateHandler() + */ + void importLayer([in] XLayer aLayer) + raises (MalformedDataException, + com::sun::star::lang::IllegalArgumentException, + com::sun::star::lang::NullPointerException, + com::sun::star::lang::WrappedTargetException) ; + + + /** Imports the layer given into the backend for a given entity. + +This method imports data for the current entity of the backend.
+ + @param aLayer + a layer whose data will be imported into the backend + + @param aEntity + an entity into whose data the layer will be imported + + @throws com::sun::star::lang::NullPointerException + if the layer passed is `NULL` or no backend is available. + + @throws com::sun::star::configuration::backend::MalformedDataException + if the layer passed is invalid + + @throws com::sun::star::lang::IllegalArgumentException + if the layer passed is for a component + that doesn't exist in the backend + or if the entity doesn't exist in the backend. + + @throws com::sun::star::lang::WrappedTargetException + if an error occurs in the backend or source layer. + + @see com::sun::star::configuration::backend::XBackend::getUpdateHandler() + */ + void importLayerForEntity([in] XLayer aLayer, [in] string aEntity) + raises (MalformedDataException, + com::sun::star::lang::IllegalArgumentException, + com::sun::star::lang::NullPointerException, + com::sun::star::lang::WrappedTargetException) ; + +} ; + + +} ; } ; } ; } ; } ; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/XMultiLayerStratum.idl b/offapi/com/sun/star/configuration/backend/XMultiLayerStratum.idl new file mode 100644 index 0000000000..fd692c8ac7 --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/XMultiLayerStratum.idl @@ -0,0 +1,303 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module configuration { module backend { + + +/** + Handles access to a stratum consisting of multiple layers + in a single configuration data repository + +The interface provides access to data for multiple entities and + timestamp-checking capabilities for efficient caching. +
+ + @see com::sun::star::configuration::backend::XBackendEntities + @see com::sun::star::util::XTimeStamped + @see com::sun::star::configuration::backend::XSchemaSupplier + @see com::sun::star::configuration::backend::XSingleLayerStratum + + @since OOo 1.1.2 +*/ +published interface XMultiLayerStratum : ::com::sun::star::uno::XInterface +{ + + /** + identifies the layers within this stratum which should be read and + merged to determine data of a component for an entity + + + @param aComponent + The name of the component to access. + + @param aEntity + The name of an entity on behalf of which data will be accessed. + + @return + a list of layer identifiers that can be used to + retrieve Layer objects. +The list is ordered by priority. Typically + the most general layers (global defaults, + entire organization) are first, more specific layers + (associated to specific groups or roles) are next + and the entity's own data is last. +
+ + @throws com::sun::star::lang::IllegalArgumentException + if the component identifier is invalid or + if the entity doesn't exist. + + @throws com::sun::star::configuration::backend::BackendAccessException + if an error occurs while accessing the data. + + @see com::sun::star::configuration::backend::XMultiLayerStratum::getLayer() + @see com::sun::star::configuration::backend::XMultiLayerStratum::getLayers() + @see com::sun::star::configuration::backend::XMultiLayerStratum::getMultipleLayers() + @see com::sun::star::configuration::backend::XBackendEntities + */ + sequenceThe layer id returned is one of the layer ids obtained from + XMultiLayerStratum::listLayerIds() for the same + component and entity. +
+ + @param aComponent + The name of the component to access. + + @param aEntity + The name of an entity on behalf of which data will be accessed. + + @returns + a layer identifier that can be used to obtain + an UpdatableLayer object. + + @throws com::sun::star::lang::IllegalArgumentException + if the component identifier is invalid or + if the entity doesn't exist. + + @throws com::sun::star::lang::NoSupportException + if the implementation does not support updates. + + @throws com::sun::star::configuration::backend::BackendAccessException + if an error occurs while accessing the data. + + @see com::sun::star::configuration::backend::XMultiLayerStratum::getUpdatableLayer() + @see com::sun::star::configuration::backend::XBackendEntities + */ + string getUpdateLayerId([in] string aComponent, + [in] string aEntity) + raises (BackendAccessException, + com::sun::star::lang::NoSupportException, + com::sun::star::lang::IllegalArgumentException) ; + + + /** + retrieves a layer associated to a layer id, if newer than indicated. + +A timestamp can be provided, which is used to indicate + a point in time. The layer should be returned only if is modified + since that time. +
+ + @param aLayerId + identifier of the layers to be accessed. +Layer ids can be obtained from + XMultiLayerStratum::listLayerIds() or + XMultiLayerStratum::getUpdateLayerId(). +
+ + @param aTimestamp + a timestamp for the layer. + +An empty timestamp indicates, that the layer should be + retrieved irrespective of its modification time. +
+The format and meaning of a timestamp depends on + the implementation. Timestamps can be obtained using + com::sun::star::util::XTimeStamped::getTimestamp(). +
+ + @returns + a Layer object providing access to the layer data, + `NULL` if the layer is newer than indicated by the timestamp. + + @throws com::sun::star::lang::IllegalArgumentException + if the layer id is invalid or + if the timestamp is invalid + + @throws com::sun::star::configuration::backend::BackendAccessException + if an error occurs while accessing the data. + + @see com::sun::star::util::XTimeStamped + */ + XLayer getLayer([in] string aLayerId, + [in] string aTimestamp) + raises (BackendAccessException, + com::sun::star::lang::IllegalArgumentException) ; + + + /** + retrieves the layers associated to a series of layer ids, + if newer than indicated. +A timestamp can be provided, which is used to indicate + a point in time. Only layers that are modified since that time + should be returned. The same timestamp is used for all layers. +
+ + @param aLayerIds + identifiers of the layers to be accessed. +Layer ids can be obtained from + XMultiLayerStratum::listLayerIds(). +
+ + @param aTimestamp + a timestamp for all of the layers. +An empty timestamp indicates, that the layers should be + retrieved irrespective of their modification time. +
+The format and meaning of a timestamp depends on + the implementation. Timestamps can be obtained using + com::sun::star::util::XTimeStamped::getTimestamp(). +
+ + @returns + a list of Layer objects + providing access to the layer data. +The list has the same length as aLayerIds. Each layer + object is associated to the layer id in the corresponding + position. +
+For layers that are newer than indicated by the + timestamp, the list contains a `NULL` element. +
+ + @throws com::sun::star::lang::IllegalArgumentException + if one of the layer ids is invalid or + if the timestamp is invalid + + @throws com::sun::star::configuration::backend::BackendAccessException + if an error occurs while accessing the data. + + @see com::sun::star::util::XTimeStamped + */ + sequenceFor each layer an individual timestamp can be provided, + which is used to indicate the last known version of the layer. + Only layers that are modified since that time should be returned. +
+ + @param aLayerIds + identifiers of the layers to be accessed. +Layer ids can be obtained from + XMultiLayerStratum::listLayerIds(). +
+ + @param aTimestamps + timestamps for each of the layers. + +This list must have the same length as aLayerIds. + Timestamps are matched to layer ids by their position. +
+An empty timestamp indicates, that the associated layer + should be retrieved irrespective of its modification time. +
+The format and meaning of a timestamp depends on + the implementation. Timestamps can be obtained using + com::sun::star::util::XTimeStamped::getTimestamp(). +
+ + @returns + a list of Layer objects + providing access to the layer data. +The list has the same length as aLayerIds. Each layer + object is associated to the layer id in the corresponding + position. +
+For layers that are newer than indicated by the corresponding + timestamp, the list contains a `NULL` element. +
+ + @throws com::sun::star::lang::IllegalArgumentException + if one of the layer ids is invalid or + if one of the timestamps is invalid or + if the lengths of the arguments don't match. + + @throws com::sun::star::configuration::backend::BackendAccessException + if an error occurs while accessing the data. + + @see com::sun::star::util::XTimeStamped + */ + sequenceA layer id for writing can be obtained from + XMultiLayerStratum::getUpdateLayerId(). +
+ + @return + an UpdatableLayer object providing + write access to the layer + + @throws com::sun::star::lang::IllegalArgumentException + if the layer id is invalid. + + @throws com::sun::star::lang::NoSupportException + if the implementation does not support updates. + + @throws com::sun::star::configuration::backend::BackendAccessException + if an error occurs while accessing the data. + */ + XUpdatableLayer getUpdatableLayer([in] string aLayerId) + raises (BackendAccessException, + com::sun::star::lang::NoSupportException, + com::sun::star::lang::IllegalArgumentException) ; + +} ; + + +} ; } ; } ; } ; } ; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/XSchema.idl b/offapi/com/sun/star/configuration/backend/XSchema.idl new file mode 100644 index 0000000000..c4ad0c6a6e --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/XSchema.idl @@ -0,0 +1,112 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module configuration { module backend { + + +/** + Handles access to the elements of a component schema, + i.e its templates and its component definition. + + @since OOo 1.1.2 +*/ +published interface XSchema : ::com::sun::star::uno::XInterface +{ + + /** + Describes the full schema (templates + component) to a + XSchemaHandler. + + @param aHandler + schema handler that will receive calls + describing the contents of the templates + and the component definition + + @throws com::sun::star::lang::NullPointerException + if a `NULL` handler is passed. + @throws com::sun::star::lang::WrappedTargetException + if an error occurs in the access to or processing of the data or + if a subsequent call to any of the XSchemamethods is made. + The elements of a component schema are only parsed once,a repeat call + leads to exception. + @throws com::sun::star::configuration::backend::MalformedDataException + if the data read from the layer is rejected as invalid by the + XSchemaHandler. + */ + void readSchema([in] XSchemaHandler aHandler) + raises (com::sun::star::lang::NullPointerException, + com::sun::star::lang::WrappedTargetException, + MalformedDataException) ; + + + /** + Describes only the component definition to a XSchemaHandler. + + @param aHandler + schema handler that will receive calls + describing the contents of the component + definition + + @throws com::sun::star::lang::NullPointerException + if a `NULL` handler is passed. + @throws com::sun::star::lang::WrappedTargetException + if an error occurs in the access to or processing of the data or + if a subsequent call to any of the XSchemamethods is made. + The elements of a component schema are only parsed once,a repeat call + leads to exception. + @throws com::sun::star::configuration::backend::MalformedDataException + if the data read from the layer is rejected as invalid by the + XSchemaHandler. + */ + void readComponent([in] XSchemaHandler aHandler) + raises (com::sun::star::lang::NullPointerException, + com::sun::star::lang::WrappedTargetException, + MalformedDataException) ; + + + /** + Describes the component templates to a XSchemaHandler. + + @param aHandler + schema handler that will receive calls + describing the contents of the templates + + @throws com::sun::star::lang::NullPointerException + if a `NULL` handler is passed. + @throws com::sun::star::lang::WrappedTargetException + if an error occurs in the access to or processing of the data or + if a subsequent call to any of the XSchemamethods is made. + The elements of a component schema are only parsed once,a repeat call + leads to exception. + @throws com::sun::star::configuration::backend::MalformedDataException + if the data read from the layer is rejected as invalid by the + XSchemaHandler. + */ + void readTemplates([in] XSchemaHandler aHandler) + raises (com::sun::star::lang::NullPointerException, + com::sun::star::lang::WrappedTargetException, + MalformedDataException) ; + +} ; + + +} ; } ; } ; } ; } ; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/XSchemaHandler.idl b/offapi/com/sun/star/configuration/backend/XSchemaHandler.idl new file mode 100644 index 0000000000..23ec33fece --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/XSchemaHandler.idl @@ -0,0 +1,492 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module configuration { module backend { + + +/** receives a description of a configuration schema as a sequence of events. + + @since OOo 1.1.2 + */ +published interface XSchemaHandler: ::com::sun::star::uno::XInterface +{ + + /** receives notification that a schema description is started. + +The schema description may comprise components templates or both. +
+ + @throws com::sun::star::configuration::backend::MalformedDataException + if a schema is already started (and has not been ended). + + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + */ + void startSchema( ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + /** receives notification that the current schema description is complete. + +Must match a previous call to startSchema(). +
+ + @throws com::sun::star::configuration::backend::MalformedDataException +Not every implementation can detect each condition
+ + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + */ + void endSchema( ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + /** receives notification that the schema depends on templates + from a different component. + + @param aName + specifies the name of the component. + + @throws com::sun::star::configuration::backend::MalformedDataException +Not every implementation can detect each condition
+ + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + */ + void importComponent( [in] string aName ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + /** receives notification that a component description is started. + +Subsequent calls describe the schema of the component + until a matching call to endComponent() + is encountered. +
+ + @param aName + specifies the name of the component. + + @throws com::sun::star::configuration::backend::MalformedDataException +Not every implementation can detect each condition
+ + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + */ + void startComponent( [in] string aName ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + /** receives notification that a component description is complete. + +Must match a previous call to startComponent(). +
+ + @throws com::sun::star::configuration::backend::MalformedDataException +Not every implementation can detect each condition
+ + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + */ + void endComponent( ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + /** receives notification that a template description is started for a group. + +Subsequent calls describe the members and properties of the template + until a matching call to endTemplate() + is encountered. +
+ + @param aTemplate + specifies the identity of the template. + + @param aAttributes + specifies the attributes of the template. + +The value is a combination of + SchemaAttribute flags. +
+SchemaAttribute::EXTENSIBLE can be used + to describe a template for a node with an extensible + set of properties. +
+ + @throws com::sun::star::configuration::backend::MalformedDataException +Not every implementation can detect each condition
+ + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + + @see com::sun::star::configuration::backend::SchemaAttribute + */ + void startGroupTemplate( [in] TemplateIdentifier aTemplate, + [in] short aAttributes ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + /** receives notification that a template description is started for a set. + +Subsequent calls describe the members and properties of the template + until a matching call to endTemplate() + is encountered. +
+ + @param aTemplate + specifies the identity of the template. + + @param aAttributes + specifies the attributes of the template. + +The value is a combination of + SchemaAttribute flags. +
+SchemaAttribute::EXTENSIBLE can be used + to describe a template for a node with an extensible + set of properties. +
+ + @param aItemType + specifies the (default) template for set items. + + @throws com::sun::star::configuration::backend::MalformedDataException +Not every implementation can detect each condition
+ + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + + @see com::sun::star::configuration::backend::SchemaAttribute + */ + void startSetTemplate( [in] TemplateIdentifier aTemplate, + [in] short aAttributes, + [in] TemplateIdentifier aItemType ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + /** receives notification that a template description is complete. + +Must match a previous call to startGroupTemplate() + or startSetTemplate(). +
+ + @throws com::sun::star::configuration::backend::MalformedDataException +Not every implementation can detect each condition
+ + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + */ + void endTemplate( ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + /** receives notification that a group description is started. + +Subsequent calls describe the members and properties of the group + until a matching call to endNode() + is encountered. +
+ + @param aName + specifies the name of the group. + + @param aAttributes + specifies the attributes of the node. + +The value is a combination of + SchemaAttribute flags. +
+SchemaAttribute::EXTENSIBLE can be used + to describe a group with an extensible set of properties. +
+ + @throws com::sun::star::configuration::backend::MalformedDataException +Not every implementation can detect each condition
+ + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + + @see com::sun::star::configuration::backend::SchemaAttribute + */ + void startGroup( [in] string aName, + [in] short aAttributes ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + /** receives notification that a set description is started. + +Subsequent calls describe the item-types and properties of the set + until a matching call to endNode() + is encountered. +
+ + @param aName + specifies the name of the set. + + @param aAttributes + specifies the attributes of the node. + +The value is a combination of + SchemaAttribute flags. +
+SchemaAttribute::EXTENSIBLE can be used + to describe a set with an extensible set of properties. +
+ + @param aItemType + specifies the (default) template for set items. + + @throws com::sun::star::configuration::backend::MalformedDataException +Not every implementation can detect each condition
+ + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + + @see com::sun::star::configuration::backend::SchemaAttribute + */ + void startSet( [in] string aName, + [in] short aAttributes, + [in] TemplateIdentifier aItemType ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + /** receives notification that a node description is complete. + +Must match the last open call to startGroup() + or startSet(). +
+ + @throws com::sun::star::configuration::backend::MalformedDataException +Not every implementation can detect each condition
+ + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + */ + void endNode( ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + /** receives notification that a property is added to the current node. + +The property will have a default value of `NULL` + (unless it is SchemaAttribute::REQUIRED). +
+ + @param aName + specifies the name of the new property. + + @param aAttributes + specifies the attributes of the new property. + +The value is a combination of + SchemaAttribute flags. +
+ + @param aType + specifies the type of the new property. + + @throws com::sun::star::configuration::backend::MalformedDataException +Not every implementation can detect each condition
+ + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + + @see com::sun::star::configuration::backend::SchemaAttribute + */ + void addProperty( [in] string aName, + [in] short aAttributes, + [in] type aType ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + + /** receives notification that a property having a default value + is added to the current node. + + @param aName + specifies the name of the new property. + + @param aAttributes + specifies the attributes of the new property. + +The value is a combination of + SchemaAttribute flags. +
+ + @param aDefaultValue + specifies the value of the new property. + +The value also determines the type. + Therefore the value must not be `VOID`. +
+ + @throws com::sun::star::configuration::backend::MalformedDataException +Not every implementation can detect each condition
+ + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + + @see com::sun::star::configuration::backend::SchemaAttribute + */ + void addPropertyWithDefault( [in] string aName, + [in] short aAttributes, + [in] any aDefaultValue ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + + /** receives notification that the current group has a child node + that is an instance of a specified template. + + @param aName + specifies the name of the new node. + + @param aTemplate + specifies a template that describes the new node. + + @throws com::sun::star::configuration::backend::MalformedDataException +Not every implementation can detect each condition
+ + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + */ + void addInstance( [in] string aName, + [in] TemplateIdentifier aTemplate ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + + /** receives notification that the current set can contain items + that are instances of a specified template. + + @param aItemType + specifies a template that is accepted as valid item type + for the current set node. + + @throws com::sun::star::configuration::backend::MalformedDataException +Not every implementation can detect each condition
+ + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + */ + void addItemType( [in] TemplateIdentifier aItemType ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + +}; + + +}; }; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/XSchemaSupplier.idl b/offapi/com/sun/star/configuration/backend/XSchemaSupplier.idl new file mode 100644 index 0000000000..99d69d072c --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/XSchemaSupplier.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 . + */ + + +module com { module sun { module star { module configuration { module backend { + + +/** + provides access to configuration component schemas. + + @since OOo 1.1.2 +*/ +published interface XSchemaSupplier : ::com::sun::star::uno::XInterface +{ + + /** + Returns the schema information (component + templates) + for a particular component. + + @param aComponent + component whose schema will be accessed + + @returns + an object allowing access to the various parts of the schema, + `NULL` if the component doesn't exist. + + @throws com::sun::star::lang::IllegalArgumentException + if the component identifier is invalid. + + @throws com::sun::star::configuration::backend::BackendAccessException + if an error occurs while accessing the data. + */ + XSchema getComponentSchema([in] string aComponent) + raises (BackendAccessException, + com::sun::star::lang::IllegalArgumentException) ; + +} ; + + +} ; } ; } ; } ; } ; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/XSingleLayerStratum.idl b/offapi/com/sun/star/configuration/backend/XSingleLayerStratum.idl new file mode 100644 index 0000000000..8a3495f03d --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/XSingleLayerStratum.idl @@ -0,0 +1,111 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module configuration { module backend { + + +/** + Handles access to a stratum consisting of a single layer + in a configuration data repository + +The interface provides timestamp-checking capabilities + for efficient caching. +
+ + @see com::sun::star::util::XTimeStamped + @see com::sun::star::configuration::backend::XSchemaSupplier + @see com::sun::star::configuration::backend::XMultiLayerStratum + + @since OOo 1.1.2 +*/ +published interface XSingleLayerStratum : ::com::sun::star::uno::XInterface +{ + + /** + retrieves the layer data for a component, if newer than indicated. + +A timestamp can be provided, which is used to indicate + a point in time. The layer should be returned only if is modified + since that time. +
+ + @param aComponent + The name of the component to access. + + @param aTimestamp + a timestamp for the layer. + +An empty timestamp indicates, that the layer should be + retrieved irrespective of its modification time. +
+The format and meaning of a timestamp depends on + the implementation. Timestamps can be obtained using + com::sun::star::util::XTimeStamped::getTimestamp(). +
+ + @returns + a Layer object providing access to the layer data, + `NULL` if the layer is newer than indicated by the timestamp. + + @throws com::sun::star::lang::IllegalArgumentException + if the component identifier is invalid or + if the timestamp is invalid. + + @throws com::sun::star::configuration::backend::BackendAccessException + if an error occurs while accessing the data. + + @see com::sun::star::util::XTimeStamped + */ + XLayer getLayer([in] string aComponent, + [in] string aTimestamp) + raises (BackendAccessException, + com::sun::star::lang::IllegalArgumentException) ; + + + /** + retrieves a writable representation of the layer for a component. + + @param aComponent + The name of the component to access. + + @return + an UpdatableLayer object providing + write access to the layer + + @throws com::sun::star::lang::IllegalArgumentException + if the component identifier is invalid. + + @throws com::sun::star::lang::NoSupportException + if the implementation does not support updates. + + @throws com::sun::star::configuration::backend::BackendAccessException + if an error occurs while accessing the data. + */ + XUpdatableLayer getUpdatableLayer([in] string aComponent) + raises (BackendAccessException, + com::sun::star::lang::NoSupportException, + com::sun::star::lang::IllegalArgumentException) ; + +} ; + + +} ; } ; } ; } ; } ; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/XUpdatableLayer.idl b/offapi/com/sun/star/configuration/backend/XUpdatableLayer.idl new file mode 100644 index 0000000000..3ec7250003 --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/XUpdatableLayer.idl @@ -0,0 +1,62 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module configuration { module backend { + + +/** + Provides access to a read-write layer of configuration data for + a given component and entity. + + @since OOo 1.1.2 + */ +published interface XUpdatableLayer : XLayer +{ + + /** + Replaces the current layer with the layer given as input + parameter. + +After the replacement has been performed, reading the + layer will return the new content. Some implementations + may not support this, so after an update + XLayer::readData() may fail. +
+ + @param aNewLayer + replacement layer + + @throws com::sun::star::lang::NullPointerException + if a `NULL` handler is passed. + @throws com::sun::star::lang::WrappedTargetException + if an error occurs during the replacement. + @throws com::sun::star::configuration::backend::MalformedDataException + if the layer contains invalid data. + */ + void replaceWith([in] XLayer aNewLayer) + raises (com::sun::star::lang::NullPointerException, + com::sun::star::lang::WrappedTargetException, + MalformedDataException) ; + +} ; + +} ; } ; } ; } ; } ; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/XUpdateHandler.idl b/offapi/com/sun/star/configuration/backend/XUpdateHandler.idl new file mode 100644 index 0000000000..95317fa1b4 --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/XUpdateHandler.idl @@ -0,0 +1,622 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module configuration { module backend { + + +/** receives a description of a configuration update or layer + as a sequence of events. + + @since OOo 1.1.2 + */ +published interface XUpdateHandler: ::com::sun::star::uno::XInterface +{ + + /** receives notification that an update or description is started. + + @throws com::sun::star::configuration::backend::MalformedDataException + if the update already was started + + @throws com::sun::star::lang::IllegalAccessException + if the target layer is read-only +Some implementations can only detect this when executing + XUpdateHandler::endUpdate() +
+ + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + */ + void startUpdate( ) + raises( MalformedDataException, + com::sun::star::lang::IllegalAccessException, + com::sun::star::lang::WrappedTargetException ); + + /** receives notification that the current update description is complete. + +Must match a previous call to XUpdateHandler::startUpdate(). +
+ + @throws com::sun::star::configuration::backend::MalformedDataException +Not every implementation can detect each condition
+ + @throws com::sun::star::lang::IllegalAccessException + if the target layer is read-only + + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + */ + void endUpdate( ) + raises( MalformedDataException, + com::sun::star::lang::IllegalAccessException, + com::sun::star::lang::WrappedTargetException ); + + /** receives notification that a modification of a node is started. + +Subsequent calls describe changes to properties and items or + members of the node until a matching call to + XUpdateHandler::endNode() is encountered. +
+ + @param aName + specifies the name of the node. + + @param aAttributes + specifies attribute values to be applied to the node in the + current layer. + +The value is a combination of + NodeAttribute flags. +
+Only attributes which are selected in aAttributeMask + are changed. +
+ + @param aAttributeMask + specifies which attributes should be changed for the node. + +The value is a combination of + NodeAttribute flags. +
+ + @param bReset + if `TRUE`, specifies that the node should be reset to its default + state as given by lower layers and the schema or template prior + to applying the changes. + + @throws com::sun::star::configuration::backend::MalformedDataException +Not every implementation can detect each condition
+ + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + + @see com::sun::star::configuration::backend::NodeAttribute + */ + void modifyNode ( [in] string aName, + [in] short aAttributes, + [in] short aAttributeMask, + [in] boolean bReset ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + /** receives notification that a node is started as a new item. + +The current node must be a set and + a preexisting item (if any) must be removable. +
+The new item will be created from the default template + of the set. +
+Subsequent calls describe the difference from the template + of properties, items or members of the node until a matching call + to XUpdateHandler::endNode() is encountered. +
+ + @param aName + specifies the name of the new item. + + @param aAttributes + specifies attribute values to be applied to the new node. + +The value is a combination of + NodeAttribute flags. Note that + NodeAttribute::FUSE has an impact on the + semantics of this method. +
+ + @throws com::sun::star::configuration::backend::MalformedDataException +Not every implementation can detect each condition
+ + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + + @see com::sun::star::configuration::backend::NodeAttribute + */ + void addOrReplaceNode ( [in] string aName, + [in] short aAttributes ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + /** receives notification that a node is started as a new item + based on a particular template. + +The current node must be a set and + a preexisting item (if any) must be removable. +
+Subsequent calls describe the difference from the template + of properties or members of the node until a matching call + to XUpdateHandler::endNode() is encountered. +
+ + @param aName + specifies the name of the item. + + @param aTemplate + specifies the template to use for the new node + + @param aAttributes + specifies attribute values to be applied to the new node. + +The value is a combination of + NodeAttribute flags. Note that + NodeAttribute::FUSE has an impact on the + semantics of this method. +
+ + @throws com::sun::star::configuration::backend::MalformedDataException +Not every implementation can detect each condition
+ + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + + @see com::sun::star::configuration::backend::NodeAttribute + */ + void addOrReplaceNodeFromTemplate( [in] string aName, + [in] short aAttributes, + [in] TemplateIdentifier aTemplate ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + /** receives notification that a node modification is complete. + +Must match the last open call to + XUpdateHandler::modifyNode(), + XUpdateHandler::addOrReplaceNode() or + XUpdateHandler::addOrReplaceNodeFromTemplate(). +
+ + @throws com::sun::star::configuration::backend::MalformedDataException +Not every implementation can detect each condition
+ + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + */ + void endNode( ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + /** receives notification that an item is to be dropped from a set. + +The current node must be a set and + the item must be removable. +
+ + @param aName + specifies the name of the node. + + @throws com::sun::star::configuration::backend::MalformedDataException +Not every implementation can detect each condition
+ + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + */ + void removeNode( [in] string aName ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + /** receives notification that modification of an existing property is + started. + +Subsequent calls describe changes to the value(s) + of the property until a matching call to + XUpdateHandler::endProperty() is encountered. +
+ + @param aName + specifies the name of the property. + + @param aAttributes + specifies new attributes of the property. + +The value is a combination of + NodeAttribute flags. +
+Only attributes which are selected in aAttributeMask are changed. +
+NodeAttribute::MANDATORY need not be set + and can't be removed, as dynamic properties always are mandatory + in subsequent layers. +
+ + @param aAttributeMask + specifies which attributes should be changed for the property. + +The value is a combination of + NodeAttribute flags. +
+ + @param aType + specifies the type of the property. + +A `VOID` type can be used to signify that + the type is unknown and should not be recorded. +
+ + @throws com::sun::star::configuration::backend::MalformedDataException +Not every implementation can detect each condition
+ + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + + @see com::sun::star::configuration::backend::NodeAttribute + */ + void modifyProperty( [in] string aName, + [in] short aAttributes, + [in] short aAttributeMask, + [in] type aType ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + /** receives notification about a change to the value of + the current property. + + @param aValue + specifies the new value of the property. + +The value must match the type of the existing property. + If the property does not have the + SchemaAttribute::REQUIRED flag set, + the value can be `VOID`. +
+ + @throws com::sun::star::configuration::backend::MalformedDataException +Not every implementation can detect each condition
+ + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + + @see com::sun::star::configuration::backend::NodeAttribute + */ + void setPropertyValue( [in] any aValue ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + /** receives notification about a change to the value of + the current property for a specific locale. + + @param aValue + specifies the new value of the property for the given locale. + +The value must match the type of the existing property. + If the property does not have the + SchemaAttribute::REQUIRED flag set, + the value can be `VOID`. +
+ + @param aLocale + specifies the locale that the new value applies to. + + @throws com::sun::star::configuration::backend::MalformedDataException +Not every implementation can detect each condition
+ + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + + @see com::sun::star::configuration::backend::NodeAttribute + */ + void setPropertyValueForLocale( [in] any aValue, [in] string aLocale ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + /** receives notification that the value of the current property + should be reset to its default. + + @throws com::sun::star::configuration::backend::MalformedDataException +Not every implementation can detect each condition
+ + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + + @see com::sun::star::configuration::backend::NodeAttribute + */ + void resetPropertyValue( ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + /** receives notification that the value of the current property + for a specific locale should be reset to its default. + + @param aLocale + specifies the locale the change applies to. + + @throws com::sun::star::configuration::backend::MalformedDataException +Not every implementation can detect each condition
+ + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + + @see com::sun::star::configuration::backend::NodeAttribute + */ + void resetPropertyValueForLocale( [in] string aLocale ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + /** receives notification that a property modification is complete. + +Must match the last open call to + XUpdateHandler::modifyProperty(). +
+ + @throws com::sun::star::configuration::backend::MalformedDataException +Not every implementation can detect each condition
+ + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + */ + void endProperty( ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + /** receives notification that a property is reset to its default state. + + @param aName + specifies the name of the property. + + @throws com::sun::star::configuration::backend::MalformedDataException +Not every implementation can detect each condition
+ + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + + @see com::sun::star::configuration::backend::NodeAttribute + */ + void resetProperty( [in] string aName ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + /** receives notification that a property having a value of `VOID` + is added to the current node. + +The current node must be extensible and + a preexisting property (if any) must be + removable in this layer. +
+ + @param aName + specifies the name of the new property. + + @param aAttributes + specifies the attributes of the new property. + +The value is a combination of + NodeAttribute flags and may also contain the + SchemaAttribute::REQUIRED flag. +
+ +NodeAttribute::MANDATORY need not be set, + as dynamic properties always are mandatory + in subsequent layers. +
+ + @param aType + specifies the type of the new property. + + @throws com::sun::star::configuration::backend::MalformedDataException +Not every implementation can detect each condition
+ + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + + @see com::sun::star::configuration::backend::SchemaAttribute + */ + void addOrReplaceProperty( [in] string aName, + [in] short aAttributes, + [in] type aType ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + /** receives notification that a property having a non-`NULL` value + is added to the current node. + +The current node must be extensible and + a preexisting property (if any) must be + removable in this layer. +
+ + @param aName + specifies the name of the new property. + + @param aAttributes + specifies the attributes of the new property. + +The value is a combination of + NodeAttribute flags and may also contain the + SchemaAttribute::REQUIRED flag. +
+ +NodeAttribute::MANDATORY need not be set, + as dynamic properties always are mandatory + in subsequent layers. +
+ + @param aValue + specifies the value of the new property. + +The value also determines the type. + Therefore the value must not be `VOID`. +
+ + @throws com::sun::star::configuration::backend::MalformedDataException +Not every implementation can detect each condition
+ + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + + @see com::sun::star::configuration::backend::SchemaAttribute + */ + void addOrReplacePropertyWithValue( [in] string aName, + [in] short aAttributes, + [in] any aValue ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + + /** receives notification that a property is dropped from the current node. + +The current node must be extensible and the property removable.
+ + @param aName + specifies the name of the property. + + @throws com::sun::star::configuration::backend::MalformedDataException +Not every implementation can detect each condition
+ + @throws com::sun::star::lang::WrappedTargetException + if an error occurs processing the event. + */ + void removeProperty( [in] string aName ) + raises( MalformedDataException, + com::sun::star::lang::WrappedTargetException ); + +}; + + +}; }; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/XVersionedSchemaSupplier.idl b/offapi/com/sun/star/configuration/backend/XVersionedSchemaSupplier.idl new file mode 100644 index 0000000000..2a6b8c6f2a --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/XVersionedSchemaSupplier.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 . + */ + + +module com { module sun { module star { module configuration { module backend { + + +/** + provides access to versioned configuration component schemas. + + @since OOo 2.0 +*/ +interface XVersionedSchemaSupplier : XSchemaSupplier +{ + + /** + Returns the schema version for a particular component. + + @param aComponent + component whose schema version will be determined + + @returns + a `string` that identifies the schema version for + the given component. + +The format of the version string is arbitrary. No meaning + should be attached to it, unless an implementing service + defines one. If no version can be determined, an empty + `string` may be returned. +
+ +Clients may assume that all instances of a schema with the + same version are identical. The converse is not true. + In particular an implementation may return the same version + string for all schemas it supplies (i.e. return a version for + the complete schema, including all components) +
+ + @throws com::sun::star::lang::IllegalArgumentException + if the component identifier is invalid. + + @throws com::sun::star::configuration::backend::BackendAccessException + if an error occurs while accessing the version data. + */ + string getSchemaVersion([in] string aComponent) + raises (BackendAccessException, + com::sun::star::lang::IllegalArgumentException) ; + +} ; + + +} ; } ; } ; } ; } ; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/xml/LayerParser.idl b/offapi/com/sun/star/configuration/backend/xml/LayerParser.idl new file mode 100644 index 0000000000..10699a0721 --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/xml/LayerParser.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 . + */ + + +module com { module sun { module star { module configuration { module backend { +module xml { + + +/** + represents a configuration data layer that is stored in a stream in + OOR Update XML format. + +The configuration layer XML from a given stream is parsed and fed to a + com::sun::star::configuration::backend::XLayerHandler. +
+ + @see com::sun::star::configuration::backend::xml::SchemaParser + Service that represents a configuration schema stored in XML. + + @see com::sun::star::configuration::backend::xml::LayerWriter + Service that writes OOR Update XML for data described via + com::sun::star::configuration::backend::XLayerHandler. + + @since OOo 1.1.2 +*/ +published service LayerParser +{ + + /** provides access to the parsed layer data. + */ + interface com::sun::star::configuration::backend::XLayer ; + + + /** provides access to the source XML stream. + */ + interface com::sun::star::io::XActiveDataSink ; + + + /** allows initializing the source stream. + +The source can be passed + as a com::sun::star::io::XInputStream or + as a com::sun::star::xml::sax::InputSource. +
+ */ + interface com::sun::star::lang::XInitialization ; + +} ; + +} ; +} ; } ; } ; } ; } ; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/xml/LayerWriter.idl b/offapi/com/sun/star/configuration/backend/xml/LayerWriter.idl new file mode 100644 index 0000000000..10d97638b0 --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/xml/LayerWriter.idl @@ -0,0 +1,64 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module configuration { module backend { +module xml { + + +/** + can be used to parse a stream of configuration layer XML. + +The configuration layer data described to a + com::sun::star::configuration::backend::XLayerHandler + is written to a stream as OOR Update XML. +
+ + @see com::sun::star::configuration::backend::xml::LayerParser + Service that parses configuration layer XML. + + @since OOo 1.1.2 +*/ +published service LayerWriter +{ + + /** accepts events describing the layer data. + */ + interface com::sun::star::configuration::backend::XLayerHandler ; + + + /** provides access to the target stream. + */ + interface com::sun::star::io::XActiveDataSource ; + + + /** allows initializing target stream. + +The target can be passed + as a com::sun::star::io::XOutputStream. +
+ */ + interface com::sun::star::lang::XInitialization ; + +} ; + +} ; +} ; } ; } ; } ; } ; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/backend/xml/SchemaParser.idl b/offapi/com/sun/star/configuration/backend/xml/SchemaParser.idl new file mode 100644 index 0000000000..cd33ed35f5 --- /dev/null +++ b/offapi/com/sun/star/configuration/backend/xml/SchemaParser.idl @@ -0,0 +1,64 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module configuration { module backend { +module xml { + + +/** represents a configuration schema that is stored in a stream in + OOR Schema XML format. + +The configuration schema XML from a given stream is parsed and fed to a + com::sun::star::configuration::backend::XSchemaHandler. +
+ + @see com::sun::star::configuration::backend::xml::LayerParser + Service that parses configuration layer XML. + + @since OOo 1.1.2 +*/ +published service SchemaParser +{ + + /** provides access to the parsed schema data. + */ + interface com::sun::star::configuration::backend::XSchema ; + + + /** provides access to the source XML stream. + */ + interface com::sun::star::io::XActiveDataSink ; + + + /** allows initializing the source stream. + +The source can be passed + as a com::sun::star::io::XInputStream or + as a com::sun::star::xml::sax::InputSource. +
+ */ + interface com::sun::star::lang::XInitialization ; + +} ; + +} ; +} ; } ; } ; } ; } ; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/bootstrap/BootstrapContext.idl b/offapi/com/sun/star/configuration/bootstrap/BootstrapContext.idl new file mode 100644 index 0000000000..3d97df5264 --- /dev/null +++ b/offapi/com/sun/star/configuration/bootstrap/BootstrapContext.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 . + */ + + +module com { module sun { module star { module configuration { module bootstrap { + + +/** + provides access to a component context that is enhanced with + bootstrap parameters for configuration services from the + associated metaconfiguration mechanism. + +The contained settings are used to initialize the + com::sun::star::configuration::DefaultProvider and + com::sun::star::configuration::backend::DefaultBackend of the + component context. +
+The implementation is usually available as a singleton in the context + that it wraps... +
+ + @since OOo 1.1.2 + + @deprecated +*/ +published service BootstrapContext +{ + + /** + provides access to metaconfiguration data. + +Some values are retrieved from external metaconfiguration, + if they are not overridden in the wrapped context. +
+ */ + interface com::sun::star::uno::XComponentContext ; + +} ; + + +} ; } ; } ; } ; } ; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/configuration/theDefaultProvider.idl b/offapi/com/sun/star/configuration/theDefaultProvider.idl new file mode 100644 index 0000000000..d05f977cb1 --- /dev/null +++ b/offapi/com/sun/star/configuration/theDefaultProvider.idl @@ -0,0 +1,31 @@ +/* -*- 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/. + */ + +module com { module sun { module star { module lang { + published interface XMultiServiceFactory; +}; }; }; }; + +module com { module sun { module star { module configuration { + +/** + The default ConfigurationProvider. + +This singleton somewhat arbitrarily makes available the + com::sun::star::lang::XMultiServiceFactory interface of + the (old-style) DefaultProvider service, as it is the most + frequently used one. See the DefaultProvider service for + details.
+ + @since OOo 1.1.2 +*/ +published singleton theDefaultProvider: + com::sun::star::lang::XMultiServiceFactory; + +}; }; }; }; + diff --git a/offapi/com/sun/star/cui/AsynchronousColorPicker.idl b/offapi/com/sun/star/cui/AsynchronousColorPicker.idl new file mode 100644 index 0000000000..0740dd30eb --- /dev/null +++ b/offapi/com/sun/star/cui/AsynchronousColorPicker.idl @@ -0,0 +1,34 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module cui { + +/** + @since LibreOffice 7.3 + */ +service AsynchronousColorPicker : com::sun::star::ui::dialogs::XAsynchronousExecutableDialog +{ + createWithParent([in] com::sun::star::awt::XWindow Parent); +}; + +}; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/cui/ColorPicker.idl b/offapi/com/sun/star/cui/ColorPicker.idl new file mode 100644 index 0000000000..4490b7cd08 --- /dev/null +++ b/offapi/com/sun/star/cui/ColorPicker.idl @@ -0,0 +1,35 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module cui { + +/** + @since LibreOffice 4.1 + */ +service ColorPicker : com::sun::star::ui::dialogs::XExecutableDialog +{ + createWithParent([in] com::sun::star::awt::XWindow Parent); +}; + + +}; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/DataFlavor.idl b/offapi/com/sun/star/datatransfer/DataFlavor.idl new file mode 100644 index 0000000000..8ba3c97985 --- /dev/null +++ b/offapi/com/sun/star/datatransfer/DataFlavor.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 . + */ + + +module com { module sun { module star { module datatransfer { + +/** Each instance represents the concept of a data format as it would + appear on a clipboard, or during drag and drop. +*/ + +published struct DataFlavor +{ + /** The MIME content-type (type/subtype) string describing the data format + of the object to transfer. MimeType must conform to Rfc2045 and + Rfc2046) + */ + string MimeType; + + /** A human presentable name for the data format. + */ + string HumanPresentableName; + + /** The type of the object to transfer, for example, XOutputStream. + */ + type DataType; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/DataFormatTranslator.idl b/offapi/com/sun/star/datatransfer/DataFormatTranslator.idl new file mode 100644 index 0000000000..f018f99be7 --- /dev/null +++ b/offapi/com/sun/star/datatransfer/DataFormatTranslator.idl @@ -0,0 +1,41 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module datatransfer { + + + published interface XDataFormatTranslator; + +/** Different platforms use different types to describe data formats available + during data exchange operations like clipboard or drag&drop. + Implementations of this service do convert system dependent data types to a + DataFlavor and vice versa. + + @see com::sun::star::datatransfer::XDataFormatTranslator + @see com::sun::star::datatransfer::DataFlavor + + Converts a DataFlavor to system data types and vice versa. +*/ +published service DataFormatTranslator : XDataFormatTranslator; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/MimeContentTypeFactory.idl b/offapi/com/sun/star/datatransfer/MimeContentTypeFactory.idl new file mode 100644 index 0000000000..22135c744f --- /dev/null +++ b/offapi/com/sun/star/datatransfer/MimeContentTypeFactory.idl @@ -0,0 +1,39 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module datatransfer { + + + published interface XMimeContentTypeFactory; + +/** Used to create an instance that implement the interface + XMimeContentType from a string + representation of such a MIME content-type that conforms to + Rfc2045 and + Rfc2046. + + @see com::sun::star::datatransfer::XMimeContentTypeFactory +*/ +published service MimeContentTypeFactory : XMimeContentTypeFactory; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/UnsupportedFlavorException.idl b/offapi/com/sun/star/datatransfer/UnsupportedFlavorException.idl new file mode 100644 index 0000000000..c30dc92e4f --- /dev/null +++ b/offapi/com/sun/star/datatransfer/UnsupportedFlavorException.idl @@ -0,0 +1,36 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module datatransfer { + +/** Exception will be thrown if there is a request for data in a + DataFlavor that is not supported by a data source. + + @see com::sun::star::datatransfer::DataFlavor + @see com::sun::star::datatransfer::XTransferable +*/ +published exception UnsupportedFlavorException: com::sun::star::uno::Exception +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/XDataFormatTranslator.idl b/offapi/com/sun/star/datatransfer/XDataFormatTranslator.idl new file mode 100644 index 0000000000..5f1aae51f0 --- /dev/null +++ b/offapi/com/sun/star/datatransfer/XDataFormatTranslator.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 . + */ + + +module com { module sun { module star { module datatransfer { + +/** Interface to be implemented by objects used to translate a DataFlavor to + a system dependent data transfer type and vice versa. + +Different platforms use different types to describe data formats available + during data exchange operations like clipboard or drag&drop. Windows for instance + uses integer values to describe an available clipboard or drag&drop format, Unix + X11 uses so called Atoms etc.
+*/ + +published interface XDataFormatTranslator : com::sun::star::uno::XInterface +{ + /** Converts a DataFlavor to system dependent data type. + + @param aDataFlavor + Describes the format for which a system dependent data types is requested. + + @returns + A system dependent data transfer type for the given DataFlavor + if there is one available. +If the is no system dependent data type for a given DataFlavor + the returned any is empty.
+ */ + any getSystemDataTypeFromDataFlavor( [in] DataFlavor aDataFlavor ); + + /** Converts a system dependent data type to a DataFlavor. + + @param aSysDataType + A system dependent data type. If aSysDataType is empty so is the returned DataFlavor. + + @returns + A DataFlavor for the given system dependent data transfer type. +If there is no appropriate mapping for a system dependent data type, the returned DataFlavor will be empty.
+ */ + DataFlavor getDataFlavorFromSystemDataType( [in] any aSysDataType ); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/XMimeContentType.idl b/offapi/com/sun/star/datatransfer/XMimeContentType.idl new file mode 100644 index 0000000000..2bc44314ad --- /dev/null +++ b/offapi/com/sun/star/datatransfer/XMimeContentType.idl @@ -0,0 +1,88 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module datatransfer { + +/** An implementation of this interface represents a MIME content-type that + conforms to Rfc2045 and + Rfc2046. + Instances that implement this interface could be created using the + interface XMimeContentTypeFactory. +*/ + +published interface XMimeContentType : com::sun::star::uno::XInterface +{ + /** To get the media type of the MIME content-type. + + @returns + The media type of the MIME content-type. + */ + string getMediaType( ); + + /** To get the media subtype of the MIME content-type. + + @returns + The media subtype of the MIME content-type. + */ + string getMediaSubtype( ); + + /** To get the full media/submedia type of the MIME content-type. + + @returns + The full media/submedia type of the MIME content-type. + */ + string getFullMediaType( ); + + /** To get a list of parameters that the MIME content-type contains. + + @returns + A list of the names of all parameters of the MIME content-type. + */ + sequence< string > getParameters( ); + + /** To query if a specific parameter is supported. + + @param aName + The name of the parameter to query for. + + @returns + A value of `TRUE` if the MIME content-type has the specified parameter. +A value of `FALSE` if the MIME content-type has not the specified parameter.
+ */ + boolean hasParameter( [in] string aName ); + + /** To get the value of a specified parameter. + + @param aName + The name of the parameter for which the value is requested. + + @returns + The value of the specified parameter. + + @throws com::sun::star::container::NoSuchElementException + if the specified parameter doesn't exist. + */ + string getParameterValue( [in] string aName ) + raises ( com::sun::star::container::NoSuchElementException ); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/XMimeContentTypeFactory.idl b/offapi/com/sun/star/datatransfer/XMimeContentTypeFactory.idl new file mode 100644 index 0000000000..34d0249d8b --- /dev/null +++ b/offapi/com/sun/star/datatransfer/XMimeContentTypeFactory.idl @@ -0,0 +1,56 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module datatransfer { + +/** Implementations of this interface do create a + com::sun::star::datatransfer::XMimeContentType from + a given string that represents a MIME content-type + (see Rfc2045 and + Rfc2046). + +*/ +published interface XMimeContentTypeFactory : com::sun::star::uno::XInterface +{ + /** Creates an object that implements XMimeContentType. + + @param aContentType + A string that represents a MIME content-type as specified in + Rfc2045 and + Rfc2046. + + @returns + An object that implements XMimeContentType. + + @throws com::sun::star::lang::IllegalArgumentException + if the string does not conform to + Rfc2045 and + Rfc2046; +Exception: Quoted parameter values may contain spaces.
+ + @see com::sun::star::datatransfer::XMimeContentType + */ + com::sun::star::datatransfer::XMimeContentType createMimeContentType( [in] string aContentType ) + raises ( com::sun::star::lang::IllegalArgumentException ); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/XSystemTransferable.idl b/offapi/com/sun/star/datatransfer/XSystemTransferable.idl new file mode 100644 index 0000000000..195e6f1de7 --- /dev/null +++ b/offapi/com/sun/star/datatransfer/XSystemTransferable.idl @@ -0,0 +1,54 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module datatransfer { + +/** Interface to be implemented by objects used to provide system dependent data + for a transfer operation. Those objects usually also implement XTransferable. +*/ + +published interface XSystemTransferable: com::sun::star::uno::XInterface +{ + /** Called by a data consumer to obtain a system specific data object from the + source. + The data object is returned in an any. The contained type may differ on + different platforms. + + @param aProcessId + The argument aProcessId is a process identifier of the caller's process. + The interface implementation must ensure that the system data object can be + used in that process. If the data object is not valid in the caller process + then the returned any must be empty. + + @returns + The system dependent data object. + +Notes:Under Windows the returned any contains an unsigned long which represents a pointer to + an IDataObject interface. The caller of getData has to release the data + object (IDataObject::Release) if it is no longer needed. + The caller must also make sure that the current thread has been initialized for + OLE (use OleInitialize).
+ */ + any getData( [in] sequence < byte > aProcessId); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/XTransferDataAccess.idl b/offapi/com/sun/star/datatransfer/XTransferDataAccess.idl new file mode 100644 index 0000000000..6c8f819d73 --- /dev/null +++ b/offapi/com/sun/star/datatransfer/XTransferDataAccess.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 . + */ + + +module com { module sun { module star { module datatransfer { + +/** This interface provides direct access to the data in all data flavors. It can + be used by the clipboard implementation to optimize data transport on + flush operations. + + @see com::sun::star::datatransfer::XTransferable +*/ + +published interface XTransferDataAccess: com::sun::star::uno::XInterface +{ + /** To query for the summarized data size in bytes of a sequence of DataFlavor. + + @param aFlavorList + A sequence of requested DataFlavor. +An unsupported DataFlavor will be ignored.
+ + @returns + The number of bytes of the transfer data in the specified sequence of DataFlavor. + */ + hyper queryDataSize( [in] sequence < DataFlavor > aFlavorList ); + + /** To get all the data of a sequence of DataFlavor. + + @param aFlavorList + The sequence of requested DataFlavor. +An unsupported DataFlavor will be ignored.
+ + @returns + The data in the requested DataFlavor. +For unsupported DataFlavor an + empty any will be returned.
+ */ + sequence < any > getData( [in] sequence < DataFlavor > aFlavorList ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/XTransferable.idl b/offapi/com/sun/star/datatransfer/XTransferable.idl new file mode 100644 index 0000000000..5ce3cf9800 --- /dev/null +++ b/offapi/com/sun/star/datatransfer/XTransferable.idl @@ -0,0 +1,77 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module datatransfer { + +/** Interface to be implemented by objects used to provide data for a data + transfer operation. + + @see com::sun::star::datatransfer::DataFlavor +*/ + +published interface XTransferable: com::sun::star::uno::XInterface +{ + /** Called by a data consumer to obtain data from the source in a specified + format. + + @param aFlavor + Describes the requested data format + + @returns + The data in the specified DataFlavor. + + @throws com::sun::star::io::IOException + if the data is no longer available in the requested flavor. + + @throws com::sun::star::datatransfer::UnsupportedFlavorException + if the requested DataFlavor is not supported. + */ + any getTransferData( [in] DataFlavor aFlavor ) + raises ( UnsupportedFlavorException, com::sun::star::io::IOException ); + + /** Returns a sequence of supported DataFlavor. + + @returns + The sequence of supported DataFlavor. + + @see com::sun::star::datatransfer::DataFlavor + */ + sequence < DataFlavor > getTransferDataFlavors(); + + /** Checks if the data object supports the specified data flavor. + + @param aFlavor + Describes the format that should be checked + + @returns + A value of `TRUE` if the DataFlavor is supported by the transfer source. +A value of `FALSE` if the DataFlavor is unsupported by the transfer source.
+ +Note: This method is only for analogy with the JAVA Clipboard interface. To + avoid many calls, the caller should instead use + com::sun::star::datatransfer::XTransferable::getTransferDataFlavors(). + */ + boolean isDataFlavorSupported( [in] DataFlavor aFlavor ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/XTransferable2.idl b/offapi/com/sun/star/datatransfer/XTransferable2.idl new file mode 100644 index 0000000000..5e8b469a3e --- /dev/null +++ b/offapi/com/sun/star/datatransfer/XTransferable2.idl @@ -0,0 +1,41 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * 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/. + */ + +module com { module sun { module star { module datatransfer { + +interface XTransferable2 : com::sun::star::datatransfer::XTransferable +{ + /** This is equivalent of getTransferData of XTransferable, but takes an + additional parameter that specifies the destination document type. + + @param aFlavor requested data format + @param aDestShellID destination document shell ID. The ID of each + individual shell must be unique. + + @returns data in specified data format. + + @throws com::sun::star::io::IOException + if the data is no longer available in the requested flavor. + + @throws com::sun::star::datatransfer::UnsupportedFlavorException + if the requested DataFlavor is not supported. + */ + any getTransferData2( [in] DataFlavor aFlavor, [in] string aDestShellID ) + raises ( UnsupportedFlavorException, com::sun::star::io::IOException ); + + /** + * Returns true if the selection contains embedded objects or is a large text blob. + * + * @since LibreOffice 6.4 + */ + boolean isComplex(); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ + diff --git a/offapi/com/sun/star/datatransfer/XTransferableEx.idl b/offapi/com/sun/star/datatransfer/XTransferableEx.idl new file mode 100644 index 0000000000..3a09c5c5df --- /dev/null +++ b/offapi/com/sun/star/datatransfer/XTransferableEx.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 . + */ + + +module com { module sun { module star { module datatransfer { + +/** Interface to be implemented by objects used to provide data for a transfer + operation. + + @see com::sun::star::datatransfer::DataFlavor + @see com::sun::star::datatransfer::XTransferable +*/ + + +published interface XTransferableEx: com::sun::star::uno::XInterface +{ + /** @param requestedFlavors + Sequence of DataFlavor of interest. Specify an empty sequence for interest + in all data flavors with top-level MIME content-types. To get all MIME + content-types, call com::sun::star::datatransfer::XTransferable::getTransferDataFlavors(). + + @returns + The list of the matching supported DataFlavor that were requested. For + each requested top-level MIME content-type, all supported subtypes are returned. + */ + sequence < DataFlavor > queryTransferDataFlavors( [in] sequence< DataFlavor > requestedFlavors ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/XTransferableSource.idl b/offapi/com/sun/star/datatransfer/XTransferableSource.idl new file mode 100644 index 0000000000..a98a63689b --- /dev/null +++ b/offapi/com/sun/star/datatransfer/XTransferableSource.idl @@ -0,0 +1,40 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module datatransfer { + +/** The transferable source interface. + + @see com::sun::star::datatransfer::XTransferable +*/ + +published interface XTransferableSource: com::sun::star::uno::XInterface +{ + /** @returns + A human presentable description of the source that created the + transferable object. + */ + string getDataSourceDescription(); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/XTransferableSupplier.idl b/offapi/com/sun/star/datatransfer/XTransferableSupplier.idl new file mode 100644 index 0000000000..a2a777eacc --- /dev/null +++ b/offapi/com/sun/star/datatransfer/XTransferableSupplier.idl @@ -0,0 +1,54 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module datatransfer { + +interface XTransferableSupplier +{ + /** To get access to a transferable representation of a selected part of an object. + + @returns + The transferable object representing the selection inside the supplying object + + @see com::sun::star::datatransfer::XTransferable + */ + XTransferable getTransferable(); + + /** Hands over a transferable object that shall be inserted. + + @param xTrans + The transferable object to be inserted +
A NULL value is not allowed.
+ + @throws com::sun::star::datatransfer::UnsupportedFlavorException + if the given com::sun::star::datatransfer::XTransferable + has no com::sun::star::datatransfer::DataFlavor or the called + object can't handle any of the available ones. + + @see com::sun::star::datatransfer::XTransferable + */ + void insertTransferable( [in] XTransferable xTrans ) + raises ( UnsupportedFlavorException ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/XTransferableTextSupplier.idl b/offapi/com/sun/star/datatransfer/XTransferableTextSupplier.idl new file mode 100644 index 0000000000..7b4c84ecb2 --- /dev/null +++ b/offapi/com/sun/star/datatransfer/XTransferableTextSupplier.idl @@ -0,0 +1,36 @@ +/* -*- 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/. + * + */ + + +module com { module sun { module star { module datatransfer { + +/** @since LibreOffice 7.2 + */ +interface XTransferableTextSupplier +{ + /** Provide access to a transferable representation of a given text + range. + + @param xRange a text range known to the supplier. + + @returns + a transferable object representing the given text range. + + @see com::sun::star::datatransfer::XTransferable + */ + XTransferable getTransferableForTextRange( + [in] com::sun::star::text::XTextRange xRange); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/clipboard/ClipboardEvent.idl b/offapi/com/sun/star/datatransfer/clipboard/ClipboardEvent.idl new file mode 100644 index 0000000000..9c651cb0f0 --- /dev/null +++ b/offapi/com/sun/star/datatransfer/clipboard/ClipboardEvent.idl @@ -0,0 +1,38 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module datatransfer { module clipboard { + +/** A clipboard uses this object to notify its listeners of content changes. + + @see com::sun::star::datatransfer::clipboard::XClipboardListener +*/ + +published struct ClipboardEvent: com::sun::star::lang::EventObject +{ + /** The current content of the clipboard. + */ + com::sun::star::datatransfer::XTransferable Contents; +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/clipboard/ClipboardManager.idl b/offapi/com/sun/star/datatransfer/clipboard/ClipboardManager.idl new file mode 100644 index 0000000000..88880823f5 --- /dev/null +++ b/offapi/com/sun/star/datatransfer/clipboard/ClipboardManager.idl @@ -0,0 +1,45 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module datatransfer { module clipboard { + + + published interface XClipboardManager; + +/** The clipboard manager is a one-instance service that holds a list of all + known clipboard instances. + + @see XClipboardManager +*/ +published service ClipboardManager +{ + /** Manages internal and external clipboard implementations. + */ + interface XClipboardManager; + + /** For shutdown and listener support. + */ + interface com::sun::star::lang::XComponent; +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/clipboard/GenericClipboard.idl b/offapi/com/sun/star/datatransfer/clipboard/GenericClipboard.idl new file mode 100644 index 0000000000..046f2abe41 --- /dev/null +++ b/offapi/com/sun/star/datatransfer/clipboard/GenericClipboard.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 . + */ + + +module com { module sun { module star { module datatransfer { module clipboard { + + + published interface XClipboardEx; + published interface XClipboardNotifier; + +/** A generic clipboard service is a simple container for transferable objects. +*/ +published service GenericClipboard +{ + /** Provides access to the clipboard content. + */ + interface XClipboardEx; + + /** Provides the ability to request notifications on content changes. + */ + interface XClipboardNotifier; + + /** Provides the ability to initially set the name of the clipboard. + */ + interface com::sun::star::lang::XInitialization; + + /** For shutdown and listener support. + */ + interface com::sun::star::lang::XComponent; +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/clipboard/LokClipboard.idl b/offapi/com/sun/star/datatransfer/clipboard/LokClipboard.idl new file mode 100644 index 0000000000..4d9d3dea06 --- /dev/null +++ b/offapi/com/sun/star/datatransfer/clipboard/LokClipboard.idl @@ -0,0 +1,35 @@ +/* -*- 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_datatransfer_clipboard_LokClipboard_idl__ +#define __com_sun_star_datatransfer_clipboard_LokClipboard_idl__ + +#includeIf the given com::sun::star::datatransfer::XTransferable + has no com::sun::star::datatransfer::DataFlavor the clipboard + will be deleted. +
A NULL value is not allowed.
+ + @param xClipboardOwner + The new owner of the clipboard. +NULL is an acceptable value and means that the + caller is not interested in lost ownership notifications.
+ + @see com::sun::star::datatransfer::XTransferable + @see com::sun::star::datatransfer::clipboard::XClipboardOwner + */ + void setContents( [in] com::sun::star::datatransfer::XTransferable xTrans, [in] XClipboardOwner xClipboardOwner ); + + /** To get the name of the clipboard instance. + + @returns + The name of this clipboard object. +If the returned string is empty the + clipboard instance is the system clipboard.
+ */ + string getName(); +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/clipboard/XClipboardEx.idl b/offapi/com/sun/star/datatransfer/clipboard/XClipboardEx.idl new file mode 100644 index 0000000000..dc73526a8a --- /dev/null +++ b/offapi/com/sun/star/datatransfer/clipboard/XClipboardEx.idl @@ -0,0 +1,43 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module datatransfer { module clipboard { + +/** The extended clipboard interface. + + @see com::sun::star::datatransfer::clipboard::XClipboard +*/ + +published interface XClipboardEx: com::sun::star::datatransfer::clipboard::XClipboard +{ + /** To determine the supported rendering capabilities of the clipboard instance. + + @returns + A set of flags describing the rendering capabilities of the clipboard instance. + + @see RenderingCapabilities + */ + byte getRenderingCapabilities(); +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/clipboard/XClipboardFactory.idl b/offapi/com/sun/star/datatransfer/clipboard/XClipboardFactory.idl new file mode 100644 index 0000000000..92549ae0cd --- /dev/null +++ b/offapi/com/sun/star/datatransfer/clipboard/XClipboardFactory.idl @@ -0,0 +1,52 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module datatransfer { module clipboard { + + published interface XClipboard; + +/** Should be implemented by a clipboard factory that simplifies the creation of + multiple clipboard instances. + + @see com::sun::star::datatransfer::clipboard::XClipboard +*/ + +published interface XClipboardFactory: com::sun::star::uno::XInterface +{ + /** Creates a new named clipboard instance. + + @returns + A newly created instance of a GenericClipboard + implementation. + + @param aName + The name the clipboard should have. + + @throws com::sun::star::lang::IllegalArgumentException + If an empty string is passed as clipboard name. + */ + XClipboard createClipboard( [in] string aName ) + raises ( com::sun::star::lang::IllegalArgumentException ); +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/clipboard/XClipboardListener.idl b/offapi/com/sun/star/datatransfer/clipboard/XClipboardListener.idl new file mode 100644 index 0000000000..fc9daf09f1 --- /dev/null +++ b/offapi/com/sun/star/datatransfer/clipboard/XClipboardListener.idl @@ -0,0 +1,42 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module datatransfer { module clipboard { + +/** Interface to be implemented to receive notifications on clipboard content + changes. +*/ + +published interface XClipboardListener: com::sun::star::lang::XEventListener +{ + /** The content of the clipboard has changed. + + @param event + The event object containing the new clipboard content. + + @see com::sun::star::datatransfer::clipboard::ClipboardEvent + */ + void changedContents( [in] ClipboardEvent event ); +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/clipboard/XClipboardManager.idl b/offapi/com/sun/star/datatransfer/clipboard/XClipboardManager.idl new file mode 100644 index 0000000000..02eaefc6eb --- /dev/null +++ b/offapi/com/sun/star/datatransfer/clipboard/XClipboardManager.idl @@ -0,0 +1,80 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module datatransfer { module clipboard { + + published interface XClipboard; + +/** This interface is used to retrieve, add, or remove clipboard instances. + + @see com::sun::star::datatransfer::clipboard::XClipboard +*/ + +published interface XClipboardManager: com::sun::star::uno::XInterface +{ + /** Get a clipboard instance by name. + + @returns + The clipboard object with the specified name. + + @param aName + The name of clipboard to return. To retrieve the default (system) + clipboard, pass an empty string. + + @throws com::sun::star::container::NoSuchElementException + if no clipboard with the specified name exists. + */ + XClipboard getClipboard( [in] string aName ) + raises ( com::sun::star::container::NoSuchElementException ); + + /** Add a clipboard instance to the manager's list. + + @param xClipboard + The clipboard to add. + + @throws com::sun::star::IllegalArgumentException + if xClipboard is not a valid clipboard. + + @throws com::sun::star::container::ElementExistsException + if a clipboard with the name of xClipboard already exists. + */ + void addClipboard( [in] XClipboard xClipboard ) + raises ( com::sun::star::lang::IllegalArgumentException, + com::sun::star::container::ElementExistException ); + + /** Removes the clipboard with the specified name from the list. + + @param aName + The name of the clipboard to remove. + */ + void removeClipboard( [in] string aName ); + + /** Get a list of a managed clipboards. + + @returns + A sequence of the names of all available clipboards. + */ + sequence < string > listClipboardNames(); +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/clipboard/XClipboardNotifier.idl b/offapi/com/sun/star/datatransfer/clipboard/XClipboardNotifier.idl new file mode 100644 index 0000000000..e337a617cb --- /dev/null +++ b/offapi/com/sun/star/datatransfer/clipboard/XClipboardNotifier.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 . + */ + + +module com { module sun { module star { module datatransfer { module clipboard { + +/** Provides the ability to request notifications on clipboard content changes. + + @see com::sun::star::datatransfer::clipboard::XClipboardListener +*/ + + published interface XClipboardListener; + +published interface XClipboardNotifier: com::sun::star::uno::XInterface +{ + /** Requests notifications on clipboard content changes. + + @param listener + The object receiving the notifications. + */ + void addClipboardListener( [in] XClipboardListener listener ); + + /** Removes listener from notification list. + + @param listener + The object to remove from notification list. + */ + void removeClipboardListener( [in] XClipboardListener listener ); +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/clipboard/XClipboardOwner.idl b/offapi/com/sun/star/datatransfer/clipboard/XClipboardOwner.idl new file mode 100644 index 0000000000..90890cc021 --- /dev/null +++ b/offapi/com/sun/star/datatransfer/clipboard/XClipboardOwner.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 . + */ + + +module com { module sun { module star { module datatransfer { module clipboard { + + published interface XClipboard; + +/** The owner of a transferable object may pass this interface to the + clipboard instance. + + @see com::sun::star::datatransfer::clipboard::XClipboard +*/ + +published interface XClipboardOwner: com::sun::star::uno::XInterface +{ + /** Notifies the transferable object source that it is no longer the owner of + the clipboard. + + @param xClipboard + The clipboard for which the ownership was lost. + + @param xTrans + The transferable object that has been the contents of the clipboard. + + @see com::sun::star::datatransfer::clipboard::XClipboard + @see com::sun::star::datatransfer::XTransferable + */ + void lostOwnership( [in] XClipboard xClipboard, [in] com::sun::star::datatransfer::XTransferable xTrans ); +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/clipboard/XFlushableClipboard.idl b/offapi/com/sun/star/datatransfer/clipboard/XFlushableClipboard.idl new file mode 100644 index 0000000000..12f8934840 --- /dev/null +++ b/offapi/com/sun/star/datatransfer/clipboard/XFlushableClipboard.idl @@ -0,0 +1,41 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module datatransfer { module clipboard { + +/** An interface for flushable clipboards may optionally be implemented by a + system clipboard service. + + @see com::sun::star::datatransfer::clipboard::SystemClipboard +*/ + + +published interface XFlushableClipboard: com::sun::star::uno::XInterface +{ + /** Renders the current content of the clipboard to the system so that it + is available even if the source application no longer exist. + */ + void flushClipboard(); +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/clipboard/XSystemClipboard.idl b/offapi/com/sun/star/datatransfer/clipboard/XSystemClipboard.idl new file mode 100644 index 0000000000..9b8483d487 --- /dev/null +++ b/offapi/com/sun/star/datatransfer/clipboard/XSystemClipboard.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 . + */ + +module com { module sun { module star { module datatransfer { module clipboard { + + +/** + Provides a unified interface for new-style service SystemClipboard. + + @since LibreOffice 4.2 +*/ +published interface XSystemClipboard +{ + /** Provides access to the clipboard content. + */ + interface XClipboardEx; + + /** Provides the ability to request notifications on content changes. + */ + interface XClipboardNotifier; + + /** Provides the ability to render the complete clipboard content. This + interface is only available if the method + com::sun::star::datatransfer::clipboard::XClipboardEx::getRenderingCapabilities() + returns Persistent + */ + [optional] interface XFlushableClipboard; + + /** For shutdown and listener support. + */ + interface com::sun::star::lang::XComponent; +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/dnd/DNDConstants.idl b/offapi/com/sun/star/datatransfer/dnd/DNDConstants.idl new file mode 100644 index 0000000000..f2a5853c5d --- /dev/null +++ b/offapi/com/sun/star/datatransfer/dnd/DNDConstants.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 . + */ + + +module com { module sun { module star { module datatransfer { module dnd { + +/** These values represent the type of action or actions to be performed by a + Drag and Drop operation. +*/ + +published constants DNDConstants +{ + /** No action. + */ + + const byte ACTION_NONE = 0x00; + + /** Action copy. + */ + + const byte ACTION_COPY = 0x01; + + /** Action move. + */ + + const byte ACTION_MOVE = 0x02; + + /** Action copy or move. + */ + + const byte ACTION_COPY_OR_MOVE = 0x03; + + /** Action link. + */ + + const byte ACTION_LINK = 0x04; + + /** Action reference. + */ + + const byte ACTION_REFERENCE = 0x04; + + /** Action default. + */ + + const byte ACTION_DEFAULT = -0x80; +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/dnd/DragGestureEvent.idl b/offapi/com/sun/star/datatransfer/dnd/DragGestureEvent.idl new file mode 100644 index 0000000000..6dcf639eaf --- /dev/null +++ b/offapi/com/sun/star/datatransfer/dnd/DragGestureEvent.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 . + */ + + +module com { module sun { module star { module datatransfer { module dnd { + + published interface XDragSource; + +/** A DragGestureEvent is passed to the method XDragGestureListener::dragGestureRecognized() + when a particular XDragGestureRecognizer detects that a platform + dependent drag initiating gesture has occurred on the component that it is + tracking. +*/ + +published struct DragGestureEvent: com::sun::star::lang::EventObject +{ + /** The action selected by the user. +Different constants may be combined using a logical OR.
+ It's further possible to combine the ACTION_DEFAULT with one of the other + actions defined in com::sun::star::datatransfer::dnd::DNDConstants. + This means the user did not press any key during the Drag and Drop operation + and the action that was combined with ACTION_DEFAULT is the system default action. + + @see com::sun::star::datatransfer::dnd::DNDConstants + */ + + byte DragAction; + + /** The x coordinate where the drag originated in component coordinates. + */ + + long DragOriginX; + + /** The y coordinate where the drag originated in component coordinates. + */ + + long DragOriginY; + + /** The DragSource associated with this drag action. + */ + + XDragSource DragSource; + + /** The last event comprising the gesture. + +The initial trigger event will presumably be a com::sun::star::awt::MouseEvent event. + If it is not, the implementation should either react accordingly or + presume that the left mouse button was clicked.
+ */ + + any Event; +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/dnd/DragSourceDragEvent.idl b/offapi/com/sun/star/datatransfer/dnd/DragSourceDragEvent.idl new file mode 100644 index 0000000000..f4c320bdca --- /dev/null +++ b/offapi/com/sun/star/datatransfer/dnd/DragSourceDragEvent.idl @@ -0,0 +1,52 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module datatransfer { module dnd { + +/** The DragSourceDragEvent is delivered from an object that + implements the XDragSourceContext to the + currently registered drag source listener. + +It contains state regarding the current state of the operation to enable + the operations initiator to provide the end user with the appropriate drag + over feedback.
+ + @see com::sun::star::datatransfer::dnd::XDragSourceListener +*/ + +published struct DragSourceDragEvent: com::sun::star::datatransfer::dnd::DragSourceEvent +{ + /** The drag action selected by the current drop target. + + @see com::sun::star::datatransfer::dnd::DNDConstants + */ + byte DropAction; + + /** The user's currently selected drop action. + + @see com::sun::star::datatransfer::dnd::DNDConstants + */ + byte UserAction; +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/dnd/DragSourceDropEvent.idl b/offapi/com/sun/star/datatransfer/dnd/DragSourceDropEvent.idl new file mode 100644 index 0000000000..2fbac3e1e7 --- /dev/null +++ b/offapi/com/sun/star/datatransfer/dnd/DragSourceDropEvent.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 . + */ + + +module com { module sun { module star { module datatransfer { module dnd { + +/** The DragSourceDropEvent is delivered from an object that implements + XDragSourceContext to its currently registered drag source listener's. + +It contains sufficient information for the originator of the operation to + provide appropriate feedback to the end user when the operation completes.
+ + @see com::sun::star::datatransfer::dnd::XDragSourceListener +*/ + +published struct DragSourceDropEvent: com::sun::star::datatransfer::dnd::DragSourceEvent +{ + /** The action performed by the target on the subject of the drop. + + @see com::sun::star::datatransfer::dnd::DNDConstants + */ + + byte DropAction; + + /** Indicates if the drop was successful. + */ + + boolean DropSuccess; +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/dnd/DragSourceEvent.idl b/offapi/com/sun/star/datatransfer/dnd/DragSourceEvent.idl new file mode 100644 index 0000000000..16c30ceb80 --- /dev/null +++ b/offapi/com/sun/star/datatransfer/dnd/DragSourceEvent.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 . + */ + + +module com { module sun { module star { module datatransfer { module dnd { + + published interface XDragSource; + published interface XDragSourceContext; + +/** This class is the base class for DragSourceDragEvent and DragSourceDropEvent. + +To access the XDragSource that originated this event, use the + com::sun::star::lang::EventObject::Source member of + this object.
+*/ + +published struct DragSourceEvent: com::sun::star::lang::EventObject +{ + /** The drag source context of the current drag operation. + + @see com::sun::star::datatransfer::dnd::XDragSourceContext + */ + + XDragSourceContext DragSourceContext; + + /** The drag source on which the Drag and Drop operation was initiated. + + @see com::sun::star::datatransfer::dnd::XDragSource + */ + + XDragSource DragSource; +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/dnd/DropTargetDragEnterEvent.idl b/offapi/com/sun/star/datatransfer/dnd/DropTargetDragEnterEvent.idl new file mode 100644 index 0000000000..79a546199a --- /dev/null +++ b/offapi/com/sun/star/datatransfer/dnd/DropTargetDragEnterEvent.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 . + */ + + +module com { module sun { module star { module datatransfer { module dnd { + +/** The DropTargetDragEnterEvent is delivered from the drop target to the + currently registered drop target listeners whenever the logical cursor + associated with a Drag and Drop operation enters the visible geometry + of a window associated with a drop target. + +It contains the com::sun::star::datatransfer::DataFlavor + types supported by the transferable object of the current Drag and Drop operation.
+ + @see com::sun::star::datatransfer::XTransferable +*/ + +published struct DropTargetDragEnterEvent: DropTargetDragEvent +{ + /** A sequence of supported com::sun::star::datatransfer::DataFlavor types. + + */ + + sequence< com::sun::star::datatransfer::DataFlavor > SupportedDataFlavors; +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/dnd/DropTargetDragEvent.idl b/offapi/com/sun/star/datatransfer/dnd/DropTargetDragEvent.idl new file mode 100644 index 0000000000..66d75d1f7f --- /dev/null +++ b/offapi/com/sun/star/datatransfer/dnd/DropTargetDragEvent.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 . + */ + + +module com { module sun { module star { module datatransfer { module dnd { + + published interface XDropTargetDragContext; + +/** The DropTargetDragEvent is delivered from the drop target + to the currently registered drop target listener. + +It contains information regarding the current state of the operation to enable + the operations initiator to provide the end user with the appropriate drag + over feedback.
+ + @see com::sun::star::datatransfer::dnd::XDropTargetListener +*/ + +published struct DropTargetDragEvent: com::sun::star::datatransfer::dnd::DropTargetEvent +{ + /** The drop target context of the current drag operation. + + @see com::sun::star::datatransfer::dnd::XDropTargetDragContext + */ + + XDropTargetDragContext Context; + + /** This value represents the currently selected drop action. + + @see com::sun::star::datatransfer::dnd::DNDConstants + */ + + byte DropAction; + + /** The cursor's current x location within the window's coordinates. + */ + + long LocationX; + + /** The cursor's current y location within the window's coordinates. + */ + + long LocationY; + + /** This value represents the action or actions supported by the source. + This may be a combination of arbitrary source actions except ACTION_DEFAULT. +To combine different actions use a logical OR.
+ + @see com::sun::star::datatransfer::dnd::DNDConstants + */ + + byte SourceActions; +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/dnd/DropTargetDropEvent.idl b/offapi/com/sun/star/datatransfer/dnd/DropTargetDropEvent.idl new file mode 100644 index 0000000000..5f39ed902b --- /dev/null +++ b/offapi/com/sun/star/datatransfer/dnd/DropTargetDropEvent.idl @@ -0,0 +1,78 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module datatransfer { module dnd { + + published interface XDropTargetDropContext; + +/** The DropTargetDropEvent is delivered from the drop target to + its currently registered drop target listener. + +It contains sufficient information for the originator of the operation to + provide appropriate feedback to the end user when the operation completes.
+*/ + +published struct DropTargetDropEvent: com::sun::star::datatransfer::dnd::DropTargetEvent +{ + /** The drop target context of the current drag operation. + + @see com::sun::star::datatransfer::dnd::XDropTargetDropContext + */ + + XDropTargetDropContext Context; + + /** This value represents the action or actions selected by the user at + the time of the drop. + +If more than one action is specified, the XDropTargetListener + should raise a dialog to ask the user which action to use.
+ + @see com::sun::star::datatransfer::dnd::DNDConstants + */ + + byte DropAction; + + /** The cursor's current x location within the window's coordinates. + */ + + long LocationX; + + /** The cursor's current y location within the window's coordinates. + */ + + long LocationY; + + /** This value represents the action or actions supported by the source. + */ + + byte SourceActions; + + /** The transferable object associated with the drop. + + @see com::sun::star::datatransfer::XTransferable + */ + + com::sun::star::datatransfer::XTransferable Transferable; +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/dnd/DropTargetEvent.idl b/offapi/com/sun/star/datatransfer/dnd/DropTargetEvent.idl new file mode 100644 index 0000000000..a67cbf13be --- /dev/null +++ b/offapi/com/sun/star/datatransfer/dnd/DropTargetEvent.idl @@ -0,0 +1,42 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module datatransfer { module dnd { + +/** This class is the base class for DropTargetDragEvent and + DropTargetDropEvent. + +To access the XDropTarget that originated this event, use the + com::sun::star::lang::EventObject::Source member of + this object.
+*/ + +published struct DropTargetEvent: com::sun::star::lang::EventObject +{ + /** UNO specification does not allow empty struct definitions. + */ + + byte Dummy; +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/dnd/InvalidDNDOperationException.idl b/offapi/com/sun/star/datatransfer/dnd/InvalidDNDOperationException.idl new file mode 100644 index 0000000000..5a42eb4b71 --- /dev/null +++ b/offapi/com/sun/star/datatransfer/dnd/InvalidDNDOperationException.idl @@ -0,0 +1,38 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module datatransfer { module dnd { + +/** This exception is thrown by various methods in the datatransfer.dnd + package. + +It is usually thrown to indicate that the target in question is unable + to undertake the requested operation at the present time, since the + underlying Drag and Drop system is not in the appropriate state.
+*/ + +published exception InvalidDNDOperationException: com::sun::star::uno::RuntimeException +{ +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/dnd/OleDragSource.idl b/offapi/com/sun/star/datatransfer/dnd/OleDragSource.idl new file mode 100644 index 0000000000..b952f3658a --- /dev/null +++ b/offapi/com/sun/star/datatransfer/dnd/OleDragSource.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 . + */ + + +module com { module sun { module star { module datatransfer { module dnd { + + + published interface XDragSource; + +/** This service connects the Java-like UNO drag and drop protocol to the protocol + used on window platforms. It realized the drag source. + + @see XDragSource +*/ + +published service OleDragSource +{ + /** Used to provide data to other applications via the Ole Drag & Drop protocol. + */ + interface XDragSource; + + /** The service expects a byte sequence uniquely identifying the machine as + the first, and only, parameter. This identifier should be checked to + ensure that the window ids used for creating DropTargets are valid for + the service, that is, come from the same machine. + +TODO: specify how such a machine id should look like.
+ + The second parameter is a window handle of the native windows window. + It is passed as an unsigned long. + */ + interface com::sun::star::lang::XInitialization; + + /** For shutdown and listener support. + */ + interface com::sun::star::lang::XComponent; +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/dnd/OleDropTarget.idl b/offapi/com/sun/star/datatransfer/dnd/OleDropTarget.idl new file mode 100644 index 0000000000..2a6e87288e --- /dev/null +++ b/offapi/com/sun/star/datatransfer/dnd/OleDropTarget.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 . + */ + + +module com { module sun { module star { module datatransfer { module dnd { + + +published interface XDropTarget; + +/** This service connects the Java-like UNO Drag & Drop protocol to the protocol + used on window platforms. It realizes the drop target. + + @see XDropTarget +*/ + +published service OleDropTarget +{ + /** Used to provide data to other applications via Ole Drag & Drop protocol. + */ + interface XDropTarget; + + /** The service expects a windows window handle. It is passed as unsigned long. + */ + interface com::sun::star::lang::XInitialization; + + /** For shutdown and listener support. + */ + interface com::sun::star::lang::XComponent; +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/dnd/X11DragSource.idl b/offapi/com/sun/star/datatransfer/dnd/X11DragSource.idl new file mode 100644 index 0000000000..8adc046ac9 --- /dev/null +++ b/offapi/com/sun/star/datatransfer/dnd/X11DragSource.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 . + */ + + +module com { module sun { module star { module datatransfer { module dnd { + + + published interface XDragSource; + +/** This service connects the Java-like UNO Drag and Drop protocol to the + X Drag and Drop protocol used on X-Servers to transfer data between + applications via Drag and Drop operations. + + @see XDragSource +*/ + +published service X11DragSource +{ + /** Used to provide data to other applications via X Drag and Drop protocol. + */ + interface XDragSource; + + /** The service expects an instance of + com::sun::star::awt::XDisplayConnection + as the first parameter. + */ + interface com::sun::star::lang::XInitialization; + + /** For shutdown and listener support. + */ + interface com::sun::star::lang::XComponent; +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/dnd/X11DropTarget.idl b/offapi/com/sun/star/datatransfer/dnd/X11DropTarget.idl new file mode 100644 index 0000000000..0b3b17a822 --- /dev/null +++ b/offapi/com/sun/star/datatransfer/dnd/X11DropTarget.idl @@ -0,0 +1,56 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module datatransfer { module dnd { + + + published interface XDropTarget; + +/** This service connects the Java-like UNO Drag and Drop protocol to the + X Drag and Drop protocol used on X-Servers to transfer data between + application via Drag and Drop operations. + + @see XDragSource + @see XDropTarget +*/ + +published service X11DropTarget +{ + /** Used to get data from other applications via X Drag and Drop protocol. + */ + interface XDropTarget; + + /** The service expects an instance of + com::sun::star::awt::XDisplayConnection + as the first parameter. The second parameter must be a long + that contains an XWindow window which shall be registered + as drop target. + */ + interface com::sun::star::lang::XInitialization; + + /** For shutdown and listener support. + */ + interface com::sun::star::lang::XComponent; +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/dnd/XAutoscroll.idl b/offapi/com/sun/star/datatransfer/dnd/XAutoscroll.idl new file mode 100644 index 0000000000..5461ee7e1e --- /dev/null +++ b/offapi/com/sun/star/datatransfer/dnd/XAutoscroll.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 . + */ + + +module com { module sun { module star { module datatransfer { module dnd { + +/** Interface for autoscroll support. + +During Drag and Drop operations it is possible that a user may wish to drop the + subject of the operation on a region of a scrollable GUI control that is + not currently visible to the user.
+ +In such situations it is desirable that the GUI control detect this and + institute a scroll operation in order to make obscured region(s) visible to + the user. This feature is known as autoscrolling.
+ +If a GUI control is both an active DropTarget and is also scrollable, + it can receive notifications of autoscrolling gestures by the user from + the Drag and Drop system by implementing this interface.
+ +An autoscrolling gesture is initiated by the user by keeping the drag + cursor motionless with a border region of the Component, referred to as + the "autoscrolling region", for a predefined period of time, this will + result in repeated scroll requests to the Component until the drag Cursor + resumes its motion.
+*/ + +published interface XAutoscroll: com::sun::star::uno::XInterface +{ + /** Notify the component to autoscroll. + + @param cursorLocationX + X location of the cursor in pixel. + + @param cursorLocationY + Y location of the cursor in pixel. + */ + + void autoscroll( [in] long cursorLocationX, [in] long cursorLocationY ); + + /** Returns the regions describing the autoscrolling region. + + @returns + The regions describing the autoscrolling region or border + relative to the geometry of the implementing component. + */ + + any getAutoscrollRegion(); +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/dnd/XDragGestureListener.idl b/offapi/com/sun/star/datatransfer/dnd/XDragGestureListener.idl new file mode 100644 index 0000000000..e60b65e3de --- /dev/null +++ b/offapi/com/sun/star/datatransfer/dnd/XDragGestureListener.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 . + */ + + +module com { module sun { module star { module datatransfer { module dnd { + +/** This interface will be used by a XDragGestureRecognizer + when it detects a drag initiating gesture. + +The implementor of this interface is responsible for starting the drag + as a result of receiving such notification.
+ +*/ + +published interface XDragGestureListener: com::sun::star::lang::XEventListener +{ + /** A XDragGestureRecognizer has detected a platform-dependent + drag initiating gesture and is notifying this listener in order + for it to initiate the action for the user. + + @param dge + The DragGestureEvent describing the gesture that has just occurred. + + */ + void dragGestureRecognized( [in] DragGestureEvent dge ); +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/dnd/XDragGestureRecognizer.idl b/offapi/com/sun/star/datatransfer/dnd/XDragGestureRecognizer.idl new file mode 100644 index 0000000000..5076bf332f --- /dev/null +++ b/offapi/com/sun/star/datatransfer/dnd/XDragGestureRecognizer.idl @@ -0,0 +1,63 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module datatransfer { module dnd { + + published interface XDragGestureListener; + +/** This interface is implemented by a view or window that supports drag + operations. + +Different to Java, the association between view and interface is fixed + and cannot be changed. Otherwise, the AWT messaging would have to be + implemented for any window supporting Drag and Drop operations, which would + be a performance issue.
+*/ + +published interface XDragGestureRecognizer: com::sun::star::uno::XInterface +{ + /** Registers a new XDragGestureListener. + + @param dgl + The XDragGestureListener to register with this + XDragGestureRecognizer. + */ + + void addDragGestureListener( [in] XDragGestureListener dgl ); + + /** Unregisters the specified XDragGestureListener. + + @param dgl + The XDragGestureListener to register with this + XDragGestureRecognizer. + */ + + void removeDragGestureListener( [in] XDragGestureListener dgl ); + + /** Reset the recognizer. If it is currently recognizing a gesture, ignore it. + */ + + void resetRecognizer(); +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/dnd/XDragSource.idl b/offapi/com/sun/star/datatransfer/dnd/XDragSource.idl new file mode 100644 index 0000000000..f5f90c21b5 --- /dev/null +++ b/offapi/com/sun/star/datatransfer/dnd/XDragSource.idl @@ -0,0 +1,106 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module datatransfer { module dnd { + + published interface XDragSourceListener; + +/** This interface is implemented by a view or window that supports drag + operations and will be received as part of a DragGestureEvent + through a com::sun::star::datatransfer::dnd::XDragGestureListener::dragGestureRecognized() + callback. + +Differently to Java, the association between view and interface is fixed + and can not be changed. Otherwise, the AWT messaging would have to be + implemented for any window supporting Drag and Drop operations, which would + be a real performance issue.
+*/ + +published interface XDragSource: com::sun::star::uno::XInterface +{ + + /** In order to query if drag image support is available. + + @returns + A boolean indicating whether or not drag image support is + available on the underlying platform. + */ + + boolean isDragImageSupported(); + + /** To get the default cursor for a specified drag action. + + @param dragAction + A drag action as specified in DNDConstants. + + @returns + The default drag cursor for the specified drag action. +The returned value may be used as parameter for the method + com::sun::star::datatransfer::dnd::XDragSourceContext::setCursor().
+ */ + + long getDefaultCursor( [in] byte dragAction ) + raises( com::sun::star::lang::IllegalArgumentException ); + + /** Starts the drag operation. + +Note: this call does not block until the drag and drop + operation ends. If the Drag and Drop system is unable to initiate + a drag operation or if the user attempts to start a drag while an + existing drag operation is still executing, the action fails immediately. + This is indicated by calling + com::sun::star::datatransfer::dnd::XDragSourceListener::dragDropEnd() + on the parameter listener with a DragSourceDragEvent showing a failure.
+ + @param trigger + The DragGestureEvent that initiated the drag. + + @param sourceActions + The action or actions supported for this transferable as defined + in DNDConstants. + + @param cursor + The initial drag cursor id or 0 as default. + + @param image + The initial drag image id or 0 as default. + + @param trans + The transferable object dragged. + + @param listener + The XDragSourceListener. + + @see com::sun::star::datatransfer::XTransferable + */ + + void startDrag( + [in] DragGestureEvent trigger, + [in] byte sourceActions, + [in] long cursor, + [in] long image, + [in] com::sun::star::datatransfer::XTransferable trans, + [in] XDragSourceListener listener ); +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/dnd/XDragSourceContext.idl b/offapi/com/sun/star/datatransfer/dnd/XDragSourceContext.idl new file mode 100644 index 0000000000..984a9752af --- /dev/null +++ b/offapi/com/sun/star/datatransfer/dnd/XDragSourceContext.idl @@ -0,0 +1,85 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module datatransfer { module dnd { + + published interface XDragSourceListener; + +/** The drag source context class is responsible for managing the initiator side + of the Drag and Drop protocol. + +In particular, it is responsible for managing event notifications to the + DragSourceListener and providing the Transferable state to enable the data + transfer.
+ +An instance of this class is created as a result of the method XDragSource::startDrag() + being successfully invoked. This instance is responsible + for tracking the state of the operation on behalf of the drag source and + dispatching state changes to the drag source listener.
+ + @see com::sun::star::datatransfer::dnd::XDragSourceContext + @see com::sun::star::datatransfer::dnd::XDragSourceListener +*/ + +published interface XDragSourceContext: com::sun::star::uno::XInterface +{ + /** Get the identifier of the currently used cursor. + + @returns + The currently selected drag cursor. + */ + + long getCurrentCursor(); + + /** This method sets the current drag cursor. + +This method should only be called to set another cursor than the + default one for drag action currently selected by the user.
+Invalid cursor identifiers will be ignored.
+ + @param cursorId + The identifier the drag source returned when registering the cursor. + */ + + void setCursor( [in] long cursorId ); + + /** This method sets the current drag image. + + @param imageId + The identifier the drag source returned when registering the image (0 = none). + Invalid identifier will be ignored. + */ + + void setImage( [in] long imageId ); + + /** This method notifies the context that the + com::sun::star::datatransfer::DataFlavor types + of the transferable object have changed. + + @see com::sun::star::datatransfer::XTransferable + */ + + void transferablesFlavorsChanged(); +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/dnd/XDragSourceListener.idl b/offapi/com/sun/star/datatransfer/dnd/XDragSourceListener.idl new file mode 100644 index 0000000000..30b62eac34 --- /dev/null +++ b/offapi/com/sun/star/datatransfer/dnd/XDragSourceListener.idl @@ -0,0 +1,83 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module datatransfer { module dnd { + +/** This interface must be implemented by any drag gesture recognizer + implementation that a drag source supports. + + @see com::sun::star::datatransfer::dnd::XDragGestureRecognizer + @see com::sun::star::datatransfer::dnd::XDragSource +*/ + +published interface XDragSourceListener: com::sun::star::lang::XEventListener +{ + /** This method is invoked to signify that the Drag and Drop operation is + complete. + + @param dsde + The DragSourceDropEvent + */ + + void dragDropEnd( [in] DragSourceDropEvent dsde ); + + /** Called as the hotspot enters a platform dependent drop site. + +NOTE: currently this notification can not be ensured by all + implementations. Do not rely on it !
+ + @param dsde + The DragSourceDragEvent. + */ + + void dragEnter( [in] DragSourceDragEvent dsde ); + + /** Called as the hotspot exits a platform dependent drop site. + +NOTE: Currently this notification can not be ensured by all + implementations. Do not rely on it !
+ + @param dse + The DragSourceEvent. + */ + + void dragExit( [in] DragSourceEvent dse ); + + /** Called as the hotspot moves over a platform dependent drop site. + + @param dsde + The DragSourceEvent + */ + + void dragOver( [in] DragSourceDragEvent dsde ); + + /** Called when the user has modified the drop gesture. + + @param dsde + The DragSourceEvent. + */ + + void dropActionChanged( [in] DragSourceDragEvent dsde ); +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/dnd/XDropTarget.idl b/offapi/com/sun/star/datatransfer/dnd/XDropTarget.idl new file mode 100644 index 0000000000..50292bf348 --- /dev/null +++ b/offapi/com/sun/star/datatransfer/dnd/XDropTarget.idl @@ -0,0 +1,102 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module datatransfer { module dnd { + + published interface XDropTargetListener; + +/** This interface is implemented by a view or window that supports drop + operations. + +Differently to Java, the association between view and interface is fixed + and cannot be changed. Otherwise, the AWT messaging would have to be + implemented for any window supporting Drag and Drop operations, which would + be a performance issue.
+*/ + +published interface XDropTarget: com::sun::star::uno::XInterface +{ + /** Add a DropTargetListener. + +The listener will be queried for the XAutoscroll interface + to see if it supports autoscrolling.
+ + @param dtl + The listener to add to the notification list. + */ + + void addDropTargetListener( [in] XDropTargetListener dtl ); + + /** Remove a drop target listener. + + @param dtl + The listener to remove from notification list. + */ + + void removeDropTargetListener( [in] XDropTargetListener dtl ); + + /** Indicates either a drop target object is active or not. + + @returns + A boolean indicating whether or not this drop target object is + currently active, that is ready to accept drops. + */ + + boolean isActive(); + + /** Sets the drop target object active or inactive. + + @param active + A value of `TRUE` sets the drop target object active. +A value of `FALSE` sets the drop target object inactive. + */ + + void setActive( [in] boolean active ); + + /** Determine the actions supported by a drop target. + + @returns + The current action or actions supported by this drop target. + +
By default this will include all drag and drop actions.
+ + @see com::sun::star::datatransfer::dnd::DNDConstants + */ + + byte getDefaultActions(); + + /** Sets the default acceptable actions for this drop target. + +This method is a way to reduce the number of Drag and Drop events + by blocking events for actions not supported by this target.
+By default the listener will receive notifications for all actions.
+ + @param actions + The actions. + + @see com::sun::star::datatransfer::dnd::DNDConstants + */ + void setDefaultActions( [in] byte actions ); +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/dnd/XDropTargetDragContext.idl b/offapi/com/sun/star/datatransfer/dnd/XDropTargetDragContext.idl new file mode 100644 index 0000000000..59b8fc09ca --- /dev/null +++ b/offapi/com/sun/star/datatransfer/dnd/XDropTargetDragContext.idl @@ -0,0 +1,67 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module datatransfer { module dnd { + +/** This interface is implemented by any drop target context object. + +A drop target context is created whenever the logical cursor associated + with a Drag and Drop operation moves within the visible geometry of a + window associated with a drop target.
+ +The drop target context provides the mechanism for a potential receiver + of a drop operation to both provide the end user with the appropriate drag + under feedback and effect the subsequent data transfer, if appropriate.
+*/ + +published interface XDropTargetDragContext: com::sun::star::uno::XInterface +{ + /** Accept the Drag. + +This method should be called from the methods of XDropTargetListener +
A DropTargetContext is created whenever the logical cursor associated + with a Drag and Drop operation moves within the visible geometry of a + window associated with a DropTarget.
+ +The drop target context provides the mechanism for a potential receiver + of a drop operation to provide the end user with the appropriate drag + under feedback and to effect the subsequent data transfer, if appropriate.
+*/ + +published interface XDropTargetDropContext : com::sun::star::uno::XInterface +{ + /** Accept the Drop. + +This method should be called from the + com::sun::star::datatransfer::dnd::XDropTargetListener::drop() + method if the implementation wishes to accept the drop operation with the specified action.
+ + @param dragOperation + The operation accepted by the target. + + @see DNDConstants + @see DropTargetDragEvent + */ + + void acceptDrop( [in] byte dragOperation ); + + /** Reject the drop as a result of examining the available + com::sun::star::datatransfer::DataFlavor types + received in the XDropTargetListener::dragEnter() method. + */ + + void rejectDrop(); + + /** Signals that the drop is completed and if it was successful or not. + + @param success + A value of `TRUE` means the drop completed successfully +A value of `FALSE` means the drop completed unsuccessfully.
+ */ + + void dropComplete( [in] boolean success ); +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/dnd/XDropTargetListener.idl b/offapi/com/sun/star/datatransfer/dnd/XDropTargetListener.idl new file mode 100644 index 0000000000..ae80c988e9 --- /dev/null +++ b/offapi/com/sun/star/datatransfer/dnd/XDropTargetListener.idl @@ -0,0 +1,85 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module datatransfer { module dnd { + +/** This interface is the callback interface used by the drop target object to + provide notification of Drag and Drop operations that involve the subject + drop target. + +Methods of this interface may be implemented to provide "drag under" + visual feedback to the user throughout the Drag and Drop operation.
+*/ + +published interface XDropTargetListener: com::sun::star::lang::XEventListener +{ + /** The drag operation has terminated with a drop on this drop target. + +NOTE: The implementation + has to wait until the method XDropTargetDropContext::dropComplete() + is called before releasing the data for the drop operation. This + should occur before returning from drop in a normal flow of operation. + Also, the implementor of XDropTargetListener should not assume + the DropTargetDropEvent to be meaningful after returning + from the XDropTargetListener::drop() method.
+ + @param dtde + The DropTargetDropEvent. + */ + + void drop( [in] DropTargetDropEvent dtde ); + + /** Called when a drag operation has encountered the drop target. + + @param dtdee + The DropTargetDragEvent. + */ + + void dragEnter( [in] DropTargetDragEnterEvent dtdee ); + + /** The drag operation has departed the drop target without dropping. + + @param dte + The DropTargetEvent. + */ + + void dragExit( [in] DropTargetEvent dte ); + + /** Called when a drag operation is ongoing on the drop target. + + @param dtde + The DropTargetEvent. + */ + + void dragOver( [in] DropTargetDragEvent dtde ); + + /** Called when the user has modified the drop gesture. + + @param dtde + The DropTargetEvent. + */ + + void dropActionChanged( [in] DropTargetDragEvent dtde ); +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/deployment/DependencyException.idl b/offapi/com/sun/star/deployment/DependencyException.idl new file mode 100644 index 0000000000..8165f27c11 --- /dev/null +++ b/offapi/com/sun/star/deployment/DependencyException.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 . + */ + +module com { module sun { module star { module xml { module dom { + interface XElement; +}; }; }; }; }; + +module com { module sun { module star { module deployment { + +/** + describes unsatisfied dependencies a deployment unit has on its target + environment. + +This exception is intended to be used with an + com::sun::star::task::XInteractionHandler.
+ + @since OOo 2.0.4 +*/ +exception DependencyException: com::sun::star::uno::Exception { + /** + a sequence of dependencies represented by XML elements. + +The exact nature of those XML elements is deliberately left open, so
+ that new kinds of dependencies can be defined in the future.
+ OOo 2.0.4 does not define any kinds of dependencies. Each such XML
+ element should have an attribute whose global name consists of the
+ namespace name
+ http://openoffice.org/extensions/description/2006
and the
+ local part name
and whose value is a human-readable
+ (English) description of the dependency. If an instance of OOo does not
+ know more about a specific kind of dependency, it should display the
+ value of that attribute to the user.
The sequence must not be empty, and none of the elements may be + `NULL`.
+ */ + sequence< com::sun::star::xml::dom::XElement > UnsatisfiedDependencies; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/deployment/DeploymentException.idl b/offapi/com/sun/star/deployment/DeploymentException.idl new file mode 100644 index 0000000000..1db9d9ba96 --- /dev/null +++ b/offapi/com/sun/star/deployment/DeploymentException.idl @@ -0,0 +1,36 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module deployment { + +/** A DeploymentException reflects a deployment error. + + @since OOo 2.0 + */ +exception DeploymentException : com::sun::star::uno::Exception +{ + /** reflects the cause of the error. Commonly an exception. + */ + any Cause; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/deployment/ExtensionManager.idl b/offapi/com/sun/star/deployment/ExtensionManager.idl new file mode 100644 index 0000000000..275391fc00 --- /dev/null +++ b/offapi/com/sun/star/deployment/ExtensionManager.idl @@ -0,0 +1,36 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module deployment { + +/** the ExtensionManager service. + + The component context entry is +
+ /singletons/com.sun.star.deployment.ExtensionManager
+
.
+
+ @since OOo 3.3
+*/
+singleton ExtensionManager : XExtensionManager;
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/deployment/ExtensionRemovedException.idl b/offapi/com/sun/star/deployment/ExtensionRemovedException.idl
new file mode 100644
index 0000000000..15353a5365
--- /dev/null
+++ b/offapi/com/sun/star/deployment/ExtensionRemovedException.idl
@@ -0,0 +1,37 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module deployment {
+
+interface XPackage;
+
+/**
+ indicates that a function call with the given arguments is not supported
+ because the extension was removed. XPackage::isRemoved() will
+ return true on that object.
+
+ @since OOo 3.3
+*/
+exception ExtensionRemovedException: com::sun::star::uno::Exception {
+
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/deployment/InstallException.idl b/offapi/com/sun/star/deployment/InstallException.idl
new file mode 100644
index 0000000000..137d827bba
--- /dev/null
+++ b/offapi/com/sun/star/deployment/InstallException.idl
@@ -0,0 +1,44 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module deployment {
+
+interface XPackage;
+
+/**
+ describes the fact that deployment unit is about to be installed.
+
+ This exception is intended to be used with an + com::sun::star::task::XInteractionHandler.
+ + @since OOo 2.2 +*/ +exception InstallException: com::sun::star::uno::Exception { + /** + the display name of the extension, which is to be installed. + + */ + string displayName; + + +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/deployment/InvalidRemovedParameterException.idl b/offapi/com/sun/star/deployment/InvalidRemovedParameterException.idl new file mode 100644 index 0000000000..9632a75bec --- /dev/null +++ b/offapi/com/sun/star/deployment/InvalidRemovedParameterException.idl @@ -0,0 +1,49 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module deployment { + +interface XPackage; + +/** + indicates that XPackageRegistry::bindPackage() was previously + called with a different value for theremoved
parameter and that
+ the XPackage object created by that call still exist.
+
+ @since OOo 3.3
+*/
+exception InvalidRemovedParameterException: com::sun::star::uno::Exception {
+ /** the value of the removed
parameter which was used in
+ XPackageRegistry::bindPackage() to create the currently
+ existing XPackage object.
+ */
+ boolean PreviousValue;
+ /**
+ the XPackage that was already bound to the provided
+ url
parameter during
+ XPackageRegistry::bindPackage().
+
+ Must not be `NULL`.
+ */ + XPackage Extension; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/deployment/LicenseException.idl b/offapi/com/sun/star/deployment/LicenseException.idl new file mode 100644 index 0000000000..92d1267128 --- /dev/null +++ b/offapi/com/sun/star/deployment/LicenseException.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 . + */ + + +module com { module sun { module star { module deployment { + +/** A LicenseException reflects the necessity of someone agreeing to a license. + + @since OOo 2.0.4 + */ +exception LicenseException : com::sun::star::uno::Exception +{ + /** name of the extension. + + The display name of the extension. + See XPackage::getDisplayName() + */ + string ExtensionName; + /** contains the text of the license. + */ + string Text; + + /** contains the value of the attribute + `/description/registration/simple-license/@accept-by` + from the description.xml + */ + string AcceptBy; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/deployment/PackageInformationProvider.idl b/offapi/com/sun/star/deployment/PackageInformationProvider.idl new file mode 100644 index 0000000000..15499c5b79 --- /dev/null +++ b/offapi/com/sun/star/deployment/PackageInformationProvider.idl @@ -0,0 +1,31 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module deployment { + +/** Implementations of this service provide the root location + of a package for a given Package ID. + + @since OOo 2.3 +*/ +singleton PackageInformationProvider : XPackageInformationProvider; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/deployment/PackageRegistryBackend.idl b/offapi/com/sun/star/deployment/PackageRegistryBackend.idl new file mode 100644 index 0000000000..ff5412c24c --- /dev/null +++ b/offapi/com/sun/star/deployment/PackageRegistryBackend.idl @@ -0,0 +1,57 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module deployment { + +/** The PackageRegistryBackend service is used to bind + a specific type of XPackage which can be registered or revoked. ++ All PackageRegistryBackend objects + are related to a XPackageManager instance. +
+ + @since OOo 2.0 +*/ +service PackageRegistryBackend : XPackageRegistry +{ + /** Creates a transient registry. + + @param context + context of registry, e.g. user, shared + */ + createTransient( [in] string context ); + + /** Creates a persistent registry. + + @param context + context of registry, e.g. user, shared + @param cacheDirectory + cache directory that the registry has to use + @param readOnly + reflects whether writing to cache directory is allowed + */ + createPersistent( [in] string context, + [in] string cacheDirectory, + [in] boolean readOnly ); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/deployment/PlatformException.idl b/offapi/com/sun/star/deployment/PlatformException.idl new file mode 100644 index 0000000000..da440d8c06 --- /dev/null +++ b/offapi/com/sun/star/deployment/PlatformException.idl @@ -0,0 +1,37 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module deployment { + + interface XPackage; +/** A DeploymentException indicates that the current platform + is not supported. + + @since OOo 3.0 + */ +exception PlatformException : com::sun::star::uno::Exception +{ + /** The package which does not support the current platform. + */ + XPackage package; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/deployment/Prerequisites.idl b/offapi/com/sun/star/deployment/Prerequisites.idl new file mode 100644 index 0000000000..46a71ab851 --- /dev/null +++ b/offapi/com/sun/star/deployment/Prerequisites.idl @@ -0,0 +1,33 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module deployment { + +constants Prerequisites +{ + const long PLATFORM = 0x1; + const long DEPENDENCIES = 0x2; + const long LICENSE = 0x04; +}; + + +} ; } ; } ; } ; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/deployment/UpdateInformationEntry.idl b/offapi/com/sun/star/deployment/UpdateInformationEntry.idl new file mode 100644 index 0000000000..d492684a0c --- /dev/null +++ b/offapi/com/sun/star/deployment/UpdateInformationEntry.idl @@ -0,0 +1,45 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module xml { module dom { +interface XElement; +}; }; }; }; }; + +module com { module sun { module star { module deployment { + +/** Objects of this type are used as elements of the enumeration + returned by XUpdateInformationProvider. + + @since OOo 2.3 +*/ +struct UpdateInformationEntry +{ + /** the DOM representation of an update information entry + */ + com::sun::star::xml::dom::XElement UpdateDocument; + + /** the (optional) description for an update information + * entry extracted from the update feed container + */ + string Description; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/deployment/UpdateInformationProvider.idl b/offapi/com/sun/star/deployment/UpdateInformationProvider.idl new file mode 100644 index 0000000000..bfba639465 --- /dev/null +++ b/offapi/com/sun/star/deployment/UpdateInformationProvider.idl @@ -0,0 +1,31 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module deployment { + +/** Implementations of this service provide access to the root element + of one or more update information files for a given sets of URLs. + + @since OOo 2.2 +*/ +service UpdateInformationProvider : XUpdateInformationProvider; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/deployment/VersionException.idl b/offapi/com/sun/star/deployment/VersionException.idl new file mode 100644 index 0000000000..f826c8c24f --- /dev/null +++ b/offapi/com/sun/star/deployment/VersionException.idl @@ -0,0 +1,52 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module deployment { + +interface XPackage; + +/** + describes version clashes of a deployment unit. + +This exception is intended to be used with an + com::sun::star::task::XInteractionHandler.
+ + @since OOo 2.1 +*/ +exception VersionException: com::sun::star::uno::Exception { + /** + the version of the extension which is being installed. + */ + string NewVersion; + /** + the display name of the extension which is being installed. + */ + string NewDisplayName; + + /** + represents the already installed version of the deployment unit. + +Must not be `NULL`.
+ */ + XPackage Deployed; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/deployment/XExtensionManager.idl b/offapi/com/sun/star/deployment/XExtensionManager.idl new file mode 100644 index 0000000000..19dfc29e35 --- /dev/null +++ b/offapi/com/sun/star/deployment/XExtensionManager.idl @@ -0,0 +1,325 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module deployment { + +/** The XExtensionManager interface is used to manage extensions + in the user, shared and bundled repository. + + @see ExtensionManager + @since OOo 3.3 +*/ +interface XExtensionManager +{ + /** interface to notify disposing + */ + interface com::sun::star::lang::XComponent; + + /** interface to notify changes of the set of deployed packages of + this manager + */ + interface com::sun::star::util::XModifyBroadcaster; + + + /** gets the supported XPackageTypeInfos. + + @return + supported XPackageTypeInfos. + */ + sequence+ Please use this in case of suspected cache inconsistencies only. +
+ @param force + set to true when called during soffice bootstrap after cleaning + old extension cache + @param repository + the name of the repository + @param xAbortChannel + abort channel to asynchronously abort the adding process + @param xCmdEnv + command environment for error and progress handling + */ + void reinstallDeployedExtensions( + [in] boolean force, + [in] string repository, + [in] com::sun::star::task::XAbortChannel xAbortChannel, + [in] com::sun::star::ucb::XCommandEnvironment xCmdEnv ) + raises (DeploymentException, + com::sun::star::ucb::CommandFailedException, + com::sun::star::ucb::CommandAbortedException, + com::sun::star::lang::IllegalArgumentException); + + + /** synchronizes the extension database with the contents of the extensions + folder of shared and bundled extensions. + + Added extensions will be added to the database and removed extensions + will be removed from the database. + The active extensions are determined. That is, shared or bundled extensions + are not necessarily registered (XPackage::registerPackage()). + + @return + If true - then at least one extension was removed or added. Otherwise + nothing was changed. + */ + boolean synchronize( + [in] com::sun::star::task::XAbortChannel xAbortChannel, + [in] com::sun::star::ucb::XCommandEnvironment xCmdEnv ) + raises (DeploymentException, + com::sun::star::ucb::CommandFailedException, + com::sun::star::ucb::CommandAbortedException, + com::sun::star::lang::IllegalArgumentException); + + /** returns all extensions which are currently not in use + because the user did not accept the license. + + The function will not return any object for the user repository, because + a user extension will not be kept in the user repository if its license + is declined. Only extensions which are registered at start-up of OOo, + that is, shared and bundled extensions, can be returned. + + Extensions which allow the license to be suppressed, that is, it does not + need to be displayed, and which are installed with the corresponding option, + are also not returned. + + Extensions returned by these functions are not returned by + XExtensionManager::getDeployedExtension() + XExtensionManager::getDeployedExtensions() + XExtensionManager::getAllExtensions() + XExtensionManager::getExtensionsWithSameIdentifier() + */ + sequence"org.openoffice.legacy."
one if the extension does not
+ explicitly specify one), or an empty Optional
if this
+ package does not represent an extension
+ */
+ com::sun::star::beans::Optionalremoved
parameter in the function
+ XPackageRegistry::bindPackage().
+ */
+ boolean isRemoved();
+
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/deployment/XPackageInformationProvider.idl b/offapi/com/sun/star/deployment/XPackageInformationProvider.idl
new file mode 100644
index 0000000000..5029a9f63c
--- /dev/null
+++ b/offapi/com/sun/star/deployment/XPackageInformationProvider.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 .
+ */
+
+module com { module sun { module star { module deployment {
+
+/** Objects implementing this interface provide a URL to the root of
+ an installed package.
+
+ @since OOo 2.3
+*/
+interface XPackageInformationProvider
+{
+ /** get Package information for a specific extension.
+
+ @param extensionId
+ the unique identifier of an extension. The service looks for
+ an installed package with the given id and returns the URL to
+ the root of the package. If the service can not find a matching
+ package, an empty string will be returned.
+ */
+ string getPackageLocation( [in] string extensionId );
+
+ /** check if there are updates available for an extension.
+
+ @param extensionId
+ the unique identifier of an extension. When the extensionId is empty,
+ the service looks checks all installed extensions for a newer version,
+ otherwise the service looks for updates for an installed package with
+ the given id.
+ If the service finds an update for an extension, a sequence containing the name
+ and the version will be returned for each extension which has an update.
+ If the service can not find a matching package, an empty sequence is returned.
+ */
+ sequence< sequence< string > > isUpdateAvailable( [in] string extensionId );
+
+ /** returns a list of all installed extension with their version.
+ */
+ sequence< sequence< string > > getExtensionList();
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/deployment/XPackageManager.idl b/offapi/com/sun/star/deployment/XPackageManager.idl
new file mode 100644
index 0000000000..4e163e6fba
--- /dev/null
+++ b/offapi/com/sun/star/deployment/XPackageManager.idl
@@ -0,0 +1,297 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module deployment {
+
+/** The XPackageManager interface is used to add or remove
+ packages to a specific repository. This interface represents a particular
+ repository.
+ Packages are deployable files, e.g. scripts or UNO components.
+ + Adding a UNO package means that a copy of the package is stored + in the repository. +
++ Removing a UNO package means that the previously added package is + removed from the repository. +
++ All interface methods do neither register nor revoke an extension. + This happens exclusively by XExtensionManager. +
+
+ Objects of this interface are created using the
+ XPackageManagerFactory service resp. the singleton
+
+ /singletons/com.sun.star.deployment.thePackageManagerFactory
+
.
+
+ Please use this in case of suspected cache inconsistencies only. +
+ + @param force + set to true when called during soffice bootstrap after cleaning + old extension cache + @param xAbortChannel + abort channel to asynchronously abort the adding process + @param xCmdEnv + command environment for error and progress handling + */ + void reinstallDeployedPackages( + [in] boolean force, + [in] com::sun::star::task::XAbortChannel xAbortChannel, + [in] com::sun::star::ucb::XCommandEnvironment xCmdEnv ) + raises (DeploymentException, + com::sun::star::ucb::CommandFailedException, + com::sun::star::ucb::CommandAbortedException, + com::sun::star::lang::IllegalArgumentException); + + /** indicates that this implementation cannot be used for tasks + which require write access to the location where the extensions + are installed. ++ Normally one would call a method and handle the exception + if writing failed. However, a GUI interface may need to know beforehand + if writing is allowed. For example, the Extensions dialog + needs to enable / disable the Add button depending if the user has + write permission. Only the XPackageManager implementation knows the + location of the installed extensions. Therefore it is not possible + to check "externally" for write permission. +
+ */ + boolean isReadOnly(); + + /** synchronizes the extension database with the contents of the extensions + folder. + + Added extensions will be added to the database and removed extensions + will be removed from the database. + + @param xAbortChannel + abort channel to asynchronously abort the adding process + @param xCmdEnv + command environment for error and progress handling + + @return + If true - then at least one extension was removed or added. Otherwise + nothing was changed. + */ + boolean synchronize([in] com::sun::star::task::XAbortChannel xAbortChannel, + [in] com::sun::star::ucb::XCommandEnvironment xCmdEnv ) + raises (DeploymentException, + com::sun::star::ucb::ContentCreationException, + com::sun::star::ucb::CommandFailedException, + com::sun::star::ucb::CommandAbortedException); + + + /** returns all extensions which are currently not in use + because the user did not accept the license. + + The function will not return any object for the user repository, because + a user extension will not be kept in the user repository if its license + is declined. Only extensions which are registered at start-up of OOo, + that is, shared and bundled extensions, can be returned. + + Extensions which allow the license to be suppressed, that is, it does not + need to be displayed, and which are installed with the corresponding option, + are also not returned. + */ + sequence
+ You have to use the singleton
+
+ /singletons/com.sun.star.deployment.thePackageManagerFactory
+
+ exclusively.
+
+ Packages for context strings "user"
and
+ "shared"
will be registered and
+ revoked persistently.
+
+ Context strings other than "user"
, "shared"
+ will last in an
+ com::sun::star::lang::IllegalArgumentException.
+
"user"
+ => persistent storage and registration into installation's
+ user layer
+ "shared"
+ => persistent storage and registration into installation's
+ shared layer
+ removed
indicates this case. The returned object may not
+ rely on the file or folder to which refers url
. Instead it
+ must use previously saved data to successfully carry out the revocation
+ of this object (XPackage::revokePackage()).
+
+ The implementation must ensure that there is only one instance of
+ XPackage for the same url
at any
+ time. Therefore calling bindPackage() again with the same
+ url
but different mediaType
(the exception is,
+ if previously an empty string was provided to cause the determination
+ of the media type) or removed
parameters will cause an
+ exception. A com::sun::star::lang::IllegalArgumentException will be
+ thrown in case of a different mediaType
parameter and a
+ InvalidRemovedParameterException is thrown if the
+ removed
parameter is different.
+
+ The identifier
parameter must be provided when
+ removed
= true. If not, then an
+ com::sun::star::lang::IllegalArgumentException will be thrown.
+
+ @param url
+ package URL, must be UCB conform
+ @param mediaType
+ media type of package, empty string if to be detected
+ @param removed
+ @param identifier
+ the identifier of the extension
+ @param xCmdEnv
+ command environment for error and progress handling
+ @return
+ XPackage handle
+ */
+ XPackage bindPackage(
+ [in] string url,
+ [in] string mediaType,
+ [in] boolean removed,
+ [in] string identifier,
+ [in] com::sun::star::ucb::XCommandEnvironment xCmdEnv )
+ raises (DeploymentException,
+ InvalidRemovedParameterException,
+ com::sun::star::ucb::CommandFailedException,
+ com::sun::star::lang::IllegalArgumentException);
+
+ /** gets the supported XPackageTypeInfos.
+
+ @return
+ supported XPackageTypeInfos.
+ */
+ sequenceapplication/vnd.sun.star.basic-script
.
+
+ @return
+ media type of package
+ */
+ string getMediaType();
+
+ /** returns a description string to describe a package type.
+
+ @return
+ description
+ */
+ string getDescription()
+ raises (ExtensionRemovedException);
+
+ /** returns a short description string to describe a package type
+ (one line only).
+
+ @return
+ description
+ */
+ string getShortDescription()
+ raises (ExtensionRemovedException);
+
+ /** returns a file filter string for the file picker user interface.
+ Both, the short description string and file filter string
+ will be passed to
+ com::sun::star::ui::dialogs::XFilterManager::appendFilter().
+
+ @return
+ file filter string
+ */
+ string getFileFilter();
+
+ /** returns an icon for a package.
+
+ @param highContrast
+ argument is ignored
+ @param smallIcon
+ argument is ignored
+ @return
+ empty any
+ @deprecated
+ */
+ any getIcon( [in] boolean highContrast, [in] boolean smallIcon );
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/deployment/XUpdateInformationProvider.idl b/offapi/com/sun/star/deployment/XUpdateInformationProvider.idl
new file mode 100644
index 0000000000..5fc23bebb7
--- /dev/null
+++ b/offapi/com/sun/star/deployment/XUpdateInformationProvider.idl
@@ -0,0 +1,98 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module container {
+interface XEnumeration;
+}; }; }; };
+
+module com { module sun { module star { module task {
+interface XInteractionHandler;
+}; }; }; };
+
+module com { module sun { module star { module xml { module dom {
+interface XElement;
+}; }; }; }; };
+
+module com { module sun { module star { module deployment {
+
+/** Objects implementing this interface provide access to the xml root of
+ one or more update information files for a given set of URLs.
+
+ @since OOo 2.2
+*/
+interface XUpdateInformationProvider
+{
+ /** get update information for a specific extension or all available
+ information from a repository.
+
+ @param repositories
+ a repository and its mirrors.
+ @param extensionId
+ the unique identifier of an extension. If it is not empty and
+ the update document is an atom feed, only items whose "term"
+ attribute of the atom:category tag matches extensionId are returned.
+
+ */
+ sequence < com::sun::star::xml::dom::XElement > getUpdateInformation(
+ [in] sequence< string > repositories,
+ [in] string extensionId
+ ) raises ( com::sun::star::uno::Exception );
+
+ /** interrupts a getUpdateInformation call and let's it return immediately.
+ */
+ void cancel();
+
+ /** Sets an interaction handler to be used for further operations.
+
+ + A default interaction handler is available as service + com::sun::star::task::InteractionHandler. + The documentation of this service also contains further + information about the interaction handler concept. +
+ + @see com::sun::star::task::InteractionHandler + + @param handler + The interaction handler to be set + */ + void setInteractionHandler( [in] com::sun::star::task::XInteractionHandler handler ); + + /** get update information for a specific extension or all available + information from a repository. + + @param repositories + a repository and its mirrors. + @param extensionId + the unique identifier of an extension. If it is not empty and + the update document is an atom feed, only items whose "term" + attribute of the atom:category tag matches extensionId are returned. + + @returns + an enumeration of UpdateInformationEntry. + */ + com::sun::star::container::XEnumeration getUpdateInformationEnumeration( + [in] sequence< string > repositories, + [in] string extensionId + ) raises ( com::sun::star::uno::Exception ); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/deployment/test/SmoketestCommandEnvironment.idl b/offapi/com/sun/star/deployment/test/SmoketestCommandEnvironment.idl new file mode 100644 index 0000000000..eae09f183c --- /dev/null +++ b/offapi/com/sun/star/deployment/test/SmoketestCommandEnvironment.idl @@ -0,0 +1,31 @@ +/* -*- 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 . + */ + + + + +module com { module sun { module star { module deployment { module test { + /* The service is intended to be used in the smoke test to test the installation of + an extension (com::sun::star::deployment::XPackageManager::addPackage). It may therefore + be constantly adapted to meet the need of the smoke test + */ + service SmoketestCommandEnvironment: ::com::sun::star::ucb::XCommandEnvironment; +};};};};}; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/deployment/thePackageManagerFactory.idl b/offapi/com/sun/star/deployment/thePackageManagerFactory.idl new file mode 100644 index 0000000000..1b4a33acb0 --- /dev/null +++ b/offapi/com/sun/star/deployment/thePackageManagerFactory.idl @@ -0,0 +1,40 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module deployment { + +/** thePackageManagerFactory denotes the one and only + XPackageManagerFactory object to be used. +
+ The component context entry is
+
+ /singletons/com.sun.star.deployment.thePackageManagerFactory
+
.
+
+ This exception indicates, that generic filter detection can't decide which of + two filters is the right one. In this case an interaction will be made. + Given URL can be used to decide between given two filters. + Decision can be made e.g. by a dialog, on which the user must select one + of these filters. + A possible continuation of type XInteractionFilterSelect + transport this decision back to source of started interaction. +
+ + @see XInteractionFilterSelect +*/ +published exception AmbigousFilterRequest : ::com::sun::star::uno::Exception +{ + /** transport URL which couldn't be detected right + */ + string URL; + + /** transport the preselected filter + */ + string SelectedFilter; + + /** transport the real detected filter, which stands in conflict to the pre selected one + */ + string DetectedFilter; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/BrokenPackageRequest.idl b/offapi/com/sun/star/document/BrokenPackageRequest.idl new file mode 100644 index 0000000000..a937faf6ef --- /dev/null +++ b/offapi/com/sun/star/document/BrokenPackageRequest.idl @@ -0,0 +1,38 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module document { + +/** Is used for interaction handle in case package is broken. + + @since OOo 1.1.2 +*/ +published exception BrokenPackageRequest : ::com::sun::star::uno::Exception +{ + /** The name of the document that is broken + */ + string aName; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/ChangedByOthersRequest.idl b/offapi/com/sun/star/document/ChangedByOthersRequest.idl new file mode 100644 index 0000000000..61537b0941 --- /dev/null +++ b/offapi/com/sun/star/document/ChangedByOthersRequest.idl @@ -0,0 +1,35 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module document { + +/** Is used for interaction handle to query user decision in case the document + being saved was already stored by another user during the editing. + + @since OOo 3.1 +*/ +published exception ChangedByOthersRequest : ::com::sun::star::uno::Exception +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/CmisProperty.idl b/offapi/com/sun/star/document/CmisProperty.idl new file mode 100644 index 0000000000..b96622cfed --- /dev/null +++ b/offapi/com/sun/star/document/CmisProperty.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 . + */ + +module com { module sun { module star { module document { + +/** specifies a CMIS property. + */ +struct CmisProperty +{ + /** unique ID of the Cmis property + */ + string Id; + + /** specifies the display name of the CMIS property. + */ + string Name; + + /** type of the property + */ + string Type; + + /** specifies if the property is updatable. + */ + boolean Updatable; + + /** specifies if the property is required and + can not be empty. + */ + boolean Required; + + /** specifies if the property has multiple value + */ + boolean MultiValued; + + /** specifies if the property value can be freely set + or is restricted from a list of choices. + */ + boolean OpenChoice; + + /** specifies the possible choices of the values. + */ + any Choices; + + /** specifies value of the property + */ + any Value; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/CmisVersion.idl b/offapi/com/sun/star/document/CmisVersion.idl new file mode 100644 index 0000000000..e12a902ac1 --- /dev/null +++ b/offapi/com/sun/star/document/CmisVersion.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 . + */ + +module com { module sun { module star { module document { + +/** specifies a CMIS document version. + */ +struct CmisVersion +{ + /** unique ID of the Cmis version + */ + string Id; + + /** specifies the time when the revision was created. + */ + util::DateTime TimeStamp; + + /** contains the author that created the version. + */ + string Author; + + /** contains the comment the author has left. + */ + string Comment; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/CorruptedFilterConfigurationException.idl b/offapi/com/sun/star/document/CorruptedFilterConfigurationException.idl new file mode 100644 index 0000000000..71187a94af --- /dev/null +++ b/offapi/com/sun/star/document/CorruptedFilterConfigurationException.idl @@ -0,0 +1,40 @@ +/* -*- 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 . + */ + + + +module com { module sun { module star { module document { + + +/** This exception is thrown in case the global filter configuration + does not exists or contains corrupted data. + + @since OOo 2.0 + */ +published exception CorruptedFilterConfigurationException : ::com::sun::star::uno::RuntimeException +{ + /** Instead of the message part of an exception, this value + describe the type of corruption more in detail. */ + string Details; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/DocumentEvent.idl b/offapi/com/sun/star/document/DocumentEvent.idl new file mode 100644 index 0000000000..fcf4854d57 --- /dev/null +++ b/offapi/com/sun/star/document/DocumentEvent.idl @@ -0,0 +1,64 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module document { + + +/** describes an event happening in an OfficeDocument + +The com::sun::star::lang::EventObject::Source member + of the base type refers to the document which broadcasts the event.
+ +This type is the successor of the EventObject type, which should not be used + anymore.
+ + @see XDocumentEventBroadcaster + @since OOo 3.1 + */ +struct DocumentEvent : ::com::sun::star::lang::EventObject +{ + /** specifies the name of the event. + +It's the responsibility of the component supporting the XDocumentEventBroadcaster + interface to specify which events it supports.
+ */ + string EventName; + + /** denotes the view respectively controller which the event applies to. + +Might be `NULL` if the event is not related to a concrete view of + the document.
+ */ + ::com::sun::star::frame::XController2 + ViewController; + + /** contains supplemental information about the event which is being notified + +The semantics of this additional information needs to be specified by the broadcaster + of the event.
+ */ + any Supplement; +}; + + +}; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/DocumentProperties.idl b/offapi/com/sun/star/document/DocumentProperties.idl new file mode 100644 index 0000000000..1daa746f9f --- /dev/null +++ b/offapi/com/sun/star/document/DocumentProperties.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 . + */ + + +module com { module sun { module star { module document { + +/** provides document-specific information such as the author, creation date, + and user-defined fields. + ++ This service replaces the deprecated DocumentInfo and + StandaloneDocumentInfo services. +
+ + @since OOo 3.0 + + @see XDocumentProperties + @see XDocumentPropertiesSupplier + */ +published service DocumentProperties : XDocumentProperties +{ + /** constructs default-initialized instance + */ + create(); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/DocumentRevisionListPersistence.idl b/offapi/com/sun/star/document/DocumentRevisionListPersistence.idl new file mode 100644 index 0000000000..ab168d8050 --- /dev/null +++ b/offapi/com/sun/star/document/DocumentRevisionListPersistence.idl @@ -0,0 +1,34 @@ +/* -*- 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 . + */ + + + +module com { module sun { module star { module document { + +/** interface to maintain a list of document revisions + ++
+ */ +service DocumentRevisionListPersistence : XDocumentRevisionListPersistence; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/EmptyUndoStackException.idl b/offapi/com/sun/star/document/EmptyUndoStackException.idl new file mode 100644 index 0000000000..cf84a87241 --- /dev/null +++ b/offapi/com/sun/star/document/EmptyUndoStackException.idl @@ -0,0 +1,36 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module document { + + +/** is raised when an operation is attemption at an XUndoManager which requires a non-empty stack + of undo actions, and this requirement is not fulfilled. + @since OOo 3.4 + */ +exception EmptyUndoStackException : ::com::sun::star::util::InvalidStateException +{ +}; + + +}; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/EventDescriptor.idl b/offapi/com/sun/star/document/EventDescriptor.idl new file mode 100644 index 0000000000..86a76c5827 --- /dev/null +++ b/offapi/com/sun/star/document/EventDescriptor.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 . + */ + + +module com { module sun { module star { module document { + +/** specifies an event binding for a document or a document content + + @see Events + @see XEventsSupplier + */ +published service EventDescriptor +{ + /** specifies the type of the event handler + +
+ Usually this is one of the following: +
+ For a list of possible event names see Events. +
+ */ + string EventName; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/Events.idl b/offapi/com/sun/star/document/Events.idl new file mode 100644 index 0000000000..7b70a0702e --- /dev/null +++ b/offapi/com/sun/star/document/Events.idl @@ -0,0 +1,87 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module document { + +/** is a collection of all events supported by a document or content of a + document + ++ Such Events will be broadcasted by a XEventBroadcaster + to any XEventListener packed as EventObjects. +
+ */ +published service Events +{ + /** offers access to the list of EventDescriptors + ++ The following events are usually available: +
+ Such filters can be used for exporting a content. + Of course it's possible to combine it with the service ImportFilter + if import functionality should be available at same implementation too. +
+ + @see ImportFilter + */ +published service ExportFilter +{ + /** set source(!) document for this filter + ++ The document must be used as the source for following filter operation. + Any content from there will be exported to another format. +
+ */ + interface XExporter; + + /** filter interface + ++ It's used to filter a document at saving time. + The source document should be already set by using another interface + XExporter which is supported by this service too. +
+ +
+ Tip:
+ If same implementation provides the service ImportFilter too,
+ code must distinguish between filtering from a source document (for export) or
+ filtering to a target document (for import). This can be recognized by saving
+ state of used interfaces XExporter or XImporter!
+ Otherwise it's not clear which action is required here.
+
+ A filter object must be created by global service FilterFactory. + If filter supports this optional interface, he will be initialized by the factory directly + after creation. The factory will pass the following information to this new instance: +
+ This internal filter name can be used on service FilterFactory + to get further information about it (e.g. his registration for mime types or extensions etc.) + It's important that returned string is the "internal name" of the filter which must be + unambiguous against all other registered filters in current installation. +
+
+ Attention!
+ Supported method setName() should be ignored or forwarded to the FilterFactory.
+ It's not allowed to set it directly to the configuration. Because it depends
+ from real implementation of the FilterFactory if it will be allowed or not!
+
+ Due to the registered types, flat TypeDetection is already possible, i.e.
+ the assignment of types (e.g. to a URL) only on the basis of configuration data.
+ If, however, you imagine special cases (e.g. modifying the file extension of a
+ Writer file from .sdw to .doc), it quickly becomes clear that you cannot always
+ get a correct result with flat detection. To be certain to get correct results,
+ you need deep detection, i.e. the file itself has to be examined.
+ And that is exactly the function of DetectServices. They get all the information
+ collected so far on a document and then decide which type to assign it to.
+ In the new modular model, such a detector is meant as UNO service which registers
+ itself in the office and is requested by the generic type detection if necessary.
+
+ Therefore you need two pieces of information:
+
+ Generic type detection searches for a registered DetectService for an + already flat detected type. If any could be found it will be created and + used by calling methods of this interface. It gets a MediaDescriptor + which contains information about the document which should be detected and must return +
+ This factory implements read/write access on the underlying configuration set. + and further a validate and flush mechanism for more performance and a special query mode + can be used here too. +
+ + @since OOo 1.1.2 + */ +published service ExtendedTypeDetectionFactory +{ + /** factory interface to create and initialize extended type detection components. + ++ A detection component must be specified by its UNO implementation name and will be created then. + Every new created component can be initialized with its own configuration data + and may given optional arguments of the corresponding createInstanceWithArguments() request. To do so the + service must support the optional interface com::sun::star::lang::XInitialization. + The arguments parameter will have the following structure: +
+ Every container item is specified as a set of properties and will be + represented by a sequence< com::sun::star::beans::PropertyValue > structure. + Follow properties are supported: + (But note: not all of them must be present every time!) +
+Property Name | +Value Type | +Description | +
Name | +[string] | +It means the UNO implementation name of the detector component. + Note: It means the really the implementation instead of the UNO service name. + Because it's not possible to distinguish between more than one components; if all of them + uses a generic service identifier! | +
Types | +[sequence< string >] | +It's a list of all types, which can be detected by this extended detection component. + All items of this list must match an item of the TypeDetection container service. | +
+ Against simple property search it provides some complex algorithms too. + For further information please read the SDK documentation. +
+ */ + [optional] interface com::sun::star::container::XContainerQuery; + + /** can be used to perform container changes. + ++ Because the complexness of such configuration set can be very high, + it seems not very useful to update the underlying configuration layer + on every container change request immediately. Another strategy can be to + make all changes (adding/changing/removing of items) and call flush at the end. + That will validate the whole container and reject inconsistent data sets. + Only in case all made changes was correct, they will be written back to the + configuration. Further this interface provides the possibility, that interested + changes listener can be registered too. +
+ */ + [optional] interface com::sun::star::util::XFlushable; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/FilterAdapter.idl b/offapi/com/sun/star/document/FilterAdapter.idl new file mode 100644 index 0000000000..24331ebd9e --- /dev/null +++ b/offapi/com/sun/star/document/FilterAdapter.idl @@ -0,0 +1,36 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module document { + + /* Provides access to user to filters written to use the FilterAdapter + + @since OOo 1.1.2 + */ +published service FilterAdapter + { + interface XFilterAdapter; + }; + }; + }; + }; +}; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/FilterConfigRefresh.idl b/offapi/com/sun/star/document/FilterConfigRefresh.idl new file mode 100644 index 0000000000..b31f87ab77 --- /dev/null +++ b/offapi/com/sun/star/document/FilterConfigRefresh.idl @@ -0,0 +1,33 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module document { + + +/** + @since LibreOffice 4.1 + */ +service FilterConfigRefresh : com::sun::star::util::XRefreshable; + + +}; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/FilterFactory.idl b/offapi/com/sun/star/document/FilterFactory.idl new file mode 100644 index 0000000000..207e822d95 --- /dev/null +++ b/offapi/com/sun/star/document/FilterFactory.idl @@ -0,0 +1,217 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module document { + +/** factory to create filter components. + ++ After a generic TypeDetection an internal type name + will be known. Further a generic com::sun::star::frame::FrameLoader + can use this information, to search a suitable filter (may the default filter) at + this factory and use it for loading the document into a specified frame. +
+ ++ This factory implements read/write access on the underlying configuration set. + and further a validate and flush mechanism for more performance and a special query mode + can be used here too. +
+ */ +published service FilterFactory +{ + /** factory interface to create and initialize filter components. + ++ Current behavior
+ The methods createInstance() or createInstanceWithArguments() of this interface must be + called with an internal type name!. This name is used internally to search a suitable + (mostly the default) filter for this type then. The found filter will be created, initialized + and returned then. Creation of a filter by using its internal filter name directly can be + reached by using createInstanceWithArguments() with an optional property "FilterName" only. + See the following example: + + @code{.java} + private com.sun.star.uno.XInterface createFilterDirect( com.sun.star.lang.XMultiServiceFactory xFilterFactory , + java.lang.String sInternalFilterName ) + { + com.sun.star.beans.PropertyValue aFilterProp = new com.sun.star.beans.PropertyValue(); + aFilterProp.Name = "FilterName"; + aFilterProp.Value = sInternalFilterName; + + com.sun.star.uno.Any[] lProps = new com.sun.star.uno.Any[1]; + lProps[0] = aFilterProp; + + java.lang.Object aFilter = xFilterFactory.createInstanceWithArguments("", lProps); + return (com.sun.star.uno.XInterface)UnoRuntime.queryInterface(com.sun.star.uno.XInterface.class, aFilter); + } + @endcode +
+ ++ Proposed behavior
+ Searching of a suitable filter for a given internal type name, must be done by the new interface + com::sun::star::container::XContainerQuery, available on this factory too. + The factory interface can be used to create filter components by its internal filter name only. +
+ ++ How it can be distinguished?
+ The new proposed implementation will throw a com::sun::star::container::NoSuchElementException + if the first parameter of createInstance() or createInstanceWithArguments() does not match to a valid container (means + filter) item. Further it will throw a com::sun::star::lang::IllegalArgumentException if the optional + parameter "FilterName" could not be detected inside the argument list of call createInstanceWithArguments(). +
+ ++ Initialization of a filter component
+ Every filter, which was created by this factory can(!) be initialized with its own configuration data + and may given optional arguments of the corresponding createInstanceWithArguments() request. To do so the filter + instance must support the optional interface com::sun::star::lang::XInitialization. + The arguments parameter will have the following structure: +
+ Every container item is specified as a set of properties and will be + represented by a sequence< com::sun::star::beans::PropertyValue > structure. + Follow properties are supported: + (But note: not all of them must be present every time!) +
+Property Name | +Value Type | +Description | +
Name | +[string] | +The internal name is the only value, which makes a container item unique. | +
UIName | +[string] | +It contains the localized name for this filter for the current locale. | +
UINames | +[sequence< string >] | +It contains all available localized names for this filter. The are organized + in pairs and represented as a structure of sequence< com::sun::star::beans::PropertyValue >. + The name of such property must be interpreted as locale; its value as the localized + filter name corresponding to this locale. | +
Type | +[string] | +Every filter is registered for a type. This value contains the internal name of it. + (see service TypeDetection for further information) | +
DocumentService | +[string] | +It's the UNO service name of the document type, which can be handled by this filter. + (e.g. com::sun::star::text::TextDocument) | +
FilterService | +[string] | +It means the UNO implementation name of the filter component. + Note: It really means the implementation instead of the UNO service name. + Because it's not possible to distinguish between more than one filters; if all of them + uses a generic identifier! | +
Flags | +[integer] | +They describe the filter more specific. + (e.g. they mark it as IMPORT/EXPORT or DEFAULT filter.) |
+
UserData | +[string] | +This field contains filter specific configuration data. | +
FileFormatVersion | +[integer] | +It specifies the supported file format version if there exist more than ones. | +
TemplateName | +[string] | +It's the name of a suitable default template. | +
+ Note:
+ All elements of this container will be addressed by his internal name,
+ and it must be an unambiguous value.
+
+ Against simple property search it provides some complex algorithms too. + For further information please read the SDK documentation. +
+ */ + interface com::sun::star::container::XContainerQuery; + + /** can be used to perform container changes. + ++ Because the complexness of such configuration set can be very high, + it seems not very useful to update the underlying configuration layer + on every container change request immediately. Another strategy can be to + make all changes (adding/changing/removing of items) and call flush at the end. + That will validate the whole container and reject inconsistent data sets. + Only in case all made changes was correct, they will be written back to the + configuration. Further this interface provides the possibility, that interested + changes listener can be registered too. +
+ */ + [optional] interface com::sun::star::util::XFlushable; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/FilterOptionsRequest.idl b/offapi/com/sun/star/document/FilterOptionsRequest.idl new file mode 100644 index 0000000000..94611bc405 --- /dev/null +++ b/offapi/com/sun/star/document/FilterOptionsRequest.idl @@ -0,0 +1,43 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module document { + +/** Is used for interaction handle to get filter options. + + @since OOo 1.1.2 +*/ +published exception FilterOptionsRequest : ::com::sun::star::uno::Exception +{ + /** The model of the document that should be provided to filters + that supports XExporter interface. + */ + ::com::sun::star::frame::XModel rModel; + + /** The Media-descriptor of the document + */ + sequence< com::sun::star::beans::PropertyValue > rProperties; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/GraphicStorageHandler.idl b/offapi/com/sun/star/document/GraphicStorageHandler.idl new file mode 100644 index 0000000000..eafc436c64 --- /dev/null +++ b/offapi/com/sun/star/document/GraphicStorageHandler.idl @@ -0,0 +1,26 @@ +/* -*- 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/. + * + */ + +module com { module sun { module star { module document { + +/** + Default implementation of XGraphicStorageHandler + + @since LibreOffice 6.1 + */ +service GraphicStorageHandler : XGraphicStorageHandler +{ + createWithStorage([in] com::sun::star::embed::XStorage Storage); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/HeaderFooterSettings.idl b/offapi/com/sun/star/document/HeaderFooterSettings.idl new file mode 100644 index 0000000000..aac9078d15 --- /dev/null +++ b/offapi/com/sun/star/document/HeaderFooterSettings.idl @@ -0,0 +1,55 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module document { + + +// Note: Where is the distinction between header and footer ? +/** describes properties that control the formatting of headers and + footers for documents that do not allow individual settings for + individual parts like pages or slides. + */ +published service HeaderFooterSettings +{ + /** gives access to the properties implemented by this service. + */ + interface com::sun::star::beans::XPropertySet; + + + /** enables or disables the printing of the page name in the + header or footer + */ + [optional, property] boolean IsPrintPageName; + + /** enables or disables the printing of the date in the + header or footer + */ + [optional, property] boolean IsPrintDate; + + /** enables or disables the printing of the current time in the + header or footer + */ + [optional, property] boolean IsPrintTime; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/ImportFilter.idl b/offapi/com/sun/star/document/ImportFilter.idl new file mode 100644 index 0000000000..af702cad58 --- /dev/null +++ b/offapi/com/sun/star/document/ImportFilter.idl @@ -0,0 +1,103 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module document { + +/** filter for imports + ++ Such filters can be used for importing a content. + Of course it's possible to combine it with the service ExportFilter + if export functionality should be available at same implementation too. +
+ + @see ExportFilter + */ +published service ImportFilter +{ + /** set target(!) document for this filter + ++ The document must be used as the target of the filter. + Any external content will be written there. +
+ */ + interface XImporter; + + /** filter interface + ++ It's used to filter a document at loading time. + The target document should be already set by using another interface + ImportFilter::XImporter which is supported by this service too. +
+ +
+ Tip:
+ If same implementation provides the service ExportFilter too,
+ code must distinguish between filtering into a target document (for import) or
+ filtering from a source document (for export). This can be recognized by saving
+ state of used interfaces XExporter or XImporter!
+ Otherwise it's not clear which action is required here.
+
+ A filter object must be created by global service FilterFactory. + If filter supports this optional interface, he will be initialized by the factory directly + after creation. The factory will pass follow information to this new instance: +
+ This internal filter name can be used on service FilterFactory + to get further information about it (e.g. his registration for mime types or extensions etc.) + It's important that returned string is the "internal name" of the filter which must be + unambiguous against all other registered filters in current installation. +
+
+ Attention!
+ Supported method setName() should be ignored or forwarded to the FilterFactory.
+ It's not allowed to set it directly to the configuration. Because it depends
+ from real implementation of the FilterFactory if it will be allowed or not!
+
The com::sun::star::container::XNameAccess returns elements + of com::sun::star::beans::XPropertySet that implement + the service LinkTarget.
+ */ +published service LinkTargets +{ + interface com::sun::star::container::XNameAccess; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/LinkUpdateModes.idl b/offapi/com/sun/star/document/LinkUpdateModes.idl new file mode 100644 index 0000000000..421fbfddc0 --- /dev/null +++ b/offapi/com/sun/star/document/LinkUpdateModes.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 . + */ + + +module com { module sun { module star { module document { + + +published constants LinkUpdateModes +{ + /** never update links + */ + const long NEVER = 0; + + /** update links when confirmed on request during loading the + document + */ + const long MANUAL = 1; + + /** automatic update on load + */ + const long AUTO = 2; + + /** use the setting that is configured in your installed + application. This may be one of the above behaviors. + */ + const long GLOBAL_SETTING = 3; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/LockFileCorruptRequest.idl b/offapi/com/sun/star/document/LockFileCorruptRequest.idl new file mode 100644 index 0000000000..765513f1a8 --- /dev/null +++ b/offapi/com/sun/star/document/LockFileCorruptRequest.idl @@ -0,0 +1,35 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module document { + +/** Is used for interaction handle to query user's decision + when the lock file is corrupt. + + @since LibreOffice 6.0 +*/ +exception LockFileCorruptRequest : ::com::sun::star::io::IOException +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/LockFileIgnoreRequest.idl b/offapi/com/sun/star/document/LockFileIgnoreRequest.idl new file mode 100644 index 0000000000..f5992fef87 --- /dev/null +++ b/offapi/com/sun/star/document/LockFileIgnoreRequest.idl @@ -0,0 +1,35 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module document { + +/** Is used for interaction handle to query user decision regarding storing + to a location where no lock file can be created. + + @since OOo 3.0 +*/ +published exception LockFileIgnoreRequest : ::com::sun::star::io::IOException +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/LockedDocumentRequest.idl b/offapi/com/sun/star/document/LockedDocumentRequest.idl new file mode 100644 index 0000000000..48cf1d9da9 --- /dev/null +++ b/offapi/com/sun/star/document/LockedDocumentRequest.idl @@ -0,0 +1,42 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module document { + +/** Is used for interaction handle to query user decision regarding locked document. + + @since OOo 3.0 +*/ +published exception LockedDocumentRequest : ::com::sun::star::uno::Exception +{ + /** The URL of the locked document. + */ + string DocumentURL; + + /** The user information of the locked document. + */ + string UserInfo; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/LockedOnSavingRequest.idl b/offapi/com/sun/star/document/LockedOnSavingRequest.idl new file mode 100644 index 0000000000..c7b084cc34 --- /dev/null +++ b/offapi/com/sun/star/document/LockedOnSavingRequest.idl @@ -0,0 +1,43 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module document { + +/** Is used for interaction handle to query user decision regarding locked + document on saving. + + @since OOo 3.1 +*/ +published exception LockedOnSavingRequest : ::com::sun::star::uno::Exception +{ + /** The URL of the locked document. + */ + string DocumentURL; + + /** The user information of the locked document. + */ + string UserInfo; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/MacroExecMode.idl b/offapi/com/sun/star/document/MacroExecMode.idl new file mode 100644 index 0000000000..6eb99af141 --- /dev/null +++ b/offapi/com/sun/star/document/MacroExecMode.idl @@ -0,0 +1,109 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module document { + +/** Specify whether a macro can be executed. + + @since OOo 1.1.2 +*/ +published constants MacroExecMode +{ + /** A macro should not be executed at all. + */ + + const short NEVER_EXECUTE = 0; + + /** Execute macros from secure list quietly. + ++ If a macro is not in the list a confirmation for it executing will + appear. +
+ */ + + const short FROM_LIST = 1; + + /** Execute any macro, macros signed with trusted certificates and macros + from secure list are executed quietly. + ++ If the macro is neither in secure list nor signed a confirmation + will be requested. +
+ */ + + const short ALWAYS_EXECUTE = 2; + + /** Use configuration to retrieve macro settings. In case a user + confirmation is required a dialog is output. + */ + + const short USE_CONFIG = 3; + + + /** A macro should be executed always no confirmation should be provided. + */ + + const short ALWAYS_EXECUTE_NO_WARN = 4; + + /** Use configuration to retrieve macro settings. Treat cases when user + confirmation required as rejected. + */ + + const short USE_CONFIG_REJECT_CONFIRMATION = 5; + + /** Use configuration to retrieve macro settings. Treat cases when user + confirmation required as approved. + */ + + const short USE_CONFIG_APPROVE_CONFIRMATION = 6; + + /** Execute only macros from secure list. Macros that are not from the list + are not executed. + */ + const short FROM_LIST_NO_WARN = 7; + + /** Execute only macros from secure list or macros that are signed by + trusted certificates. + +If the macro is neither in secure list nor signed it will not be + executed. +
+ +If the macro is signed with unknown certificate a warning will + appear. The macro either will not be executed or if the warning + allows confirmation, it will be executed after user agrees to + trust the certificate. +
+ */ + const short FROM_LIST_AND_SIGNED_WARN = 8; + + /** Execute only macros from secure list or macros that are signed by + trusted certificates. No warning/confirmation should be shown. + */ + const short FROM_LIST_AND_SIGNED_NO_WARN = 9; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/MediaDescriptor.idl b/offapi/com/sun/star/document/MediaDescriptor.idl new file mode 100644 index 0000000000..6d0982b5ee --- /dev/null +++ b/offapi/com/sun/star/document/MediaDescriptor.idl @@ -0,0 +1,606 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module document { + +/** describes properties of a document, regarding the relationship + between the loaded document and the resource the document is + loaded from / stored to. + ++ This service may be represented by a com::sun::star::beans::PropertyValue[]. + Such descriptors will be passed to different functions, included into possible + load/save processes. Every member of such process can use this descriptor + and may change it if to actualize the information about the document. + So this descriptor should be used as an in/out parameter. +
+ +
+ Note:
+ It's not allowed to hold member of this descriptor by references longer than they
+ will be used (especially a possible stream). It's allowed to use it directly
+ or by copying it only.
+
+ Loading a component of type "template" creates a new untitled document + by default, but setting the "AsTemplate" property to `FALSE` loads the + template document for editing. Setting "AsTemplate" to `TRUE` creates a + new untitled document out of the loaded document, even if it has not + a "template" type. +
+ */ + [optional,property] boolean AsTemplate; + + /** the author of the document + ++ Only for storing versions in components supporting versioning: + author of version. +
+ */ + [optional,property] string Author; + + /** identifier of used character set + ++ Defines the character set for document formats that contain single + byte characters (if necessary). +
+ */ + [optional,property] string CharacterSet; + + /** description of document + ++ Only for storing versions in components supporting versioning: + comment (description) for stored version. +
+ */ + [optional,property] string Comment; + + /** pack specific properties of caller + ++ This is a parameter that can be used for any properties specific + for a special component type. Format of that depends from real + type of addressed component. +
+ +
+ For extensibility, it is recommended to use values of type
+ sequence
+ This parameter can be used to specify a title for a document. +
+ */ + [optional,property] string DocumentTitle; + + /** encryption information for encryption/decryption of documents + ++ It contains the necessary information for encryption/decryption of + a component (if necessary). + If neither password nor encryption data is specified, loading of + a password protected document will fail, storing will be done without + encryption. If both are provided, the encryption data is used + ( if the filter supports it ). +
++ The encryption data is generated based on the password. +
+ */ + [optional,property] sequence< ::com::sun::star::beans::NamedValue > EncryptionData; + + /** same as MediaDescriptor::URL + ++ It will be supported for compatibility reasons only. +
+ + @deprecated + */ + [optional,property] string FileName; + + /** internal filter name + ++ Name of a filter that should be used for loading or storing the component. + Names must match the names of the TypeDetection configuration, + invalid names are ignored. If a name is specified on loading, + it still will be verified by a filter detection, but in case of doubt + it will be preferred. + + See this page for a list of internal filter names: https://help.libreoffice.org/latest/en-US/text/shared/guide/convertfilters.html +
+ */ + [optional,property] string FilterName; + + /** same as MediaDescriptor::FilterOptions + ++ It will be supported for compatibility reasons only. +
+ + @deprecated + */ + [optional,property] string FilterFlags; + + /** additional properties for filter + ++ Some filters need additional parameters; use only together with property + MediaDescriptor::FilterName. Details must be documented + by the filter. This is an old format for some filters. If a string is not + enough, filters can use the property MediaDescriptor::FilterData. +
+ */ + [optional,property] string FilterOptions; + + /** additional properties for filter + ++ This is a parameter that can be used for any properties specific + for a special filter type. It should be used if + MediaDescriptor::FilterOptions isn't enough. +
+ */ + [optional,property] any FilterData; + + /** load document invisible + ++ Defines if the loaded component is made visible. If this property is not + specified, the component is made visible by default. +
+ */ + [optional,property] boolean Hidden; + + /** The hierarchical path to the embedded document from topmost container. + */ + [optional,property] string HierarchicalDocumentName; + + /** a stream to receive the document data. + ++ If used when storing a document: writing must be done using this stream. + If no stream is provided, the loader will create a stream by itself using + the other properties. It is not allowed to keep a reference to this + OutputStream after storing the component. +
+ */ + [optional,property] com::sun::star::io::XOutputStream OutputStream; + + /** content of document + ++ If used when loading a document: reading must be done using this stream. + If no stream is provided, the loader will create a stream by itself using + the other properties. It is not allowed to keep a reference to this + InputStream after loading the component, and it would be useless, because + in general an InputStream is usable for reading only once, except when it + also implements the com::sun::star::io::XSeekable interface. +
+ */ + [optional,property] com::sun::star::io::XInputStream InputStream; + + /** handle exceptional situations + ++ Object implementing the com::sun::star::task::InteractionHandler + service that is used to handle exceptional situations where proceeding with the task + is impossible without additional information or impossible at all. + The implemented API provides a default implementation for it that can handle many situations. + If no InteractionHandler is set, a suitable exception is thrown. + It is not allowed to keep a reference to this object, even not in the loaded + or stored component's copy of the MediaDescriptor provided by its arguments attribute. +
+ */ + [optional,property] com::sun::star::task::XInteractionHandler InteractionHandler; + + /** jump to a marked position after loading + ++ This is the same as the text behind a "#" in a http URL. But + this syntax with a "#" is not specified in most URL schemas. +
+ */ + [optional,property] string JumpMark; + + /** specify mime type of content + ++ Type of the medium to load, that must match to one of the types defined + in the TypeDetection configuration (otherwise it's ignored). + This bypasses the type detection of the com::sun::star::frame::Desktop environment, + so passing a wrong MediaType will cause failure of loading. +
+ */ + [optional,property] string MediaType; + + /** please use the corresponding parameters of this descriptor instead + +
+ String that summarizes some flags for loading. The string contains capital
+ letters for the flags:
+
flag | +value | +replacement | +
ReadOnly | +R | +MediaDescriptor::ReadOnly | +
Preview | +B | +MediaDescriptor::Preview | +
AsTemplate | +T | +MediaDescriptor::AsTemplate | +
Hidden | +H | +MediaDescriptor::Hidden | +
+ Setting this to `TRUE` forces the component to create a new window on loading + in any case. If the component supports multiple views, a second view is + opened, if not, the component is loaded one more time. Otherwise the behavior + depends on the default window handling of the com::sun::star::frame::Desktop environment. +
+ */ + [optional,property] boolean OpenNewView; + + + /** overwrite any existing file + ++ For storing only: overwrite any existing file, default is `TRUE`. + Setting this to `FALSE` raises an error, if the target file already exists. +
+ */ + [optional,property] boolean Overwrite; + + /** password for loading or storing documents + ++ It contains a password for loading or storing a component (if necessary). + If neither password nor encryption data is specified, loading of + a password protected document will fail, storing will be done without + encryption. If both are provided, the encryption data is used + ( if the filter supports it ). +
+ */ + [optional,property] string Password; + + /** contains the data for HTTP post method as a sequence of bytes. + ++ Data to send to a location described by the media descriptor to get + a result in return that will be loaded as a component + (usually in webforms). Default is: no PostData. +
+ */ + [optional,property] sequence< byte > PostData; + + /** add loaded document to recent document list + ++ Setting this to `FALSE` prevents the loaded document to be added to the recent documents list. + Default is `TRUE`. +
+ + @since LibreOffice 5.1 + */ + [optional,property] boolean PickListEntry; + + /** use MediaDescriptor::PostData instead of this + ++ Same as PostData, but the data is transferred as a string + (just for compatibility). +
+ + @deprecated + */ + [optional,property] string PostString; + + /** show preview + ++ Setting this to `TRUE` tells the a loaded component that it is loaded as + a preview, so it can optimize loading and viewing for this special purpose. + Default is `FALSE`. +
+ */ + [optional,property] boolean Preview; + + /** open document readonly + ++ Tells whether a document should be loaded in a (logical) readonly or in + read/write mode. If opening in the desired mode is impossible, an error occurs. + By default the loaded content decides what to do: if its UCB content supports + a "readonly" property, the logical open mode depends on that, otherwise + it will be read/write. This is only a UI related property, opening a + document in read only mode will not prevent the component from being + modified by API calls, but all modifying functionality in the UI will + be disabled or removed. +
+ */ + [optional,property] boolean ReadOnly; + + /** start presentation from a document + ++ Tells the component loading the document that a presentation that is in the + document is to be started right away. +
+ */ + [optional,property] boolean StartPresentation; + + /** name of document referrer + +
+ A URL describing the environment of the request; e.g. a referrer may be a
+ URL of a document, if a hyperlink inside this document is clicked to load
+ another document. The referrer may be evaluated by the addressed UCB content
+ or the loaded document. Without a referrer the processing of URLs that
+ needs security checks will be denied, e.g. "macro:" URLs.
+
+ Don't be confused about the wrong spelling; it is kept for compatibility reasons.
+
+ For loading of corrupted zip packages: Setting this to `TRUE` let the document + be opened in repair mode, so as much as possible information will be retrieved. +
+ + @since OOo 1.1.2 + */ + [optional,property] boolean RepairPackage; + + /** can be used for status information + ++ Object implementing the com::sun::star::task::XStatusIndicator + interface that can be used to give status information (text or progress) for the task. + The office provides a default implementation for it. It is not allowed to keep + a reference to this object, even not in the loaded or stored component's + copy of the MediaDescriptor provided by its arguments attribute. +
+ */ + [optional,property] com::sun::star::task::XStatusIndicator StatusIndicator; + + /** allows to specify the URL that is used next time SaveAs dialog is opened + ++ If the parameter is specified, the URL will be used by SaveAs dialog + next time as target folder. +
+ */ + [optional,property] string SuggestedSaveAsDir; + + /** allows to specify the suggested file name that is used next time SaveAs + dialog is opened + ++ If the parameter is specified, the file name will be suggested by + SaveAs dialog next time. +
+ */ + [optional,property] string SuggestedSaveAsName; + + /** name of the template instead of the URL + ++ The logical name of a template to load. Together with the MediaDescriptor::TemplateRegion + property it can be used instead of the URL of the template. Use always in conjunction with + MediaDescriptor::TemplateRegionName. +
+ */ + [optional,property] string TemplateName; + + /** name of the template instead of the URL + ++ See MediaDescriptor::TemplateName. The template region names are the folder names you see + in the templates dialog. +
+ */ + [optional,property] string TemplateRegionName; + + /** regulate using of compressing + ++ For storing: Setting this to `TRUE` means, don't use a zip file to save + the document, use a folder instead (only usable for UCB contents, that + support folders). Default is `FALSE`. +
+ */ + [optional,property] boolean Unpacked; + + /** URL of the document + ++ The location of the component in URL syntax. It must be a fully qualified URL. +
+ */ + [optional,property] string URL; + + /** storage version + ++ For components supporting versioning: the number of the version to be + loaded or saved. Default is zero and means: no version is created or + loaded, the "main" document is processed. +
+ */ + [optional,property] short Version; + + /** set special view state ++ Data to set a special view state after loading. The type depends on + the component and is usually retrieved from a com::sun::star::frame::Controller + object by its com::sun::star::frame::XController + interface. Default is: no view data. +
+ */ + [optional,property] any ViewData; + + /** id of the initial view + ++ For components supporting different views: a number to define the view + that should be constructed after loading. Default is: zero, and this + should be treated by the component as the default view. +
+ */ + [optional,property] short ViewId; + + /** should the macro be executed. + the value should be one from com::sun::star::document::MacroExecMode + constant list. + + @since OOo 1.1.2 + */ + [optional,property] short MacroExecutionMode; + + /** can the document be updated depending from links. + the value should be one from com::sun::star::document::UpdateDocMode + constant list. + + @since OOo 1.1.2 + */ + [optional,property] short UpdateDocMode; + + /** specifies the name of the view controller to create when loading a document + +If this property is used when loading a document into a frame, then it
+ specifies the name of the view controller to create. That is, the property
+ is passed to the document's com::sun::star::frame::XModel2::createViewController()
+ method.
+ If the loaded document does not support the XModel2
interface,
+ the property is ignored.
Normally a document is always opened in a new frame. If this property is + set to true, this document just acts as a placeholder while it's unmodified. + I.e. the next opened document from its frame will close and replace it.
+ +This defaults to false, except for the default template of a LibreOffice + module, referenced as "private:factory/<module>".
+ + @since LibreOffice 7.0 + */ + [optional,property] boolean Replaceable; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/NamedPropertyValues.idl b/offapi/com/sun/star/document/NamedPropertyValues.idl new file mode 100644 index 0000000000..ad61a9f7a5 --- /dev/null +++ b/offapi/com/sun/star/document/NamedPropertyValues.idl @@ -0,0 +1,31 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module document { + +/** + @since LibreOffice 4.1 + */ +service NamedPropertyValues : com::sun::star::container::XNameContainer; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/NoSuchFilterRequest.idl b/offapi/com/sun/star/document/NoSuchFilterRequest.idl new file mode 100644 index 0000000000..af99068b4b --- /dev/null +++ b/offapi/com/sun/star/document/NoSuchFilterRequest.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 . + */ + + +module com { module sun { module star { module document { + +/** should be used for interaction to handle states of unknown filter during detection + ++ If during loading time the filter can't be detected and wasn't given at calling time, + a possible com::sun::star::task::InteractionHandler will be used. + (it's a part of used MediaDescriptor) + Such "NoSuchFilterRequest" will be used then to start right interaction on that to + get a decision which filter should be used for given URL. A possible continuation + of type XInteractionFilterSelect will transport this decision back to + generic filter detection and force using of it. Of course it's possible to abort + the loading process by use another continuation com::sun::star::task::XInteractionAbort. +
+ + @see MediaDescriptor + @see com::sun::star::task::InteractionHandler + @see XInteractionFilterSelect + @see com::sun::star::task::XInteractionAbort +*/ +published exception NoSuchFilterRequest : ::com::sun::star::uno::Exception +{ + /** transport URL which couldn't be detected + */ + string URL; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/OOXMLDocumentPropertiesImporter.idl b/offapi/com/sun/star/document/OOXMLDocumentPropertiesImporter.idl new file mode 100644 index 0000000000..77a0020f4c --- /dev/null +++ b/offapi/com/sun/star/document/OOXMLDocumentPropertiesImporter.idl @@ -0,0 +1,31 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module document { + + +/** allows to import document properties from OOXML format + */ +service OOXMLDocumentPropertiesImporter : XOOXMLDocumentPropertiesImporter; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/OfficeDocument.idl b/offapi/com/sun/star/document/OfficeDocument.idl new file mode 100644 index 0000000000..8e5eef9c8e --- /dev/null +++ b/offapi/com/sun/star/document/OfficeDocument.idl @@ -0,0 +1,159 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module document { + +/** abstract service which specifies a storable and printable document + ++ All major document-like components should support this service + instead of simple components which supports a com::sun::star::frame::Controller + or pure com::sun::star::awt::XWindow only. +
+ + @see com::sun::star::frame::Controller + */ +published service OfficeDocument +{ + /** represents a component which is created from a URL and arguments + ++ It is a representation of a resource in the sense that it was + created/loaded from the resource. The arguments are passed to the loader + to modify its behavior. +
+ */ + interface com::sun::star::frame::XModel; + + /** a storable document should provide information about his modify state + ++ With this interface it's possible too, to reset the modify state. + That can be necessary to prevent code against problem during closing + of the document without saving any changes. +
+ */ + interface com::sun::star::util::XModifiable; + + /** offers a simple way to store a component to a URL + ++ This interface supports functionality +
+ It's possible to specify which printer should be used and of course + print the document on it. +
+ */ + interface com::sun::star::view::XPrintable; + + /** is an old and deprecated version of the XDocumentEventBroadcaster interface + @deprecated + */ + [optional] interface XEventBroadcaster; + + /** makes it possible to register listeners which are called whenever + a document event occurs + */ + [optional] interface XDocumentEventBroadcaster; + + /** access to bound event handlers + */ + [optional] interface XEventsSupplier; + + /** access to some properties describing all open views to a document + */ + [optional] interface XViewDataSupplier; + + /** allows for getting information about a print job + + @since OOo 1.1.2 + */ + [optional] interface com::sun::star::view::XPrintJobBroadcaster; + + /** is supported when the document can contain scripts and dialogs + + @since OOo 2.4 + */ + [optional] interface XEmbeddedScripts; + + /** access to the DocumentProperties. + + @since OOo 3.0 + */ + [optional] interface XDocumentPropertiesSupplier; + + /** provides access to the document's undo manager. + */ + [optional] interface XUndoManagerSupplier; + + /** controls the focus behavior of the form controls in the document + ++ If this flag is set to `TRUE`, any view belonging to the document + should focus the first control in the document. With this, you may + control if your document works primarily as a form document. +
+ */ + [property, optional] boolean AutomaticControlFocus; + + /** controls the initial (on-load) behavior of the form controls in the document + +If set to `TRUE`, upon loading the document, the form controls will be in design mode.
+ If set to `FALSE`, they will be alive, i.e. operational.
+ With this, you may control if your document works primarily as a form document.
+
Once calculated, the id must not change until the document has been + closed. Upon closing it will not be made persistent. Thus, the document + may get a different id every time it gets loaded.
+ */ + [property, optional, readonly] string RuntimeUID; + + /** Grab bag of document properties, used as a string-any map for + interim interop purposes. + + @since LibreOffice 4.2 + +This property is intentionally not handled by the ODF + filter. Any member that should be handled there should be + first moved out from this grab bag to a separate property.
+ */ + [optional, property] sequence+ This service is only used to register embedded server support + for StarOffice documents. +
+ + @since OOo 1.1.2 + */ +published service OleEmbeddedServerRegistration + : com::sun::star::uno::XInterface; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/OwnLockOnDocumentRequest.idl b/offapi/com/sun/star/document/OwnLockOnDocumentRequest.idl new file mode 100644 index 0000000000..617581cbf5 --- /dev/null +++ b/offapi/com/sun/star/document/OwnLockOnDocumentRequest.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 . + */ + + +module com { module sun { module star { module document { + +/** Is used for interaction handle to query user decision regarding locked + document. + + @since OOo 3.1 +*/ +published exception OwnLockOnDocumentRequest : ::com::sun::star::uno::Exception +{ + /** The URL of the locked document. + */ + string DocumentURL; + + /** The time from which the document is locked. + */ + string TimeInfo; + + /** Whether the request is related to storing process + */ + boolean IsStoring; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/PDFDialog.idl b/offapi/com/sun/star/document/PDFDialog.idl new file mode 100644 index 0000000000..007b30ebef --- /dev/null +++ b/offapi/com/sun/star/document/PDFDialog.idl @@ -0,0 +1,45 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module document { + + +/** This service is for a PDFDialog + */ +service PDFDialog +{ + service com::sun::star::ui::dialogs::FilterOptionsDialog; + + /** PDFDialog options can be set as sequence of + com.sun.star.beans.PropertyValue at the FilterData property of the + MediaDescriptor. The PropertyValues which are supported within the + sequence are described in the registry at Office.Common/Filter/PDF/Export + + The source of this registry can be found in following file: + "officecfg/registry/schema/org/openoffice/Office/Common.xcs" + */ + + interface ::com::sun::star::ui::dialogs::XAsynchronousExecutableDialog; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/PrinterIndependentLayout.idl b/offapi/com/sun/star/document/PrinterIndependentLayout.idl new file mode 100644 index 0000000000..af7e705802 --- /dev/null +++ b/offapi/com/sun/star/document/PrinterIndependentLayout.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 . + */ + + +module com { module sun { module star { module document { + + +/** specifies whether the document printer metric is used. + + @since OOo 1.1.2 +*/ +published constants PrinterIndependentLayout +{ + /** use printer-dependent metrics for layout */ + const short DISABLED = 1; + + /** use printer-independent metrics for layout, + assuming a generic 600dpi printer */ + const short LOW_RESOLUTION = 2; + + /** @deprecated ENABLED changed to LOW_RESOLUTION, + to distinguish from HIGH_RESOLUTION */ + const short ENABLED = LOW_RESOLUTION; + + /** use printer-independent metrics for layout, + assuming a generic high-resolution printer (4800dpi) */ + const short HIGH_RESOLUTION = 3; + + /** [future:] use printer-independent-layout settings from parent object + const short LIKE_PARENT = 4; + */ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/RedlineDisplayType.idl b/offapi/com/sun/star/document/RedlineDisplayType.idl new file mode 100644 index 0000000000..02c39fd79b --- /dev/null +++ b/offapi/com/sun/star/document/RedlineDisplayType.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 . + */ + + +module com { module sun { module star { module document { + + +/** specifies which changes in a document are displayed. + */ +published constants RedlineDisplayType +{ + /** no changes are displayed. + */ + const short NONE = 0; + + /** only inserted parts are displayed and attributed. + */ + const short INSERTED = 1; + + /** only inserted parts are displayed and attributed. + */ + const short INSERTED_AND_REMOVED = 2; + + /** only removed parts are displayed and attributed. + */ + const short REMOVED = 3; +}; + +};};};}; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/ReloadEditableRequest.idl b/offapi/com/sun/star/document/ReloadEditableRequest.idl new file mode 100644 index 0000000000..343f2c5b04 --- /dev/null +++ b/offapi/com/sun/star/document/ReloadEditableRequest.idl @@ -0,0 +1,44 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */ +/* + * 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 . + */ + +module com +{ + module sun + { + module star + { + module document + { + /** Is used for interaction handle to query user decision regarding reloading a + document that was recently made editable. + + @since LibreOffice 7.2 + */ + published exception ReloadEditableRequest : ::com::sun::star::uno::Exception + { + /** The URL of the document that is open but was made editable. + */ + string DocumentURL; + }; + }; + }; + }; +}; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ diff --git a/offapi/com/sun/star/document/Settings.idl b/offapi/com/sun/star/document/Settings.idl new file mode 100644 index 0000000000..e8113f8881 --- /dev/null +++ b/offapi/com/sun/star/document/Settings.idl @@ -0,0 +1,286 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module document { + + +/** describes properties that apply to the whole document of any + application. + +For application specific settings, please refer to the + individual services.
+ + @see com::sun::star::text::DocumentSettings + @see com::sun::star::sheet::DocumentSettings + @see com::sun::star::drawing::DocumentSettings + @see com::sun::star::presentation::DocumentSettings + */ +published service Settings +{ + /** gives access to the properties implemented by this service. + */ + interface com::sun::star::beans::XPropertySet; + + + // Note: These settings are global. However there is a note at + // every property that shows which application currently makes use + // of it. + + // Writer and Draw/Impress and Calc + /** gives access to the set of forbidden characters. + + @return the + com::sun::star::i18n::XForbiddenCharacters + interface to allow retrieval and modification of the + forbidden characters set. + */ + [optional, property] com::sun::star::i18n::XForbiddenCharacters ForbiddenCharacters; + + // Writer and Calc + /** specifies the update mode for links when loading text documents. + +For supported values see the constants group + LinkUpdateModes.
+ */ + [optional, property] short LinkUpdateMode; + + // Writer and Draw/Impress and Calc + /** printer used by the document. + */ + [property] string PrinterName; + + // Writer and Draw/Impress and Calc + /** platform and driver dependent printer setup data. + +This property serves to capture the current printer setup + settings, such as paper tray, printer options, etc. The data + can typically be interpreted only by the system that generated + it. The PrinterSetup property may be used to save and restore + the user's printer settings.
+ */ + [property] sequence< byte > PrinterSetup; + + // Writer and Draw/Impress and Calc + /** specifies if kerning is applied to Asian punctuation. + +Applies only if kerning is enabled.
+ */ + [optional, property] boolean IsKernAsianPunctuation; + + // Writer and Draw/Impress and Calc + /** specifies the compression (character spacing) type used for + Asian characters. + + @see com::sun::star::text::CharacterCompressionType + */ + [optional, property] short CharacterCompressionType; + + // Writer and Draw/Impress and Calc + /** specifies if the user-specific settings saved within a + document should be loaded with the document. + */ + [optional, property] boolean ApplyUserData; + + // Writer and Calc + /** specifies if a new version is created if a document has + been modified and you want to close it. + */ + [optional, property] boolean SaveVersionOnClose; + + // Writer and Draw/Impress and Calc + /** specifies if the document should be updated when the + template it was created from changes. + +Applies only for documents that were created from a template.
+ */ + [optional, property] boolean UpdateFromTemplate; + + // Writer + /** specifies if fields in text documents are updated automatically. + */ + [optional, property] boolean FieldAutoUpdate; + + // Writer + /** The name of the globally registered + com::sun::star::sdb::DataSource + from which the current data is taken. + +The data source can e.g. be used for feeding a form + letter.
+ */ + [optional, property] string CurrentDatabaseDataSource; + + // Writer + /** a string value, specifying the name of the object displayed + currently (or the SQL statement used). + */ + [optional, property] string CurrentDatabaseCommand; + + // Writer + // Note: What is the property DataTableName? Is this Writer-specific? + /** determines the interpretation of the property DataTableName. + + @see com::sun::star::sdb::CommandType + */ + [optional, property] long CurrentDatabaseCommandType; + + // Draw and Impress + /** + */ + [optional, property] long DefaultTabStop; + + // Draw and Impress + /** determines if the document will be printed as a booklet + (brochure), i.e., two document pages are put together on one + physical page, such that you can fold the print result and get + a booklet. + +Note, that you have to print in duplex mode, if both, + #IsPrintBookletFront and + #IsPrintBookletBack are set to `TRUE`.
+ */ + [optional, property] boolean IsPrintBooklet; + + // Draw and Impress + /** is only effective, if #IsPrintBooklet is + `TRUE`. If this property is also `TRUE`, only the fronts of + the pages of your booklet are printed. + +This is especially useful, if your printer does not supply + duplex printing.
+ */ + [optional, property] boolean IsPrintBookletFront; + + // Draw and Impress + /** is only effective, if #IsPrintBooklet is + `TRUE`. If this property is also `TRUE`, only the backs of + the pages of your booklet are printed. + +This is especially useful, if your printer does not supply + duplex printing.
+ */ + [optional, property] boolean IsPrintBookletBack; + + // Draw and Impress + /** how printing uses color. + +For supported values see the constants group + PrinterIndependentLayout.
+ */ + [optional, property] short PrinterIndependentLayout; + + // Writer, maybe later other applications, too + /** layout engine should add value of a Font's "external leading" + * attribute to the line spacing. + */ + [optional, property] boolean AddExternalLeading; + + // Writer, maybe later others + /** + Whether to embed fonts used by the document (see e.g. handling + of OOXML embedRegular etc.) + @since LibreOffice 4.0 + */ + [optional, property] boolean EmbedFonts; + // Writer, maybe later others + /** + Whether to embed also system fonts used by the document. + Does not have any effect if EmbedFonts is false. + @since LibreOffice 4.0 + */ + [optional, property] boolean EmbedSystemFonts; + + /** Whether to embed only the fonts that are used in the document. + + @since LibreOffice 6.2 + */ + [optional, property] boolean EmbedOnlyUsedFonts; + + /** Whether to embed Latin script fonts. + + @since LibreOffice 6.2 + */ + [optional, property] boolean EmbedLatinScriptFonts; + + /** Whether to embed Asian script fonts. + + @since LibreOffice 6.2 + */ + [optional, property] boolean EmbedAsianScriptFonts; + + /** Whether to embed Complex script fonts. + + @since LibreOffice 6.2 + */ + [optional, property] boolean EmbedComplexScriptFonts; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/TypeDetection.idl b/offapi/com/sun/star/document/TypeDetection.idl new file mode 100644 index 0000000000..21d1f8ea0d --- /dev/null +++ b/offapi/com/sun/star/document/TypeDetection.idl @@ -0,0 +1,164 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module document { + +/** encapsulate a type detection service and provide read/write access on it's configuration data. + ++ It's possible to make a "flat" detection which may use internal configuration + data only - or a "deep" detection which use special ExtendedTypeDetection + services to look into the document stream. Last mode can be suppressed to perform the operation. + Of course the results can't be guaranteed then. (e.g. in case the extension was changed) +
+ */ +published service TypeDetection +{ + /** can be used to make a flat or deep type detection. + ++ Use this interface to get information about the type of the given resource. + Return value will be always an internal name of a registered document type. + It can be used may on other services (e.g. com::sun::star::frame::FrameLoaderFactory) + to do further things, which base on it (e.g. to load it into a frame). +
+ */ + interface XTypeDetection; + + /** provides read access to the complete set of type configuration data. + ++ Every container item is specified as a set of properties and will be + represented by a sequence< com::sun::star::beans::PropertyValue > structure. + Follow properties are supported: + (But note: not all of them must be present every time!) + +
Property Name | +Value Type | +Description | +
Name | +[string] | +The internal name is the only value, which makes a container item unique. | +
UIName | +[string] | +It contains the localized name for this type for the current locale. | +
UINames | +[sequence< string >] | +It contains all available localized names for this type. The are organized + in pairs and represented as a structure of sequence< com::sun::star::beans::PropertyValue >. + The name of such property must be interpreted as locale; its value as the localized + type name corresponding to this locale. | +
MediaType | +[string] | +It contains the MIME or content type descriptor. The differences between a MIME type and + an internal type name was made, to resolve existing ambiguities. | +
ClipboardFormatdeprecated! | +[string] | +It was interpreted as an identifier inside clipboard. + Please use new property ContentFormat instead of this now. | +
ContentFormat | +[string] | +It's and identifier, which is used for a deep format detection. + An ExtendedTypeDetection use this value to match + a given content to this type. e.g. It's interpreted as the doc type + of an XML stream or as an identifier inside a file header. + | +
URLPattern | +[sequence< string >] | +This list contains different URL patterns, which identify this type. + E.g. data base contents can be described by a new defined protocol like "sql://select*". + In combination with a suitable com::sun::star::frame::FrameLoader or + ImportFilter/ExportFilter it would be possible then, to + layout a SQL query output into an office frame. | +
Extensions | +[sequence< string >] | +It contains a list of file extensions, which match this type. + They must be specified as pure extension, without any special signs. + E.g.: "doc", "html" ... but not ".doc". + Using wild cards is allowed but not very useful. They may result in + ambiguities with other type registrations can't be resolved anytime. | +
DocumentIconID | +[integer] | +It's an ID, which present the number of a corresponding icon. | +
+ Note:
+ All elements of this container will be addressed by his internal name,
+ and it must be an unambiguous value.
+
+ Against simple property search it provides some complex algorithms too. + For further information please read the SDK documentation. +
+ */ + [optional] interface com::sun::star::container::XContainerQuery; + + /** can be used to perform container changes. + ++ Because the complexness of such configuration set can be very high, + it seems not very useful to update the underlying configuration layer + on every container change request immediately. Another strategy can be to + make all changes (adding/changing/removing of items) and call flush at the end. + That will validate the whole container and reject inconsistent data sets. + Only in case all made changes was correct, they will be written back to the + configuration. Further this interface provides the possibility, that interested + changes listener can be registered too. +
+ */ + [optional] interface com::sun::star::util::XFlushable; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/UndoContextNotClosedException.idl b/offapi/com/sun/star/document/UndoContextNotClosedException.idl new file mode 100644 index 0000000000..689e978d78 --- /dev/null +++ b/offapi/com/sun/star/document/UndoContextNotClosedException.idl @@ -0,0 +1,36 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module document { + + +/** is thrown when an operation is attempted at an XUndoManager which requires all undo + contexts to be closed, but this requirement is not fulfilled. + @since OOo 3.4 + */ +exception UndoContextNotClosedException : ::com::sun::star::util::InvalidStateException +{ +}; + + +}; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/UndoFailedException.idl b/offapi/com/sun/star/document/UndoFailedException.idl new file mode 100644 index 0000000000..71a1f23e62 --- /dev/null +++ b/offapi/com/sun/star/document/UndoFailedException.idl @@ -0,0 +1,41 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module document { + + +/** thrown when reverting to re-applying an undoable action fails. + + @see XUndoAction::undo + @see XUndoManager::undo + @since OOo 3.4 + */ +exception UndoFailedException : ::com::sun::star::uno::Exception +{ + /** describes the reason why the operation failed. Usually, this member will carry an exception. + */ + any Reason; +}; + + +}; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/UndoManagerEvent.idl b/offapi/com/sun/star/document/UndoManagerEvent.idl new file mode 100644 index 0000000000..492ffa5024 --- /dev/null +++ b/offapi/com/sun/star/document/UndoManagerEvent.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 . + */ + + +module com { module sun { module star { module document { + + +/** is an event sent by an XUndoManager implementation when the Undo/Redo stacks of the manager are + modified. + @see XUndoManager + @see XUndoManagerListener + @see XUndoAction + @since OOo 3.4 + */ +struct UndoManagerEvent : ::com::sun::star::lang::EventObject +{ + /** the title of the undo action which is described by the event + @see XUndoAction::Title + */ + string UndoActionTitle; + + /** denotes the number of Undo contexts which are open, and not yet closed, at the time the event is fired. + @see XUndoManager::enterUndoContext + */ + long UndoContextDepth; +}; + + +}; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/UpdateDocMode.idl b/offapi/com/sun/star/document/UpdateDocMode.idl new file mode 100644 index 0000000000..f2ee8ca30d --- /dev/null +++ b/offapi/com/sun/star/document/UpdateDocMode.idl @@ -0,0 +1,57 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module document { + +/** Specify the way a document can be updated. + + @since OOo 1.1.2 +*/ +published constants UpdateDocMode +{ + /** Do not update document. + */ + + const short NO_UPDATE = 0; + + /** Update document if it does not require a dialog. + Otherwise do not update. For example a link to a database + can require a dialog to get password for an update. + */ + + const short QUIET_UPDATE = 1; + + /** Produce update according to configuration settings. + If there are no settings use dialog. + */ + + const short ACCORDING_TO_CONFIG = 2; + + /** Update document even if it does require a dialog. + */ + + const short FULL_UPDATE = 3; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/XActionLockable.idl b/offapi/com/sun/star/document/XActionLockable.idl new file mode 100644 index 0000000000..2b85fa49bd --- /dev/null +++ b/offapi/com/sun/star/document/XActionLockable.idl @@ -0,0 +1,66 @@ +/* -*- 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 . + */ + + + +module com { module sun { module star { module document { + + +/** makes it possible to prevent object internal updates for a certain period + to be able to quickly change multiple parts of the objects, where the + updates would invalidate each other, anyway. + */ +published interface XActionLockable: com::sun::star::uno::XInterface +{ + /** @returns + `TRUE` if at least one lock exists. + */ + boolean isActionLocked(); + + /** increments the lock count of the object by one. + */ + void addActionLock(); + + /** decrements the lock count of the object by one. + */ + void removeActionLock(); + + /** sets the locking level. + +This method is used for debugging purposes. The programming + environment can restore the locking after a break of a debug + session.
+ */ + void setActionLocks( [in] short nLock ); + + /** resets the locking level. + +This method is used for debugging purposes. The debugging + environment of a programming language can reset the locks + to allow refreshing of the view if a breakpoint is reached or + step execution is used.
+ */ + short resetActionLocks(); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/XBinaryStreamResolver.idl b/offapi/com/sun/star/document/XBinaryStreamResolver.idl new file mode 100644 index 0000000000..801566a079 --- /dev/null +++ b/offapi/com/sun/star/document/XBinaryStreamResolver.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 . + */ + + +module com { module sun { module star { module document { + + +/** +This interface encapsulates functionality to get/resolve binary data streams. + It is used to transform binary data to a URL or to transform a URL to binary + data. The binary data is represented through input and output streams.
+ +In the case of transforming a URL to binary data, the getInputStream
+ method is used. This returns a com::sun::star::io::XInputStream
+ from which the binary data, transformed from the given URL, can be read.
In the case of transforming binary data to a URL, a
+ com::sun::star::io::XOutputStream is created first to write
+ the binary data to. After this, the resolveOutputStream
method can
+ be used to transform the binary data, represented through the
+ com::sun::star::io::XOutputStream interface, to a URL.
This interface is the successor of the XEventBroadcaster interface, which should not be used + anymore.
+ + @see DocumentEvent + @since OOo 3.1 +*/ +interface XDocumentEventBroadcaster +{ + /** registers a listener which is notified about document events + + @param Listener + the listener to register. The behavior of the method is undefined this listener + is `NULL`. + */ + void addDocumentEventListener( [in] XDocumentEventListener Listener ); + + /** revokes a listener which has previously been registered to be notified about document events. + + @param Listener + the listener to revoke. The behavior of the method is undefined this listener + is `NULL`. + */ + void removeDocumentEventListener( [in] XDocumentEventListener Listener ); + + /** causes the broadcaster to notify all registered listeners of the given event + +The method will create a DocumentEvent instance with the given parameters,
+ and fill in the Source
member (denoting the broadcaster) as appropriate.
Whether the actual notification happens synchronously or asynchronously is up to the + implementor of this method. However, implementations are encouraged to specify this, for the + list of supported event types, in their service contract.
+ +Implementations might also decide to limit the list of allowed events (means event names) at + their own discretion. Again, in this case they're encouraged to document this in their service + contract.
+ + @param EventName + the name of the event to be notified. + @param ViewController + the view/controller which the event applies to. May be `NULL` + @param Supplement + supplemental information related to the event. + + @throws ::com::sun::star::lang::IllegalArgumentException + if EventName is empty, or if EventName is not supported by the + document implementation. + + @throws ::com::sun::star::lang::NoSupportException + if the broadcaster implementation does not supported broadcasting events induced externally. + This is usually used for components which multiplex events from multiple sources, and thus would + be unable to fill in theSource
member of the DocumentEvent instance.
+ */
+ void notifyDocumentEvent(
+ [in] string EventName,
+ [in] ::com::sun::star::frame::XController2 ViewController,
+ [in] any Supplement
+ )
+ raises ( ::com::sun::star::lang::IllegalArgumentException,
+ ::com::sun::star::lang::NoSupportException );
+};
+
+
+}; }; }; };
+
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/document/XDocumentEventListener.idl b/offapi/com/sun/star/document/XDocumentEventListener.idl
new file mode 100644
index 0000000000..69019323b3
--- /dev/null
+++ b/offapi/com/sun/star/document/XDocumentEventListener.idl
@@ -0,0 +1,43 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module document {
+
+
+/** allows to be notified of events happening in an OfficeDocument
+
+ This interface is the successor of the XEventListener interface, which should not be used + anymore.
+ + @see XDocumentEventBroadcaster + @since OOo 3.1 + */ +interface XDocumentEventListener : ::com::sun::star::lang::XEventListener +{ + /** is called whenever a document event occurred + */ + void documentEventOccured( [in] DocumentEvent Event ); +}; + + +}; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/XDocumentInsertable.idl b/offapi/com/sun/star/document/XDocumentInsertable.idl new file mode 100644 index 0000000000..93ddf293aa --- /dev/null +++ b/offapi/com/sun/star/document/XDocumentInsertable.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 . + */ + + + +module com { module sun { module star { module document { + + +/** Makes it possible to import a document from a given URL + into this document. + */ +published interface XDocumentInsertable: com::sun::star::uno::XInterface +{ + /** Inserts the document that is specified by the URL. + The document will be inserted at the current cursor position. + + Make sure that you insert at a position which can be split + in two paragraphs (i.e. not inside of a field). + */ + void insertDocumentFromURL( [in] string aURL, + [in] sequence+ This interface manages access to document meta-data properties. + Such properties may be set from the outside via the setter methods + (e.g. when importing arbitrary document formats that support + document properties), or imported from an ODF package via the methods + loadFromStorage() and loadFromMedium(). + The properties may also be stored via the methods + storeToStorage() and storeToMedium(). +
+ + @since OOo 3.0 + + @see XDocumentPropertiesSupplier + for getting access to an instance from a loaded document + @see DocumentProperties for a service that implements this interface + */ +published interface XDocumentProperties +{ + /** contains the initial author of the document. + */ + + [attribute] string Author; + + /** identifies which application was used to create or last modify the + document. ++ The generating application will set this attribute when it creates a + new document or it saves a document. When a document is loaded that + itself contains such an attribute it will be preserved until the + document is saved again. +
+ */ + + [attribute] string Generator; + + /** contains the date and time when the document was created. + */ + + [attribute] com::sun::star::util::DateTime CreationDate; + + /** contains the title of the document. + */ + + [attribute] string Title; + + /** contains the subject of the document. + */ + + [attribute] string Subject; + + /** contains a multi-line comment describing the document. ++ Line delimiters can be UNIX, Macintosh or DOS style. +
+ */ + + [attribute] string Description; + + /** contains a list of keywords for the document. + */ + + [attribute] sequence< string > Keywords; + + /** contains the default language of the document. + */ + + [attribute] com::sun::star::lang::Locale Language; + + /** contains the name of the person who most recently stored the document. + */ + + [attribute] string ModifiedBy; + + /** contains the date and time of the last time the document was stored. ++ If the document has never been stored, contains a default value. +
+ */ + + [attribute] com::sun::star::util::DateTime ModificationDate; + + /** contains the name of the person who most recently printed the document. + */ + + [attribute] string PrintedBy; + + /** contains the date and time when the document was last printed. ++ If the document has never been printed, contains a default value. +
+ */ + + [attribute] com::sun::star::util::DateTime PrintDate; + + /** contains the name of the template from which the document was created. ++ The value is an empty `string` if the document was not + created from a template or if it was detached from the template. +
+ */ + + [attribute] string TemplateName; + + /** contains the URL of the template from which the document was created. ++ The value is an empty `string` if the document was not + created from a template or if it was detached from the template. +
+ */ + + [attribute] string TemplateURL; + + /** contains the date and time of when the document + was created or updated from the template. + */ + + [attribute] com::sun::star::util::DateTime TemplateDate; + + /** contains the URL to load automatically at a + specified time after the document is loaded into a desktop frame. ++ An empty URL is valid and describes a case where the document shall be + reloaded from its original location after some time described by the + attribute #AutoloadSecs. + An empty `string` together with an + #AutoloadSecs value of 0 + describes a case where no autoload is specified. +
+ + @see AutoloadSecs + */ + + [attribute] string AutoloadURL; + + /** contains the number of seconds after which a specified + URL is to be loaded after the document is loaded into a desktop + frame. ++ A value of 0 is valid and describes a redirection. + A value of 0 together with an empty `string` as + #AutoloadURL + describes a case where no autoload is specified. +
+ + @throws com::sun::star::lang::IllegalArgumentException + if argument is negative + + @see AutoloadURL + */ + + [attribute] long AutoloadSecs { + set raises ( com::sun::star::lang::IllegalArgumentException ); + }; + + /** contains the name of the default frame into which + links should be loaded if no target is specified. ++ This applies to the autoload feature too, but to others as well. +
+ */ + + [attribute] string DefaultTarget; + + /** contains some statistics about the document. ++ The contained statistics may be specific to the type of the document. +
+ */ + + [attribute] + sequence< com::sun::star::beans::NamedValue > DocumentStatistics; + + /** describes how often the document was edited and saved. ++
+ + @throws com::sun::star::lang::IllegalArgumentException + if argument is negative + */ + + [attribute] short EditingCycles { + set raises ( com::sun::star::lang::IllegalArgumentException ); + }; + + /** contains the net time of editing the document (in seconds). ++
+ + @throws com::sun::star::lang::IllegalArgumentException + if argument is negative + */ + + [attribute] long EditingDuration { + set raises ( com::sun::star::lang::IllegalArgumentException ); + }; + + /** resets all attributes that could identify the user. ++ Clears the document properties, such that it appears the document + has just been created. + This is a convenience method which resets several attributes at once, + as follows: +
+ The returned object also implements the interface + com::sun::star::beans::XPropertySet. +
+ @returns a container that provides access to user-defined properties + */ + + com::sun::star::beans::XPropertyContainer getUserDefinedProperties(); + + /** loads document properties from an ODF package. ++ This method is used for accessing an ODF package that is owned by + someone else, e.g., a document. +
+ + @param Storage + the com::sun::star::embed::Storage representing the + ODF package + + @param Medium + the com::sun::star::document::MediaDescriptor + representing the source ++ This is unfortunately necessary in order to properly resolve + relative URLs in the meta-data. +
+ + @throws com::sun::star::lang::IllegalArgumentException + if argument is `NULL` + @throws com::sun::star::io::WrongFormatException + if parsing the XML document fails + @throws com::sun::star::lang::WrappedTargetException + if thrown when trying to open a stream in the given storage + @throws com::sun::star::io::IOException + if thrown when trying to open a stream in the given storage + */ + + void loadFromStorage( [in] com::sun::star::embed::XStorage Storage, + [in] sequence < com::sun::star::beans::PropertyValue > Medium ) + raises( com::sun::star::lang::IllegalArgumentException, + com::sun::star::io::WrongFormatException, + com::sun::star::lang::WrappedTargetException, + com::sun::star::io::IOException ); + + /** loads document properties from an ODF package or an OLE container. + + @param URL + the URL of the source document ++ The URL could be part of the Medium parameter, but because often + no other parameters except the URL are needed, providing it + separately was added for convenience. +
+ + @param Medium + the com::sun::star::document::MediaDescriptor + representing the source + + @throws com::sun::star::io::WrongFormatException + if parsing the XML document fails + @throws com::sun::star::lang::WrappedTargetException + if thrown when trying to open a stream in the given storage + @throws com::sun::star::io::IOException + if thrown when trying to open a stream in the given storage + */ + + void loadFromMedium( [in] string URL, + [in] sequence < com::sun::star::beans::PropertyValue > Medium ) + raises( com::sun::star::io::WrongFormatException, + com::sun::star::lang::WrappedTargetException, + com::sun::star::io::IOException ); + + /** stores document properties to an ODF package. ++ This method is used for accessing an ODF package that is owned by + someone else, e.g., a document. + Note that the implementation may choose to store the meta-data + in either OOo or ODF format, depending on the MediaType property + of the given Storage argument. +
+ + @param Storage + the com::sun::star::embed::Storage representing the + ODF package + + @param Medium + the com::sun::star::document::MediaDescriptor + representing the source ++ This is unfortunately necessary in order to properly resolve + relative URLs in the meta-data. +
+ + @throws com::sun::star::lang::IllegalArgumentException + if argument is `NULL` + @throws com::sun::star::lang::WrappedTargetException + if thrown when trying to open a stream in the given storage + @throws com::sun::star::io::IOException + if thrown when writing to the storage + */ + + void storeToStorage( [in] com::sun::star::embed::XStorage Storage, + [in] sequence < com::sun::star::beans::PropertyValue > Medium ) + raises( com::sun::star::lang::IllegalArgumentException, + com::sun::star::lang::WrappedTargetException, + com::sun::star::io::IOException ); + + /** stores document properties to an ODF package or an OLE container. + + @param URL + the URL of the target document ++ The URL could be part of the Medium parameter, but because often + no other parameters except the URL are needed, providing it + separately was added for convenience. +
+ + @param Medium + the com::sun::star::document::MediaDescriptor + representing the target + + @throws com::sun::star::lang::WrappedTargetException + if thrown when trying to open a stream in the given storage + @throws com::sun::star::io::IOException + if thrown when writing to the storage + */ + + void storeToMedium( [in] string URL, + [in] sequence < com::sun::star::beans::PropertyValue > Medium ) + raises( com::sun::star::lang::WrappedTargetException, + com::sun::star::io::IOException ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/XDocumentProperties2.idl b/offapi/com/sun/star/document/XDocumentProperties2.idl new file mode 100644 index 0000000000..5b4acbfe2e --- /dev/null +++ b/offapi/com/sun/star/document/XDocumentProperties2.idl @@ -0,0 +1,50 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */ +/* + * 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/. + */ + +module com { module sun { module star { module document { + +/** Extends XDocumentProperties interface to provide additional attributes + + @since LibreOffice 24.2 +*/ +interface XDocumentProperties2: com::sun::star::document::XDocumentProperties +{ + /** Contributors to the resource (other than the authors). */ + [attribute] sequence< string > Contributor; + + /** The extent or scope of the resource. */ + [attribute] string Coverage; + + /** Unique identifier of the resource. */ + [attribute] string Identifier; + + /** Entities responsible for making the resource available. */ + [attribute] sequence< string > Publisher; + + /** Relationships to other documents. + + Recommended practice is to identify the related resource by means of a + URI. If this is not possible or feasible, a string conforming to a + formal identification system may be provided. + */ + [attribute] sequence< string > Relation; + + /** Informal rights statement. */ + [attribute] string Rights; + + /** Unique identifier of the work from which this resource was derived */ + [attribute] string Source; + + /** The nature or genre of the resource. */ + [attribute] string Type; +}; + + +}; }; }; }; +/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ diff --git a/offapi/com/sun/star/document/XDocumentPropertiesSupplier.idl b/offapi/com/sun/star/document/XDocumentPropertiesSupplier.idl new file mode 100644 index 0000000000..0d9fef2b26 --- /dev/null +++ b/offapi/com/sun/star/document/XDocumentPropertiesSupplier.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 . + */ + + +module com { module sun { module star { module document { + +/** provides access to the XDocumentProperties instance of a + document. ++ A DocumentProperties instance is available on loaded documents + via this supplier interface. +
+ + @since OOo 3.0 + + @see XDocumentProperties + @see DocumentProperties + */ +published interface XDocumentPropertiesSupplier +{ + /** provides the document properties object. + + @returns + an object of type XDocumentProperties + */ + XDocumentProperties getDocumentProperties(); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/XDocumentRecovery.idl b/offapi/com/sun/star/document/XDocumentRecovery.idl new file mode 100644 index 0000000000..28aa7c691c --- /dev/null +++ b/offapi/com/sun/star/document/XDocumentRecovery.idl @@ -0,0 +1,110 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module document { + + +/** is the interface to be implemented by documents who wish to participate in + the document emergency-save / recovery process. + */ +interface XDocumentRecovery +{ + /** determines whether the document has been modified since the last call to storeToRecoveryFile(). + +If storeToRecoveryFile
has not been called before, this method returns whether the document
+ has been modified since it has been loaded respectively created.
When saving a session, either in case of an emergency (when OpenOffice.org crashed), or during a
+ periodic session save as configured by the user, storeToRecoveryFile() is called for every
+ document where wasModifiedSinceLastSave
returns `TRUE`.
It's allowed to implement this method sloppy, by returning `TRUE` in cases where it is not sure whether + the document actually has been modified. So, the most simple implementation could simply delegate this call + to com::sun::star::util::XModifiable::isModified(). (Well, actually that's the + second simple implementation, the most simple one would, still legitimately, always return `TRUE`.)
+ +However, in such a case, the document might be saved more often than needed. In particular during the + periodic session save, this might become a problem when saving is expensive, for a single document + or the sum of all open documents.
+ */ + boolean wasModifiedSinceLastSave(); + + /** does an emergency save of the document + +A default implementation of this method could simply delegate this call to + com::sun::star::frame::XStorable::storeToURL().
+ + @param TargetLocation + specifies the URL of the location to which the document should be emergency-saved. + + @param MediaDescriptor + contains additional arguments for the save process, for instance a StatusIndicator. + + @see MediaDescriptor + */ + void storeToRecoveryFile( + [in] string TargetLocation, + [in] sequence< ::com::sun::star::beans::PropertyValue > MediaDescriptor + ) + raises ( ::com::sun::star::io::IOException, + ::com::sun::star::lang::WrappedTargetException + ); + + /** recovers the document after a previous emergency or session save. + +The document itself has previously been created, but not loaded + (via com::sun::star::frame::XLoadable::load()) or initialized (via + com::sun::star::frame::XLoadable::initNew()).
+ +Upon successful return, the document must be fully initialized. In particular, the + caller is not responsible for calling com::sun::star::frame::XModel::attachResource(). + Instead, the implementation is responsible to do so, if required.
+ +A default implementation of this method could simply delegate this call to + ::com::sun::star::frame::XLoadable::load(), followed by + com::sun::star::frame::XModel::attachResource().
+ + @param SourceLocation + specifies the URL of the location to which the document was previously emergency-saved. + + @param SalvagedFile + specifies the original URL of the file which had been emergency-saved. If this is empty, + then the file should be recovered from its original location. + + @param MediaDescriptor + contains additional arguments for the load process, for instance a StatusIndicator. + + @see MediaDescriptor + */ + void recoverFromFile( + [in] string SourceLocation, + [in] string SalvagedFile, + [in] sequence< ::com::sun::star::beans::PropertyValue > MediaDescriptor + ) + raises ( ::com::sun::star::io::IOException, + ::com::sun::star::lang::WrappedTargetException + ); +}; + + +}; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/XDocumentRecovery2.idl b/offapi/com/sun/star/document/XDocumentRecovery2.idl new file mode 100644 index 0000000000..2592c3c7ef --- /dev/null +++ b/offapi/com/sun/star/document/XDocumentRecovery2.idl @@ -0,0 +1,47 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */ +/* + * 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 . + */ + + +module com { module sun { module star { module document { + + +/** An optional interface to be implemented by documents that wish to participate + in the document emergency-save / recovery process. Extends XDocumentRecovery + by providing a method to query how much time elapsed since modified state of + the document was set. + + @since LibreOffice 24.2 + + */ +interface XDocumentRecovery2: ::com::sun::star::document::XDocumentRecovery +{ + /** queries the time elapsed since the document became modified + + @returns + duration in milliseconds since modified state of the document was set, + or -1 if not modified. + */ + hyper getModifiedStateDuration(); +}; + + +}; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ diff --git a/offapi/com/sun/star/document/XDocumentRevisionListPersistence.idl b/offapi/com/sun/star/document/XDocumentRevisionListPersistence.idl new file mode 100644 index 0000000000..e20c2aafb4 --- /dev/null +++ b/offapi/com/sun/star/document/XDocumentRevisionListPersistence.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 . + */ + + +module com { module sun { module star { module document { + +/** interface to load or store a list of document revisions from or to a document + using the packed XML file format + */ +interface XDocumentRevisionListPersistence: com::sun::star::uno::XInterface +{ + /** Loads a list of available revisions from a storage ++ This method does not load any revision itself +
+ */ + sequence < ::com::sun::star::util::RevisionTag > load( [in] ::com::sun::star::embed::XStorage Storage) + raises( com::sun::star::container::NoSuchElementException, + com::sun::star::io::IOException, + com::sun::star::uno::Exception ); + + /** Stores a list of available revisions to a storage ++ This method does not store revisions themselves +
+ */ + void store( [in] ::com::sun::star::embed::XStorage Storage, [in] sequence < ::com::sun::star::util::RevisionTag > List ) + raises( com::sun::star::io::IOException, + com::sun::star::uno::Exception ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/XDocumentSubStorageSupplier.idl b/offapi/com/sun/star/document/XDocumentSubStorageSupplier.idl new file mode 100644 index 0000000000..ebf3179ecd --- /dev/null +++ b/offapi/com/sun/star/document/XDocumentSubStorageSupplier.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 . + */ + + + +module com { module sun { module star { module document { + +/** through this interface documents can provide access to their substorages + ++ A temporary interface to get access to documents substorages. +
+ */ +interface XDocumentSubStorageSupplier: com::sun::star::uno::XInterface +{ + /** provides the access to a substorage with specified name + + @param StorageName + the name of requested substorage + + @param nMode + a mode the storage should be opened in can take value from ::com::sun::star::embed::ElementModes + + @returns + XStorage implementation that refers to specified substorage + */ + com::sun::star::embed::XStorage getDocumentSubStorage( + [in] string StorageName, + [in] long nMode ); + + /** provides the list of substorages + + @returns + sequence of substorages names + */ + sequence< string > getDocumentSubStoragesNames() + raises( ::com::sun::star::io::IOException ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/XEmbeddedObjectResolver.idl b/offapi/com/sun/star/document/XEmbeddedObjectResolver.idl new file mode 100644 index 0000000000..e0b6c8ffbc --- /dev/null +++ b/offapi/com/sun/star/document/XEmbeddedObjectResolver.idl @@ -0,0 +1,37 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module document { + + +/** this interface converts embedded object URLs from one URL space to another. + */ +published interface XEmbeddedObjectResolver: com::sun::star::uno::XInterface +{ + /** converts the given URL from the source URL namespace to the destination + URL space of this instance. + */ + string resolveEmbeddedObjectURL( [in] string aURL ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/XEmbeddedObjectSupplier.idl b/offapi/com/sun/star/document/XEmbeddedObjectSupplier.idl new file mode 100644 index 0000000000..0d2b6d5b9f --- /dev/null +++ b/offapi/com/sun/star/document/XEmbeddedObjectSupplier.idl @@ -0,0 +1,38 @@ +/* -*- 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 . + */ + + + +module com { module sun { module star { module document { + + +/** represents something that provides an embedded object. + */ +published interface XEmbeddedObjectSupplier: com::sun::star::uno::XInterface +{ + /** returns the object which is embedded into this object. + */ + com::sun::star::lang::XComponent getEmbeddedObject(); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/XEmbeddedObjectSupplier2.idl b/offapi/com/sun/star/document/XEmbeddedObjectSupplier2.idl new file mode 100644 index 0000000000..a2d440cc66 --- /dev/null +++ b/offapi/com/sun/star/document/XEmbeddedObjectSupplier2.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 . + */ + + + +module com { module sun { module star { module document { + + +/** represents something that provides an embedded object. + */ +interface XEmbeddedObjectSupplier2: com::sun::star::document::XEmbeddedObjectSupplier +{ + /** returns the object which is embedded into this object. + ++ This method does not return the model that is controlled by the + embedded object, but the embedded object itself. +
+ */ + com::sun::star::embed::XEmbeddedObject getExtendedControlOverEmbeddedObject(); + + /** allows to control the aspect of the object. + */ + [attribute] hyper Aspect; + + /** allows to get the replacement image of the object. + */ + [attribute,readonly] com::sun::star::graphic::XGraphic ReplacementGraphic; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/XEmbeddedScripts.idl b/offapi/com/sun/star/document/XEmbeddedScripts.idl new file mode 100644 index 0000000000..1087f3af70 --- /dev/null +++ b/offapi/com/sun/star/document/XEmbeddedScripts.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 . + */ + + +module com { module sun { module star { module document { + + +/** is supported by OfficeDocuments which allow to embed scripts + + @since OOo 2.4 + */ +interface XEmbeddedScripts +{ + /** is the container ofStarBasic
macro libraries contained in the document
+ */
+ [attribute, readonly] ::com::sun::star::script::XStorageBasedLibraryContainer BasicLibraries;
+
+ /** is the container of dialogs libraries contained in the document
+ */
+ [attribute, readonly] ::com::sun::star::script::XStorageBasedLibraryContainer DialogLibraries;
+
+ /** determines whether executing macros from this document is allowed.
+
+ Effectively, this attribute is an evaluation of the document's MacroExecMode + against possibly applicable configuration settings, the document location in relation to the + trusted location, and the like.
+ + @see MacroExecMode + */ + [attribute, readonly] boolean AllowMacroExecution; +}; + + +}; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/XEventBroadcaster.idl b/offapi/com/sun/star/document/XEventBroadcaster.idl new file mode 100644 index 0000000000..dd0a4c88c5 --- /dev/null +++ b/offapi/com/sun/star/document/XEventBroadcaster.idl @@ -0,0 +1,49 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module document { + +/** makes it possible to register listeners which are called whenever + a document event (see EventObject) occurs + + @deprecated + @see XDocumentEventBroadcaster + */ +published interface XEventBroadcaster: com::sun::star::uno::XInterface +{ + /** registers the given listener + + @param Listener + listener which is interested on such events + */ + void addEventListener( [in] XEventListener Listener ); + + /** unregisters the given listener + + @param Listener + listener which isn't interested on such events any longer + */ + void removeEventListener( [in] XEventListener Listener ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/XEventListener.idl b/offapi/com/sun/star/document/XEventListener.idl new file mode 100644 index 0000000000..d4ef50d7c5 --- /dev/null +++ b/offapi/com/sun/star/document/XEventListener.idl @@ -0,0 +1,44 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module document { + +/** makes it possible to register listeners, which are called whenever + a document or document content event occurs + +Such events will be broadcasted by a XEventBroadcaster.
+ + @deprecated + @see XDocumentEventListener + */ +published interface XEventListener: com::sun::star::lang::XEventListener +{ + /** is called whenever a document event (see EventObject) occurs + + @param Event + specifies the event type + */ + void notifyEvent( [in] EventObject Event ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/XEventsSupplier.idl b/offapi/com/sun/star/document/XEventsSupplier.idl new file mode 100644 index 0000000000..2ef3e6013f --- /dev/null +++ b/offapi/com/sun/star/document/XEventsSupplier.idl @@ -0,0 +1,39 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module document { + +/** gives access to a list of URLs bound to events of this object + */ +published interface XEventsSupplier: com::sun::star::uno::XInterface +{ + /** offers a list of event handlers which are be bound to events of + this object + + @returns + an Events description object + */ + com::sun::star::container::XNameReplace getEvents(); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/XExporter.idl b/offapi/com/sun/star/document/XExporter.idl new file mode 100644 index 0000000000..c657c9b149 --- /dev/null +++ b/offapi/com/sun/star/document/XExporter.idl @@ -0,0 +1,55 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module document { + +/** makes it possible to connect a document with an ExportFilter + ++ An ExportFilter must know the source of his filter operation. + To set this on a filter is part of this interface. + Same mechanism exist for import too. +
+ + @see ExportFilter + @see ImportFilter + @see XImporter + */ +published interface XExporter: com::sun::star::uno::XInterface +{ + /** sets the source document for the exporter + + @param Document + the source document + + @throws com::sun::star::lang::IllegalArgumentException + if Document does not support any service which is + supported by this exporter + */ + void setSourceDocument( + [in] com::sun::star::lang::XComponent Document ) + raises( com::sun::star::lang::IllegalArgumentException ); +}; + + +}; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/XExtendedFilterDetection.idl b/offapi/com/sun/star/document/XExtendedFilterDetection.idl new file mode 100644 index 0000000000..53e8b07112 --- /dev/null +++ b/offapi/com/sun/star/document/XExtendedFilterDetection.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 . + */ + + +module com { module sun { module star { module document { + +/** provides a "deep" filter detection + ++ A "deep" filter detection means looking into the document stream to detect + the format of it. Services of type ExtendedTypeDetection must support this + interface to be called from generic load mechanism of the office for that. +
+ + @see DetectService + @see TypeDetection + @see FilterFactory + */ +published interface XExtendedFilterDetection: com::sun::star::uno::XInterface +{ + /** controls agreement of a "flat" TypeDetection + with given URL or arguments + ++ Registered services in configuration, which support this interface for different mime types, + will be called automatically to look into the document stream and decide which format it represent. + Add the collected information about detected documents in given MediaDescriptor + Descriptor. The decision must be returned as any valid type name (which specifies + the detected format) or an empty value for unknown formats. +
+ + @param Descriptor + represent a MediaDescriptor which can be used to get/set information + about the detected document + + @returns + an internal type name if format was detected successfully ++ This interface will be used by service ImportFilter or + ExportFilter to support loading/saving of documents in + different formats. The target/source of such filter operations must + be known before filtering will be started. + (see XImporter and XExporter too) + Otherwise this interface can't work right. +
+ + @see ImportFilter + @see ExportFilter + @see XImporter + @see XExporter + */ +published interface XFilter: com::sun::star::uno::XInterface +{ + /** filter the document. + +
+ The given MediaDescriptor holds all necessary information + about the document. + + Don't hold hard references to the descriptor items. You must copy needed information! + Otherwise we couldn't destroy (for example) an existing input stream! +
+ @param aDescriptor + the MediaDescriptor describing the respective document. + @return a boolean value indicating whether the filter operation was successful or not. + */ + boolean filter( [in] sequence< com::sun::star::beans::PropertyValue > aDescriptor ); + + /** cancel the process. + */ + void cancel(); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/XFilterAdapter.idl b/offapi/com/sun/star/document/XFilterAdapter.idl new file mode 100644 index 0000000000..295d13c1c3 --- /dev/null +++ b/offapi/com/sun/star/document/XFilterAdapter.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 . + */ + + +module com { module sun { module star { module document { + + + /** This is an interface that can be used to link a filter to the + FilterAdapter + + @throws com::sun::star::uno::RuntimeException + + @since OOo 1.1.2 + */ +published interface XFilterAdapter : com::sun::star::uno::XInterface + { + void convert( + [in] com::sun::star::io::XInputStream xml, + [in] com::sun::star::io::XOutputStream device, + [in] boolean convertToOffice, + [in] string pluginUrl, + [in] string fileName); + /*raises( com::sun::star::uno::RuntimeException );*/ + + }; + }; + }; + }; +}; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/XGraphicObjectResolver.idl b/offapi/com/sun/star/document/XGraphicObjectResolver.idl new file mode 100644 index 0000000000..98d5baaa1f --- /dev/null +++ b/offapi/com/sun/star/document/XGraphicObjectResolver.idl @@ -0,0 +1,43 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module document { + + +/** this interface converts graphic object URLs from one URL space to another. + + @deprecated since LibreOffice 6.1 + Use GraphicStorageHandler or GraphicProvider to load an XGraphic instead + as converting to internal GraphicObject URL is not possible anymore. + */ +published interface XGraphicObjectResolver: com::sun::star::uno::XInterface +{ + /** converts the given URL from the source URL namespace to the destination + URL space of this instance. + + @deprecated since LibreOffice 6.1 - throws a RuntimeException if called + */ + string resolveGraphicObjectURL( [in] string aURL ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/XGraphicStorageHandler.idl b/offapi/com/sun/star/document/XGraphicStorageHandler.idl new file mode 100644 index 0000000000..b363798902 --- /dev/null +++ b/offapi/com/sun/star/document/XGraphicStorageHandler.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/. + * + */ + +module com { module sun { module star { module document { + +/** interface for loading, saving and serializing of XGraphic objects to + a document storage + + @since LibreOffice 6.1 + */ +interface XGraphicStorageHandler : com::sun::star::uno::XInterface +{ + /** load a graphic defined by the URL from the storage + */ + com::sun::star::graphic::XGraphic loadGraphic([in] string aURL); + + /** load a graphic from the output stream + */ + com::sun::star::graphic::XGraphic loadGraphicFromOutputStream([in] com::sun::star::io::XOutputStream xOutputStream); + + /** save the graphic to the storage and return the URL reference to + its location inside the storage + */ + string saveGraphic([in] com::sun::star::graphic::XGraphic xGraphic); + + /** save the graphic to the storage with a requested name and return + the URL reference to its location inside the storage and the mime + type of the format that the graphic was saved to as an output parameter + */ + string saveGraphicByName([in] com::sun::star::graphic::XGraphic xGraphic, [out] string savedMimeType, [in] string aRequestedName); + + /** create an input stream from the input graphic + */ + com::sun::star::io::XInputStream createInputStream([in] com::sun::star::graphic::XGraphic xGraphic); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/XImporter.idl b/offapi/com/sun/star/document/XImporter.idl new file mode 100644 index 0000000000..8745b6c837 --- /dev/null +++ b/offapi/com/sun/star/document/XImporter.idl @@ -0,0 +1,55 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module document { + +/** makes it possible to connect a document with an ImportFilter + ++ An ImportFilter must know the target of his filter operation. + To set this on a filter is part of this interface. + Same mechanism exist for export too. +
+ + @see ExportFilter + @see ImportFilter + @see XExporter + */ +published interface XImporter: com::sun::star::uno::XInterface +{ + /** sets the target document for the importer + + @param Document + the target document + + @throws com::sun::star::lang::IllegalArgumentException + if Document does not support any service which is + supported by this importer + */ + void setTargetDocument( + [in] com::sun::star::lang::XComponent Document ) + raises( com::sun::star::lang::IllegalArgumentException ); +}; + + +}; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/XInteractionFilterOptions.idl b/offapi/com/sun/star/document/XInteractionFilterOptions.idl new file mode 100644 index 0000000000..5d64ecf53a --- /dev/null +++ b/offapi/com/sun/star/document/XInteractionFilterOptions.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 . + */ + + +module com { module sun { module star { module document { + +/** A continuation to return filter options from interaction helper. + + @since OOo 1.1.2 +*/ +published interface XInteractionFilterOptions : ::com::sun::star::task::XInteractionContinuation +{ + /** Store results to the continuation. + + @param rProperties the list of properties containing filter options. + + */ + void setFilterOptions( [in] sequence< com::sun::star::beans::PropertyValue > rProperties ); + + /** Get results from the continuation. + + @returns the stored list of properties containing filter options. + */ + sequence< com::sun::star::beans::PropertyValue > getFilterOptions(); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/XInteractionFilterSelect.idl b/offapi/com/sun/star/document/XInteractionFilterSelect.idl new file mode 100644 index 0000000000..2a2794b2e5 --- /dev/null +++ b/offapi/com/sun/star/document/XInteractionFilterSelect.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 . + */ + + +module com { module sun { module star { module document { + +/** continuation used by interaction mechanism at filter detection during + loading documents + ++ If during loading time the filter can't be detected and wasn't given at calling time, + a possible com::sun::star::task::InteractionHandler will be used. + (it's a part of used MediaDescriptor) + A NoSuchFilterRequest will be used then to start right interaction on that to + get a decision which filter should be used for given URL. A possible continuation + of that can be this XInteractionFilterSelect. It will transport the decision back to + generic filter detection and force using of it. Of course it's possible to abort + the loading process by use another continuation com::sun::star::task::XInteractionAbort. +
+ + @see MediaDescriptor + @see com::sun::star::task::InteractionHandler + @see NoSuchFilterRequest + @see com::sun::star::task::XInteractionAbort + */ +published interface XInteractionFilterSelect : com::sun::star::task::XInteractionContinuation +{ + /** used by interaction to set selected filter + ++ This value must be saved till another one will be set + and must be provided on getFilter() for interest users. +
+ */ + void setFilter( [in] string Name ); + + /** used by detection to get selected filter + */ + string getFilter(); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/XLinkTargetSupplier.idl b/offapi/com/sun/star/document/XLinkTargetSupplier.idl new file mode 100644 index 0000000000..8b3b13bd5d --- /dev/null +++ b/offapi/com/sun/star/document/XLinkTargetSupplier.idl @@ -0,0 +1,43 @@ +/* -*- 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 . + */ + + + +module com { module sun { module star { module document { + + +/** interface is supplied by objects inside a document object model that have + children that can be the target of a link inside a document. + +These targets implement the service LinkTarget.
+ */ +published interface XLinkTargetSupplier: com::sun::star::uno::XInterface +{ + /** @returns + the names of possible links to children of this object inside a + document object model. It implements the service LinkTargets. + */ + com::sun::star::container::XNameAccess getLinks(); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/XMLBasicExporter.idl b/offapi/com/sun/star/document/XMLBasicExporter.idl new file mode 100644 index 0000000000..644312dfb5 --- /dev/null +++ b/offapi/com/sun/star/document/XMLBasicExporter.idl @@ -0,0 +1,42 @@ +/* -*- 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 . + */ + + + +module com { module sun { module star { module document { + + +/** Filter for exporting Basic macros to the OpenOffice.org file format. + +First the XExporter::setSourceDocument() method must be + called in order to provide the export component with the source document + from which the data should be exported. After that, the export is started + by calling the XFilter::filter() method.
+ + @since OOo 2.0 + */ +published service XMLBasicExporter : XXMLBasicExporter +{ + createWithHandler([in] com::sun::star::xml::sax::XDocumentHandler DocumentHandler); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/XMLOasisBasicExporter.idl b/offapi/com/sun/star/document/XMLOasisBasicExporter.idl new file mode 100644 index 0000000000..3d0a9ccb1d --- /dev/null +++ b/offapi/com/sun/star/document/XMLOasisBasicExporter.idl @@ -0,0 +1,42 @@ +/* -*- 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 . + */ + + + +module com { module sun { module star { module document { + + +/** Filter for exporting Basic macros to the OASIS Open Office file format. + +First the XExporter::setSourceDocument() method must be + called in order to provide the export component with the source document + from which the data should be exported. After that, the export is started + by calling the XFilter::filter() method.
+ + @since OOo 2.0 + */ +published service XMLOasisBasicExporter : XXMLBasicExporter +{ + createWithHandler([in] com::sun::star::xml::sax::XDocumentHandler DocumentHandler); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/XMimeTypeInfo.idl b/offapi/com/sun/star/document/XMimeTypeInfo.idl new file mode 100644 index 0000000000..635a550ff9 --- /dev/null +++ b/offapi/com/sun/star/document/XMimeTypeInfo.idl @@ -0,0 +1,44 @@ +/* -*- 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 . + */ + + + +module com { module sun { module star { module document { + + +/** provides information regarding which MIME types are supported by a filter. + */ +published interface XMimeTypeInfo: com::sun::star::uno::XInterface +{ + + /** asks whether a MIME type is supported or not. + */ + boolean supportsMimeType( [in] string MimeTypeName ); + + + /** @returns + a sequence of the names of all supported MIME types. + */ + sequence+ The implementation should parse the document properties from OOXML + format storage and set them to the target + XDocumentProperties implementation. +
+ ++ The storage must represent OOXML format and support + com::sun::star::embed::XRelationshipAccess + interface. Please see + com::sun::star::embed::StorageFactory for details + regarding creation of such a storage. +
+ + @param xSource + the source storage representing OOXML document + + @param xDocumentProperties + the target XDocumentProperties interface implementation + + @throws ::com::sun::star::lang::IllegalArgumentException + the exception is thrown in case unexpected arguments are provided + + @throws ::com::sun::star::xml::sax::SAXException + the exception is thrown in case of parsing problems + + @throws ::com::sun::star::uno::Exception + the exception is thrown in case of other problems during the import + */ + + void importProperties( + [in] com::sun::star::embed::XStorage xSource, + [in] com::sun::star::document::XDocumentProperties xDocumentProperties ) + raises( com::sun::star::lang::IllegalArgumentException, + com::sun::star::xml::sax::SAXException, + com::sun::star::uno::Exception ); + + /** find and get core properties stream + + (usually it is docProps\core.xml) + @since LibreOffice 7.3 + */ + + com::sun::star::io::XInputStream getCorePropertiesStream([in] com::sun::star::embed::XStorage xSource); + + /** find and get extended properties stream + + (usually it is docProps/app.xml) + @since LibreOffice 7.3 + */ + + com::sun::star::io::XInputStream getExtendedPropertiesStream([in] com::sun::star::embed::XStorage xSource); + + /** find and get custom properties streams + + (usually it is customXml\*.xml) + @since LibreOffice 7.3 + */ + + sequence< com::sun::star::io::XInputStream > getCustomPropertiesStreams([in] com::sun::star::embed::XStorage xSource); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/XRedlinesSupplier.idl b/offapi/com/sun/star/document/XRedlinesSupplier.idl new file mode 100644 index 0000000000..86d75fda98 --- /dev/null +++ b/offapi/com/sun/star/document/XRedlinesSupplier.idl @@ -0,0 +1,41 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module document { + + +/** provides access to a container of the redline objects of the document. + */ +published interface XRedlinesSupplier: com::sun::star::uno::XInterface +{ + /** @returns + an enumeration access that provides access to the redline objects of the document. + +The returned objects implement at least the interface + com::sun::star::beans::XPropertySet. + Specific objects may support other interfaces as well.
+ */ + com::sun::star::container::XEnumerationAccess getRedlines(); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/XScriptInvocationContext.idl b/offapi/com/sun/star/document/XScriptInvocationContext.idl new file mode 100644 index 0000000000..fc612ba726 --- /dev/null +++ b/offapi/com/sun/star/document/XScriptInvocationContext.idl @@ -0,0 +1,55 @@ +/* -*- 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 . + */ + + + + +module com { module sun { module star { module document { + + +/** indicates support for executing scripts contained in a, possibly foreign, document. + +If the component implementing it is a document, which supports embedding scripts into + itself, then #ScriptContainer refers to the document itself. Implementing this + interface is unnecessary then, instead the document should simply implement XEmbeddedScripts directly.
+ +If the interface is implemented by a document which does not itself support embedding + scripts into it, but which is associated unambiguously with a document which does, + then this other document is denoted by #ScriptContainer.
+ +If the interface is implemented by a controller, then #ScriptContainer + refers to the document which supports embedding scripts, and which is unambiguously + associated with the controller. This must not necessarily be the model returned by + com::sun::star::frame::XController::getModel().
+ + @since OOo 2.4 + */ +interface XScriptInvocationContext +{ + /** denotes the document which contains the scripts which are to be invoked from + the component implementing the XScriptInvocationContext interface. + */ + [attribute, readonly] XEmbeddedScripts ScriptContainer; +}; + + +}; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/XShapeEventBroadcaster.idl b/offapi/com/sun/star/document/XShapeEventBroadcaster.idl new file mode 100644 index 0000000000..053715587a --- /dev/null +++ b/offapi/com/sun/star/document/XShapeEventBroadcaster.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 . + */ + + +module com { module sun { module star { module document { + +/** + Used to link a listener to a specific shape + + @since LibreOffice 6.4 + */ +interface XShapeEventBroadcaster : com::sun::star::document::XEventBroadcaster +{ + /** registers the given listener + @param Shape + the shape to be listened + @param Listener + listener which is interested on such events + */ + void addShapeEventListener( [in] com::sun::star::drawing::XShape Shape, [in] XShapeEventListener Listener ); + + /** unregisters the given listener + @param Shape + the shape with the listener to be removed + @param Listener + listener which isn't interested on such events any longer + */ + void removeShapeEventListener( [in] com::sun::star::drawing::XShape Shape, [in] XShapeEventListener Listener ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/XShapeEventListener.idl b/offapi/com/sun/star/document/XShapeEventListener.idl new file mode 100644 index 0000000000..989b8fc2c9 --- /dev/null +++ b/offapi/com/sun/star/document/XShapeEventListener.idl @@ -0,0 +1,43 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module document { + +/** makes it possible to register listeners, which are called whenever + a document or document content event occurs + +Such events will be broadcasted by a XShapeEventBroadcaster.
+ + @since LibreOffice 6.4 + */ +interface XShapeEventListener +{ + /** is called whenever a document event (see EventObject) occurs + + @param Event + specifies the event type + */ + void notifyShapeEvent( [in] EventObject Event ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/XStorageBasedDocument.idl b/offapi/com/sun/star/document/XStorageBasedDocument.idl new file mode 100644 index 0000000000..438eef4979 --- /dev/null +++ b/offapi/com/sun/star/document/XStorageBasedDocument.idl @@ -0,0 +1,75 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module document { + +/** allows to initialize document with a storage, to store document to + a storage, and to set document to be based on provided storage. + */ +interface XStorageBasedDocument: com::sun::star::uno::XInterface +{ + /** lets the document load itself using provided storage. + */ + void loadFromStorage( + [in] ::com::sun::star::embed::XStorage xStorage, + [in] sequence< ::com::sun::star::beans::PropertyValue > aMediaDescriptor ) + raises( ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::frame::DoubleInitializationException, + ::com::sun::star::io::IOException, + ::com::sun::star::uno::Exception ); + + /** lets the document store itself to the provided storage. + */ + void storeToStorage( + [in] ::com::sun::star::embed::XStorage xStorage, + [in] sequence< ::com::sun::star::beans::PropertyValue > aMediaDescriptor ) + raises( ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::io::IOException, + ::com::sun::star::uno::Exception ); + + /** allows to switch the document to the provided storage. + */ + void switchToStorage( [in] ::com::sun::star::embed::XStorage xStorage ) + raises( ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::io::IOException, + ::com::sun::star::uno::Exception ); + + + /** allows to get the storage the document is based on. + */ + ::com::sun::star::embed::XStorage getDocumentStorage() + raises( ::com::sun::star::io::IOException, + ::com::sun::star::uno::Exception ); + + /** allows to register a listener that will be notified when another + storage is set to the document. + */ + void addStorageChangeListener( [in] XStorageChangeListener xListener ); + + /** allows to deregister the listener. + */ + void removeStorageChangeListener( [in] XStorageChangeListener xListener ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/XStorageChangeListener.idl b/offapi/com/sun/star/document/XStorageChangeListener.idl new file mode 100644 index 0000000000..458e3de2bd --- /dev/null +++ b/offapi/com/sun/star/document/XStorageChangeListener.idl @@ -0,0 +1,43 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module document { + +/** allows to be notified when a document is switched to a new storage. + */ +interface XStorageChangeListener: com::sun::star::lang::XEventListener +{ + /** is called when document switches to another storage. + + @param xDocument + the document that has changed the storage it is based on + + @param xStorage + the new storage the document is based on + */ + void notifyStorageChange( + [in] ::com::sun::star::uno::XInterface xDocument, + [in] ::com::sun::star::embed::XStorage xStorage ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/XTypeDetection.idl b/offapi/com/sun/star/document/XTypeDetection.idl new file mode 100644 index 0000000000..8870e52936 --- /dev/null +++ b/offapi/com/sun/star/document/XTypeDetection.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 . + */ + + +module com { module sun { module star { module document { + +/** support "flat" and "deep" type detection of a given document + ++ A "flat" detection means specifying the document format by using + the URL and some configuration data only. That will perform but produce + may invalid results if e.g., the extension of the document is wrong. + A "deep" detection means looking into the document stream to be right + which format it supports. Of course that includes a "flat" detection before. + The combination of both ones should produce stable results every time. +
+ + @see TypeDetection + */ +published interface XTypeDetection: com::sun::star::uno::XInterface +{ + /** make a "flat" detection by using the URL of the document + ++ It use given URL in combination with the internal configuration of well known + types only to specify the format of given document. +
+ + @param URL + specify the document by name + + @returns + an internal type name which represent the detected format +
+ Instead of XTypeDetection::queryTypeByURL() this function
+ use a MediaDescriptor to specify the document for detection.
+ Such descriptor hold different information about the document.
+ He will be passed to any part of made detection process and every part
+ can change it to actualize it.
+ The property MediaDescriptor::URL should be set on
+ this descriptor as minimum. It specifies the location of the document.
+ If this parameter is missing another one is required: MediaDescriptor::InputStream.
+ This can be useful to prevent operation against multiple opening of the stream
+ and perform the operation. If this stream isn't already included the detection
+ will open it (if allowed!) and add it to the descriptor so it will be available for
+ all following parts.
+ A combination of both parameters can be useful to perform the operation
+ and make results more stable; but only one of them is required.
+ Of course its possible to specify more document properties (e.g.
+ MediaDescriptor::ReadOnly).
+
+ As an additional feature it's possible to suppress "deep" detection by using argument
+ AllowDeep.
+
XUndoAction
instance, and any possibly
+ depending instances.
+ */
+ void undo()
+ raises ( ::com::sun::star::document::UndoFailedException
+ );
+
+ /** repeats the action represented by the instance, after it had previously been reverted.
+
+ @throws UndoFailedException
+ if repeating the action failed. In this case, the caller should assume that this is a permanent failure,
+ and take appropriate action, such as discarding the XUndoAction
instance, and any possibly
+ depending instances.
+ */
+ void redo()
+ raises ( ::com::sun::star::document::UndoFailedException
+ );
+
+ /** is the human-readable, localized description of the action.
+ */
+ [attribute, readonly] string Title;
+};
+
+
+}; }; }; };
+
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/document/XUndoManager.idl b/offapi/com/sun/star/document/XUndoManager.idl
new file mode 100644
index 0000000000..686b0972dd
--- /dev/null
+++ b/offapi/com/sun/star/document/XUndoManager.idl
@@ -0,0 +1,316 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module document {
+
+interface XUndoAction;
+interface XUndoManagerListener;
+
+
+/** provides access to the undo/redo stacks of a document
+
+ Changes to a document usually result in recording of information how to undo those changes, if desired. A so-called + undo action records the information how to undo a single change. Undo actions are maintained in a stack, so that + the changes they represent can be undo in the reverse order they have originally been applied.
+ +Additionally, the Undo manager manages a Redo stack: Actions which are undone are moved from the Undo to the Redo + stack, so it is possible to re-apply the changes to the document.
+ +For collecting multiple changes in a single undo action, so-called Undo contexts are provided. When an Undo
+ context is entered, all subsequently added Undo actions are not pushed onto the undo stack directly, but considered
+ a sub action of the Undo context. Once the Undo context is left, a single undo action is pushed onto the undo stack,
+ which comprises all those single Undo actions.
+ Undo contexts can be arbitrarily nested.
Hidden Undo actions are those which in no observable way contribute to the undo stack. That is,
+ any method retrieving information about the stack will behave as if the undo action does not exist. Nonetheless,
+ calling undo() respectively redo() will include those actions.
+ Hidden Undo actions can be created by calling enterHiddenUndoContext(), following by
+ leaveUndoContext().
An Undo manager can be locked and unlocked, using the XLockable::lock() and + XLockable::unlock() methods. When it is locked, then every attempt to add an undo action, or to + enter or leave an Undo context, will be silently ignored.
+ + @since OOo 3.4 + */ +interface XUndoManager +{ + /** allows locking the undo manager. + */ + interface ::com::sun::star::util::XLockable; + + /** allows accessing the component, usually a document, which the undo manager works for. + +com::sun::star::container::XChild::setParent() is not supported, and will throw + a com::sun::star::lang::NoSupportException.
+ */ + interface ::com::sun::star::container::XChild; + + /** enters a new undo context. + +A new undo action will be added to the undo stack, with the title given as iTitle
. As long
+ as the context is not left, every undo action added to the stack will be treated as sub action. This means
+ it will not be directly accessible at the Undo manager, not appear in any user interface, and cannot be
+ separately undone or re-done.
Each call to enterUndoContext
must be paired by a call to leaveUndoContext(),
+ otherwise, the document's undo stack is left in an inconsistent state.
Undo contexts can be nested, i.e. it is legitimate to call enterUndoContext
and
+ enterHiddenUndoContext() multiple times without calling leaveUndoContext() inbetween.
A hidden undo action does not, in any visible way, contribute to the undo stack. This means + that +
A new undo action will be added to the undo stack. As long as the context is not left, every undo action + added to the stack will be treated as sub action. This means it will not be directly accessible at the undo + manager, not appear in any user interface, and cannot be separately undone or re-done.
+ +Each call to enterHiddenUndoContext
must be paired by a call to leaveUndoContext(),
+ otherwise, the document's undo stack is left in an inconsistent state.
Undo contexts can be nested, i.e. it is legitimate to call enterUndoContext() and
+ enterHiddenUndoContext
multiple times without calling leaveUndoContext() inbetween.
If no undo action has been added since the context has been opened, the context is not only left, + but silently removed, and does not contribute to the undo stack at all. In this case, possible + listeners will be notified via XUndoManagerListener::cancelledContext().
+ +Otherwise, the undo context will be closed, and added to the Undo stack; the redo stack will be cleared, + and listeners will be notified via XUndoManagerListener::leftContext() resp. + XUndoManagerListener::leftHiddenContext()
+ + @throws ::com::sun::star::util::InvalidStateException + if no undo context is currently open. + + @see enterUndoContext + @see enterHiddenUndoContext + */ + void leaveUndoContext() + raises( ::com::sun::star::util::InvalidStateException ); + + /** adds the given undo action to the undo stack. + +The redo stack is cleared when a new action is pushed onto the undo stack.
+ +The Undo manager takes ownership of any actions pushed onto the undo stack. This means that if the + action is finally removed from the Undo manager's control (e.g. by calling clear() resp. + clearRedo()), it will be disposed, as long as it supports the com::sun::star::lang::XComponent + interface.
+ +If the Undo manager is locked at the moment the method is called, the call will be ignored, and the undo action + will immediately be disposed, if applicable.
+ + @throws ::com::sun::star::lang::IllegalArgumentException + if the given undo action is `NULL`. + */ + void addUndoAction( + [in] XUndoAction iAction + ) + raises( ::com::sun::star::lang::IllegalArgumentException ); + + /** reverts the most recent action on the document. + +Effectively, invoking this method will +
Effectively, invoking this method will +
All actions will be removed from both the Undo and the Redo stack. Actions which implement the + com::sun::star::lang::XComponent interface will be disposed.
+ + @throws UndoContextNotClosedException + if the method is invoked while an undo context is still open + */ + void clear() + raises( ::com::sun::star::document::UndoContextNotClosedException ); + + /** clears the redo stack. + +All actions will be removed from the Redo stack. Actions which implement the com::sun::star::lang::XComponent + interface will be disposed.
+ + @throws UndoContextNotClosedException + if the method is invoked while an undo context is still open + */ + void clearRedo() + raises( ::com::sun::star::document::UndoContextNotClosedException ); + + /** resets the Undo manager + +In particular, this method will +
Note that possible listeners will not get notifications for the single parts of the reset, i.e. there + will be no single XUndoManagerListener::allActionsCleared(), + XUndoManagerListener::leftContext(), etc., notifications. Instead, listeners will be + notified of the reset by calling their XUndoManagerListener::resetAll() method.
+ */ + void reset(); + + /** adds a listener to be notified of changes in the Undo/Redo stacks. + */ + void addUndoManagerListener( + [in] XUndoManagerListener iListener + ); + + /** removes a previously added listener + */ + void removeUndoManagerListener( + [in] XUndoManagerListener iListener + ); +}; + + +}; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/XUndoManagerListener.idl b/offapi/com/sun/star/document/XUndoManagerListener.idl new file mode 100644 index 0000000000..1e78921766 --- /dev/null +++ b/offapi/com/sun/star/document/XUndoManagerListener.idl @@ -0,0 +1,128 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module document { + + +/** implemented by components which want to be notified of changes in the Undo/Redo stacks of an Undo manager. + + @see XUndoManager + @since OOo 3.4 + */ +interface XUndoManagerListener : ::com::sun::star::lang::XEventListener +{ + /** is called when an undo action is added to the undo stack. + +Note that the action must not necessarily be the new top element of the stack: In case there's an
+ open Undo context, UndoManagerEvent::UndoContextDepth will be greater 0
,
+ and the newly added action will be subordinate of the context action.
UndoManagerEvent::UndoActionTitle carries the title of the Undo context, and + UndoManagerEvent::UndoContextDepth the number of open Undo contexts, including the + one just entered.
+ + @see XUndoManager::enterUndoContext + */ + void enteredContext( [in] UndoManagerEvent iEvent ); + + /** is called when a new hidden Undo context has been entered. + +UndoManagerEvent::UndoActionTitle carries the title of the Undo context, and + UndoManagerEvent::UndoContextDepth the number of open Undo contexts, including the + one just entered.
+ + @see XUndoManager::enterUndoContext + */ + void enteredHiddenContext( [in] UndoManagerEvent iEvent ); + + /** is called when an Undo context has been left. + +UndoManagerEvent::UndoActionTitle carries the title of the Undo context, and + UndoManagerEvent::UndoContextDepth the number of open Undo contexts, excluding the + one just left.
+ + @see XUndoManager::leaveUndoContext + @see leftHiddenUndocontext + @see cancelledContext + */ + void leftContext( [in] UndoManagerEvent iEvent ); + + /** is called when a hidden Undo context has been left. + +UndoManagerEvent::UndoActionTitle is empty, as hidden Undo contexts don't have + a title.
+ + @see XUndoManager::leaveHiddenUndoContext + @see leftContext + @see cancelledContext + */ + void leftHiddenContext( [in] UndoManagerEvent iEvent ); + + /** is called when an Undo context has been left, but no actions have been added within this context. + +In such a case, the context which has just been left will not contribute to the undo stack, but instead + be silently removed. Consequently, the UndoManagerEvent::UndoActionTitle is empty.
+ + @see XUndoManager::leaveUndoContext + @see leftContext + @see leftHiddenContext + */ + void cancelledContext( [in] UndoManagerEvent iEvent ); +}; + + +}; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/XUndoManagerSupplier.idl b/offapi/com/sun/star/document/XUndoManagerSupplier.idl new file mode 100644 index 0000000000..2dfc00d8b8 --- /dev/null +++ b/offapi/com/sun/star/document/XUndoManagerSupplier.idl @@ -0,0 +1,41 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module document { + +interface XUndoManager; + + +/** provides access to an XUndoManager. + + @since OOo 3.4 + */ +interface XUndoManagerSupplier +{ + /** returns the Undo manager associated with the component. + */ + XUndoManager getUndoManager(); +}; + + +}; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/XVbaMethodParameter.idl b/offapi/com/sun/star/document/XVbaMethodParameter.idl new file mode 100644 index 0000000000..7f80c443e0 --- /dev/null +++ b/offapi/com/sun/star/document/XVbaMethodParameter.idl @@ -0,0 +1,44 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module document { + +//gives access to VBA method input/output parameters +//some OO objects need to implement this interface to support the passing of input/output parameters +//for certain VBA events + +interface XVbaMethodParameter : com::sun::star::uno::XInterface +{ + + /** sets the value of the parameter with the specified name. + */ + void setVbaMethodParameter( [in] string PropertyName, + [in] any Value ); + + + /** returns the value of the parameter with the specified name. + */ + any getVbaMethodParameter( [in] string PropertyName ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/XViewDataSupplier.idl b/offapi/com/sun/star/document/XViewDataSupplier.idl new file mode 100644 index 0000000000..36298b32d9 --- /dev/null +++ b/offapi/com/sun/star/document/XViewDataSupplier.idl @@ -0,0 +1,57 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module document { + +/** gives access to some properties describing all open views to a document + ++ Each view is described by a sequence< ::com::sun::star::beans::PropertyValue >. + Through this interface the state of all open views can be retrieved and restored + later. These states can also be made persistent so that a document loader can create + all views of the correct types and restore their state to the state when the document was + saved. +
+ */ +published interface XViewDataSupplier: com::sun::star::uno::XInterface +{ + /** retrieve information about currently opened view to restore it later + + @returns + a com::sun::star::container::XIndexAccess, + that gives access to a list of com::sun::star::beans::PropertyValue + for every open view. May `NULL` if no view is currently available. + */ + ::com::sun::star::container::XIndexAccess getViewData(); + + /** restore all views which will be represented by given data argument + + @param Data + a list of com::sun::star::beans::PropertyValues + with information about last opened views to restore it + `NULL` isn't allowed here. + */ + void setViewData( [in] com::sun::star::container::XIndexAccess Data ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/document/XXMLBasicExporter.idl b/offapi/com/sun/star/document/XXMLBasicExporter.idl new file mode 100644 index 0000000000..fabb48295b --- /dev/null +++ b/offapi/com/sun/star/document/XXMLBasicExporter.idl @@ -0,0 +1,45 @@ +/* -*- 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 . + */ + + + +module com { module sun { module star { module document { + + +/** Provides unified interface for XMLOasisBasicExporter and XMLBasicExporter services. + @since LibreOffice 4.1 + */ +published interface XXMLBasicExporter +{ + + /** sets the source document for this filter. + */ + interface com::sun::star::document::XExporter; + + + /** filters the document. + */ + interface com::sun::star::document::XFilter; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/drawing/AccessibleDrawDocumentView.idl b/offapi/com/sun/star/drawing/AccessibleDrawDocumentView.idl new file mode 100644 index 0000000000..44b4369cab --- /dev/null +++ b/offapi/com/sun/star/drawing/AccessibleDrawDocumentView.idl @@ -0,0 +1,118 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module drawing { + +/** The AccessibleDrawDocumentView service is implemented by + views of Draw and Impress documents. + +An object that implements the AccessibleDrawDocumentView + service provides information about the view of a Draw or Impress + document in one of the various view modes. With its children it gives + access to the current page and the shapes on that page.
+ +This service gives a simplified view on the underlying document. It + tries both to keep the structure of the accessibility representation + tree as simple as possible and provide as much relevant information as + possible. This has the following consequences: +
You can access the following information: +
The main purpose of this interface is to provide a bounding box + of the currently visible area and to let the user find children + (i.e. shapes) that cover a given test point. The more interesting + part of the graphical representation of a draw page lies in its + children. See the AccessibleShape service for more + information about shapes.
+ + @see AccessibleShape + */ + interface ::com::sun::star::accessibility::XAccessibleComponent; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/drawing/AccessibleGraphControl.idl b/offapi/com/sun/star/drawing/AccessibleGraphControl.idl new file mode 100644 index 0000000000..fc1e618c7e --- /dev/null +++ b/offapi/com/sun/star/drawing/AccessibleGraphControl.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 . + */ + + +// Declarations of interfaces to avoid inclusion of IDL files. +module com { module sun { module star { module accessibility { + interface XAccessible; + interface XAccessibleContext; + interface XAccessibleComponent; + interface XAccessibleEventBroadcaster; + interface XAccessibleSelection; +}; }; }; }; + + + + +module com { module sun { module star { module drawing { + +/** The service describes the accessible graph controls that are used in the + image map of the Draw and Impress applications and the contour dialog of + the Writer application. + +The children of graph controls are shapes that define contours.
+ + @since OOo 1.1.2 + */ +service AccessibleGraphControl +{ + /** Base interface for being accessible. It gives access to the + ::com::sun::star::accessibility::XAccessibleContext + interface. + */ + interface ::com::sun::star::accessibility::XAccessible; + + /** Description of the base accessibility information. + */ + interface ::com::sun::star::accessibility::XAccessibleContext; + + /** This interface describes the graphical representation of an image + bullet. + */ + interface ::com::sun::star::accessibility::XAccessibleComponent; + + /** Inform listeners about new or removed children and about changes of + the visual appearance. + */ + interface ::com::sun::star::accessibility::XAccessibleEventBroadcaster; + + /** Handle the selection of the shapes that represent the contour. + */ + interface ::com::sun::star::accessibility::XAccessibleSelection; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/drawing/AccessibleGraphicShape.idl b/offapi/com/sun/star/drawing/AccessibleGraphicShape.idl new file mode 100644 index 0000000000..00137542cd --- /dev/null +++ b/offapi/com/sun/star/drawing/AccessibleGraphicShape.idl @@ -0,0 +1,75 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module drawing { + +/** The AccessibleGraphicShape service is implemented by the + graphic object shapes shapes com.sun.star.drawing.GraphicObjectShape and + com.sun.star.presentation.GraphicObjectShape. + +It differs from the included AccessibleShape "base" + service by the additional support of the + ::com::sun::star::accessibility::XAccessibleImage + interface.
+ + @since OOo 1.1.2 +*/ +service AccessibleGraphicShape +{ + /** Give access to information of generic shapes. + +See AccessibleShape for documentation and support of + the interfaces + ::com::sun::star::accessibility::XAccessible, + ::com::sun::star::accessibility::XAccessibleContext, + and + ::com::sun::star::accessibility::XAccessibleComponent.
+ + @see AccessibleShape + */ + service AccessibleShape; + + /** Give access to image specific information. + +The support of the + ::com::sun::star::accessibility::XAccessibleImage interface + requires the shape to provide a description of the displayed image + and the image's size in the screen coordinate system (pixel). At + the time being this interface does not provide information that is + not available through the AccessibleShape service: + the size returned by the + ::com::sun::star::accessibility::XAccessibleImage::getAccessibleImageWidth() and + ::com::sun::star::accessibility::XAccessibleImage::getAccessibleImageHeight() + functions is the same as that returned by the + ::com::sun::star::accessibility::XAccessibleComponent::getSize() + function; the description returned by + ::com::sun::star::accessibility::XAccessibleImage::getAccessibleImageDescription() + function is the same as the one returned by the + ::com::sun::star::accessibility::XAccessibleContext::getAccessibleDescription() + function. + This makes the additional interface for + the time being basically an indicator of graphic shapes. This may + change in the future.
+ */ + interface ::com::sun::star::accessibility::XAccessibleImage; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/drawing/AccessibleImageBullet.idl b/offapi/com/sun/star/drawing/AccessibleImageBullet.idl new file mode 100644 index 0000000000..69e310ba36 --- /dev/null +++ b/offapi/com/sun/star/drawing/AccessibleImageBullet.idl @@ -0,0 +1,78 @@ +/* -*- 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 . + */ + + + +module com { module sun { module star { module drawing { + + +/** The accessible view of an image bullet. + + @since OOo 1.1.2 + */ +service AccessibleImageBullet +{ + /** This interface gives access to an image bullet within a text + paragraph fragment that is at least partially visible on the + screen. + +This includes generic OLE shapes, frames, plug-ins, and applets.
+ +This service supports the additional + ::com::sun::star::accessibility::XAccessibleAction + interface.
+ +OLE objects are handled as place holders. While not activated the + accessible OLE shape is the only indicator of the OLE object's + existence. When an OLE object has been activated then the accessibility + tree representing it (as far as that is available) is included directly + under the accessible document view and not under the OLE object. This + is due to underlying implementation constraints and may change in the + future.
+ + + + @since OOo 1.1.2 +*/ +service AccessibleOLEShape +{ + /** Give access to information of generic shapes. + +See AccessibleShape for basic documentation and + support of the ::com::sun::star::accessibility::XAccessibleContext, and + ::com::sun::star::accessibility::XAccessibleComponent interfaces. + + @see AccessibleShape + */ + service AccessibleShape; + + /** The intended purpose of the support of this interface is the + activation of the accessible OLE object. This, however, is not + realized at the moment. It therefore serves solely as indicator of + accessible OLE objects. + */ + interface ::com::sun::star::accessibility::XAccessibleAction; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/drawing/AccessibleShape.idl b/offapi/com/sun/star/drawing/AccessibleShape.idl new file mode 100644 index 0000000000..f1d6d5c9ed --- /dev/null +++ b/offapi/com/sun/star/drawing/AccessibleShape.idl @@ -0,0 +1,180 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module drawing { + +/** The AccessibleShape service is implemented by UNO shapes to + provide accessibility information that describe the shape's features. + A UNO shape is any object that implements the + ::com::sun::star::drawing::XShape interface. + +
The content of a draw page is modelled as tree of accessible shapes + and accessible text paragraphs. The root of this (sub-)tree is the + accessible draw document view. An accessible shape implements either + this service or one of the "derived" services + AccessibleGraphicShape or AccessibleOLEShape. + See the section Children in the description of the + ::com::sun::star::accessibility::XAccessibleContext + interface support for more details.
+ +There are two services that extend this one: the + AccessibleGraphicShape and the + AccessibleOLEShape services provide additional interfaces. + See there for details.
+ +A shape object is either fully or partially visible on the screen or + has set the ::com::sun::star::accessibility::AccessibleStateType::DEFUNC + state to indicate that it is no longer + actively supported by its parent.
+ +Each shape object that has not set the DEFUNC state has a valid + parent. That is either the containing draw page or a group shape or a + 3D scene object.
+ + @since OOo 1.1.2 +*/ +service AccessibleShape +{ + /** Base interface for being accessible. It gives access to the + ::com::sun::star::accessibility::XAccessibleContext + interface. + */ + interface ::com::sun::star::accessibility::XAccessible; + + /** Give access to the structural information of a shape. + +You can access the following information for the shape being made + accessible: +
com::sun::star::accessibility::AccessibleStateType::DEFUNC + is set if an accessible + shape is not visible but still existent for some reason. + This should not really happen and is a sign that someone, + e.g. an AT-Tool holds references to such a shape. The + reason for this is that either the owner of the accessible + shape did not remove it from its list of children or that + the AT-Tool does not care for the events indicating + this.
+Usually an object that has the + com::sun::star::accessibility::AccessibleStateType::DEFUNC + state set has already + been disposed and subsequent calls to this object result in + ::com::sun::star::lang::DisposedException + exceptions.
+If this state is set then no other of the states below is + set. This is also true for the states that are otherwise + always set (which makes "always" more of a sort of + "normally").
The bounding box returned by the + ::com::sun::star::accessibility::XAccessibleComponent::getBounds() + function returns the + shape's bounding box clipped at its parent's bounding box
+ +An accessible shape tries as best as it can to return proper + values for calls to the + ::com::sun::star::accessibility::XAccessibleExtendedComponent::getForeground() + and + ::com::sun::star::accessibility::XAccessibleExtendedComponent::getBackground() + functions. + If the shape is painted with a uniform and non-transparent color + then the returned colors may differ from the ones visible on the + screen.
+ +Key bindings are not supported at the moment
+ */ + interface ::com::sun::star::accessibility::XAccessibleComponent; + + /** Give extended access to the graphical representation of a shape. + +The functions + ::com::sun::star::accessibility::XAccessibleExtendedComponent::getFont(), + ::com::sun::star::accessibility::XAccessibleExtendedComponent::getTitledBorderText(), and + ::com::sun::star::accessibility::XAccessibleExtendedComponent::getToolTipText() + are not supported and return empty references respectively empty + strings.
+ +The support of this interface is optional to reduce overhead in + case that no text is displayed and color information can not be + determined with an acceptable cost.
+ */ + [optional] interface ::com::sun::star::accessibility::XAccessibleExtendedComponent; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/drawing/AccessibleSlideView.idl b/offapi/com/sun/star/drawing/AccessibleSlideView.idl new file mode 100644 index 0000000000..9c6669a52b --- /dev/null +++ b/offapi/com/sun/star/drawing/AccessibleSlideView.idl @@ -0,0 +1,41 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module drawing { + +/** The AccessibleSlideView service is implemented by + slide views of Impress documents. + +An accessible slide view gives access to all visible slides of a + slide view.
+ + @since OOo 1.1.2 +*/ +service AccessibleSlideView +{ + interface ::com::sun::star::accessibility::XAccessible; + interface ::com::sun::star::accessibility::XAccessibleContext; + interface ::com::sun::star::accessibility::XAccessibleEventBroadcaster; + interface ::com::sun::star::accessibility::XAccessibleComponent; + interface ::com::sun::star::accessibility::XAccessibleSelection; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/drawing/AccessibleSlideViewObject.idl b/offapi/com/sun/star/drawing/AccessibleSlideViewObject.idl new file mode 100644 index 0000000000..b8da4e2d78 --- /dev/null +++ b/offapi/com/sun/star/drawing/AccessibleSlideViewObject.idl @@ -0,0 +1,40 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module drawing { + +/** The AccessibleSlideViewObject service is implemented by + the slides of the slide view of Impress documents. + +An accessible slide view object gives access to one of the visible + slides of a slide view.
+ + @since OOo 1.1.2 +*/ +service AccessibleSlideViewObject +{ + interface ::com::sun::star::accessibility::XAccessible; + interface ::com::sun::star::accessibility::XAccessibleContext; + interface ::com::sun::star::accessibility::XAccessibleEventBroadcaster; + interface ::com::sun::star::accessibility::XAccessibleComponent; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/drawing/Alignment.idl b/offapi/com/sun/star/drawing/Alignment.idl new file mode 100644 index 0000000000..00cf5daa27 --- /dev/null +++ b/offapi/com/sun/star/drawing/Alignment.idl @@ -0,0 +1,44 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module drawing { + +/** The Alignment enumeration is a general way to specify the + alignment of an object or sub-object relative to another object. + */ +published enum Alignment +{ + TOP_LEFT, + TOP, + TOP_RIGHT, + LEFT, + CENTER, + RIGHT, + BOTTOM_LEFT, + BOTTOM, + BOTTOM_RIGHT + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/drawing/AppletShape.idl b/offapi/com/sun/star/drawing/AppletShape.idl new file mode 100644 index 0000000000..b13811c9a9 --- /dev/null +++ b/offapi/com/sun/star/drawing/AppletShape.idl @@ -0,0 +1,71 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module drawing { + +/** This Shape encapsulates an applet. + +An applet is a small Java-based program that is executed and rendered + embedded in a document. +*/ +published service AppletShape +{ + /** basic service for position, size and z-order. + +
A AppletShape cannot be rotated. + */ + service com::sun::star::drawing::Shape; + + + /** This property specifies the base URI for the applet. + +
If this property is empty, then it defaults the same base URI as for
+ the current document.
+ */
+ [property] string AppletCodeBase;
+
+
+ /** this is an optional name for the applet.
+ */
+ [property] string AppletName;
+
+
+ /** This property specifies one of the following:
+
The name of the class file that contains the compiled applet subclass.
+
The path to the class, including the class file itself.
+ */
+ [property] string AppletCode;
+
+
+ /** This sequence contains parameters that are passed to the applet
+ when it is initialized.
+ */
+ [property] sequence< com::sun::star::beans::PropertyValue > AppletCommands;
+
+
+ /** This property specifies whether or not the applet can be scripted.
+ */
+ [readonly, property] boolean AppletIsScript;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/drawing/Arrangement.idl b/offapi/com/sun/star/drawing/Arrangement.idl
new file mode 100644
index 0000000000..b0e3110078
--- /dev/null
+++ b/offapi/com/sun/star/drawing/Arrangement.idl
@@ -0,0 +1,52 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module drawing {
+
+/** With this enumeration you can arrange the relative position of an object
+ within the other objects.
+
+ @deprecated
+ */
+published enum Arrangement
+{
+ /** Move this object in front of all other objects.
+ */
+ FRONT,
+
+ /** Move this object one object more to the front.
+ */
+ MORE_FRONT,
+
+ /** Move this object one object more to the back.
+ */
+ MORE_BACK,
+
+ /** Move this object behind all other objects.
+ */
+ BACK
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/drawing/Background.idl b/offapi/com/sun/star/drawing/Background.idl
new file mode 100644
index 0000000000..39c8a83aa1
--- /dev/null
+++ b/offapi/com/sun/star/drawing/Background.idl
@@ -0,0 +1,36 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module drawing {
+
+
+/** this service provides the properties to describe a background filling for
+ a drawing page. It can be obtained by the com::sun::star::lang::XMultiServiceFactory
+ of a document and be set on draw pages that support a filled background.
+ */
+published service Background
+{
+ service FillProperties;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/drawing/BarCode.idl b/offapi/com/sun/star/drawing/BarCode.idl
new file mode 100644
index 0000000000..c67e22d3be
--- /dev/null
+++ b/offapi/com/sun/star/drawing/BarCode.idl
@@ -0,0 +1,43 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */
+/*
+ * 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/.
+ */
+
+ module com { module sun { module star { module drawing {
+
+
+/// This struct defines the attributes of a Bar Code
+/// @since LibreOffice 7.3
+
+published struct BarCode
+{
+ /** Type of the Bar Code
+ that is to be generated.
+ Supported types - 0:"QR Code", 1:"Code 128"
+ */
+ long Type;
+
+ /** Text for which Bar Code is made
+ */
+ string Payload;
+
+ /** Bar Code Error Correction Level
+ @see drawing/BarCodeErrorCorrection
+ */
+ long ErrorCorrection;
+
+ /** Border surrounding the Bar Code
+ It is a non-negative value.
+ One Border unit is equal to one dot in the generated Bar code.
+ */
+ long Border;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */
\ No newline at end of file
diff --git a/offapi/com/sun/star/drawing/BarCodeErrorCorrection.idl b/offapi/com/sun/star/drawing/BarCodeErrorCorrection.idl
new file mode 100644
index 0000000000..63cd317c25
--- /dev/null
+++ b/offapi/com/sun/star/drawing/BarCodeErrorCorrection.idl
@@ -0,0 +1,45 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */
+/*
+ * 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/.
+ */
+
+module com { module sun { module star { module drawing {
+
+/** These constants identify the type of Error Correction for
+ a Bar Code.
+
+
The Error Correction for a Bar code is a measure that + helps a Bar code to recover, if it is destroyed. + + Level L (Low) 7% of codewords can be restored. + Level M (Medium) 15% of codewords can be restored. + Level Q (Quartile) 25% of codewords can be restored. + Level H (High) 30% of codewords can be restored. + + More Info - here +
+ + @see BarCode + @see GraphicObectShape + + @since LibreOffice 7.3 +*/ + +published constants BarCodeErrorCorrection +{ + const long LOW = 1; + + const long MEDIUM = 2; + + const long QUARTILE = 3; + + const long HIGH = 4; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ diff --git a/offapi/com/sun/star/drawing/BezierPoint.idl b/offapi/com/sun/star/drawing/BezierPoint.idl new file mode 100644 index 0000000000..9dd2d09cc6 --- /dev/null +++ b/offapi/com/sun/star/drawing/BezierPoint.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 . + */ + + + + module com { module sun { module star { module drawing { + +/** This is a point on a Bezier curve. + +The two control points specify how the Bezier curve + goes through the given position.
+ + @deprecated + */ +published struct BezierPoint +{ + /** This is the position of this point. + */ + com::sun::star::awt::Point Position; + + /** This is the position of the first control point. + */ + com::sun::star::awt::Point ControlPoint1; + + /** This is the position of the second control point. + */ + com::sun::star::awt::Point ControlPoint2; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/drawing/BitmapMode.idl b/offapi/com/sun/star/drawing/BitmapMode.idl new file mode 100644 index 0000000000..8c7621176e --- /dev/null +++ b/offapi/com/sun/star/drawing/BitmapMode.idl @@ -0,0 +1,49 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module drawing { + + +/** The BitmapMode selects an algorithm for filling an area with + a bitmap. + */ +published enum BitmapMode +{ + + /** the bitmap is repeated over the fill area. + */ + REPEAT, + + + /** the bitmap is stretched to fill the area. + */ + STRETCH, + + + /** the bitmap is painted in its original or selected size. + */ + NO_REPEAT +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/drawing/BitmapTable.idl b/offapi/com/sun/star/drawing/BitmapTable.idl new file mode 100644 index 0000000000..aaa311ac6a --- /dev/null +++ b/offapi/com/sun/star/drawing/BitmapTable.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 . + */ + + + module com { module sun { module star { module drawing { + + +/** this is a container for URLs to bitmaps. + +It is used for example to access the bitmaps that + are used inside a document for filling. + + @see DrawingDocumentFactory + @see FillStyle::FillBitmapURL +*/ +published service BitmapTable +{ + /** this container lets you access the URLs that + are indexed with a name. + +
Note: You can add new entries for later use, but you cannot
+ remove entries that are used inside the document.
+ */
+ interface com::sun::star::container::XNameContainer;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/drawing/BoundVolume.idl b/offapi/com/sun/star/drawing/BoundVolume.idl
new file mode 100644
index 0000000000..5ee01ec3c4
--- /dev/null
+++ b/offapi/com/sun/star/drawing/BoundVolume.idl
@@ -0,0 +1,41 @@
+/* -*- 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 .
+ */
+
+
+ module com { module sun { module star { module drawing {
+
+
+/** specifies a three-dimensional boundary volume with two positions.
+ */
+published struct BoundVolume
+{
+ /** this is the minimum position inside the boundary volume.
+ */
+ Position3D min;
+
+
+ /** this is the maximum position inside the boundary volume.
+ */
+ Position3D max;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/drawing/CameraGeometry.idl b/offapi/com/sun/star/drawing/CameraGeometry.idl
new file mode 100644
index 0000000000..43153ea9e8
--- /dev/null
+++ b/offapi/com/sun/star/drawing/CameraGeometry.idl
@@ -0,0 +1,41 @@
+/* -*- 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 .
+ */
+
+
+ module com { module sun { module star { module drawing {
+
+
+/** specifies a three-dimensional camera.
+ */
+published struct CameraGeometry
+{
+ /** is the camera position */
+ Position3D vrp;
+
+ /** is the camera view direction */
+ Direction3D vpn;
+
+ /** is the camera up direction */
+ Direction3D vup;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/drawing/CanvasFeature.idl b/offapi/com/sun/star/drawing/CanvasFeature.idl
new file mode 100644
index 0000000000..a117a1138f
--- /dev/null
+++ b/offapi/com/sun/star/drawing/CanvasFeature.idl
@@ -0,0 +1,32 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module drawing {
+
+constants CanvasFeature
+{
+ const short None = 0;
+ const short SpriteCanvas = 1;
+};
+
+
+
+}; }; }; }; // ::com::sun::star::drawing
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/drawing/CaptionEscapeDirection.idl b/offapi/com/sun/star/drawing/CaptionEscapeDirection.idl
new file mode 100644
index 0000000000..19a470861f
--- /dev/null
+++ b/offapi/com/sun/star/drawing/CaptionEscapeDirection.idl
@@ -0,0 +1,49 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module drawing {
+
+/** this flags describe escape direction for
+ the line of a CaptionShape.
+
+ @see CaptionShape
+*/
+published constants CaptionEscapeDirection
+{
+ /** the caption line leaves the caption area at the horizontal edge
+ that is nearest to the caption point.
+ */
+ const short horizontal = 0;
+
+ /** the caption line leaves the caption area at the vertical edge
+ that is nearest to the caption point.
+ */
+ const short vertical = 1;
+
+ /** the caption line leaves the caption area at the edge
+ that is nearest to the caption point.
+ */
+ const short auto = 2;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/drawing/CaptionShape.idl b/offapi/com/sun/star/drawing/CaptionShape.idl
new file mode 100644
index 0000000000..c38a5d2e55
--- /dev/null
+++ b/offapi/com/sun/star/drawing/CaptionShape.idl
@@ -0,0 +1,116 @@
+/* -*- 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 .
+ */
+
+
+ module com { module sun { module star { module drawing {
+
+
+/** The CaptionShape represents a rectangular drawing shape
+ with an additional set of lines. It can be used as a description for
+ a fixed point inside a drawing.
+ */
+published service CaptionShape
+{
+ /** the position and size is only used for the
+ caption area
+ */
+ service com::sun::star::drawing::Shape;
+
+ service com::sun::star::drawing::FillProperties;
+
+ service com::sun::star::drawing::LineProperties;
+
+ service com::sun::star::drawing::ShadowProperties;
+
+ service com::sun::star::drawing::Text;
+
+ service com::sun::star::drawing::RotationDescriptor;
+
+ /** This is the radius of the caption area corners.
+ */
+ [property] long CornerRadius;
+
+ /** The caption point property specify the position of
+ the point that is captioned. A set of lines are
+ rendered from the caption area.
+ */
+ [property] com::sun::star::awt::Point CaptionPoint;
+
+ /** This property specifies the geometry of the line of a caption.
+
+ @see CaptionType
+ */
+ [property] short CaptionType;
+
+ /** This property specifies if the escape angle of
+ the line of a caption is fixed or free. If this
+ is set to `FALSE`, the application can choose
+ the best possible angle. If not, the value in
+ CaptionAngle
is used.
+ */
+ [property] boolean CaptionIsFixedAngle;
+
+ /** This property specifies the escape angle of
+ the line of a caption.
+ It is only used if CaptionIsFixedAngle
+ is set to `TRUE`
+ */
+ [property] long CaptionAngle;
+
+ /** This property specifies the distance between the
+ text area of the caption and the start of the line.
+ */
+ [property] long CaptionGap;
+
+ /** This property specifies the escape direction for the
+ line of a caption.
+
+ @see CaptionEscapeDirection
+ */
+ [property] long CaptionEscapeDirection;
+
+ /** If this property is `TRUE`, the property CaptionEscapeRelative
+ is used, else the property CaptionEscapeAbsolute
is used.
+ */
+ [property] boolean CaptionIsEscapeRelative;
+
+ /** This property specifies the relative escape distance for
+ the line of a caption.
+ */
+ [property] long CaptionEscapeRelative;
+
+ /** This property specifies the absolute escape distance for
+ the line of a caption.
+ */
+ [property] long CaptionEscapeAbsolute;
+
+ /** This property specifies the length of the caption line.
+ */
+ [property] long CaptionLineLength;
+
+ /** If this property is `TRUE`, the application determines
+ the best possible length for the caption line.
+ */
+ [property] boolean CaptionIsFitLineLength;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/drawing/CaptionType.idl b/offapi/com/sun/star/drawing/CaptionType.idl
new file mode 100644
index 0000000000..ea164c454f
--- /dev/null
+++ b/offapi/com/sun/star/drawing/CaptionType.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 .
+ */
+
+
+module com { module sun { module star { module drawing {
+
+/** This constants specifies the geometry of the line of a CaptionShape.
+
+ @see CaptionShape
+*/
+published constants CaptionType
+{
+ /** the caption line is a straight line from a caption area edge to the
+ caption point.
+ */
+ const short straight = 0;
+
+ /** the caption line is the shortest line from the caption area edge to
+ the caption point.
+ */
+ const short angled = 1;
+
+ /** the caption line is build up with a straight line from the caption area
+ edge, followed by the shortest line to the caption area point.
+ */
+ const short connector = 2;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/drawing/CircleKind.idl b/offapi/com/sun/star/drawing/CircleKind.idl
new file mode 100644
index 0000000000..76c98b7931
--- /dev/null
+++ b/offapi/com/sun/star/drawing/CircleKind.idl
@@ -0,0 +1,49 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module drawing {
+
+/** This enumeration defines a circle.
+ */
+published enum CircleKind
+{
+ /** a full circle
+ */
+ FULL,
+
+ /** a circle with a cut connected by a line
+ */
+ SECTION,
+
+ /** a circle with a cut connected by two lines
+ */
+ CUT,
+
+ /** a circle with an open cut
+ */
+ ARC
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/drawing/ClosedBezierShape.idl b/offapi/com/sun/star/drawing/ClosedBezierShape.idl
new file mode 100644
index 0000000000..595a04ba79
--- /dev/null
+++ b/offapi/com/sun/star/drawing/ClosedBezierShape.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 .
+ */
+
+
+
+ module com { module sun { module star { module drawing {
+
+
+/** This service is for a closed Bezier shape.
+ */
+published service ClosedBezierShape
+{
+ service com::sun::star::drawing::Shape;
+
+ service com::sun::star::drawing::LineProperties;
+
+ service com::sun::star::drawing::FillProperties;
+
+ service com::sun::star::drawing::PolyPolygonBezierDescriptor;
+
+ service com::sun::star::drawing::Text;
+
+ service com::sun::star::drawing::ShadowProperties;
+
+ service com::sun::star::drawing::RotationDescriptor;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/drawing/ColorMode.idl b/offapi/com/sun/star/drawing/ColorMode.idl
new file mode 100644
index 0000000000..5bab8c92dc
--- /dev/null
+++ b/offapi/com/sun/star/drawing/ColorMode.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 .
+ */
+
+
+
+ module com { module sun { module star { module drawing {
+
+/** The ColorMode defines the output style of colors
+ for a graphic.
+ */
+published enum ColorMode
+{
+ /** the graphic is rendered in the default color style of the output
+ device,
+ */
+ STANDARD,
+
+ /** the graphic is rendered in grayscale on the output device,
+ */
+ GREYS,
+
+ /** the graphic is rendered in black and white only,
+ */
+ MONO,
+
+ /** the graphic is rendered in a watermark like style,
+ */
+ WATERMARK
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/drawing/ColorTable.idl b/offapi/com/sun/star/drawing/ColorTable.idl
new file mode 100644
index 0000000000..0a915aabf1
--- /dev/null
+++ b/offapi/com/sun/star/drawing/ColorTable.idl
@@ -0,0 +1,32 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module drawing {
+
+
+/**
+ @since LibreOffice 4.1
+ */
+published service ColorTable : com::sun::star::container::XNameContainer;
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/drawing/ConnectionType.idl b/offapi/com/sun/star/drawing/ConnectionType.idl
new file mode 100644
index 0000000000..b7318fbdba
--- /dev/null
+++ b/offapi/com/sun/star/drawing/ConnectionType.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 .
+ */
+
+
+
+ module com { module sun { module star { module drawing {
+
+/** the direction where the
+ connection line leaves the connection point.
+ */
+published enum ConnectionType
+{
+ /** the connection point is chosen automatically,
+ */
+ AUTO,
+
+ /** the connection line leaves the connected object to the left,
+ */
+ LEFT,
+
+ /** the connection line leaves the connected object from the top,
+ */
+ TOP,
+
+ /** the connection line leaves the connected object to the right,
+ */
+ RIGHT,
+
+ /** the connection line leaves the connected object from the bottom,
+ */
+ BOTTOM,
+
+ /** not implemented, yet.
+ */
+ SPECIAL
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/drawing/ConnectorProperties.idl b/offapi/com/sun/star/drawing/ConnectorProperties.idl
new file mode 100644
index 0000000000..92547f73f1
--- /dev/null
+++ b/offapi/com/sun/star/drawing/ConnectorProperties.idl
@@ -0,0 +1,66 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module drawing {
+
+
+/** This is a set of properties to describe the style for rendering connector.
+ */
+published service ConnectorProperties
+{
+
+ /** This property contains the kind of the connector.
+ */
+ [property] com::sun::star::drawing::ConnectorType EdgeKind;
+
+
+ /** This property contains the horizontal distance of node 1.
+ */
+ [property] long EdgeNode1HorzDist;
+
+
+ /** This property contains the vertical distance of node 1.
+ */
+ [property] long EdgeNode1VertDist;
+
+
+ /** This property contains the horizontal distance of node 2.
+ */
+ [property] long EdgeNode2HorzDist;
+
+
+ /** This property contains the vertical distance of node 2.
+ */
+ [property] long EdgeNode2VertDist;
+
+
+ /** If 'TRUE' a curved connector is routed compatible to OOXML.
+ The default value for new connectors is 'FALSE'.
+ The property is only evaluated in case EdgeKind CURVE.
+ @since LibreOffice 24.2
+ */
+ [property, optional] boolean EdgeOOXMLCurve;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/drawing/ConnectorShape.idl b/offapi/com/sun/star/drawing/ConnectorShape.idl
new file mode 100644
index 0000000000..2d3fbbf836
--- /dev/null
+++ b/offapi/com/sun/star/drawing/ConnectorShape.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 .
+ */
+
+
+
+ module com { module sun { module star { module drawing {
+
+
+/** This service is for a ConnectorShape, a specialized Shape,
+ which can be connected to other Shapes or GluePoints.
+ */
+published service ConnectorShape
+{
+ service com::sun::star::drawing::Shape;
+
+ service com::sun::star::drawing::LineProperties;
+
+ service com::sun::star::drawing::ConnectorProperties;
+
+ service com::sun::star::drawing::ShadowProperties;
+
+ service com::sun::star::drawing::Text;
+
+ service com::sun::star::drawing::RotationDescriptor;
+
+
+ /** this property either holds the shape that the start point of this
+ connector is connected to, or is empty when the start point of the
+ connector is not connected to a shape.
+ */
+ [property] com::sun::star::drawing::XShape StartShape;
+
+
+ /** this property holds the index of the gluepoint the start point of
+ this connector is glued on.
+ */
+ [property] long StartGluePointIndex;
+
+
+ /** this is the position of the connectors start point in 100th/mm. For
+ unconnected start points you can get and set the position. For
+ connected start points you can only get the position.
+ */
+ [property] com::sun::star::awt::Point StartPosition;
+
+
+ /** this property either holds the shape that the end point of this
+ connector is connected to, or is empty when the end point of the
+ connector is not connected to a shape.
+ */
+ [property] com::sun::star::drawing::XShape EndShape;
+
+
+ /** this property holds the index of the gluepoint the end point of
+ this connector is glued on.
+ */
+ [property] com::sun::star::awt::Point EndPosition;
+
+
+ /** this is the position of the connectors end point in 100th/mm. For
+ unconnected end points you can get and set the position. For
+ connected end points you can only get the position.
+ */
+ [property] long EndGluePointIndex;
+
+
+ /** This property contains the distance of line 1.
+ */
+ [property] long EdgeLine1Delta;
+
+
+ /** This property contains the distance of line 2.
+ */
+ [property] long EdgeLine2Delta;
+
+
+ /** This property contains the distance of line 3.
+ */
+ [property] long EdgeLine3Delta;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/drawing/ConnectorType.idl b/offapi/com/sun/star/drawing/ConnectorType.idl
new file mode 100644
index 0000000000..648e1a652d
--- /dev/null
+++ b/offapi/com/sun/star/drawing/ConnectorType.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 .
+ */
+
+
+
+ module com { module sun { module star { module drawing {
+
+/** The ConnectorType specifies the appearance of a connector.
+ */
+published enum ConnectorType
+{
+ /** the connector is drawn with three lines, with the middle line
+ perpendicular to the other two
+ */
+ STANDARD,
+
+ /** the ConnectorShape is drawn as a curve
+ */
+ CURVE,
+
+ /** the ConnectorShape is drawn as a straight line
+ */
+ LINE,
+
+ /** the connector is drawn with three lines
+ */
+ LINES
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/drawing/ControlShape.idl b/offapi/com/sun/star/drawing/ControlShape.idl
new file mode 100644
index 0000000000..c06f5b7de3
--- /dev/null
+++ b/offapi/com/sun/star/drawing/ControlShape.idl
@@ -0,0 +1,39 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module drawing {
+
+
+/** This service is for a Shape which contains a control.
+
+ @see Shape
+ @see XControlShape
+ */
+published service ControlShape
+{
+ service com::sun::star::drawing::Shape;
+ interface com::sun::star::drawing::XControlShape;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/drawing/CoordinateSequence.idl b/offapi/com/sun/star/drawing/CoordinateSequence.idl
new file mode 100644
index 0000000000..b5276addd5
--- /dev/null
+++ b/offapi/com/sun/star/drawing/CoordinateSequence.idl
@@ -0,0 +1,29 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module drawing {
+
+published typedef sequence It is used for example to access the LineDashs that
+ are used inside a document.
+
+ @see DrawingDocumentFactory
+ @see LineDash
+*/
+published service DashTable
+{
+ /** this container lets you access the LineDashs that
+ are indexed with a name.
+
+ Note: You can add new entries for later use, but you cannot
+ remove entries that are used inside the document.
+ */
+ interface com::sun::star::container::XNameContainer;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/drawing/Defaults.idl b/offapi/com/sun/star/drawing/Defaults.idl
new file mode 100644
index 0000000000..88ab835598
--- /dev/null
+++ b/offapi/com/sun/star/drawing/Defaults.idl
@@ -0,0 +1,42 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module drawing {
+
+
+/** This is a set of properties to access the defaults of a drawing document
+
+ @see DrawingDocumentFactory
+ */
+published service Defaults
+{
+ service TextProperties;
+ service LineProperties;
+ service FillProperties;
+ service ShadowProperties;
+ service ConnectorProperties;
+ service MeasureProperties;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/drawing/Direction3D.idl b/offapi/com/sun/star/drawing/Direction3D.idl
new file mode 100644
index 0000000000..7cd32309d7
--- /dev/null
+++ b/offapi/com/sun/star/drawing/Direction3D.idl
@@ -0,0 +1,37 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module drawing {
+
+/** specifies a 3-dimensional vector.
+ */
+published struct Direction3D
+{
+ double DirectionX;
+ double DirectionY;
+ double DirectionZ;
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/drawing/DocumentSettings.idl b/offapi/com/sun/star/drawing/DocumentSettings.idl
new file mode 100644
index 0000000000..a926a280c3
--- /dev/null
+++ b/offapi/com/sun/star/drawing/DocumentSettings.idl
@@ -0,0 +1,88 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module drawing {
+
+
+/** describes properties that apply to the whole drawing document.
+ */
+published service DocumentSettings
+{
+ service com::sun::star::document::Settings;
+
+ /** This service configures the header and footer settings during print
+ */
+ [optional] service com::sun::star::document::HeaderFooterSettings;
+
+
+ /** provides access to the properties.
+ */
+ interface com::sun::star::beans::XPropertySet;
+
+
+ /** This is the default logical measure unit that is used for string
+ formatting inside the document, f.e. the measure text
+ */
+ [optional, property] short MeasureUnit;
+
+ /** is the numerator for the logical scale of the document
+ */
+ [optional, property] long ScaleNumerator;
+
+ /** is the denominator for the logical scale of the document
+ */
+ [optional, property] long ScaleDenominator;
+
+ // Note: the following properties exist also in
+ // css::presentation::DocumentSettings
+
+
+ /** enables or disables the fitting of the page to the printable
+ area during print
+ */
+ [optional, property] boolean IsPrintFitPage;
+
+ /** if this is true and the paper size for printing is larger than
+ the paper size of the printer than the content is tiled over
+ multiple pages.
+ */
+ [optional, property] boolean IsPrintTilePage;
+
+ /** is the number format used for page number fields
+
+ Values 0-7 are supported.
+
+ @see com::sun::star::style::NumberingType
+ */
+ [optional, property] long PageNumberFormat;
+
+ /** If this is true, the distance between two paragraphs is
+ the sum of ParaBottomMargin of the previous and ParaTopMargin of
+ the next paragraph. If false, only the greater of the two is
+ chosen.
+ */
+ [optional, property] boolean ParagraphSummation;
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/drawing/DoubleSequence.idl b/offapi/com/sun/star/drawing/DoubleSequence.idl
new file mode 100644
index 0000000000..e407d36482
--- /dev/null
+++ b/offapi/com/sun/star/drawing/DoubleSequence.idl
@@ -0,0 +1,29 @@
+/* -*- 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 .
+ */
+
+
+
+module com { module sun { module star { module drawing {
+
+published typedef sequence Every draw page may contain a form layer - that is, a hierarchy of form elements. The layer can be
+ accessed using this interface. Note: Currently not usable in ODF strict. This property is only valid if the property #FillStyle
+ is set to FillStyle::SOLID.
+ */
+ [property] short FillTransparence;
+
+ /** If a gradient is used for transparency, this is the name of the
+ used transparence gradient style or it is empty. If you set the name
+ of a transparence gradient style contained in the document, this
+ style used.
+ */
+ [property] string FillTransparenceGradientName;
+
+
+ /** This describes the transparency of the fill area as a gradient.
+ */
+ [optional, property] com::sun::star::awt::Gradient FillTransparenceGradient;
+
+ /** If the property #FillStyle is set to
+ FillStyle::GRADIENT, this is the name of the used fill
+ gradient style.
+ */
+ [property] string FillGradientName;
+
+ /** If the property #FillStyle is set to
+ FillStyle::GRADIENT, this describes the gradient used.
+ */
+ [optional, property] com::sun::star::awt::Gradient FillGradient;
+
+ /** If the property #FillStyle is set to
+ FillStyle::HATCH, this is the name of the used fill hatch
+ style.
+ */
+ [property] string FillHatchName;
+
+ /** If the property #FillStyle is set to
+ FillStyle::HATCH, this describes the hatch used.
+ */
+ [optional, property] Hatch FillHatch;
+
+ /** if this is `TRUE`, the transparent background of a
+ hatch filled area is drawn in the current background color.
+ */
+ [property] boolean FillBackground;
+
+ /** If the property #FillStyle is set to
+ FillStyle::BITMAP, this is the name of the used fill bitmap
+ style.
+ */
+ [property] string FillBitmapName;
+
+ /** If the property #FillStyle is set to
+ FillStyle::BITMAP, this is the bitmap used.
+ */
+ [optional, property] com::sun::star::awt::XBitmap FillBitmap;
+
+ /** If the property #FillStyle is set to
+ FillStyle::BITMAP, this is a URL to the bitmap used.
+
+ @deprecated as of LibreOffice 6.1, use FillBitmap
+
+ Note the new behaviour since it this was deprecated:
+ This property can only be set and only external URLs are
+ supported (no more vnd.sun.star.GraphicObject scheme). When a
+ URL is set, then it will load the bitmap and set the FillBitmap
+ property.
+ */
+ [optional, property] string FillBitmapURL;
+
+ /** This is the horizontal offset where the tile starts.
+
+ It is given in percent in relation to the width of the bitmap. It is given in percent in relation to the height of the bitmap. If this is `TRUE`, the properties #FillBitmapSizeX
+ and #FillBitmapSizeY contain the size of the tile in
+ percent of the size of the original bitmap. If this is `FALSE`, the
+ size of the tile is specified with 1/100th mm.
+ */
+ [property] boolean FillBitmapLogicalSize;
+
+ /** This is the width of the tile for filling.
+
+ Depending on the property #FillBitmapLogicalSize,
+ this is either relative or absolute.
+ */
+ [property] long FillBitmapSizeX;
+
+ /** This is the height of the tile for filling.
+
+ Depending on the property #FillBitmapLogicalSize,
+ this is either relative or absolute.
+ */
+ [property] long FillBitmapSizeY;
+
+ /** this enum selects how an area is filled with a single bitmap.
+
+ This property corresponds to the properties
+ #FillBitmapStretch and #FillBitmapTile. If set to BitmapMode::REPEAT, the property
+ FillBitmapStretch is set to `FALSE`, and the property FillBitmapTile
+ is set to `TRUE`. If set to BitmapMode::STRETCH, the property
+ FillBitmapStretch is set to `TRUE`, and the property FillBitmapTile
+ is set to `FALSE`. If set to BitmapMode::NO_REPEAT, both properties
+ FillBitmapStretch and FillBitmapTile are set to `FALSE`. This property should not be used anymore and is included here for
+ completeness. The #FillBitmapMode property can be used
+ instead to set all supported bitmap modes. If set to `TRUE`, the value of the FillBitmapMode property changes
+ to BitmapMode::STRETCH. BUT: behavior is undefined, if
+ the property #FillBitmapTile is `TRUE` too. If set to `FALSE`, the value of the FillBitmapMode property
+ changes to BitmapMode::REPEAT or BitmapMode::NO_REPEAT,
+ depending on the current value of the
+ #FillBitmapTile property. This property should not be used anymore and is included here for
+ completeness. The #FillBitmapMode property can be used
+ instead to set all supported bitmap modes. If set to `TRUE`, the value of the FillBitmapMode property changes
+ to BitmapMode::REPEAT. BUT: behavior is undefined, if
+ the property #FillBitmapStretch is `TRUE` too. If set to `FALSE`, the value of the FillBitmapMode property
+ changes to BitmapMode::STRETCH or BitmapMode::NO_REPEAT,
+ depending on the current value of the
+ #FillBitmapStretch property. It also lets you add new Shapes. The program currently
+ requires that these Shapes be created by the factory of
+ the document.
+
+ @see DrawingDocument
+ */
+ interface com::sun::star::drawing::XShapes;
+
+ /** With this interface you can group/ungroup a collection of
+ Shapes.
+ */
+ interface com::sun::star::drawing::XShapeGrouper;
+
+ /** With this interface you can combine/split a collection of
+ Shapes.
+ */
+ [optional] interface com::sun::star::drawing::XShapeCombiner;
+
+ /** With this interface you can bind/unbind a collection of
+ Shapes.
+ */
+ [optional] interface com::sun::star::drawing::XShapeBinder;
+
+ /** Gets or sets the name of this page.
+
+ Duplicated page names inside a document are not allowed.
+ */
+ [optional] interface com::sun::star::container::XNamed;
+
+ /** gives you access to the properties of this
+ DrawPage.
+ */
+ [optional] interface com::sun::star::beans::XPropertySet;
+
+ /** This is the border at the bottom.
+ */
+ [optional, property] long BorderBottom;
+
+ /** This is the border at the left.
+ */
+ [optional, property] long BorderLeft;
+
+ /** This is the border at the right.
+ */
+ [optional, property] long BorderRight;
+
+ /** This is the border at the top.
+ */
+ [optional, property] long BorderTop;
+
+ /** This is the height.
+ */
+ [optional, property] long Height;
+
+ /** This is the width.
+ */
+ [optional, property] long Width;
+
+ /** This is the number of this page, starting with 1.
+ */
+ [optional, readonly, property] short Number;
+
+ /** This is the orientation of this page.
+ */
+ [optional, property] com::sun::star::view::PaperOrientation Orientation;
+
+
+ /** this property stores xml attributes.
+ They will be saved to and restored from automatic styles inside xml files.
+
+ @see com::sun::star::xml::AttributeContainer
+ */
+ [optional, property] com::sun::star::container::XNameContainer UserDefinedAttributes;
+
+
+ /** this property is true if the averaged background filling colors luminance
+ is below an application specified threshold value. This can be used to
+ determine the actual value of an auto color.
+ */
+ [readonly, optional, property] boolean IsBackgroundDark;
+
+
+ /** this index access defines a navigation order for the top level shapes
+ inside this page.
+ By default this is equal to the index access of the slide itself,
+ making the z-order the default navigation order for top level shapes.
+ */
+ [optional, property] com::sun::star::container::XIndexAccess NavigationOrder;
+
+ /** does the background cover the full page or only inside the
+ margins?
+
+ @since LibreOffice 7.2
+ */
+ [optional, property] boolean BackgroundFullSize;
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/drawing/GenericDrawingDocument.idl b/offapi/com/sun/star/drawing/GenericDrawingDocument.idl
new file mode 100644
index 0000000000..e40142c296
--- /dev/null
+++ b/offapi/com/sun/star/drawing/GenericDrawingDocument.idl
@@ -0,0 +1,178 @@
+/* -*- 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 .
+ */
+
+
+ module com { module sun { module star { module drawing {
+
+
+/** specifies a document which consists of multiple pages
+ with drawings.
+
+ Because its function is needed more than once, it's defined as generic one. The following services are Shapes.
+ They are created by the documents factory and must
+ be inserted into a DrawPage or MasterPage
+ of this document.
+
+ The following services are all com::sun::star::text::TextField
+ and can be inserted into text as com::sun::star::text::TextContent.
+
+ The following services gives access to resources used inside the document
+ and let you add new resources.
+
+ The following service can be set at the The following services can be used for a com::sun::star::image::ImageMap
+ inside the document.
+
+ The following services lets you access the drawing property defaults
+ of a document.
+
+ If a GluePoint is attached to a shape, it is moved when
+ the shape moves.
+ The ends of connectors can be attached to GluePoint. A gluepoint is a position inside a drawing shape where an edge
+ of a connector shape can be connected. It is used for example to access the com::sun::star::awt::Gradients that
+ are used inside a document.
+
+ @see DrawingDocumentFactory
+ @see com::sun::star::awt::Gradient
+*/
+published service GradientTable
+{
+ /** this container lets you access the com::sun::star::awt::Gradients that
+ are indexed with a name.
+
+ Note: You can add new entries for later use, but you cannot
+ remove entries that are used inside the document.
+ */
+ interface com::sun::star::container::XNameContainer;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/drawing/GraphicExportFilter.idl b/offapi/com/sun/star/drawing/GraphicExportFilter.idl
new file mode 100644
index 0000000000..82afcbc89f
--- /dev/null
+++ b/offapi/com/sun/star/drawing/GraphicExportFilter.idl
@@ -0,0 +1,33 @@
+/* -*- 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 .
+ */
+
+
+ module com { module sun { module star { module drawing {
+
+
+/** a component that supports this service lets you export pages, shapes, or
+ groups of shapes from a DrawingDocument to a file in one of the
+ file formats supported by the component.
+*/
+published service GraphicExportFilter : XGraphicExportFilter;
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/drawing/GraphicFilterRequest.idl b/offapi/com/sun/star/drawing/GraphicFilterRequest.idl
new file mode 100644
index 0000000000..bdc4c239f0
--- /dev/null
+++ b/offapi/com/sun/star/drawing/GraphicFilterRequest.idl
@@ -0,0 +1,39 @@
+/* -*- 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 .
+ */
+
+
+ module com { module sun { module star { module drawing {
+
+
+/** represents a general error graphic filter exception.
+ It can be used to transport the error code information.
+ E.g. that can be useful for interactions.
+
+ @since OOo 3.0
+ */
+exception GraphicFilterRequest : com::sun::star::uno::Exception
+{
+ /** specifies the error code. */
+ long ErrCode;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/drawing/GraphicObjectShape.idl b/offapi/com/sun/star/drawing/GraphicObjectShape.idl
new file mode 100644
index 0000000000..732471dcb4
--- /dev/null
+++ b/offapi/com/sun/star/drawing/GraphicObjectShape.idl
@@ -0,0 +1,150 @@
+/* -*- 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 .
+ */
+
+
+ module com { module sun { module star { module drawing {
+
+
+/** This service is for a graphic shape.
+ */
+published service GraphicObjectShape
+{
+ service com::sun::star::drawing::Shape;
+
+ service com::sun::star::drawing::Text;
+
+ service com::sun::star::drawing::ShadowProperties;
+
+ service com::sun::star::drawing::RotationDescriptor;
+
+ /** This is a url to the source bitmap for this graphic shape.
+
+ @deprecated as of LibreOffice 6.1 - use Graphic instead
+
+ Note the new behaviour since it was deprecated:
+ This property can only be set and only external URLs are
+ supported (no more vnd.sun.star.GraphicObject scheme). When a
+ URL is set, then it will load the image and set the Graphic
+ property.
+ */
+ [property] string GraphicURL;
+
+ /** This is a url to the stream ("in document" or linked graphic) for this graphic shape.
+ */
+ [property] string GraphicStreamURL;
+
+ /** This is the bitmap that represents this graphic shape.
+
+ @deprecated Use graphic property instead!
+ */
+ [optional, property] com::sun::star::awt::XBitmap GraphicObjectFillBitmap;
+
+ /** If this property is set, the luminance of this graphic shape is adjusted
+ by the given signed percent value.
+ */
+ [property] short AdjustLuminance;
+
+ /** If this property is set, the contrast of this graphic shape is adjusted
+ by the given signed percent value.
+ */
+ [property] short AdjustContrast;
+
+ /** If this property is set, the red channel of this graphic shape is
+ adjusted by the given signed percent value.
+ */
+ [property] short AdjustRed;
+
+ /** If this property is set, the green channel of this graphic shape is
+ adjusted by the given signed percent value.
+ */
+ [property] short AdjustGreen;
+
+ /** If this property is set, the blue channel of this graphic shape is
+ adjusted by the given signed percent value.
+ */
+ [property] short AdjustBlue;
+
+ /** If this property is set, the gamma value of this graphic shape is
+ adjusted by the given value.
+ */
+ [property] double Gamma;
+
+ /** If this property is set, the transparency value of this graphic shape is
+ adjusted by the given unsigned percent value.
+ 100% is fully transparent, 0% is fully opaque.
+ */
+ [property] short Transparency;
+
+ /** This property selects the color mode that is used for rendering.
+ */
+ [property] ColorMode GraphicColorMode;
+
+ /** This property contains an image map for this graphic.
+ @see com::sun::star::image::ImageMap
+ */
+ [optional, property] com::sun::star::container::XIndexContainer ImageMap;
+
+ /** This is the graphic that represents this graphic shape
+ */
+ [optional, property] com::sun::star::graphic::XGraphic Graphic;
+
+ /// Whether this shape is actually a signature line.
+ [optional, property] boolean IsSignatureLine;
+
+ /// The ID of the signature line, used to connect to a signature.
+ [optional, property] string SignatureLineId;
+
+ /// Suggested Signer, Name of the Signer
+ [optional, property] string SignatureLineSuggestedSignerName;
+
+ /// Suggested Signer, Line 2 (Title or additional information)
+ [optional, property] string SignatureLineSuggestedSignerTitle;
+
+ /// Suggested Signer Email
+ [optional, property] string SignatureLineSuggestedSignerEmail;
+
+ /// Signing instructions, to be shown at signing time
+ [optional, property] string SignatureLineSigningInstructions;
+
+ /// Whether the signing date should be shown in the shape
+ [optional, property] boolean SignatureLineShowSignDate;
+
+ /// Whether the user can attach a comment at signing time
+ [optional, property] boolean SignatureLineCanAddComment;
+
+ /** Image to be displayed when the signature line is unsigned
+ *
+ * Images for signed signature lines (valid and invalid)
+ * are to be retrieved via com::sun::star::security::DocumentSignatureInformation
+ * (you can get the matching signature with the SignatureLineId property).
+ */
+ [optional, property] com::sun::star::graphic::XGraphic SignatureLineUnsignedImage;
+
+ /// Whether the signature line is signed using a digital signature
+ [optional, property] boolean SignatureLineIsSigned;
+
+ /// Shape as a QR Code
+ /// @since LibreOffice 6.4
+ [optional, property] com::sun::star::drawing::BarCode BarCodeProperties;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/drawing/GroupShape.idl b/offapi/com/sun/star/drawing/GroupShape.idl
new file mode 100644
index 0000000000..d8de395f3c
--- /dev/null
+++ b/offapi/com/sun/star/drawing/GroupShape.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 .
+ */
+
+
+
+ module com { module sun { module star { module drawing {
+
+
+/** This service is for a group of Shapes.
+ @see XShapeGroup
+ @see XShapes
+ */
+published service GroupShape
+{
+ /** Since a GroupShape is also a shape, it has to support this service
+ */
+ service com::sun::star::drawing::Shape;
+
+ /** this is a ui feature for entering and leaving the group for
+ editing.
+ */
+ interface com::sun::star::drawing::XShapeGroup;
+
+
+ /** lets you access the Shapes in this Group.
+ */
+ interface com::sun::star::drawing::XShapes;
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/drawing/Hatch.idl b/offapi/com/sun/star/drawing/Hatch.idl
new file mode 100644
index 0000000000..ea95a94132
--- /dev/null
+++ b/offapi/com/sun/star/drawing/Hatch.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 .
+ */
+
+
+
+ module com { module sun { module star { module drawing {
+
+/** This struct defines the appearance of a hatch.
+
+ A hatch is a texture made of straight lines. It is used for example to access the Hatchs that
+ are used inside a document.
+
+ @see DrawingDocumentFactory
+ @see Hatch
+*/
+published service HatchTable
+{
+ /** this container lets you access the Hatchs that
+ are indexed with a name.
+
+ Note: You can add new entries for later use, but you cannot
+ remove entries that are used inside the document.
+ */
+ interface com::sun::star::container::XNameContainer;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/drawing/HomogenMatrix.idl b/offapi/com/sun/star/drawing/HomogenMatrix.idl
new file mode 100644
index 0000000000..4ab03f5ae2
--- /dev/null
+++ b/offapi/com/sun/star/drawing/HomogenMatrix.idl
@@ -0,0 +1,38 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module drawing {
+
+/** specifies a homogeneous matrix by three homogeneous lines
+ */
+published struct HomogenMatrix
+{
+ com::sun::star::drawing::HomogenMatrixLine Line1;
+ com::sun::star::drawing::HomogenMatrixLine Line2;
+ com::sun::star::drawing::HomogenMatrixLine Line3;
+ com::sun::star::drawing::HomogenMatrixLine Line4;
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/drawing/HomogenMatrix3.idl b/offapi/com/sun/star/drawing/HomogenMatrix3.idl
new file mode 100644
index 0000000000..01bbccd537
--- /dev/null
+++ b/offapi/com/sun/star/drawing/HomogenMatrix3.idl
@@ -0,0 +1,36 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module drawing {
+
+/** specifies a homogeneous matrix by three homogeneous lines
+ */
+published struct HomogenMatrix3
+{
+ com::sun::star::drawing::HomogenMatrixLine3 Line1;
+ com::sun::star::drawing::HomogenMatrixLine3 Line2;
+ com::sun::star::drawing::HomogenMatrixLine3 Line3;
+ };
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/drawing/HomogenMatrix4.idl b/offapi/com/sun/star/drawing/HomogenMatrix4.idl
new file mode 100644
index 0000000000..304703e394
--- /dev/null
+++ b/offapi/com/sun/star/drawing/HomogenMatrix4.idl
@@ -0,0 +1,37 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module drawing {
+
+/** specifies a homogeneous matrix by four homogeneous lines.
+ */
+published struct HomogenMatrix4
+{
+ com::sun::star::drawing::HomogenMatrixLine4 Line1;
+ com::sun::star::drawing::HomogenMatrixLine4 Line2;
+ com::sun::star::drawing::HomogenMatrixLine4 Line3;
+ com::sun::star::drawing::HomogenMatrixLine4 Line4;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/drawing/HomogenMatrixLine.idl b/offapi/com/sun/star/drawing/HomogenMatrixLine.idl
new file mode 100644
index 0000000000..baa39eba23
--- /dev/null
+++ b/offapi/com/sun/star/drawing/HomogenMatrixLine.idl
@@ -0,0 +1,38 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module drawing {
+
+/** specifies a single line for a HomogenMatrix.
+ */
+published struct HomogenMatrixLine
+{
+ double Column1;
+ double Column2;
+ double Column3;
+ double Column4;
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/drawing/HomogenMatrixLine3.idl b/offapi/com/sun/star/drawing/HomogenMatrixLine3.idl
new file mode 100644
index 0000000000..5e43278b86
--- /dev/null
+++ b/offapi/com/sun/star/drawing/HomogenMatrixLine3.idl
@@ -0,0 +1,37 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module drawing {
+
+
+/** specifies a single line for a HomogenMatrix3.
+ */
+published struct HomogenMatrixLine3
+{
+ double Column1;
+ double Column2;
+ double Column3;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/drawing/HomogenMatrixLine4.idl b/offapi/com/sun/star/drawing/HomogenMatrixLine4.idl
new file mode 100644
index 0000000000..622e3b67c2
--- /dev/null
+++ b/offapi/com/sun/star/drawing/HomogenMatrixLine4.idl
@@ -0,0 +1,38 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module drawing {
+
+
+/** specifies a single line for a HomogenMatrix4.
+ */
+published struct HomogenMatrixLine4
+{
+ double Column1;
+ double Column2;
+ double Column3;
+ double Column4;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/drawing/HorizontalDimensioning.idl b/offapi/com/sun/star/drawing/HorizontalDimensioning.idl
new file mode 100644
index 0000000000..9b0eec616d
--- /dev/null
+++ b/offapi/com/sun/star/drawing/HorizontalDimensioning.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 .
+ */
+
+
+
+ module com { module sun { module star { module drawing {
+
+/** The HorizontalDimensioning specifies the horizontal position
+ of the text of a dimensioning shape.
+ */
+published enum HorizontalDimensioning
+{
+ /** Set this to have the application select the best horizontal
+ position for the text.
+ */
+ AUTO,
+
+ /** The text is positioned to the left.
+ */
+ LEFT,
+
+ /** The text is positioned at the center.
+ */
+ CENTERED,
+
+ /** The text is positioned to the right.
+ */
+ RIGHT
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/drawing/Layer.idl b/offapi/com/sun/star/drawing/Layer.idl
new file mode 100644
index 0000000000..a0cb266eab
--- /dev/null
+++ b/offapi/com/sun/star/drawing/Layer.idl
@@ -0,0 +1,72 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module drawing {
+
+/** A layer is an entity inside a document which contains shapes.
+
+
+ There could be zero or more Shapes attached to
+ such a layer.
+
+ The properties of a Layer instance affect all Shapes
+ attached to the Layer.
+
+ The contents of the collection all support Layer
+ returned by XLayer.
+ */
+ interface com::sun::star::drawing::XLayerManager;
+
+ /** gives access to the existing Layers by name.
+
+ The contents of the collection all support Layer
+ returned by XLayer.
+ */
+ interface com::sun::star::container::XNameAccess;
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/drawing/LayerType.idl b/offapi/com/sun/star/drawing/LayerType.idl
new file mode 100644
index 0000000000..9fa354e8dd
--- /dev/null
+++ b/offapi/com/sun/star/drawing/LayerType.idl
@@ -0,0 +1,49 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module drawing {
+
+/** This enumeration specifies the type of a drawing layer.
+ */
+published enum LayerType
+{
+ /** This is the layer for all standard shapes.
+ */
+ LAYOUT,
+
+ /** This is the layer for the controls.
+ */
+ CONTROLSA,
+
+ /** This is the layer for all measure shapes.
+ */
+ DIMENSIONIANG_LINES,
+
+ /** There can be zero or more layers of this type.
+ */
+ USER_DEFINED
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/drawing/LineCap.idl b/offapi/com/sun/star/drawing/LineCap.idl
new file mode 100644
index 0000000000..94d466152a
--- /dev/null
+++ b/offapi/com/sun/star/drawing/LineCap.idl
@@ -0,0 +1,40 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module drawing {
+/** The LineCap defines rendering of ends of thick lines
+ */
+published enum LineCap
+{
+ /** the line will end without any additional shape
+ */
+ BUTT,
+ /** the line will get a half circle as additional cap
+ */
+ ROUND,
+ /** the line will get a half square as additional cap
+ */
+ SQUARE
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/drawing/LineDash.idl b/offapi/com/sun/star/drawing/LineDash.idl
new file mode 100644
index 0000000000..d9dd46aaa8
--- /dev/null
+++ b/offapi/com/sun/star/drawing/LineDash.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 .
+ */
+
+
+
+ module com { module sun { module star { module drawing {
+
+/** A LineDash defines a non-continuous line.
+ */
+published struct LineDash
+{
+ /** This sets the style of this LineDash.
+ */
+ com::sun::star::drawing::DashStyle Style;
+
+ /** This is the number of dots in this LineDash.
+ */
+ short Dots;
+
+ /** This is the length of a dot.
+ */
+ long DotLen;
+
+ /** This is the number of dashes.
+ */
+ short Dashes;
+
+ /** This is the length of a single dash.
+ */
+ long DashLen;
+
+ /** This is the distance between the dots.
+ */
+ long Distance;
+
+};
+
+
+}; }; }; };
+
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/drawing/LineEndType.idl b/offapi/com/sun/star/drawing/LineEndType.idl
new file mode 100644
index 0000000000..4773f0a2a9
--- /dev/null
+++ b/offapi/com/sun/star/drawing/LineEndType.idl
@@ -0,0 +1,52 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module drawing {
+
+/** The LineEndType specifies the appearance of the bullet at the
+ end of a line.
+
+ @deprecated
+ */
+published enum LineEndType
+{
+ /** the line has no special end.
+ */
+ NONE,
+ /** the line uses an arrow for the line end.
+ */
+ ARROW,
+ /** the line uses a circle for the line end.
+ */
+ CIRCLE,
+ /** the line uses a square for the line end.
+ */
+ SQUARE,
+ /** deprecated
+ */
+ SPECIAL
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/drawing/LineJoint.idl b/offapi/com/sun/star/drawing/LineJoint.idl
new file mode 100644
index 0000000000..8d749a4e61
--- /dev/null
+++ b/offapi/com/sun/star/drawing/LineJoint.idl
@@ -0,0 +1,49 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module drawing {
+
+/** The LineJoint defines rendering of joints between thick lines
+ */
+published enum LineJoint
+{
+ /** the joint between lines will not be connected
+ */
+ NONE,
+ /**
+ @deprecated - now the same as MITER
+ */
+ MIDDLE,
+ /** the edges of the thick lines will be joined by lines
+ */
+ BEVEL,
+ /** the lines join at intersections
+ */
+ MITER,
+ /** the lines join with an arc
+ */
+ ROUND
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/drawing/LineProperties.idl b/offapi/com/sun/star/drawing/LineProperties.idl
new file mode 100644
index 0000000000..9b621f0633
--- /dev/null
+++ b/offapi/com/sun/star/drawing/LineProperties.idl
@@ -0,0 +1,117 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module drawing {
+
+
+/** This is a set of properties to describe the style for rendering a Line.
+ The properties for line ends and line starts are only supported by
+ shapes with open line ends.
+ */
+published service LineProperties
+{
+ /** This property contains the type of the line.
+ */
+ [property] com::sun::star::drawing::LineStyle LineStyle;
+
+
+ /** This property contains the dash of the line.
+ */
+ [property] com::sun::star::drawing::LineDash LineDash;
+
+
+ /** This property contains the name of the dash of the line.
+ */
+ [optional, property] string LineDashName;
+
+
+ /** This property contains the line color.
+ */
+ [property] com::sun::star::util::Color LineColor;
+
+
+ /** This property contains the extent of transparency.
+ */
+ [property] short LineTransparence;
+
+
+ /** This property contains the width of the line in 1/100th mm.
+ */
+ [property] long LineWidth;
+
+
+ /** This property defines the rendering of joints between thick lines
+ */
+ [property] com::sun::star::drawing::LineJoint LineJoint;
+
+
+ /** This property defines the rendering of ends of thick lines
+ */
+ [optional, property] com::sun::star::drawing::LineCap LineCap;
+
+
+ /** This property contains the name of the line start poly polygon Bezier.
+ If this string is empty, no line start polygon is rendered.
+ */
+ [optional, property] string LineStartName;
+
+
+ /** This property contains the name of the line end poly polygon Bezier.
+ If this string is empty, no line end polygon is rendered.
+ */
+ [optional, property] string LineEndName;
+
+
+ /** This property contains the line start in the form of a poly polygon Bezier.
+ */
+ [optional, property] com::sun::star::drawing::PolyPolygonBezierCoords LineStart;
+
+
+ /** This property contains the line end in the form of a poly polygon Bezier.
+ */
+ [optional, property] com::sun::star::drawing::PolyPolygonBezierCoords LineEnd;
+
+
+ /** If this property is `TRUE`, the line will
+ start from the center of the polygon.
+ */
+ [optional, property] boolean LineStartCenter;
+
+
+ /** This property contains the width of the line start polygon.
+ */
+ [optional, property] long LineStartWidth;
+
+
+ /** If this property is `TRUE`, the line will end
+ in the center of the polygon.
+ */
+ [optional, property] boolean LineEndCenter;
+
+
+ /** This property contains the width of the line end polygon.
+ */
+ [optional, property] long LineEndWidth;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/drawing/LineShape.idl b/offapi/com/sun/star/drawing/LineShape.idl
new file mode 100644
index 0000000000..cf285bb6f9
--- /dev/null
+++ b/offapi/com/sun/star/drawing/LineShape.idl
@@ -0,0 +1,44 @@
+/* -*- 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 .
+ */
+
+
+ module com { module sun { module star { module drawing {
+
+
+/** This service is for a simple Shape with lines.
+ */
+published service LineShape
+{
+ service com::sun::star::drawing::Shape;
+
+ service com::sun::star::drawing::LineProperties;
+
+ service com::sun::star::drawing::PolyPolygonDescriptor;
+
+ service com::sun::star::drawing::Text;
+
+ service com::sun::star::drawing::ShadowProperties;
+
+ service com::sun::star::drawing::RotationDescriptor;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/drawing/LineStyle.idl b/offapi/com/sun/star/drawing/LineStyle.idl
new file mode 100644
index 0000000000..7fe4850093
--- /dev/null
+++ b/offapi/com/sun/star/drawing/LineStyle.idl
@@ -0,0 +1,44 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module drawing {
+
+/** specifies the appearance of the lines of a
+ shape.
+ */
+published enum LineStyle
+{
+ /** the line is hidden.
+ */
+ NONE,
+ /** the line is solid.
+ */
+ SOLID,
+ /** the line use dashes.
+ */
+ DASH
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/drawing/MarkerTable.idl b/offapi/com/sun/star/drawing/MarkerTable.idl
new file mode 100644
index 0000000000..457293c6af
--- /dev/null
+++ b/offapi/com/sun/star/drawing/MarkerTable.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 .
+ */
+
+
+ module com { module sun { module star { module drawing {
+
+
+/** this is a container for PointSequences
+
+ It is used for example to access the line ends that
+ are used inside a document.
+
+ @see DrawingDocumentFactory
+ @see PointSequence
+*/
+published service MarkerTable
+{
+ /** this container lets you access the PointSequences that
+ are indexed with a name.
+
+ Note: You can add new entries for later use, but you cannot
+ remove entries that are used inside the document.
+ */
+ interface com::sun::star::container::XNameContainer;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/drawing/MasterPage.idl b/offapi/com/sun/star/drawing/MasterPage.idl
new file mode 100644
index 0000000000..508766072e
--- /dev/null
+++ b/offapi/com/sun/star/drawing/MasterPage.idl
@@ -0,0 +1,55 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module drawing {
+
+/** This service is a single master page inside a drawing document.
+
+
+ It serves as a background page for zero or more DrawPages.
+ Since this service is derived from the service GenericDrawPage,
+ it can be used as a draw page with three differences:
+ This property returns an empty reference if the OLE2 is not an
+ Office component.
+
+ */
+ [readonly, property] com::sun::star::frame::XModel Model;
+
+
+ /** This property returns `TRUE` for all OLE2 that are internal
+ Office components.
+ */
+ [readonly, property] boolean IsInternal;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/drawing/OpenBezierShape.idl b/offapi/com/sun/star/drawing/OpenBezierShape.idl
new file mode 100644
index 0000000000..44e5e2148c
--- /dev/null
+++ b/offapi/com/sun/star/drawing/OpenBezierShape.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 .
+ */
+
+
+
+ module com { module sun { module star { module drawing {
+
+
+/** This service is for an open Bezier shape.
+ */
+published service OpenBezierShape
+{
+ service com::sun::star::drawing::Shape;
+
+ service com::sun::star::drawing::LineProperties;
+
+ service com::sun::star::drawing::PolyPolygonBezierDescriptor;
+
+ service com::sun::star::drawing::Text;
+
+ service com::sun::star::drawing::ShadowProperties;
+
+ service com::sun::star::drawing::RotationDescriptor;
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/drawing/PageShape.idl b/offapi/com/sun/star/drawing/PageShape.idl
new file mode 100644
index 0000000000..802065c7a5
--- /dev/null
+++ b/offapi/com/sun/star/drawing/PageShape.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 .
+ */
+
+
+
+ module com { module sun { module star { module drawing {
+
+/** This service is for a page shape.
+ A page shape displays a preview of another page. These shapes
+ are used inside notes pages to preview the corresponding
+ drawing page. They're also used in the handout page to preview
+ the printing position and order of pages
+ */
+published service PageShape
+{
+ service com::sun::star::drawing::Shape;
+
+ /** this is the page number that is used for the preview.
+ For page shapes on notes pages, this can't be changed.
+ For page shapes on handout pages, this value only
+ describes the relative order of the different page
+ shapes on the page.
+ */
+ [optional, property] long PageNumber;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/drawing/PluginShape.idl b/offapi/com/sun/star/drawing/PluginShape.idl
new file mode 100644
index 0000000000..8b8f4eecef
--- /dev/null
+++ b/offapi/com/sun/star/drawing/PluginShape.idl
@@ -0,0 +1,57 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module drawing {
+
+/** This Shape encapsulates a plugin.
+
+ A plugin is a binary object that is plugged into a document to represent
+ a media-type that is not handled natively by the application.
+*/
+published service PluginShape
+{
+ /** basic service for position, size and z-order.
+
+ A PluginShape cannot be rotated.
+ */
+ service com::sun::star::drawing::Shape;
+
+
+ /** This property specifies the media-type to which this plugin should
+ be registered.
+ */
+ [property] string PluginMimeType;
+
+
+ /** This property specifies the url to the binary object.
+ */
+ [property] string PluginURL;
+
+
+ /** This sequence contains parameters that are passed to the application
+ that renders the plugin when it is initialized.
+ */
+ [property] sequence< com::sun::star::beans::PropertyValue > PluginCommands;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/drawing/PointSequence.idl b/offapi/com/sun/star/drawing/PointSequence.idl
new file mode 100644
index 0000000000..a118850ad2
--- /dev/null
+++ b/offapi/com/sun/star/drawing/PointSequence.idl
@@ -0,0 +1,28 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module drawing {
+
+published typedef sequence A polyline has one or more straight lines. A polypolygonbezier consists of multiple Bezier polygons combined
+ in one. A poly-polygon consists of multiple polygons combined in one. A poly-polygon has 2 or more straight lines, with the first and
+ last point connected by a straight line. The other shadow properties are only applied if this is
+ set to `TRUE`. This property is intentionally not handled by the ODF
+ filter. Any member that should be handled there should be
+ first moved out from this grab bag to a separate property. It is only valid if it is greater than zero. It is only valid if it is greater than zero. It is only valid if RelativeHeight is greater than zero. It is only valid if RelativeWidth is greater than zero. This short title is visible as an alternative tag in HTML format.
+ Accessibility tools can read this text. The long description text can be entered to describe an object in
+ more detail to users with screen reader software. The description is
+ visible as an alternative tag for accessibility tools. In the drawing framework a slide sorter is regarded as a view. This counts for the complete text, not individual lines. This counts for the complete text, not individual lines. The different rules accessible with this
+ com::sun::star::container::XIndexReplace interface
+ are sequences of property values as described in the service
+ com::sun::star::style::NumberingRule. This is only useful if Text::TextHorizontalAdjust is
+ BLOCK or STRETCH or if
+ Text::TextFitSize is `TRUE`. This is only useful if Text::TextHorizontalAdjust is
+ BLOCK or STRETCH
+ or if Text::TextFitSize is `TRUE`. This is only useful if Text::TextVerticalAdjust is
+ BLOCK or if Text::TextFitSize is
+ `TRUE`. This is only useful if Text::TextVerticalAdjust is
+ BLOCK or if Text::TextFitSize is
+ `TRUE`. If this is set to zero, the repeat is endless. This counts for the complete text, not individual lines. It can be set independently for X and Y texture directions. It is used for example to access the com::sun::star::awt::Gradients that
+ are used inside a document for fill transparency.
+
+ @see DrawingDocumentFactory
+ @see com::sun::star::awt::Gradient
+*/
+published service TransparencyGradientTable
+{
+ /** this container lets you access the com::sun::star::awt::Gradients that
+ are indexed with a name.
+
+ Note: You can add new entries for later use, but you cannot
+ remove entries that are used inside the document.
+ */
+ interface com::sun::star::container::XNameContainer;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/drawing/VerticalDimensioning.idl b/offapi/com/sun/star/drawing/VerticalDimensioning.idl
new file mode 100644
index 0000000000..dbb80438cb
--- /dev/null
+++ b/offapi/com/sun/star/drawing/VerticalDimensioning.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 .
+ */
+
+
+
+ module com { module sun { module star { module drawing {
+
+/** specifies the vertical position of
+ the text of a dimensioning shape.
+ */
+published enum VerticalDimensioning
+{
+ /** Set this to have the application select the best horizontal
+ position for the text.
+ */
+ AUTO,
+
+ /** The text is positioned above the main line.
+ */
+ TOP,
+
+ /** The text is positioned over the main line.
+ */
+ CENTERED,
+
+ /** The text is positioned below the main line.
+ */
+ BOTTOM
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/drawing/XConnectableShape.idl b/offapi/com/sun/star/drawing/XConnectableShape.idl
new file mode 100644
index 0000000000..99d8137ce1
--- /dev/null
+++ b/offapi/com/sun/star/drawing/XConnectableShape.idl
@@ -0,0 +1,41 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module drawing {
+
+
+/** @deprecated
+*/
+published interface XConnectableShape: com::sun::star::uno::XInterface
+{
+ boolean canConnect( [in] com::sun::star::awt::Point nPos,
+ [in] boolean bCreateGluePoint,
+ [in] long nMaxDist );
+ boolean doConnect( [in] com::sun::star::awt::Point nPos,
+ [in] boolean bCreateGluePoint,
+ [in] long nMaxDist );
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/drawing/XConnectorShape.idl b/offapi/com/sun/star/drawing/XConnectorShape.idl
new file mode 100644
index 0000000000..fcf9e161a7
--- /dev/null
+++ b/offapi/com/sun/star/drawing/XConnectorShape.idl
@@ -0,0 +1,54 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module drawing {
+
+
+/** @deprecated
+ */
+published interface XConnectorShape: com::sun::star::drawing::XShape
+{
+ /** connects the start of this instance
+ */
+ void connectStart( [in] com::sun::star::drawing::XConnectableShape xShape,
+ [in] com::sun::star::drawing::ConnectionType nPos );
+
+ /** connects the end of this instance.
+ */
+ void connectEnd( [in] com::sun::star::drawing::XConnectableShape xShape,
+ [in] com::sun::star::drawing::ConnectionType nPos );
+
+ /** disconnects the given Shape from the start of
+ this instance.
+ */
+ void disconnectBegin( [in] com::sun::star::drawing::XConnectableShape xShape );
+
+ /** disconnects the given Shape from the end of
+ this instance.
+ */
+ void disconnectEnd( [in] com::sun::star::drawing::XConnectableShape xShape );
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/drawing/XControlShape.idl b/offapi/com/sun/star/drawing/XControlShape.idl
new file mode 100644
index 0000000000..6ce310eacf
--- /dev/null
+++ b/offapi/com/sun/star/drawing/XControlShape.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 .
+ */
+
+
+
+ module com { module sun { module star { module drawing {
+
+
+/** is implemented by a ControlShape to access the controls model.
+
+ @see com::sun::star::drawing::ControlShape
+ @see com::sun::star::awt::UnoControlModel
+*/
+published interface XControlShape: com::sun::star::drawing::XShape
+{
+
+ /** returns the control model of this Shape.
+
+ @return
+ if there is already a control model assigned
+ to this ControlShape, then it's returned.
+ Otherwise you get an empty reference.
+ */
+ com::sun::star::awt::XControlModel getControl();
+
+
+ /** sets the control model for this Shape.
+
+ @param xControl
+ this will be the new control model that is
+ displayed with this shape. You may change
+ the model more than once during the lifetime
+ of a ControlShape
+
+ */
+ void setControl( [in] com::sun::star::awt::XControlModel xControl );
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/drawing/XCustomShapeEngine.idl b/offapi/com/sun/star/drawing/XCustomShapeEngine.idl
new file mode 100644
index 0000000000..e3eb7b00ef
--- /dev/null
+++ b/offapi/com/sun/star/drawing/XCustomShapeEngine.idl
@@ -0,0 +1,56 @@
+/* -*- 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 .
+ */
+
+
+ module com { module sun { module star { module drawing {
+
+
+/** The XCustomShapeEngine
+ */
+interface XCustomShapeEngine: com::sun::star::uno::XInterface
+{
+
+ /**
+ @returns
+ the shape that is representing the CustomShape
+ */
+ com::sun::star::drawing::XShape render();
+
+ /**
+ @returns the text bound of the shape
+ */
+ com::sun::star::awt::Rectangle getTextBounds();
+
+ /**
+ @returns the line geometry of the object
+ */
+ com::sun::star::drawing::PolyPolygonBezierCoords getLineGeometry();
+
+ /**
+ @returns
+ a collection of interaction handles
+ */
+ sequence This interface is provided if the container only supports exactly
+ one DrawPage. For containers which support multiple
+ DrawPages interface XDrawPagesSupplier is
+ supported. The pages are stored in an index container. The order is determined by
+ the index.
+
+ You usually get this interface if you use the
+ XDrawPagesSupplier or the XMasterPagesSupplier
+ at a model that contains DrawPages or MasterPages
+*/
+published interface XDrawPages: com::sun::star::container::XIndexAccess
+{
+
+ /** creates and inserts a new DrawPage or MasterPage
+ into this container
+
+ @param nIndex
+ the index at which the newly created DrawPage or
+ MasterPage will be inserted.
+
+ @return
+ the newly created and already inserted DrawPage or
+ MasterPage.
+ */
+ com::sun::star::drawing::XDrawPage insertNewByIndex( [in] long nIndex );
+
+
+ /** removes a DrawPage or MasterPage from this
+ container.
+
+ @param xPage
+ this DrawPage or MasterPage must be
+ contained and will be removed from this container. It will
+ also be disposed and shouldn't be used any further.
+ */
+ void remove( [in] com::sun::star::drawing::XDrawPage xPage );
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/drawing/XDrawPagesSupplier.idl b/offapi/com/sun/star/drawing/XDrawPagesSupplier.idl
new file mode 100644
index 0000000000..0842ffbb80
--- /dev/null
+++ b/offapi/com/sun/star/drawing/XDrawPagesSupplier.idl
@@ -0,0 +1,40 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module drawing {
+
+
+/** must be supported to provide access to a multi-page drawing-layer.
+*/
+published interface XDrawPagesSupplier: com::sun::star::uno::XInterface
+{
+
+ /** @returns
+ an indexed container with the service DrawPages.
+ */
+ com::sun::star::drawing::XDrawPages getDrawPages();
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/drawing/XDrawSubController.idl b/offapi/com/sun/star/drawing/XDrawSubController.idl
new file mode 100644
index 0000000000..057e883f78
--- /dev/null
+++ b/offapi/com/sun/star/drawing/XDrawSubController.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 .
+ */
+
+
+
+module com { module sun { module star { module drawing {
+
+
+/** View dependent part of the Draw and Impress controller.
+ During the lifetime of an Impress application the
+ com::sun::star::drawing::DrawingDocumentDrawView
+ changes its sub controllers whenever the view in the center pane is
+ replaced by another one. The sub controller handles the things that are
+ not common to all views, i.e. properties, the current page/slide, and
+ the selection. The following properties from the
+ com::sun::star::document::MediaDescriptor are
+ supported: Depending on the export filters supported by this component,
+ this is the mime type of the target graphic file. Possible values are: Ask the interface com::sun::star::document::XMimeTypeInfo
+ for all values supported by the component. This is the target url of the file that will be created during export. This could either be a DrawPage, a Shape
+ or a Shapes. As the presenter screen is no extension any more, this hack can go again;
+ it just needs clean-up. This affects only the user interface. The behavior is not
+ specified if this instance is not visible on any view. In this case
+ it may or may not work. This affects only the user interface. The behavior is not
+ specified if this instance is not visible on any view. In this case
+ it may or may not work. Grouping of objects in text documents works only if none
+ of the objects has an anchor of type
+ com::sun::star::text::TextContentAnchorType::AS_CHARACTER .
+ It provides the interfaces and attributes that every object that
+ implements the SlideSorter service. The default value is the set of all slides of the document for
+ which a slide sorter is created. The default value is `FALSE`. The default value is `TRUE`. The default value is `TRUE`. It is not always possible to move the current slide into the
+ exact center of the window, for example when slides are located near
+ the start or end of a document. The default value is `FALSE`.
+ */
+ [attribute] boolean IsCenterSelection;
+
+ /** This flag controls whether updates of previews are created during
+ full screen presentations (`FALSE`) or not (`TRUE`). The
+ suspension of preview creations is an optimization for not slowing
+ down a running presentation.
+ The default value is `TRUE`. The default value is `TRUE`. Example: Let r:a1:a2 denote a resource r which is bound to
+ anchor a1:a2 which itself is a resource a1 bound to anchor a2.
+ Then r:a1:a2 is bound directly to a1:a2 and indirectly to a2. This factory provides the center, left, and right pane. For the left
+ pane there are two URLS, This factory is typically created indirectly by registering it in the
+ configuration and have the XModuleController create it on
+ demand. The factory recognizes the following URLs: This factory is typically created indirectly by registering it in the
+ configuration and have the XModuleController create it on
+ demand. The factory recognizes the following URLs: They are broadcasted by the configuration controller
+ which maintains the configuration. The set of types of configuration
+ changes is not fixed and is not maintained or documented in one
+ place. The set of used members and the exact meaning of their values is not the
+ same for all types. Therefore, the descriptions of the members are just
+ general guidelines. See XConfigurationController for a
+ list of event types used by the basic drawing framework. They mainly differ in how the anchor is specified. This constructor can be used to create resource ids for panes. This constructor can be used to create resources ids for views
+ where the anchor is a pane. For identification only the #ResourceId is used, so for
+ some methods of the XTabBar interface only the
+ #ResourceId member is evaluated. The label is expected to be localized. For some methods of the XTabBar interface only this
+ member is evaluated. That is because only this member is used to
+ identify a tab bar button. Direct manipulation of a configuration object is not advised with the
+ exception of the ConfigurationController and objects that
+ implement the XConfigurationChangeRequest interface. Use an empty string to prevent filtering out resource ids. Returns whether the specified resource is part of the
+ configuration. This method should be used only by objects that implement the
+ XConfigurationRequest interface or by the configuration
+ controller. This method should be used only by objects that implement the
+ XConfigurationRequest interface or by the configuration
+ controller. The requested change is committed to a configuration only when the
+ execute() method is called. Configuration change
+ requests are executed asynchronously. This is done to avoid reentrance
+ problems with objects that are registered as
+ XConfigurationChangeListener and at the same time make
+ configuration change requests. When the requests were executed
+ synchronously then the listeners would be notified of the changes while
+ their request call has not yet returned. This interface is typically used internally by the
+ XConfigurationController There are two configurations of resources: When the two configurations differ then the current configuration is
+ updated eventually to reflect the requested configuration. An update
+ takes place when the following three conditions are fulfilled.
+
+
+
+
+
+
+
+
+
+ Numbering
property
+ inside a com::sun::star::style::ParagraphProperties
+
+
+
+
+
A com::sun::star::image::ImageMap can be obtained from a
+ GraphicObjectShape
+
+
+
+
+
+
+ */
+ interface com::sun::star::lang::XMultiServiceFactory;
+
+ /** lets you access the properties of this service.
+ */
+ interface com::sun::star::beans::XPropertySet;
+
+ /** lets you duplicate pages inside this document.
+ */
+ interface com::sun::star::drawing::XDrawPageDuplicator;
+
+
+ /** provides an object that is implementing the service
+ DrawPages. With this service you have access to the
+ DrawPages inside a document.
+ */
+ interface com::sun::star::drawing::XDrawPagesSupplier;
+
+
+ /** returns an object that is implementing the service
+ MasterPages. With this service you have access to the
+ MasterPages inside a document.
+ */
+ interface com::sun::star::drawing::XMasterPagesSupplier;
+
+
+ /** returns an object that is implementing the service
+ LayerManager. This service lets you manipulate the
+ Layers of this document.
+ */
+ interface com::sun::star::drawing::XLayerSupplier;
+
+ /** This interface lets you access the styles contained in this document
+ */
+ interface com::sun::star::style::XStyleFamiliesSupplier;
+
+
+ /** This property specifies the length between the default tab stops
+ inside text in this document in 1/100th mm.
+ */
+ [property] long TabStop;
+
+
+ /** contains the identifier of the default locale of the document.
+ */
+ [property] com::sun::star::lang::Locale CharLocale;
+
+
+ /** if this document is an OLE client, this is the current visible area
+ in 100th mm
+ */
+ [property] com::sun::star::awt::Rectangle VisibleArea;
+
+
+ /** This property gives the XForbiddenCharacters.
+ */
+ [readonly, property] com::sun::star::i18n::XForbiddenCharacters ForbiddenCharacters;
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/drawing/GluePoint.idl b/offapi/com/sun/star/drawing/GluePoint.idl
new file mode 100644
index 0000000000..95ed00158f
--- /dev/null
+++ b/offapi/com/sun/star/drawing/GluePoint.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 .
+ */
+
+
+
+ module com { module sun { module star { module drawing {
+
+/** A GluePoint could be attached to a shape or to a page.
+
+
+
+ GluePoint
defines how the position of
+ the point is affected by resizing the parent Shape
.
+ */
+ short Alignment;
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/drawing/GluePoint2.idl b/offapi/com/sun/star/drawing/GluePoint2.idl
new file mode 100644
index 0000000000..baefc83370
--- /dev/null
+++ b/offapi/com/sun/star/drawing/GluePoint2.idl
@@ -0,0 +1,63 @@
+/* -*- 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 .
+ */
+
+
+ module com { module sun { module star { module drawing {
+
+
+/** This struct defines the attributes of a gluepoint.
+ IsRelative
, this is either in 1/100cm
+ or in 1/100%.
+
+
+ */
+ com::sun::star::awt::Point Position;
+
+ /** if this flag is set to true, the position of this gluepoint
+ is given in 1/100% values instead of 1/100cm. */
+ boolean IsRelative;
+
+ /** if this gluepoints position is not relative, this enum
+ specifies the vertical and horizontal alignment of this
+ point. The alignment specifies how the gluepoint is
+ moved if the shape is resized. */
+ com::sun::star::drawing::Alignment PositionAlignment;
+
+ /** this member specifies the escape direction for a glue
+ point. The escape direction is the direction the connecting
+ line escapes the shape. */
+
+ com::sun::star::drawing::EscapeDirection Escape;
+
+ /** if this flag is set to false, this is a default glue
+ point. Some shapes may have default gluepoints attached
+ to them which cannot be altered or removed. */
+ boolean IsUserDefined;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/drawing/GradientTable.idl b/offapi/com/sun/star/drawing/GradientTable.idl
new file mode 100644
index 0000000000..6158115a66
--- /dev/null
+++ b/offapi/com/sun/star/drawing/GradientTable.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 .
+ */
+
+
+ module com { module sun { module star { module drawing {
+
+
+/** this is a container for com::sun::star::awt::Gradients
+
+
+
+ */
+published service MasterPage
+{
+
+ /** This service describes the base functionality that every
+ draw/master page has.
+ */
+ service com::sun::star::drawing::GenericDrawPage;
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/drawing/MasterPages.idl b/offapi/com/sun/star/drawing/MasterPages.idl
new file mode 100644
index 0000000000..ebe52f1989
--- /dev/null
+++ b/offapi/com/sun/star/drawing/MasterPages.idl
@@ -0,0 +1,42 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module drawing {
+
+
+/** provides access to a container of MasterPages
+ and makes it possible for them to be manipulated.
+
+ @see XMasterPagesSupplier
+ @see DrawingDocument
+ */
+published service MasterPages
+{
+ /** lets you access and create MasterPages
+ */
+ interface com::sun::star::drawing::XDrawPages;
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/drawing/MeasureKind.idl b/offapi/com/sun/star/drawing/MeasureKind.idl
new file mode 100644
index 0000000000..9b1657f2e3
--- /dev/null
+++ b/offapi/com/sun/star/drawing/MeasureKind.idl
@@ -0,0 +1,44 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module drawing {
+
+/** determines whether a measured shape is a standard
+ measure or a radius measure.
+
+ @deprecated
+ */
+published enum MeasureKind
+{
+ /** use the length measurement.
+ */
+ STANDARD,
+ /** use the radius measurement.
+ This option cannot be used from the GUI Interface.
+ */
+ RADIUS
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/drawing/MeasureProperties.idl b/offapi/com/sun/star/drawing/MeasureProperties.idl
new file mode 100644
index 0000000000..bb2b1e010d
--- /dev/null
+++ b/offapi/com/sun/star/drawing/MeasureProperties.idl
@@ -0,0 +1,110 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module drawing {
+
+
+/** This service describes a MeasureShape.
+ */
+published service MeasureProperties
+{
+ /** If this property is `TRUE`, the measure is drawn below the
+ reference edge instead of above it.
+ */
+ [property] boolean MeasureBelowReferenceEdge;
+
+ /** This is the length of the first help line.
+ */
+ [property] long MeasureHelpLine1Length;
+
+ /** This is the length of the second help line.
+ */
+ [property] long MeasureHelpLine2Length;
+
+ /** This is the distance from the measure line to the start of the
+ help lines.
+ */
+ [property] long MeasureHelpLineDistance;
+
+ /** This is the overhang of the two help lines.
+ */
+ [property] long MeasureHelpLineOverhang;
+
+ /** This enumeration specifies the MeasureKind.
+ */
+ [property] com::sun::star::drawing::MeasureKind MeasureKind;
+
+ /** This is the distance from the reference edge to the measure line.
+ */
+ [property] long MeasureLineDistance;
+
+ /** This is the overhang of the reference line over the help lines.
+ */
+ [property] long MeasureOverhang;
+
+ /** If this is `TRUE`, the unit of measure is shown in the measure text.
+ */
+ [property] boolean MeasureShowUnit;
+
+ /** If this is `TRUE`, the angle of the measure is set automatically.
+ */
+ [property] boolean MeasureTextAutoAngle;
+
+ /** This is the automatic angle.
+ */
+ [property] long MeasureTextAutoAngleView;
+
+ /** This is the fixed angle.
+ */
+ [property] long MeasureTextFixedAngle;
+
+ /** This is the horizontal position of the measure text.
+ */
+ [property] com::sun::star::drawing::MeasureTextHorzPos MeasureTextHorizontalPosition;
+
+ /** This is the vertical position of the text.
+ */
+ [property] com::sun::star::drawing::MeasureTextVertPos MeasureTextVerticalPosition;
+
+ /** If this value is `TRUE`, the measure has a fixed angle.
+ */
+ [property] boolean MeasureTextIsFixedAngle;
+
+ /** If this value is `TRUE`, the text is rotated 90 degrees.
+ */
+ [property] boolean MeasureTextRotate90;
+
+ /** If this value is `TRUE`, the text is printed upside down.
+ */
+ [property] boolean MeasureTextUpsideDown;
+
+ /** This value is the number of decimal places that is used to format the
+ measure value.
+
+ @since OOo 1.1.2
+ */
+ [optional, property] short MeasureDecimalPlaces;
+ };
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/drawing/MeasureShape.idl b/offapi/com/sun/star/drawing/MeasureShape.idl
new file mode 100644
index 0000000000..bbacfb4ee6
--- /dev/null
+++ b/offapi/com/sun/star/drawing/MeasureShape.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 .
+ */
+
+
+ module com { module sun { module star { module drawing {
+
+
+/** This service is for a dimensioning shape.
+ */
+published service MeasureShape
+{
+ service com::sun::star::drawing::Shape;
+
+ service com::sun::star::drawing::MeasureProperties;
+
+ service com::sun::star::drawing::LineProperties;
+
+ service com::sun::star::drawing::Text;
+
+ service com::sun::star::drawing::ShadowProperties;
+
+ service com::sun::star::drawing::RotationDescriptor;
+
+ /** this point is the start of the measured distance */
+ [property] com::sun::star::awt::Point StartPosition;
+
+
+ /** this point is the end of the measured distance */
+ [property] com::sun::star::awt::Point EndPosition;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/drawing/MeasureTextHorzPos.idl b/offapi/com/sun/star/drawing/MeasureTextHorzPos.idl
new file mode 100644
index 0000000000..68fc2553d0
--- /dev/null
+++ b/offapi/com/sun/star/drawing/MeasureTextHorzPos.idl
@@ -0,0 +1,40 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module drawing {
+
+/** This enumeration defines the relative horizontal placement of the text
+ inside a measure shape.
+ */
+published enum MeasureTextHorzPos
+{
+ AUTO,
+ LEFTOUTSIDE,
+ INSIDE,
+ RIGHTOUTSIDE
+
+};
+
+
+}; }; }; };
+
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/drawing/MeasureTextVertPos.idl b/offapi/com/sun/star/drawing/MeasureTextVertPos.idl
new file mode 100644
index 0000000000..a69e8c495c
--- /dev/null
+++ b/offapi/com/sun/star/drawing/MeasureTextVertPos.idl
@@ -0,0 +1,40 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module drawing {
+
+/** This enumeration defines the relative vertical placement of the text
+ inside a measure shape.
+ */
+published enum MeasureTextVertPos
+{
+ AUTO,
+ EAST,
+ BREAKEDLINE,
+ WEST,
+ CENTERED
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/drawing/MirrorAxis.idl b/offapi/com/sun/star/drawing/MirrorAxis.idl
new file mode 100644
index 0000000000..b10ae894bf
--- /dev/null
+++ b/offapi/com/sun/star/drawing/MirrorAxis.idl
@@ -0,0 +1,41 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module drawing {
+
+/** defines an axis for simple mirroring.
+ */
+published enum MirrorAxis
+{
+ /** mirror to the vertical axis
+ */
+ VERTICAL,
+
+ /** mirror to the horizontal axis
+ */
+ HORIZONTAL
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/drawing/ModuleDispatcher.idl b/offapi/com/sun/star/drawing/ModuleDispatcher.idl
new file mode 100644
index 0000000000..47cfacbc84
--- /dev/null
+++ b/offapi/com/sun/star/drawing/ModuleDispatcher.idl
@@ -0,0 +1,32 @@
+/* -*- 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 .
+ */
+
+
+ module com { module sun { module star { module drawing {
+
+
+/**
+ @since LibreOffice 4.1
+ */
+service ModuleDispatcher : com::sun::star::frame::XDispatchProvider;
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/drawing/NormalsKind.idl b/offapi/com/sun/star/drawing/NormalsKind.idl
new file mode 100644
index 0000000000..2c8af0bece
--- /dev/null
+++ b/offapi/com/sun/star/drawing/NormalsKind.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 .
+ */
+
+
+
+ module com { module sun { module star { module drawing {
+
+/** specifies in which way the standard normals
+ for an object are produced.
+ */
+published enum NormalsKind
+{
+ /** does not produce standard normals, but leaves
+ the object-specific ones untouched.
+ */
+ SPECIFIC,
+
+ /** forces one normal per flat part.
+ */
+ FLAT,
+
+ /** forces normals to think that the object is a
+ sphere.
+ */
+ SPHERE
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/drawing/OLE2Shape.idl b/offapi/com/sun/star/drawing/OLE2Shape.idl
new file mode 100644
index 0000000000..625f92c8b9
--- /dev/null
+++ b/offapi/com/sun/star/drawing/OLE2Shape.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 .
+ */
+
+
+module com { module sun { module star { module drawing {
+
+/** This service is for an OLE shape.
+*/
+published service OLE2Shape
+{
+ service com::sun::star::drawing::Shape;
+
+
+ /** If you get this property you get the CLSID of the OLE2 document stream
+ contained in this OLE2 shape. If you set it, an empty OLE2 document stream
+ with this CLSID is created within this OLE2 shape.
+ */
+ [property] string CLSID;
+
+
+ /** this is the internal storage name that keeps this OLE2 persist.
+ */
+ [property] string PersistName;
+
+
+ /** This is the model for the OLE2 inside this shape.
+ Transformation
+ property of the service Shape.
+
+ @deprecated
+ */
+published service RotationDescriptor
+{
+
+ /** This is the angle for rotation of this Shape.
+ The shape is rotated counter-clockwise around the center
+ of the bounding box.
+
+ This property contains an error, the rotation angle is mathematically
+ inverted when You take into account that the Y-Axis of the coordinate
+ system is pointing down. Please use the Transformation
+ property of the service Shape instead.
+ @deprecated
+ */
+ [property] long RotateAngle;
+
+
+ /** This is the amount of shearing for this Shape.
+ The shape is sheared counter-clockwise around the center
+ of the bounding box
+
+ @deprecated
+ */
+ [optional, property] long ShearAngle;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/drawing/ShadeMode.idl b/offapi/com/sun/star/drawing/ShadeMode.idl
new file mode 100644
index 0000000000..7029cc65ac
--- /dev/null
+++ b/offapi/com/sun/star/drawing/ShadeMode.idl
@@ -0,0 +1,54 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module drawing {
+
+/** The ShadeMode determines the quality of displaying the object.
+ */
+published enum ShadeMode
+{
+ /** With FLAT shading, the faces of the object are
+ rendered in a solid color.
+ */
+ FLAT,
+
+ /** With PHONG shading, the normal itself is interpolated
+ to get more realistic colors and light reflections.
+ */
+ PHONG,
+
+
+ /** With SMOOTH shading, the colors of the lit vertices is
+ interpolated.
+ */
+ SMOOTH,
+
+ /** DRAFT is a special mode which uses a BSP tree and
+ triangle subdivision for displaying.
+ */
+ DRAFT
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/drawing/ShadingPattern.idl b/offapi/com/sun/star/drawing/ShadingPattern.idl
new file mode 100644
index 0000000000..52cdb7bf3a
--- /dev/null
+++ b/offapi/com/sun/star/drawing/ShadingPattern.idl
@@ -0,0 +1,220 @@
+/* -*- 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/.
+ */
+
+
+
+module com { module sun { module star { module drawing {
+
+/** The ShadingPattern determines the background color pattern against
+ which characters and graphics are displayed, typically in tables.
+ The color can be no color or it can be a specific color with
+ a transparency or pattern value.
+ */
+constants ShadingPattern
+{
+ /* Clear */
+ const long CLEAR = 0x0000;
+
+ /* Solid */
+ const long SOLID = 0x0001;
+
+ /* 5% - pct5 */
+ const long PCT5 = 0x0002;
+
+ /* 10% - pct10 */
+ const long PCT10 = 0x0003;
+
+ /* 20% - pct20 */
+ const long PCT20 = 0x0004;
+
+ /* 25% - pct25 */
+ const long PCT25 = 0x0005;
+
+ /* 30% - pct30 */
+ const long PCT30 = 0x0006;
+
+ /* 40% - pct40 */
+ const long PCT40 = 0x0007;
+
+ /* 50% - pct50 */
+ const long PCT50 = 0x0008;
+
+ /* 60% - pct60 */
+ const long PCT60 = 0x0009;
+
+ /* 70% - pct70 */
+ const long PCT70 = 0x000A;
+
+ /* 75% - pct75 */
+ const long PCT75 = 0x000B;
+
+ /* 80% - pct80 */
+ const long PCT80 = 0x000C;
+
+ /* 90% - pct90 */
+ const long PCT90 = 0x000D;
+
+
+
+ /* Horizontal Stripe */
+ const long HORZ_STRIPE = 0x000E;
+
+ /* Vertical Stripe */
+ const long VERT_STRIPE = 0x000F;
+
+ /* Reverse Diagonal Stripe */
+ const long REVERSE_DIAG_STRIPE = 0x0010;
+
+ /* Diagonal Stripe */
+ const long DIAG_STRIPE = 0x0011;
+
+ /* Horizontal Cross */
+ const long HORZ_CROSS = 0x0012;
+
+ /* Diagonal Cross */
+ const long DIAG_CROSS = 0x0013;
+
+ /* Thin Horizontal Stripe */
+ const long THIN_HORZ_STRIPE = 0x0014;
+
+ /* Thin Vertical Stripe */
+ const long THIN_VERT_STRIPE = 0x0015;
+
+ /* Thin Reverse Diagonal Stripe */
+ const long THIN_REVERSE_DIAG_STRIPE = 0x0016;
+
+ /* Thin Diagonal Stripe */
+ const long THIN_DIAG_STRIPE = 0x0017;
+
+ /* Thin Horizontal Cross */
+ const long THIN_HORZ_CROSS = 0x0018;
+
+ /* Thin Diagonal Cross */
+ const long THIN_DIAG_CROSS = 0x0019;
+
+
+
+ /* Unused 1 */
+ const long UNUSED_1 = 0x001A;
+
+ /* Unused 2 */
+ const long UNUSED_2 = 0x001B;
+
+ /* Unused 3 */
+ const long UNUSED_3 = 0x001C;
+
+ /* Unused 4 */
+ const long UNUSED_4 = 0x001D;
+
+ /* Unused 5 */
+ const long UNUSED_5 = 0x001E;
+
+ /* Unused 6 */
+ const long UNUSED_6 = 0x001F;
+
+ /* Unused 7 */
+ const long UNUSED_7 = 0x0020;
+
+ /* Unused 8 */
+ const long UNUSED_8 = 0x0021;
+
+ /* Unused 9 */
+ const long UNUSED_9 = 0x0022;
+
+
+
+ /* 2.5% */
+ const long PCT2 = 0x0023;
+
+ /* 7.5% */
+ const long PCT7 = 0x0024;
+
+ /* 12.5% - pct12 */
+ const long PCT12 = 0x0025;
+
+ /* 15% - pct15 */
+ const long PCT15 = 0x0026;
+
+ /* 17.5% */
+ const long PCT17 = 0x0027;
+
+ /* 22.5% */
+ const long PCT22 = 0x0028;
+
+ /* 27.5% */
+ const long PCT27 = 0x0029;
+
+ /* 32.5% */
+ const long PCT32 = 0x002A;
+
+ /* 35% - pct35 */
+ const long PCT35 = 0x002B;
+
+ /* 37.5% - pct37 */
+ const long PCT37 = 0x002C;
+
+ /* 42.5% */
+ const long PCT42 = 0x002D;
+
+ /* 45% - pct45 */
+ const long PCT45 = 0x002E;
+
+ /* 47.5% */
+ const long PCT47 = 0x002F;
+
+ /* 52.5% */
+ const long PCT52 = 0x0030;
+
+ /* 55% - pct55 */
+ const long PCT55 = 0x0031;
+
+ /* 57.5% */
+ const long PCT57 = 0x0032;
+
+ /* 62.5% - pct62 */
+ const long PCT62 = 0x0033;
+
+ /* 65% - pct65 */
+ const long PCT65 = 0x0034;
+
+ /* 67.5% */
+ const long PCT67 = 0x0035;
+
+ /* 72.5% */
+ const long PCT72 = 0x0036;
+
+ /* 77.5% */
+ const long PCT77 = 0x0037;
+
+ /* 82.5% */
+ const long PCT82 = 0x0038;
+
+ /* 85% - pct85 */
+ const long PCT85 = 0x0039;
+
+ /* 87.5% - pct87 */
+ const long PCT87 = 0x003A;
+
+ /* 92.5% */
+ const long PCT92 = 0x003B;
+
+ /* 95% - pct95 */
+ const long PCT95 = 0x003C;
+
+ /* 97.5% */
+ const long PCT97 = 0x003D;
+
+ /* Nil */
+ const long NIL = 0xFFFF;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/drawing/ShadowProperties.idl b/offapi/com/sun/star/drawing/ShadowProperties.idl
new file mode 100644
index 0000000000..d63386d10d
--- /dev/null
+++ b/offapi/com/sun/star/drawing/ShadowProperties.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 .
+ */
+
+
+
+ module com { module sun { module star { module drawing {
+
+
+/** This is a set of properties to describe the style for rendering a shadow.
+ */
+published service ShadowProperties
+{
+
+ /** enables/disables the shadow of a Shape.
+
+
+ */
+ interface ::com::sun::star::document::XFilter;
+
+ /** sets the source component for this export filter.
+
+
+ private:resource/floater/LeftImpressPane
+ and private:resource/floater/LeftDrawPane
, one for Impress,
+ the other for Draw. The center pane and the right pane have the URLs
+ private:resource/floater/CenterPane
and
+ private:resource/floater/RightPane
respectively.
+
+ This short list marks the implementation of this service clearly as
+ being in transition.
+ private:resource/toolbar/ViewTabBar
for the tab bar
+ that allows the switching between views.
+
private:resource/view/ImpressView
for the regular edit
+ view of the Impress application.private:resource/view/GraphicView
for the regular edit
+ view of the Draw application.private:resource/view/OutlineView
for the outline view.private:resource/view/NotesView
for the notes view.private:resource/view/HandoutView
for the handout view.private:resource/view/SlideSorter
for the slide sorter
+ regardless of which pane it is used in.private:resource/view/PresentationView
for the slide show.private:resource/view/TaskPane
for the task pane.
+
+
Requests for configuration changes are handled in a two step process: +
This process goes on until the queue of request objects becomes + empty. Until this point only the requested configuration has been + modified. No resources have been activated or deactivated.
The second update step activates or deactivates resources so that + the current configuration (the one that comprises the actually active + resources) reflects the requested configuration.
+The order in which resources are activated or deactivated depends on + the dependency between the resources. For example a view depends on the + pane it is displayed in. Resources that other resources depend on are + activated first and deactivated last. The order is undefined for + unrelated resources.
+Note that the second update step may not be able to activate (or even to + deactivate) all the requested resources. Either because they are + temporarily or permanently unavailable. For example, during the + start-up of a new Impress application the side panes are displayed + with a visible delay because they are not provided sooner by the + underlying framework. Such unavailable resources are not forgotten but + remain in the requested configuration. Every time the configuration + controller updates its current configuration these resources are + requested once more.
The configuration controller sends the following events: +
The ConfigurationChangeEvent::ResourceId member is set to the requested + resource. The ResourceObject member is not + set.
The ResourceId member is set to the requested + resource. The ResourceObject member is not + set.
The requested configuration is available in the + ConfigurationChangeEvent::Configuration member. The + ResourceId and ResourceObject members + are not set.
The requested configuration is + available in the ConfigurationChangeEvent::Configuration member. + The ResourceId and ResourceObject members are not set.
The ResourceId and ResourceObject + members are set to the XResourceId and object reference of + the activated resource.
The ResourceId and ResourceObject + members are set to XResourceId and object reference of the + deactivated resource.
The request is processed asynchronously. Notifications about + configuration changes are sent after this call returns.
+ @param xResourceId + The resource whose activation is requested. + @param eMode +When eMode is REPLACE then, before adding the + resource activation to the request queue, similar resources + linked to the same anchor are removed. This makes it easier to + switch between resources whose activation is mutually exclusive. + For example, there can only be one view per pane, so before + activating a new view the old one has to be deactivated.
+When eMode is ADD then the resource is requested + without further changes.
+ */ + void requestResourceActivation ( + [in] XResourceId xResourceId, + [in] ResourceActivationMode eMode); + + /** Request the deactivation of a resource. +The request is processed asynchronously. Notifications about + configuration changes are sent after this call returns.
+Requesting the deactivation + of a resource that is not active is not an error.
+ @param xResourceId + The resource whose deactivation is requested. + */ + void requestResourceDeactivation ( + [in] XResourceId xResourceId); + + + /** Return the active resource specified by the given resource id. + @param xResourceId + A valid resource id. This should, but does not have to be, the + resource id of an active resource. + @return + When the given resource id specifies an active resource then + that resource is returned. Otherwise an empty reference is + returned. + */ + XResource getResource ( + [in] XResourceId xResourceId); + + /** Lock the processing of configuration change requests. +This is only necessary when more than one change request is being + made in a row. It prevents an update being made (with all the visible UI + changes) before all change requests are being made.
+Recursive lock() calls are recognized: the + configuration controller is locked while lock() was + called more often than unlock().
+ */ + void lock (); + + /** Unlock the processing of configuration change requests. +When unlock() is called as many times as + lock() and the queue of configuration change + requests is not empty the configuration controller continues the + processing of the change requests. An update of the current + configuration will eventually being made.
+ */ + void unlock (); + + /** Explicitly request an update of the current configuration. +Call it when a resource is activated or deactivated + without the control and knowledge of the drawing framework. Calling + this method (from outside the drawing framework) should hardly every + be necessary.
+ */ + void update (); + + /** Return a copy of the requested configuration. +Modifications to the returned configuration have no effect on the + drawing framework.
+ */ + XConfiguration getRequestedConfiguration (); + + /** Return a copy of the current configuration. +Modifications to the returned configuration have no effect on the + drawing framework.
+ */ + XConfiguration getCurrentConfiguration (); + + /** Replace the requested configuration with the given configuration and + schedule an update of the current configuration. +Together with the getCurrentConfiguration() and + getRequestedConfiguration() methods this + allows the saving and restoring of configurations. However, the + given configuration can have other origins then these methods.
+The given configuration is transformed into a list of change + requests so that the resulting requested configuration equals the + given configuration. This has the advantage that not only the + resource activations and deactivations but all configuration + changes are properly broadcasted.
+Note that because of the configuration change notifications + listeners can make more configuration change requests, so that the + resulting requested configuration can be different from the given + configuration.
+ @param xConfiguration + This typically is a configuration that was obtained with an + earlier getRequestedConfiguration() call. + */ + void restoreConfiguration ([in] XConfiguration xConfiguration); +}; + +}; }; }; }; }; // ::com::sun::star::drawing::framework + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/drawing/framework/XConfigurationControllerBroadcaster.idl b/offapi/com/sun/star/drawing/framework/XConfigurationControllerBroadcaster.idl new file mode 100644 index 0000000000..c3b3e373db --- /dev/null +++ b/offapi/com/sun/star/drawing/framework/XConfigurationControllerBroadcaster.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 . + */ + +module com { module sun { module star { module drawing { module framework { + +interface XConfigurationChangeListener; + +/** Manage the set of registered event listeners and the event notification for a configuration + controller. +The listeners are called in the order in which they are registered.
+*/ +interface XConfigurationControllerBroadcaster +{ + /** Add a new listener for configuration changes. +The listener is notified only for the specified type of + configuration changes. When the listener is interested in more than + one event type this method has to be called multiple times. + Alternatively it can register as universal listener that will be + called for all event types. However, this option is provided + primarily to support debugging and monitoring.
+ @param xListener + The new listener. + @param sEventType + The event type that the listener is interested in. The set of + event types is not fixed and there can be no exhaustive + list. The empty string is a special value in that the listener + will be called for all types of event. + @param aUserData + Arbitrary data that is passed to the listener when it is called + for the specified event type. When one listener is registered + for more than one event type then different user data objects + may be given as well. Supplying unique integer values allows + the listener to use a switch statement to distinguish between + the different event types. + */ + void addConfigurationChangeListener ( + [in] XConfigurationChangeListener xListener, + [in] string sEventType, + [in] any aUserData); + + /** Remove a listener for configuration changes. + @param xListener + The listener that is to be removed. + */ + void removeConfigurationChangeListener ( + [in] XConfigurationChangeListener xListener); + + /** With this method other objects can send events to all the registered + listeners. + */ + void notifyEvent ( + [in] ConfigurationChangeEvent aEvent); +}; + +}; }; }; }; }; // ::com::sun::star::drawing::framework + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/drawing/framework/XConfigurationControllerRequestQueue.idl b/offapi/com/sun/star/drawing/framework/XConfigurationControllerRequestQueue.idl new file mode 100644 index 0000000000..adb77ea5fc --- /dev/null +++ b/offapi/com/sun/star/drawing/framework/XConfigurationControllerRequestQueue.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 . + */ + +module com { module sun { module star { module drawing { module framework { + +interface XConfigurationChangeRequest; + +/** The request queue of the configuration controller handles requests for + changes to the current configuration. + +This interface allows callers to add requests to the back of the + queue and to determine whether the queue is empty. Using this interface + should normally not be necessary for anyone else than the + XConfigurationController. It may be removed in the future.
+*/ +interface XConfigurationControllerRequestQueue +{ + /** Return whether there are pending requests for configuration changes. + @return + Returns `TRUE` when there is at least one request object in the + queue that has not yet been processed. It returns `FALSE` when + the queue is empty. + */ + boolean hasPendingRequests (); + + /** Add a request for a configuration change to the request queue. +This method should not be called from outside the drawing + framework. Other sub controllers of the drawing framework are typical + callers. They can add change requests that can not be made with the + requestResourceActivation() and + requestResourceDeactivation() methods.
+ @param xRequest + The configuration change represented by this request object must only + be committed to the configuration when the + com::sun::star::drawing::framework::XConfigurationChangeRequest::execute() + method of the xRequest object is called. + */ + void postChangeRequest ( + [in] XConfigurationChangeRequest xRequest); +}; + +}; }; }; }; }; // ::com::sun::star::drawing::framework + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/drawing/framework/XControllerManager.idl b/offapi/com/sun/star/drawing/framework/XControllerManager.idl new file mode 100644 index 0000000000..0d6543846f --- /dev/null +++ b/offapi/com/sun/star/drawing/framework/XControllerManager.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 . + */ + +module com { module sun { module star { module drawing { module framework { + +interface XConfigurationController; +interface XModuleController; + +/** The XControllerManager gives access to the controllers of the drawing + framework. +The XControllerManager interface is typically + implemented by the same object that implements + com::sun::star::frame::XController.
+*/ +interface XControllerManager +{ + /** Return the XConfigurationController object. + @return + The returned reference is never empty. + */ + XConfigurationController getConfigurationController (); + + /** Return the XModuleController object. + @return + The returned reference is never empty. + */ + XModuleController getModuleController (); +}; + +}; }; }; }; }; // ::com::sun::star::drawing::framework + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/drawing/framework/XModuleController.idl b/offapi/com/sun/star/drawing/framework/XModuleController.idl new file mode 100644 index 0000000000..8d9d9b3a9d --- /dev/null +++ b/offapi/com/sun/star/drawing/framework/XModuleController.idl @@ -0,0 +1,38 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module drawing { module framework { + +interface XView; + +/** The module controller is responsible for loading a module (ad-don, + plugin, whatever the name) when it is first used. +For this there is a list in the sd::framework::ModuleController class.
+*/ +interface XModuleController +{ + /** When the specified resource is requested for the first time then + create a new instance of the associated factory service. + */ + void requestResource ([in] string sResourceTypeURL); +}; + +}; }; }; }; }; // ::com::sun::star::drawing::framework + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/drawing/framework/XPane.idl b/offapi/com/sun/star/drawing/framework/XPane.idl new file mode 100644 index 0000000000..1f81532571 --- /dev/null +++ b/offapi/com/sun/star/drawing/framework/XPane.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 . + */ + +module com { module sun { module star { module drawing { module framework { + +/** A pane is an abstraction of a window and is one of the resources managed + by the drawing framework. +Apart from the area that displays a view a pane may contain other + parts like title, menu, closer button.
+The URL prefix of panes is private:resource/floater
Calling objects have to be able to derive inner bounding boxes of the + border from the outer ones and inner ones from outer ones. This + conversion and the painting of the border involves three rectangles. + The inner and outer bounding box of the border. This is a logical + bounding box which the paint methods may paint over. The center box is + the third rectangle. This is the actual border between outer and inner + background color or bitmap and it is used for placing the bitmaps that are used + paint the border. The inner sides and corners are places relative to + this center box, i.e. when not further offsets are given then the upper + left corner bitmap is painted with its lower right at the upper left of + the center box.
+*/ +interface XPaneBorderPainter +{ + /** Enlarge the given rectangle by the size of the specified part of the + border. This method can be used to convert an inner bounding box + into the center box or the outer bounding box. + @param sPaneBorderStyleName + The pane style defines the sizes of the border. + @param aRectangle + This rectangle will be converted into a larger one. This should + be the center box or the inner bounding box of the border. + @param eBorderType + The part of the border to add to the given rectangle. + Use INNER_BORDER to convert an inner bounding box into the + center box or TOTAL_BORDER to convert it into the outer bounding + box. OUTER_BORDER can be used to convert the center box into + the outer bounding box. + */ + ::com::sun::star::awt::Rectangle addBorder ( + [in] string sPaneBorderStyleName, + [in] ::com::sun::star::awt::Rectangle aRectangle, + [in] BorderType eBorderType); + + /** Shrink the given rectangle by the size of the specified part of the + border. This method can be used to convert an outer bounding box + into the center box or the inner bounding box. + @param sPaneBorderStyleName + The pane style defines the sizes of the border. + @param aRectangle + This rectangle will be converted into a smaller one that lies + inside it. It should be the center box or the outer bounding + box of the border. + @param eBorderType + The part of the border to remove from the given rectangle. + Use OUTER_BORDER to convert an outer bounding box into the + center box or TOTAL_BORDER to convert it into the inner bounding + box. INNER_BORDER can be used to convert the center box into + the inner bounding box. + */ + ::com::sun::star::awt::Rectangle removeBorder ( + [in] string sPaneBorderStyleName, + [in] ::com::sun::star::awt::Rectangle aRectangle, + [in] BorderType eBorderType); + + /** Paint the border around a pane. + @param sPaneBorderStyleName + The pane style to use for painting the border. + @param xCanvas + The canvas onto which the border is painted. + @param aOuterBorderRectangle + The outer bounding box of the border. Use addBorder to convert + the bounding box of a pane (the inner bounding box of the + border) into this outer bounding box of the border. + @param aRepaintArea + The area in which the border has to be repainted. The clip + rectangle. + @param sTitle + The pane title. Supply an empty string for panes without + title. It is the responsibility of the caller to supply a title + only for pane border styles that support a title. + */ + void paintBorder ( + [in] string sPaneBorderStyleName, + [in] ::com::sun::star::rendering::XCanvas xCanvas, + [in] ::com::sun::star::awt::Rectangle aOuterBorderRectangle, + [in] ::com::sun::star::awt::Rectangle aRepaintArea, + [in] string sTitle); + + /** Paint the border around a pane where the border includes a call out + that is anchored at the given point. Most arguments have the same + meaning as in the paintBorder(). + + @see paintBorder + + @param sPaneBorderStyleName + See description in #paintBorder. + @param xCanvas + See description in #paintBorder. + @param aOuterBorderRectangle + See description in #paintBorder. + @param aRepaintArea + See description in #paintBorder. + @param sTitle + See description in #paintBorder. + @param aCalloutAnchor + The anchor point of the call out. It is usually located outside + the border. + */ + void paintBorderWithCallout ( + [in] string sPaneBorderStyleName, + [in] ::com::sun::star::rendering::XCanvas xCanvas, + [in] ::com::sun::star::awt::Rectangle aOuterBorderRectangle, + [in] ::com::sun::star::awt::Rectangle aRepaintArea, + [in] string sTitle, + [in] ::com::sun::star::awt::Point aCalloutAnchor); + + /** Return the offset of a call out anchor with respect to the outer + border. This value is used when the call out is realized by a fixed + bitmap in order to determine the size and/or location of the outer + border for a given call out. + */ + ::com::sun::star::awt::Point getCalloutOffset ( + [in] string sPaneBorderStyleName); +}; + +}; }; }; }; }; // ::com::sun::star::drawing::framework + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/drawing/framework/XRelocatableResource.idl b/offapi/com/sun/star/drawing/framework/XRelocatableResource.idl new file mode 100644 index 0000000000..aac34c7c70 --- /dev/null +++ b/offapi/com/sun/star/drawing/framework/XRelocatableResource.idl @@ -0,0 +1,41 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module drawing { module framework { + +interface XResource; + +/** An optional interface that is implemented by resources that are + relocatable to different anchors. +*/ +interface XRelocatableResource +{ + /** Replace the current anchor of the called resource with the given + one. + @param xNewAnchor + The new anchor. + @return + Returns `TRUE` when the relocation was successful. + */ + boolean relocateToAnchor ([in] XResource xNewAnchor); +}; + +}; }; }; }; }; // ::com::sun::star::drawing::framework + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/drawing/framework/XResource.idl b/offapi/com/sun/star/drawing/framework/XResource.idl new file mode 100644 index 0000000000..72fa0beb91 --- /dev/null +++ b/offapi/com/sun/star/drawing/framework/XResource.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 . + */ + +module com { module sun { module star { module drawing { module framework { + +interface XResourceId; + +/** Base interface that provides functionality shared by all resource types + of the drawing framework. +*/ +interface XResource +{ + /** Return an XResourceId object for the called resource. + The returned id unambiguously identifies the resource. + */ + XResourceId getResourceId (); + + /** Some resources must not be leafs, i.e. have to be anchor to at least + one other resource. Most panes are examples for this. Views on the + other hand are in most cases no anchors. So the typical pane will + return `TRUE` and the typical view will return `FALSE`. + + The return value is used to determine whether a resource has to be + deactivated when it has no children, either because none is + requested or because none can be created. + */ + boolean isAnchorOnly (); +}; + +}; }; }; }; }; // ::com::sun::star::drawing::framework + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/drawing/framework/XResourceFactory.idl b/offapi/com/sun/star/drawing/framework/XResourceFactory.idl new file mode 100644 index 0000000000..2ed4d8ee74 --- /dev/null +++ b/offapi/com/sun/star/drawing/framework/XResourceFactory.idl @@ -0,0 +1,71 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module drawing { module framework { + +interface XResource; +interface XResourceId; + +/** Factory and possibly cache for creating and releasing resources. +A resource factory is created and used by the + XConfigurationController object.
+A factory may want to implement a cache to reuse previously released + resources.
+*/ +interface XResourceFactory +{ + /** Create a resource for the given XResourceId object. + @param xResourceId + The resource URL of this id specifies the type of resource to + create. The anchor can be used to obtain the associated object + from the configuration controller. For example, when a view is + created, then the new object can be initialized with the pane + that is its anchor. +Valid values are those for which the factory has previously been + registered at the XConfigurationController
. + @return + Returns a resource object that has been just created or was + taken from a cache. When the requested resource can not be + created then an empty reference is returned. A later call may + be successful. This, for example, can be the case with SFX + based side panes. They are not available right after the + creation of a new application frame. + @throws InvalidArgumentException + when the given URL is not supported by the factory. + */ + XResource createResource ( + [in] XResourceId xResourceId) + raises ( ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::lang::WrappedTargetException + ); + + /** Call this method to tell a factory that the given resource is no + longer in use. The factory can decide whether to destroy the + resource or to keep it in a cache in order to reuse it later. + @param xResource + The given resource has to be one created by the same factory. + @throws InvalidArgumentException + when the given pane was not created by the same factory. + */ + void releaseResource ([in] XResource xResource); +}; + +}; }; }; }; }; // ::com::sun::star::drawing::framework + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/drawing/framework/XResourceFactoryManager.idl b/offapi/com/sun/star/drawing/framework/XResourceFactoryManager.idl new file mode 100644 index 0000000000..86dfe2b039 --- /dev/null +++ b/offapi/com/sun/star/drawing/framework/XResourceFactoryManager.idl @@ -0,0 +1,83 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module drawing { module framework { + +interface XResourceId; +interface XResourceFactory; + +/** The XResourceFactoryManager is part of the configuration controller and + manages the set of registered resource factories. + + @see XConfigurationController + @see XResourceFactory +*/ +interface XResourceFactoryManager +{ + /** Register a new resource factory for the given URL. +When one factory is responsible for more than one type of resource + then this method has to be called for each type. If this method is + called multiple times for the same URL then a previously registered + factory is removed for the URL.
+ @param sResourceURL + The URL of the resource that the factory can create. + @param xResourceFactory + The resource factory object. + */ + void addResourceFactory ( + [in] string sResourceURL, + [in] XResourceFactory xResourceFactory); + + /** Remove a resource factory for one type of resource. When the + factory has been registered for other URLs as well then it remains + registered for them. Use the + removeResourceFactoryForReference() to remove a + factory completely. + @param sResourceURL + The URL for which to remove the resource factory. + */ + void removeResourceFactoryForURL ( + [in] string sResourceURL); + + /** Remove a resource factory for all resource types it has been registered for. Use + removeResourceFactoryForURL() to remove a factory + just for one resource type and to leave it registered for others. + @param xResourceFactory + The resource factory object to remove. + */ + void removeResourceFactoryForReference ( + [in] XResourceFactory xResourceFactory); + + /** Return the resource factory that was previously registered for the + given resource type. This method is typically called by one of the + resource controllers. + @param sResourceURL + The URL of the resource type for which to return the resource + factory. + @return + When no resource factory was registered for the given resource + type then an empty reference is returned. + */ + XResourceFactory getResourceFactory ( + [in] string sResourceURL); +}; + +}; }; }; }; }; // ::com::sun::star::drawing::framework + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/drawing/framework/XResourceId.idl b/offapi/com/sun/star/drawing/framework/XResourceId.idl new file mode 100644 index 0000000000..f868a6f372 --- /dev/null +++ b/offapi/com/sun/star/drawing/framework/XResourceId.idl @@ -0,0 +1,136 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module drawing { module framework { + +/** A resource id uses a set of URLs to unambiguously specify a resource of + the drawing framework. +Resources of the drawing framework are panes, views, tool bars, and + command groups. One URL describes the type of the actual resource. A + sequence of URLs (typically one, sometimes two) specifies its anchor, + the resource it is bound to. The anchor typically is a pane (for + views), or it is empty (for panes).
+The resource URL may be empty. In this case the anchor is empty, + too. Such an empty resource id does not describe a resource but rather + the absence of one. Instead of an empty XResourceId object + an empty reference can be used in many places.
+The resource URL may have arguments that are passed to the factory + method on its creation. Arguments are only available through the + getFullResourceURL(). The getResourceURL() method strips them away.
+*/ +interface XResourceId +{ + /** Return the URL of the resource. Arguments supplied on creation are + stripped away. Use getFullResourceURL() to access them. + */ + string getResourceURL (); + + /** Return a URL object of the resource URL that may contain arguments. + */ + com::sun::star::util::URL getFullResourceURL (); + + /** Return whether there is a non-empty anchor URL. When this method + returns `FALSE` then getAnchorURLs() will return an empty list. + */ + boolean hasAnchor (); + + /** Return a new XResourceId that represents the anchor resource. + */ + XResourceId getAnchor (); + + /** Return the, possibly empty, list of anchor URLs. The URLs are + ordered so that the one in position 0 is the direct anchor of the + resource, while the one in position i+1 is the direct anchor of the + one in position i. + */ + sequenceThe two resource ids A and B are compared so that if A +
The algorithm for this comparison is quite simple. It uses a
+ double lexicographic ordering. On the lower level individual URLs
+ are compared via the lexicographic order defined on strings. On the
+ higher level two resource ids are compared via a lexicographic order
+ defined on the URLS. So when there are two resource ids A1.A2
+ (A1 being the anchor of A2) and B1.B2 then A1.A2 Note that not only the anchor of the given object is taken into
+ account. The whole object, including the resource URL, is
+ interpreted as anchor resource. If eMode is DIRECT then the anchor of the called resource id
+ has to be identical to the given anchor. If eMode is
+ INDIRECT then the given anchor has to be a part
+ of the anchor of the called resource.
+ */
+ boolean isBoundTo (
+ [in] XResourceId xAnchorId,
+ [in] AnchorBindingMode eMode);
+
+ /** Return whether the anchor of the called resource id object
+ represents the same resource as the given anchor URL. This is a
+ convenience variant of the isBoundTo() function
+ that can also be seen as an optimization for the case that the
+ anchor consists of exactly one URL.
+ @param AnchorURL
+ The resource URL of the anchor.
+ @param eMode
+ This mode specifies how the called resource has to be bound to
+ the given anchor in order to have this function return. See the
+ description of isBoundTo() for more
+ information.
+ */
+ boolean isBoundToURL (
+ [in] string AnchorURL,
+ [in] AnchorBindingMode eMode);
+
+ /** Return a copy of the called resource id. The caller becomes the
+ owner of the new object.
+ */
+ XResourceId clone ();
+};
+
+}; }; }; }; }; // ::com::sun::star::drawing::framework
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/drawing/framework/XTabBar.idl b/offapi/com/sun/star/drawing/framework/XTabBar.idl
new file mode 100644
index 0000000000..3a943f02da
--- /dev/null
+++ b/offapi/com/sun/star/drawing/framework/XTabBar.idl
@@ -0,0 +1,85 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module drawing { module framework {
+
+/** UI control for the selection of views in a pane.
+ Every tab of a tab bar has, besides its localized title and help
+ text, the URL of a view. A possible alternative would be to use a
+ command URL instead of the view URL. In the current Impress implementation a tab bar is only used for the
+ center pane to switch between views in the center pane. Tab bars can
+ make sense for other panes as well, i.e. for showing either the slide
+ sorter or the outline view in the left pane. Tab bar buttons are identified by their resource id. Note that
+ because the resource anchors are all the same (the tab bar), it is the
+ resource URL that really identifies a button. There can not be two
+ buttons with the same resource id.-1
or
+ +1
when the two compared resource ids differ.
+ */
+ short compareTo (
+ [in] XResourceId xId);
+
+ /** Return whether the anchor of the called resource id object
+ represents the same resource as the given object.
+
A better place for this interface (in an extended version) would be
+ com::sun::star::awt
Their order reflects the visible order in the tab bar.
+This method can be used when + addTabBarButtonAfter() does not provide enough + control as to where to insert a new button.
+ */ + sequenceTypical examples are the Impress views that show a graphical + representation of a document. But the task pane, which is primarily a + container of dialogs, is a view as well.
+Luckily the drawing framework does not need to know much about what a + view is. It just needs to identify view objects and a typesafe way to + reference them.
+The URL prefix of views is private:resource/view
The com::sun::star::drawing::framework::XControllerManager + interface provides access to the sub controllers. It typically is + implemented by the same class that implements the + com::sun::star::frame::XController interface.
+The + configuration is managed by the + com::sun::star::drawing::framework::XConfigurationController. + It coordinates changes to the configuration made by the other sub + controllers so that +
For more information please see the wiki page of the drawing framework. +*/ +module framework {}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/Actions.idl b/offapi/com/sun/star/embed/Actions.idl new file mode 100644 index 0000000000..8ea5b1b157 --- /dev/null +++ b/offapi/com/sun/star/embed/Actions.idl @@ -0,0 +1,54 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module embed { + +/** This constant set contains possible actions that could be approved by +ActionsApproval implementation. +*/ +published constants Actions +{ + /** "Prevent Close" - throws veto exception if target object is going to + close. + +
+ Usually a com::sun::star::util::XCloseListener + implementation could use this constant to request approval to throw + veto exception. +
+ */ + const long PREVENT_CLOSE = 1; + + /** "Prevent Termination" - throws veto exception if target object is going + to terminate. + ++ Usually a com::sun::star::frame::XTerminateListener + implementation could use this constant to request approval to throw + veto exception. +
+ */ + const long PREVENT_TERMINATION = 2; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/Aspects.idl b/offapi/com/sun/star/embed/Aspects.idl new file mode 100644 index 0000000000..2581f27a5b --- /dev/null +++ b/offapi/com/sun/star/embed/Aspects.idl @@ -0,0 +1,66 @@ +/* -*- 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 . + */ + + + +module com { module sun { module star { module embed { + +/** The constant set contains possible aspects for an embedded object. + ++ This constant set provides a set of values that + can be used to specify the kind of object view. + It can be used for example by container to request + view representation of a certain kind from + XEmbeddedObject. +
+ ++ The first 32 bits are reserved for MS OLE aspects. +
+ + @see XEmbeddedObject +*/ +published constants Aspects +{ + // MS OLE aspects + + /** specifies view of the object to be displayed as an embedded object + inside a container. + */ + const hyper MSOLE_CONTENT = 1; + + /** specifies view of the object to be displayed in a browsing tool. + */ + const hyper MSOLE_THUMBNAIL = 2; + + /** specifies view of the object when object is represented by Icon. + */ + const hyper MSOLE_ICON = 4; + + /** specifies view of the object for print preview. + */ + const hyper MSOLE_DOCPRINT = 8; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/BaseStorage.idl b/offapi/com/sun/star/embed/BaseStorage.idl new file mode 100644 index 0000000000..63695e962b --- /dev/null +++ b/offapi/com/sun/star/embed/BaseStorage.idl @@ -0,0 +1,55 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module embed { + +/** This is a service that allows to get access to a storage hierarchy. + */ +published service BaseStorage +{ + /** This is a general interface representing storage functionality. + It allows to copy storages, get access to child elements and to + control lifetime. + */ + interface ::com::sun::star::embed::XStorage; + + /** allows to get access to storage properties. + */ + interface ::com::sun::star::beans::XPropertySet; + + /** allows to get the mode the storage is opened in. + ++ Can be a combination of values from ElementModes. +
+ */ + [property, readonly] long OpenMode; + + /** allows to retrieve URL the storage is based on. + */ + [property, optional, readonly] string URL; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/DocumentCloser.idl b/offapi/com/sun/star/embed/DocumentCloser.idl new file mode 100644 index 0000000000..684d8e9ac7 --- /dev/null +++ b/offapi/com/sun/star/embed/DocumentCloser.idl @@ -0,0 +1,57 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module embed { + +/** The main task of this service is to close an office document frame embedded + in an application running in another process correctly. + ++ The usual usage of this service is to create it, initialize with document + frame, and to dispose the service. While disposing the service will do all + the required actions to let the frame be closed using + com::sun::star::util::XCloseable::close( true ). Thus + in case there is a code that prevents closing of the frame the code + automatically becomes the owner of the frame. +
+ ++ In addition the code will disconnect the VCL window the frame is based on + from the container system window. +
+*/ +published service DocumentCloser : com::sun::star::lang::XComponent +{ + /** is used to initialize the object on it's creation. + + @param xFrame + the frame of the document that should be closed. + + */ + DocumentCloserCtor1( [in] com::sun::star::frame::XFrame xFrame ) + raises( ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::frame::DoubleInitializationException, + ::com::sun::star::uno::Exception ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/ElementModes.idl b/offapi/com/sun/star/embed/ElementModes.idl new file mode 100644 index 0000000000..16d0c11380 --- /dev/null +++ b/offapi/com/sun/star/embed/ElementModes.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 . + */ + + + +module com { module sun { module star { module embed { + +/** The constant set contains possible modes to open an element. + ++ The modes can be combined by "or" operation. + ElementModes::READ and ElementModes::WRITE + are base modes. A result mode must include one of base modes. +
+ + @see XStorage +*/ +published constants ElementModes +{ + /** specifies opening of an element for reading. + */ + const long READ = 1; + + /** specifies opening of a seekable element. + ++ This mode is ignored for Storage elements. + This flag makes sense only in combination with + ElementModes::READ and/or + ElementModes::WRITE. +
+ */ + const long SEEKABLE = 2; + + /** specifies opening of a seekable element for reading. + ++ This is just a combination of the previous two values. For storages + it is the same as ElementModes::READ. +
+ */ + const long SEEKABLEREAD = 3; + + /** specifies opening of an element for writing. + */ + const long WRITE = 4; + + /** specifies opening of an element for reading and writing. + ++ For a stream element is also specifies that it must be seekable. +
+ */ + const long READWRITE = 7; + + /** lets the document be truncated immediately after opening. + ++ This flag makes sense only in combination with + ElementModes::WRITE. +
+ */ + const long TRUNCATE = 8; + + /** restricts creation of a new element on opening in case a requested one + does not exist. + ++ This flag makes sense only in combination with + ElementModes::WRITE. +
+ */ + const long NOCREATE = 16; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/EmbedMapUnits.idl b/offapi/com/sun/star/embed/EmbedMapUnits.idl new file mode 100644 index 0000000000..3e54168c38 --- /dev/null +++ b/offapi/com/sun/star/embed/EmbedMapUnits.idl @@ -0,0 +1,87 @@ +/* -*- 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 . + */ + + + +module com { module sun { module star { module embed { + +/** contains list of possible map modes supported by embedded object. + + @see XVisualObject +*/ +published constants EmbedMapUnits +{ + /** In this type of map mode one logical point is equal to one-hundredth + of millimeter. + */ + const long ONE_100TH_MM = 0; + + /** In this type of map mode one logical point is equal to one-tenth + of millimeter. + */ + const long ONE_10TH_MM = 1; + + /** In this type of map mode one logical point is equal to one + millimeter. + */ + const long ONE_MM = 2; + + /** In this type of map mode one logical point is equal to one + centimeter. + */ + const long ONE_CM = 3; + + /** In this type of map mode one logical point is equal to one-thousandth + of inch. + */ + const long ONE_1000TH_INCH = 4; + + /** In this type of map mode one logical point is equal to one-hundredth + of inch. + */ + const long ONE_100TH_INCH = 5; + + /** In this type of map mode one logical point is equal to one-tenth + of inch. + */ + const long ONE_10TH_INCH = 6; + + /** In this type of map mode one logical point is equal to one inch. + */ + const long ONE_INCH = 7; + + /** In this type of map mode one logical point is equal to one + typographical point. + */ + const long POINT = 8; + + /** In this type of map mode one logical point is equal to one twentieth + of typographical point. + */ + const long TWIP = 9; + + /** In this type of map mode one logical point is equal to one pixel. + */ + const long PIXEL = 10; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/EmbedMisc.idl b/offapi/com/sun/star/embed/EmbedMisc.idl new file mode 100644 index 0000000000..fd474827bc --- /dev/null +++ b/offapi/com/sun/star/embed/EmbedMisc.idl @@ -0,0 +1,110 @@ +/* -*- 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 . + */ + + + +module com { module sun { module star { module embed { + +/** The constant set contains flags describing miscellaneous characteristics + of embedded objects. + ++ The constant values can be combined with "or" operation. + The first 32 bits are reserved for MS values, they are added because + this API is going to be used to embed MS OLE objects into OOo documents, + so there should be a possibility to transfer all the possible MS flags + to container. In case own specific values should be added those bits can + not be used. +
+ + @see XEmbeddedObject +*/ +published constants EmbedMisc +{ + // analog of the MS OLEMISC enum + + /** means that the object wish to regenerate view representation if it's + view in the container is resized. + */ + const hyper MS_EMBED_RECOMPOSEONRESIZE = 1; + + /** The object has no view representation except icon. + */ + const hyper MS_EMBED_ONLYICONIC = 2; + + /** If the object is generated from a selection, the selection should not + be removed, the object should be inserted beside the selection. + */ + const hyper MS_EMBED_INSERTNOTREPLACE = 4; + + /** The object is a static object that contains only representation. + */ + const hyper MS_EMBED_STATIC = 8; + + const hyper MS_EMBED_CANTLINKINSIDE = 16; + + const hyper MS_EMBED_CANLINKBYOLE1 = 32; + + const hyper MS_EMBED_ISLINKOBJECT = 64; + + const hyper MS_EMBED_INSIDEOUT = 128; + + const hyper MS_EMBED_ACTIVATEWHENVISIBLE = 256; + + const hyper MS_EMBED_RENDERINGISDEVICEINDEPENDENT = 512; + + const hyper MS_EMBED_INVISIBLEATRUNTIME = 1024; + + const hyper MS_EMBED_ALWAYSRUN = 2048; + + const hyper MS_EMBED_ACTSLIKEBUTTON = 4096; + + const hyper MS_EMBED_ACTSLIKELABEL = 8192; + + const hyper MS_EMBED_NOUIACTIVATE = 16384; + + const hyper MS_EMBED_ALIGNABLE = 32768; + + const hyper MS_EMBED_SIMPLEFRAME = 65536; + + const hyper MS_EMBED_SETCLIENTSITEFIRST = 131072; + + const hyper MS_EMBED_IMEMODE = 262144; + + const hyper MS_EMBED_IGNOREACTIVATEWHENVISIBLE = 524288; + + const hyper MS_EMBED_WANTSTOMENUMERGE = 1048576; + + const hyper MS_EMBED_SUPPORTSMULTILEVELUNDO = 2097152; + + const hyper EMBED_ACTIVATEIMMEDIATELY = 0x100000000; + + const hyper EMBED_NEVERRESIZE = 0x200000000; + + /** The object needs the size to be provided from the container after + it is loaded to function in optimal way. + */ + const hyper EMBED_NEEDSSIZEONLOAD = 0x400000000; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/EmbedStates.idl b/offapi/com/sun/star/embed/EmbedStates.idl new file mode 100644 index 0000000000..b8fb5eae55 --- /dev/null +++ b/offapi/com/sun/star/embed/EmbedStates.idl @@ -0,0 +1,80 @@ +/* -*- 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 . + */ + + + +module com { module sun { module star { module embed { + +/** This constant set contains possible states for +EmbeddedObject. +*/ +published constants EmbedStates +{ + /** "Loaded" - the persistent representation of the object is loaded in + memory. + ++ The object is created and assigned with a persistent entry, + and a view representation ( metafile and etc. ) can be retrieved + ( if there is any ). +
+ */ + const long LOADED = 0; + + /** "Running" - the object is connected and loaded. + ++ The object has a connection to the container client and a component + loaded from persistent entry. In case of internal document it also + means existing of document model that implements + com::sun::star::frame::XModel interface. +
+ */ + const long RUNNING = 1; + + /** "Active" - the object is activated in separate window + ( outplace activation ). + */ + const long ACTIVE = 2; + + /** "Inplace active" - the object has own window in the container's + window. + ++ The object is activated and has its own window in the container's + window that allows object to process mouse events and control own + rendering. +
+ */ + const long INPLACE_ACTIVE = 3; + + /** "UI active" - the inplace active object that has user interface. + ++ The object is inplace active, allowed to have menus, toolbars, + keyboard accelerators, and has the focus. +
+ */ + const long UI_ACTIVE = 4; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/EmbedUpdateModes.idl b/offapi/com/sun/star/embed/EmbedUpdateModes.idl new file mode 100644 index 0000000000..41adb9e073 --- /dev/null +++ b/offapi/com/sun/star/embed/EmbedUpdateModes.idl @@ -0,0 +1,52 @@ +/* -*- 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 . + */ + + + +module com { module sun { module star { module embed { + +/** The constant set specifies possible modes of object update. + + @see XEmbeddedObject +*/ +published constants EmbedUpdateModes +{ + /** An object representation should be updated as often as possible. + ++ Any time object detects that it is changed the representation + of the object is updated. +
+ */ + const long ALWAYS_UPDATE = 0; + + /** An object representation should be updated only in case of request. + ++ The representation of the object is updated only by explicit request. +
+ */ + const long EXPLICIT_UPDATE = 1; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/EmbedVerbs.idl b/offapi/com/sun/star/embed/EmbedVerbs.idl new file mode 100644 index 0000000000..47144f1673 --- /dev/null +++ b/offapi/com/sun/star/embed/EmbedVerbs.idl @@ -0,0 +1,63 @@ +/* -*- 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 . + */ + + + +module com { module sun { module star { module embed { + +/** This constants set contains possible verbs for a contained object. + + @see XEmbeddedObject +*/ +published constants EmbedVerbs +{ + /** lets the object do default activation, as by double-click. + */ + const long MS_OLEVERB_PRIMARY = 0; + + /** lets the object open itself for editing or viewing. + */ + const long MS_OLEVERB_SHOW = -1; + + /** lets the object activate itself outplace. + */ + const long MS_OLEVERB_OPEN = -2; + + /** lets the inplace object remove its UI from container. + */ + const long MS_OLEVERB_HIDE = -3; + + /** lets the object proceed with UI activation. + */ + const long MS_OLEVERB_UIACTIVATE = -4; + + /** lets the object activate itself inplace. + */ + const long MS_OLEVERB_IPACTIVATE = -5; + + /** lets the object forget any undo state. + */ + const long MS_OLEVERB_DISCARDUNDOSTATE = -6; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/EmbeddedObjectCreator.idl b/offapi/com/sun/star/embed/EmbeddedObjectCreator.idl new file mode 100644 index 0000000000..ce710f5d79 --- /dev/null +++ b/offapi/com/sun/star/embed/EmbeddedObjectCreator.idl @@ -0,0 +1,31 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module embed { + +/** + @since LibreOffice 4.1 + */ +service EmbeddedObjectCreator : XEmbeddedObjectCreator; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/EmbeddedObjectDescriptor.idl b/offapi/com/sun/star/embed/EmbeddedObjectDescriptor.idl new file mode 100644 index 0000000000..78b59b2bcc --- /dev/null +++ b/offapi/com/sun/star/embed/EmbeddedObjectDescriptor.idl @@ -0,0 +1,72 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module embed { + +/** describes properties of an embedded object + ++ This service may be represented by a + com::sun::star::beansPropertyValue[]. + Such descriptors will be passed to different functions, included into + possible load/save processes. Every member of such process can use + this descriptor and may change it to actualize the information about + the object. So this descriptor should be used as an in/out parameter. +
+ + @see com::sun::star::beans::PropertyValue + */ +published service EmbeddedObjectDescriptor +{ + /** lets the graphical representation of embedded document be stored. + ++ Setting of this property to true tells the embedded object that + controls the document to store or not to store the graphical + representation of the document into the object persistence. + If this property is not set the object makes the decision itself. +
+ */ + [optional,property] boolean StoreVisualReplacement; + + /** allows to provide a dispatch interceptor for outplace activation. + */ + [optional,property] ::com::sun::star::frame::XDispatchProviderInterceptor + OutplaceDispatchInterceptor; + + /** denotes the storage from which the embedded object is to be recovered. + +Upon activating the embedded object, it is normally loaded from a storage as denoted by + the parameters to the XEmbedObjectCreator method calls.
+ +You can pass a non-`NULL` RecoveryStorage
in the object descriptor if you wish to load the
+ embedded object from an alternate storage.
The object will still be based on the storage denoted in the XEmbedObjectCreator
method
+ call, i.e., subsequent save operations will still use that storage. RecoveryStorage
is used
+ at loading time only, and then discarded.
+ Please see below the description of additional requirements for the + file system storage implementation. +
+ ++ A file system storage is created either by + StorageFactory or by XStorage + interface and is controlled by refcounting. In case + refcounting is decreased to zero the storage will be + disposed automatically. +
+ ++ In case a storage object is disposed the elements + ( substorages and substreams ) are not affected. +
++ In case + com::sun::star::lang::XSingleServiceFactory::createInstance() + call is used the result storage will be open in read-write mode based + on an arbitrary file system folder. +
+ ++ In case + com::sun::star::lang::XSingleServiceFactory::createInstanceWithArguments() + call is used a sequence of the following parameters can be used: +
+ ++ The parameters are optional, that means that sequence can be empty or + contain only first parameter, or first and second one. In case + no parameters are provided the call works the same way as + com::sun::star::lang::XSingleServiceFactory::createInstance(). + In case only first parameter is provided, the storage is opened in + readonly mode. +
+ ++ The opened storages can support read access in addition to + specified one. +
+*/ +published service FileSystemStorageFactory + : ::com::sun::star::lang::XSingleServiceFactory; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/HatchWindowFactory.idl b/offapi/com/sun/star/embed/HatchWindowFactory.idl new file mode 100644 index 0000000000..d7eb9bf079 --- /dev/null +++ b/offapi/com/sun/star/embed/HatchWindowFactory.idl @@ -0,0 +1,32 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module embed { + + +/** + @since LibreOffice 4.1 + */ +service HatchWindowFactory : XHatchWindowFactory; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/InsertedObjectInfo.idl b/offapi/com/sun/star/embed/InsertedObjectInfo.idl new file mode 100644 index 0000000000..5ca527b373 --- /dev/null +++ b/offapi/com/sun/star/embed/InsertedObjectInfo.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 . + */ + + + module com { module sun { module star { module embed { + + +/** is intended to provide result of creation of an embedded object by dialog. + */ +published struct InsertedObjectInfo +{ + /** The new created embedded object. + */ + XEmbeddedObject Object; + + /** Container related options selected by user. + ++ A dialog related to embedded object creation usually allows user + to make some choices that can be container related. This information + can be provided by this member. +
+ */ + sequence < ::com::sun::star::beans::NamedValue > Options; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/InstanceLocker.idl b/offapi/com/sun/star/embed/InstanceLocker.idl new file mode 100644 index 0000000000..48530e66e1 --- /dev/null +++ b/offapi/com/sun/star/embed/InstanceLocker.idl @@ -0,0 +1,86 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module embed { + +/** The main task of this service is to prevent closing, terminating and/or + etc. of controlled object. + ++ After creation the service adds a listener of requested type + ( close, terminate and/or etc. ) to the controlled object and let + the listener throw related veto exception until the service is disposed. +
+*/ +published service InstanceLocker : com::sun::star::lang::XComponent +{ + /** is used to initialize the object on it's creation. + + @param xInstance + the controlled object. Must implement the related to the + requested actions broadcaster interface. + + @param nActions + specifies the actions that should be done ( prevent closing, + prevent termination and/or etc. ). It must not be empty and can + currently contain following values or their combination: + Actions::PREVENT_CLOSE and + Actions::PREVENT_TERMINATION. + */ + InstanceLockerCtor1( [in] com::sun::star::uno::XInterface xInstance, + [in] long nActions ) + raises( ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::frame::DoubleInitializationException, + ::com::sun::star::uno::Exception ); + + /** is used to initialize the object on it's creation. + + @param xInstance + the controlled object. Must implement the related to the + requested actions broadcaster interface. + + @param nActions + specifies the actions that should be done ( prevent closing, + prevent termination and/or etc. ). It must not be empty and can + currently contain following values or their combination: + Actions::PREVENT_CLOSE and + Actions::PREVENT_TERMINATION. + + @param xApprove + The object implementing XActionsApproval interface. + If this parameter is an empty reference the object will proceed + with the specified in the first parameter action until it is + disposed ( just like in the case of the first constructor ). + If the instance is provided, it will be asked for approval each + time before proceeding with the action ( the action is + specified using string and can take following + values in this case: "PreventClose", "PreventTermination" ). + */ + InstanceLockerCtor2( [in] com::sun::star::uno::XInterface xInstance, + [in] long nActions, + [in] XActionsApproval xApprove ) + raises( ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::frame::DoubleInitializationException, + ::com::sun::star::uno::Exception ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/InvalidStorageException.idl b/offapi/com/sun/star/embed/InvalidStorageException.idl new file mode 100644 index 0000000000..89f9a91199 --- /dev/null +++ b/offapi/com/sun/star/embed/InvalidStorageException.idl @@ -0,0 +1,38 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module embed { + + +/** This exception can be thrown in case a storage is invalid. + ++ For example in case it is broken one. +
+ */ +published exception InvalidStorageException: com::sun::star::io::IOException +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/LinkageMisuseException.idl b/offapi/com/sun/star/embed/LinkageMisuseException.idl new file mode 100644 index 0000000000..f622bc884f --- /dev/null +++ b/offapi/com/sun/star/embed/LinkageMisuseException.idl @@ -0,0 +1,38 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module embed { + + +/** This exception can be thrown in case a linked object is misused. + ++ Or if embedded object is misused as a linked object. +
+ */ +published exception LinkageMisuseException: com::sun::star::uno::Exception +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/MSOLEObjectSystemCreator.idl b/offapi/com/sun/star/embed/MSOLEObjectSystemCreator.idl new file mode 100644 index 0000000000..e0638dc94f --- /dev/null +++ b/offapi/com/sun/star/embed/MSOLEObjectSystemCreator.idl @@ -0,0 +1,31 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module embed { + +/** + @since LibreOffice 4.1 + */ +service MSOLEObjectSystemCreator : XEmbedObjectClipboardCreator; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/NeedsRunningStateException.idl b/offapi/com/sun/star/embed/NeedsRunningStateException.idl new file mode 100644 index 0000000000..b85625798c --- /dev/null +++ b/offapi/com/sun/star/embed/NeedsRunningStateException.idl @@ -0,0 +1,41 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module embed { + + +/** This exception can be thrown in case a list of accepted verbs of states is + requested and the object is in loaded state and this information can be + retrieved only when the object is in running state. + ++ This exception means that the object supports at least running state in + addition to the loaded state. Other states and possible verbs can be + detected only after object is switched to running state. + */ +published exception NeedsRunningStateException: WrongStateException +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/NoVisualAreaSizeException.idl b/offapi/com/sun/star/embed/NoVisualAreaSizeException.idl new file mode 100644 index 0000000000..252c0da5f7 --- /dev/null +++ b/offapi/com/sun/star/embed/NoVisualAreaSizeException.idl @@ -0,0 +1,35 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module embed { + + +/** This exception can be thrown in case the object can not provide own visual + area currently. + */ +published exception NoVisualAreaSizeException: com::sun::star::uno::Exception +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/OLEEmbeddedObjectFactory.idl b/offapi/com/sun/star/embed/OLEEmbeddedObjectFactory.idl new file mode 100644 index 0000000000..467c038b45 --- /dev/null +++ b/offapi/com/sun/star/embed/OLEEmbeddedObjectFactory.idl @@ -0,0 +1,31 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module embed { + +/** + @since LibreOffice 4.1 + */ +service OLEEmbeddedObjectFactory : XEmbeddedObjectCreator; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/OLESimpleStorage.idl b/offapi/com/sun/star/embed/OLESimpleStorage.idl new file mode 100644 index 0000000000..d7e6b1f902 --- /dev/null +++ b/offapi/com/sun/star/embed/OLESimpleStorage.idl @@ -0,0 +1,57 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module embed { +/** This service provides a simple functionality to allow + read/write the storages in OLE storage format. +*/ +published service OLESimpleStorage: XOLESimpleStorage +{ + // CONSTRUCTORS ---------------------------------------------------------- + /** is used to initialize the object on it's creation. + + @param xInputStream + [in] the InputStream that contains data in OLE storage format. + + @param bNoTempCopy + [in] specifies whether a temporary copy should be created during + substreams opening. If the copy is not created the storage must + stay alive while the opened substreams are used. + + */ + createFromInputStream ([in] ::com::sun::star::io::XInputStream xInputStream, [in] boolean bNoTempCopy); + + /** is used to initialize the object on it's creation. + + @param xStream + [in] the Stream that contains data in OLE storage format. + + @param bNoTempCopy + [in] specifies whether a temporary copy should be created during + substreams opening. If the copy is not created the storage must + stay alive while the opened substreams are used. + + */ + createFromStream ([in] ::com::sun::star::io::XStream xStream, [in] boolean bNoTempCopy); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/OOoEmbeddedObjectFactory.idl b/offapi/com/sun/star/embed/OOoEmbeddedObjectFactory.idl new file mode 100644 index 0000000000..c1462018ab --- /dev/null +++ b/offapi/com/sun/star/embed/OOoEmbeddedObjectFactory.idl @@ -0,0 +1,31 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module embed { + +/** + @since LibreOffice 4.1 + */ +service OOoEmbeddedObjectFactory : XEmbeddedObjectCreator; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/ObjectSaveVetoException.idl b/offapi/com/sun/star/embed/ObjectSaveVetoException.idl new file mode 100644 index 0000000000..e4ad1e43a4 --- /dev/null +++ b/offapi/com/sun/star/embed/ObjectSaveVetoException.idl @@ -0,0 +1,37 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module embed { + + +/** This exception can be thrown in case container wants to avoid objects + saving. + + @see XEmbeddedClient + */ +published exception ObjectSaveVetoException: com::sun::star::uno::Exception +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/StateChangeInProgressException.idl b/offapi/com/sun/star/embed/StateChangeInProgressException.idl new file mode 100644 index 0000000000..4c091f51a5 --- /dev/null +++ b/offapi/com/sun/star/embed/StateChangeInProgressException.idl @@ -0,0 +1,43 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module embed { + + +/** This exception can be thrown in case the object does not allow + to call requested functionality currently because the object is changing + state. + */ +published exception StateChangeInProgressException: com::sun::star::embed::WrongStateException +{ + /** contains the target state the object tries to reach currently. + +
+ Contains a value from EmbedStates constant set. +
+ */ + long TargetState; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/Storage.idl b/offapi/com/sun/star/embed/Storage.idl new file mode 100644 index 0000000000..4f5c5377cd --- /dev/null +++ b/offapi/com/sun/star/embed/Storage.idl @@ -0,0 +1,308 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module embed { + +/** This is a service that allows to get access to a package using storage + hierarchy. + ++ A root storage should be retrieved by using StorageFactory + service. Substorages are created through XStorage interface + of a parent storage. +
+ */ +published service Storage +{ + /** This service describes the base functionality of storages. + ++ Please see below the description of additional requirements for the + package storage implementation. +
+ ++ A root storage is created by StorageFactory + and is controlled by refcounting. In case refcounting + is decreased to zero the storage will be disposed + automatically. It is still strongly recommended that + a root storage is disposed explicitly since in garbage + collector based languages the refcounting can be + decreased too late and resources locked by the storage + will not be freed until then. +
+ ++ A substorage is created by XStorage + interface of storage. Each time a substorage is opened + it is locked ( in case it is opened in readonly mode + it is locked for writing, in case it is opened in + read-write mode it is locked for reading and writing ) + until it is disposed. The lifetime of substorage is + also controlled by refcounting but because of mentioned + garbage collection specific it is strongly recommended + to dispose substorages explicitly. +
+ ++ In case a storage object is disposed all the elements + ( substorages and substreams ) retrieved from the + object are disposed. If the storage was opened in + read-write mode all non-committed changes will be lost. +
++ This method returns StorageStream + service implementation. +
+ ++ If the child stream is an encrypted one a correct + common storage password should be set through + XEncryptionProtectedSource interface to + this storage or to a one of storages in parent + hierarchy. In case the password is not set or is a + wrong one an exception will be thrown. +
++ This method returns StorageStream service + implementation. +
+ ++ The latest flashed version of the stream will be used. + The stream can be flashed explicitly by + com::sun::star::io::XOutputStream::flush() + call. +
+ ++ A storage flashes on commit all the child streams it + owns. So in case after the stream is changed neither + the storage was committed nor the stream was flushed + explicitly, the changes will not appear in the new + created stream. This method allows to retrieve copy of + a child stream even in case it is already opened for + writing. +
+ ++ If the child stream is an encrypted one a correct + common storage password should be set through + XEncryptionProtectedSource interface to + this storage or to a one of storages in parent + hierarchy. In case the password is not set or is a + wrong one an exception will be thrown. +
++ This method returns StorageStream service + implementation. +
+ ++ The latest flashed version of the stream will be used. + The stream can be flashed explicitly by + com::sun::star::io::XOutputStream::flush() + call. +
+ ++ A storage flashes on commit all the child streams it + owns. So in case after the stream is changed neither + the storage was committed nor the stream was flushed + explicitly, the changes will not appear in the new + created stream. This method allows to retrieve copy of + a child stream even in case it is already opened for + writing. +
++ This method gets Storage service + implementation and fills it in with the contents of + the requested substorage. The latest committed version + of child storage will be used. So in case the child + storage was not committed after it was changed, the + changes will not appear in the new created storage. +
+ ++ This method allows to retrieve copy of a child storage + even in case it is already opened for writing. +
++ If a storage is committed all changes made to it will be integrated to + its parent storage. This is recursive process, so the last committed + storage should be the root one. For the package based storages commit + of a root storage also means flashing to the related medium. If + a storage is not committed, no changes for it or its child elements + will be stored. +
+ */ + interface ::com::sun::star::embed::XTransactedObject; + + /** allows to track storage's transaction state. + */ + interface ::com::sun::star::embed::XTransactionBroadcaster; + + /** allows to set password to a root storage. + ++ This interface can be supported by a storage to allow to set + a common storage password. This password is used as default password + to decrypt all encrypted streams and to encrypt streams that are + marked to use common storage password on storing. + Specifying of the password for a storage allows to use it for the + whole subtree. Of course substorage can allow to overwrite the common + storage password for own subtree. +
+ */ + [optional] + interface ::com::sun::star::embed::XEncryptionProtectedSource; + + /** allows to get and set the media type of the storage. + */ + [property] string MediaType; + + /** allows to get and set the version of the format related to the + MediaType. + */ + [property,optional] string Version; + + /** allows to detect whether mediatype is detected by using fallback + approach. + ++ Can be set to true if the mediatype can not be detected in standard + way, but there is a fallback solution allows to do it. +
+ ++ Usually means that the document validity is questionable, although + the package itself is not corrupted. The decision about document + validity in this case is in application hands. It is up to user of + the storage to decide whether he accepts the fallback approach for + an implementation of this service, outputs a warning or an error. +
+ */ + [property, readonly] boolean MediaTypeFallbackIsUsed; + + /** allows to detect whether the storage is a root one. + */ + [property, readonly] boolean IsRoot; + + /** allows to detect whether storage is open in "repair package" mode or + not. + */ + [property, optional, readonly] boolean RepairPackage; + + /** allows to detect if the storage contains encrypted entries. + ++ In case it is set to `TRUE` the storage itself and/or a tree of + substorages contain encrypted streams. Usually in case this property + is supported the implementation supports + XEncryptionProtectedSource interface. +
+ */ + [property, optional, readonly] boolean HasEncryptedEntries; + + /** allows to detect if the storage contains non-encrypted entries. + ++ In case it is set to `TRUE` the storage itself and/or a tree of + substorages contains non-encrypted streams. Usually in case this + property is supported the implementation supports + XEncryptionProtectedSource interface. +
+ */ + [property, optional, readonly] boolean HasNonEncryptedEntries; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/StorageFactory.idl b/offapi/com/sun/star/embed/StorageFactory.idl new file mode 100644 index 0000000000..32311cfba9 --- /dev/null +++ b/offapi/com/sun/star/embed/StorageFactory.idl @@ -0,0 +1,100 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module embed { + +/** The StorageFactory is a service that allows to create + a storage based on either stream or URL. + ++ In case + com::sun::star::lang::XSingleServiceFactory::createInstance() + call is used the result storage will be open in read-write mode based + on an arbitrary medium. +
+ ++ In case + com::sun::star::lang::XSingleServiceFactory::createInstanceWithArguments() + call is used a sequence of the following parameters can be used: +
+ ++ The parameters are optional, that means that sequence can be empty or + contain only first parameter, or first and second one. In case + no parameters are provided the call works the same way as + com::sun::star::lang::XSingleServiceFactory::createInstance(). + In case only first parameter is provided, the storage is opened in + readonly mode. +
+ ++ The opened root storage can support read access in addition to + specified one. +
+*/ +published service StorageFactory + : ::com::sun::star::lang::XSingleServiceFactory; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/StorageFormats.idl b/offapi/com/sun/star/embed/StorageFormats.idl new file mode 100644 index 0000000000..c2fd6cf398 --- /dev/null +++ b/offapi/com/sun/star/embed/StorageFormats.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 . + */ + + + +module com { module sun { module star { module embed { + +/** The constant set contains IDs of formats that are supported by + StorageFactory. + + @see StorageFactory + @since OOo 3.3 +*/ +published constants StorageFormats +{ + /** specifies package format + */ + const long PACKAGE = 1; + + /** specifies zip format + */ + const long ZIP = 2; + + /** specifies Office Open XML format + */ + const long OFOPXML = 3; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/StorageStream.idl b/offapi/com/sun/star/embed/StorageStream.idl new file mode 100644 index 0000000000..c7429aef32 --- /dev/null +++ b/offapi/com/sun/star/embed/StorageStream.idl @@ -0,0 +1,194 @@ +/* -*- 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 . + */ + + + + + module com { module sun { module star { module embed { + +/** This is a service that represents a stream that can be provided by + XStorage::openStreamElement() call implemented by + Storage service. + ++ In case a stream is open with read-write access only one instance + of the stream can exist. +
+ */ +published service StorageStream +{ + /** allows to get access to com::sun::star::io::XInputStream + and com::sun::star::io::XOutputStream + implementations. + ++ In case the storage stream is open readonly the returned reference + to com::sun::star::io::XOutputStream will be + empty. +
+ */ + interface ::com::sun::star::io::XStream; + + /** allows to control object lifetime. + ++ A storage stream is created by a storage and has a restrictions + depending on the mode the stream is opened in. +
+ ++ In case a stream is opened with read-write access only one instance of + the stream can exist. It means that the stream can not be reopened + even for readonly access until the read-write instance is disposed. + From the other side it is possible to open multiple streams for + readonly access. But because of the rule mentioned above it will not + be possible to open the stream for read-write access until all the + readonly instances are disposed. +
+ ++ The stream must be disposed by + com::sun::star::lang::XComponent::dispose() + call or by explicit closing of input and output ( if provided ) + streams implementations with + com::sun::star::io::XInputStream::closeInput() + and + com::sun::star::io::XOutputStream::closeOutput() + calls. +
+ ++ When a stream is disposed all the changes that were done for it are + automatically flashed, so that they become visible from parent + storage. It is also possible to flash the stream explicitly. +
+ ++ In case parent storage is disposed the stream is disposed + automatically. +
+ ++ In case a stream is disposed any call to its methods should result in + com::sun::star::lang::DisposedException. +
+ */ + interface ::com::sun::star::lang::XComponent; + + /** allows to get access to stream properties. + */ + interface ::com::sun::star::beans::XPropertySet; + + /** allows to seek to a specified position within the stream. + ++ This interface must be supported in case either seekable readonly + or read-write access is requested. +
+ */ + [optional] + interface ::com::sun::star::io::XSeekable; + + /** allows to set password to the stream. + ++ This interface must be supported by a stream with read-write access + to allow to set a password that should be used next time the + stream is stored. +
+ ++ If the password is set or changed by this interface and the + stream is closed the new password should be used to get access to the + stream next time. +
+ */ + [optional] + interface ::com::sun::star::embed::XEncryptionProtectedSource; + + /** allows to get and set media type of the stream. + */ + [property] string MediaType; + + /** specifies if the stream should be compressed next time it is stored. + */ + [property] boolean IsCompressed; + + /** allows to detect if the stream is encrypted. + ++ The property value `TRUE` means that the stream is currently encrypted. + `FALSE` - the stream is not encrypted. +
+ ++ If somebody sets a password explicitly by using + XEncryptionProtectedSource interface the value is + automatically set to `TRUE`. If the interface is used to remove + the encryption - the value is automatically set to `FALSE`. +
+ + */ + [property, readonly] boolean IsEncrypted; + + /** specifies whether the stream will become encrypted next time the + common storage password holder is committed. + ++ The property value `TRUE` means that the stream will become encrypted + after the closest storage in the parent hierarchy, that has common + storage password, is committed. + `FALSE` - the stream will not react to commit of such a storage. +
+ ++ In case stream is not encrypted and the property is set to `TRUE`, + the stream will stay non-encrypted until the closest storage + in the parent hierarchy, that has common storage password, is committed. + On the commit the stream will be encrypted with the common storage + password. If there is no such storage in the hierarchy the stream + will not be encrypted at all. + Thus this property must be set very carefully. +
+ ++ If somebody sets a password explicitly by using + XEncryptionProtectedSource interface the value is + automatically set to `FALSE` and the stream becomes encrypted + with specified password immediately. +
+ ++ In case stream is encrypted one and the value is set to `TRUE` + the stream becomes non-encrypted until the common storage password + holder is committed. The data about previously set password ( if any ) + will be removed and the stream can be accessed as non-encrypted stream. +
+ */ + [property] boolean UseCommonStoragePasswordEncryption; + + /** allows to detect size of the stream in bytes. + */ + [property, readonly] long Size; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/StorageWrappedTargetException.idl b/offapi/com/sun/star/embed/StorageWrappedTargetException.idl new file mode 100644 index 0000000000..a6f6485166 --- /dev/null +++ b/offapi/com/sun/star/embed/StorageWrappedTargetException.idl @@ -0,0 +1,35 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module embed { + + +/** This exception can wrap an exception thrown during XStorage + methods execution. + */ +published exception StorageWrappedTargetException: com::sun::star::lang::WrappedTargetException +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/UnreachableStateException.idl b/offapi/com/sun/star/embed/UnreachableStateException.idl new file mode 100644 index 0000000000..c832e47cec --- /dev/null +++ b/offapi/com/sun/star/embed/UnreachableStateException.idl @@ -0,0 +1,41 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module embed { + + +/** This exception can be thrown in case specified state can not be reached. + */ +published exception UnreachableStateException: com::sun::star::uno::Exception +{ + /** The current state of the object. + */ + long CurrentState; + + /** The state that could not be reached. + */ + long NextState; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/UseBackupException.idl b/offapi/com/sun/star/embed/UseBackupException.idl new file mode 100644 index 0000000000..792aa97770 --- /dev/null +++ b/offapi/com/sun/star/embed/UseBackupException.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 . + */ + + + + module com { module sun { module star { module embed { + + +/** This exception can be thrown in case a storage commit is failed. ++ If a commit process of a storage fails on last transfer and the original + content may be corrupted the storage should throw this exception to notify + the user that a backup usage is required to restore the original content. +
+ ++ The storage itself must disconnect from the medium it is based on to allow + restoring. Although the storage will still contain all the data + internally, and can be used as a temporary storage usually used. +
+ */ +published exception UseBackupException: com::sun::star::io::IOException +{ + /** The URL of the temporary file the storage is based on now. + */ + string TemporaryFileURL; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/VerbAttributes.idl b/offapi/com/sun/star/embed/VerbAttributes.idl new file mode 100644 index 0000000000..6d892062d3 --- /dev/null +++ b/offapi/com/sun/star/embed/VerbAttributes.idl @@ -0,0 +1,43 @@ +/* -*- 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 . + */ + + + +module com { module sun { module star { module embed { + +/** The constant set specifies possible attributes of a verb. + + @see VerbDescriptor +*/ +published constants VerbAttributes +{ + /** Execution of the verb with this attribute must not modify the + object. + */ + const long MS_VERBATTR_NEVERDIRTIES = 1; + + /** indicates that the verb should appear in the object's menu. + */ + const long MS_VERBATTR_ONCONTAINERMENU = 2; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/VerbDescriptor.idl b/offapi/com/sun/star/embed/VerbDescriptor.idl new file mode 100644 index 0000000000..5aa20a53ab --- /dev/null +++ b/offapi/com/sun/star/embed/VerbDescriptor.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 . + */ + + + + module com { module sun { module star { module embed { + + +/** describes a verb. + */ +published struct VerbDescriptor +{ + /** specifies the id of the verb. + */ + long VerbID; + + /** specifies the name of the verb. + */ + string VerbName; + + /** specifies the flags that are set for the verb. + ++ The flags can be used to build the verb's menu. +
+ */ + long VerbFlags; + + /** specifies the attributes of the verb. + ++ It can take values from VerbAttributes. +
+ */ + long VerbAttributes; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/VisualRepresentation.idl b/offapi/com/sun/star/embed/VisualRepresentation.idl new file mode 100644 index 0000000000..483b7887fb --- /dev/null +++ b/offapi/com/sun/star/embed/VisualRepresentation.idl @@ -0,0 +1,41 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module embed { + + +/** can contain a graphical representation in an arbitrary format. + */ +published struct VisualRepresentation +{ + /** The format of the visual representation. + */ + ::com::sun::star::datatransfer::DataFlavor Flavor; + + /** The data in the format specified by #Flavor. + */ + any Data; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/WrongStateException.idl b/offapi/com/sun/star/embed/WrongStateException.idl new file mode 100644 index 0000000000..d1bd86f242 --- /dev/null +++ b/offapi/com/sun/star/embed/WrongStateException.idl @@ -0,0 +1,35 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module embed { + + +/** This exception can be thrown in case the object's state does not allow + to call requested functionality. + */ +published exception WrongStateException: com::sun::star::uno::Exception +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/XActionsApproval.idl b/offapi/com/sun/star/embed/XActionsApproval.idl new file mode 100644 index 0000000000..2c0e287742 --- /dev/null +++ b/offapi/com/sun/star/embed/XActionsApproval.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 . + */ + + + module com { module sun { module star { module embed { + +/** allows to request an approval for an action. + ++ An implementation of this interface is usually provided to another object + to allow this object to request an approval for actions. The list of + possible actions must be documented in documentation of the object. +
+ */ +published interface XActionsApproval: com::sun::star::uno::XInterface +{ + /** requests an approval for the specified action. + + @param nAction + a value specifying the action that should be approved. Could take + values from Actions constants set. The explicit set + of the actions should be documented by the object that is going + to use this interface for approval as for example + InstanceLocker does. + + @return + returns `TRUE` in case the specified action is approved. + */ + boolean approveAction( [in] long nAction ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/XClassifiedObject.idl b/offapi/com/sun/star/embed/XClassifiedObject.idl new file mode 100644 index 0000000000..c1f76c6bd4 --- /dev/null +++ b/offapi/com/sun/star/embed/XClassifiedObject.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 . + */ + + + + module com { module sun { module star { module embed { + +/** represents common functionality for embedded objects + */ +published interface XClassifiedObject: com::sun::star::uno::XInterface +{ + /** retrieves class ID of the object. + + @return + unique class ID of the object + */ + sequence< byte > getClassID(); + + /** retrieves symbolic name for the object type to be used in UI. + + @return + the symbolic name for the object + */ + string getClassName(); + + /** sets the class ID and symbolic name to an object. + + @param aClassID + the new class ID + + @param sClassName + the new symbolic name + + @throws ::com::sun::star::lang::NoSupportException + in case changing of class information is not allowed + */ + void setClassInfo( [in] sequence< byte > aClassID, + [in] string sClassName ) + raises( ::com::sun::star::lang::NoSupportException ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/XCommonEmbedPersist.idl b/offapi/com/sun/star/embed/XCommonEmbedPersist.idl new file mode 100644 index 0000000000..9bb9167c43 --- /dev/null +++ b/offapi/com/sun/star/embed/XCommonEmbedPersist.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 . + */ + + + module com { module sun { module star { module embed { + +/** specifies common implementation for embedded objects and links + persistence. + */ +published interface XCommonEmbedPersist: com::sun::star::uno::XInterface +{ + /** lets the object or the link store itself. + + @throws com::sun::star::embed::WrongStateException + the object is in wrong state + + @throws com::sun::star::io::IOException + in case of io problems during saving + + @throws com::sun::star::uno::Exception + in case of other problems + */ + void storeOwn() + raises( ::com::sun::star::embed::WrongStateException, + ::com::sun::star::io::IOException, + ::com::sun::star::uno::Exception ); + + /** allows to detect if the data store is read-only. + + @returns + `TRUE` if the data store is readonly or opened readonly + `FALSE` otherwise + + @throws com::sun::star::embed::WrongStateException + the object is in wrong state ( has no entry ) + */ + boolean isReadonly() + raises( ::com::sun::star::embed::WrongStateException ); + + /** lets the object or the link reload itself. + ++ If the object has persistence it will be reloaded from its persistent + entry. +
+ + @param aMediaArgs + optional parameters for document reloading, see also + com::sun::star::document::MediaDescriptor + + @param aObjectArgs + optional parameters for object reloading, see also + com::sun::star::embed::EmbeddedObjectDescriptor + + @throws ::com::sun::star::lang::IllegalArgumentException + one of arguments is illegal + + @throws com::sun::star::embed::WrongStateException + the object is in wrong state + + @throws com::sun::star::io::IOException + in case of io problems during opening or creation + + @throws com::sun::star::uno::Exception + in case of other problems + */ + void reload( + [in] sequence< ::com::sun::star::beans::PropertyValue > aMediaArgs, + [in] sequence< ::com::sun::star::beans::PropertyValue > aObjectArgs ) + raises( ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::embed::WrongStateException, + ::com::sun::star::io::IOException, + ::com::sun::star::uno::Exception ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/XComponentSupplier.idl b/offapi/com/sun/star/embed/XComponentSupplier.idl new file mode 100644 index 0000000000..a257c00cc9 --- /dev/null +++ b/offapi/com/sun/star/embed/XComponentSupplier.idl @@ -0,0 +1,42 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module embed { + +/** provides access to a component. + */ +published interface XComponentSupplier: com::sun::star::uno::XInterface +{ + /** allows to get access to a component. ++ The component may not support + com::sun::star::lang::XComponent interface. +
+ + @return + component representation + */ + ::com::sun::star::util::XCloseable getComponent(); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/XEmbedObjectClipboardCreator.idl b/offapi/com/sun/star/embed/XEmbedObjectClipboardCreator.idl new file mode 100644 index 0000000000..f128ceee64 --- /dev/null +++ b/offapi/com/sun/star/embed/XEmbedObjectClipboardCreator.idl @@ -0,0 +1,79 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module embed { + +/** allows to create and initialize a new embedded object from clipboard. + ++ This interface contains methods that can help to create and initialize + an embedded object based on system clipboard. +
+ */ +published interface XEmbedObjectClipboardCreator: com::sun::star::uno::XInterface +{ + /** creates a new object and initializes it from the system clipboard. + +In case specified entry exists it's contents are ignored and + will be overwritten on storing. +
+ ++ The clipboard can provide a number of choices that are container + related. This information will be returned in the + InsertedObjectInfo object. +
+ + @param xStorage + a parent storage the entry should be created/opened in + + @param sEntryName + a name for the entry + + @param aObjectArgs + optional parameters for the object persistence initialization + see also + EmbeddedObjectDescriptor + + @returns + the structure containing the object and container related options + + @throws ::com::sun::star::lang::IllegalArgumentException + one of arguments is illegal + + @throws com::sun::star::io::IOException + in case of io problems during opening or creation + + @throws com::sun::star::uno::Exception + in case of other problems + */ + InsertedObjectInfo createInstanceInitFromClipboard( + [in] ::com::sun::star::embed::XStorage xStorage, + [in] string sEntryName, + [in] sequence< ::com::sun::star::beans::PropertyValue > aObjectArgs ) + raises( ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::io::IOException, + ::com::sun::star::uno::Exception ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/XEmbedObjectCreator.idl b/offapi/com/sun/star/embed/XEmbedObjectCreator.idl new file mode 100644 index 0000000000..e34f62d04e --- /dev/null +++ b/offapi/com/sun/star/embed/XEmbedObjectCreator.idl @@ -0,0 +1,165 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module embed { + +/** allows to create and initialize a new embedded object. + +
+ This interface contains methods that can help to create and initialize + an embedded object. +
+ */ +published interface XEmbedObjectCreator: com::sun::star::uno::XInterface +{ + /** creates a new object and initializes it as a new one. + +In case specified entry exists it's contents are ignored and + will be overwritten on storing. +
+ + @param aClassID + the class id of the new object + + @param sClassName + the class name of the new object + + @param xStorage + a parent storage the entry should be created/opened in + + @param sEntryName + a name for the entry + + @param aObjectArgs + optional parameters for the object persistence initialization + see also + EmbeddedObjectDescriptor + + @throws ::com::sun::star::lang::IllegalArgumentException + one of arguments is illegal + + @throws com::sun::star::io::IOException + in case of io problems during opening or creation + + @throws com::sun::star::uno::Exception + in case of other problems + */ + ::com::sun::star::uno::XInterface createInstanceInitNew( + [in] sequence< byte > aClassID, + [in] string sClassName, + [in] ::com::sun::star::embed::XStorage xStorage, + [in] string sEntryName, + [in] sequence< ::com::sun::star::beans::PropertyValue > aObjectArgs ) + raises( ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::io::IOException, + ::com::sun::star::uno::Exception ); + + + /** creates a new object that should be based on specified storage entry. + +The specified entry must exists and the object should be loaded + from the entry. In case a persistent representation of a link is + specified, the result object will be a link. +
+ + @param xStorage + a parent storage the entry should be opened in + + @param sEntryName + a name for the entry + + @param aMediaDescriptor + an object of type + com::sun::star::document::MediaDescriptor that + specifies document related properties; please remember that target + related parameters, for example URL, will be ignored since the + object should be loaded from storage entry + + @param aObjectArgs + an object of type EmbeddedObjectDescriptor + contains object related properties + + @throws ::com::sun::star::lang::IllegalArgumentException + one of arguments is illegal + + @throws ::com::sun::star::container::NoSuchElementException + the specified entry does not exist + + @throws com::sun::star::io::IOException + in case of io problems during opening + + @throws com::sun::star::uno::Exception + in case of other problems + */ + ::com::sun::star::uno::XInterface createInstanceInitFromEntry( + [in] ::com::sun::star::embed::XStorage xStorage, + [in] string sEntryName, + [in] sequence< ::com::sun::star::beans::PropertyValue > aMediaDescriptor, + [in] sequence< ::com::sun::star::beans::PropertyValue > aObjectArgs ) + raises( ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::container::NoSuchElementException, + ::com::sun::star::io::IOException, + ::com::sun::star::uno::Exception ); + + /** creates a new object and initializes it based on + com::sun::star::document::MediaDescriptor. + +In case specified entry exists it's contents are ignored and will + be overwritten on storing. +
+ + @param xStorage + a parent storage the entry should be created/opened in + + @param sEntryName + a name for the entry + + @param aMediaDescriptor + an object of type + com::sun::star::document::MediaDescriptor that + specifies source + + @param aObjectArgs + an object of type EmbeddedObjectDescriptor + contains object related properties + + @throws ::com::sun::star::lang::IllegalArgumentException + one of arguments is illegal + + @throws com::sun::star::io::IOException + in case of io problems during opening or creation + + @throws com::sun::star::uno::Exception + in case of other problems + */ + ::com::sun::star::uno::XInterface createInstanceInitFromMediaDescriptor( + [in] ::com::sun::star::embed::XStorage xStorage, + [in] string sEntryName, + [in] sequence< ::com::sun::star::beans::PropertyValue > aMediaDescriptor, + [in] sequence< ::com::sun::star::beans::PropertyValue > aObjectArgs ) + raises( ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::io::IOException, + ::com::sun::star::uno::Exception ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/XEmbedObjectFactory.idl b/offapi/com/sun/star/embed/XEmbedObjectFactory.idl new file mode 100644 index 0000000000..ee91ee7d4a --- /dev/null +++ b/offapi/com/sun/star/embed/XEmbedObjectFactory.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 . + */ + + + module com { module sun { module star { module embed { + +/** allows to create and initialize a new embedded object of specified type. ++ This interface provides user with full control over object creation. +
+ */ +published interface XEmbedObjectFactory: com::sun::star::uno::XInterface +{ + /** creates a new object and transport parameters for persistent + initialization. + ++ This method can be used to have a full control over persistence + initialization of an object. +
+ ++ If the service implementation does not support + XEmbedObjectCreator interface, it must accept the empty + aClassID parameter in case of loading from existing entry. +
+ + @param aClassID + the class id of the new object + + @param sClassName + the class name of the new object + + @param xStorage + a parent storage the entry should be created/opened in + + @param sEntName + a name for the entry + + @param nEntryConnectionMode + a mode in which the object should be initialized from entry + can take values from EntryInitModes constant set + + @param aArgs + optional parameters for the embedded document persistence + initialization, see also + com::sun::star::document::MediaDescriptor + + @param aObjectArgs + optional parameters for the object persistence initialization, + see also + com::sun::star::embed::EmbeddedObjectDescriptor + + @throws ::com::sun::star::lang::IllegalArgumentException + one of arguments is illegal + + @throws com::sun::star::io::IOException + in case of io problems during opening or creation + + @throws com::sun::star::uno::Exception + in case of other problems + */ + ::com::sun::star::uno::XInterface createInstanceUserInit( + [in] sequence< byte > aClassID, + [in] string sClassName, + [in] ::com::sun::star::embed::XStorage xStorage, + [in] string sEntName, + [in] long nEntryConnectionMode, + [in] sequence< ::com::sun::star::beans::PropertyValue > aArgs, + [in] sequence< ::com::sun::star::beans::PropertyValue > aObjectArgs ) + raises( ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::io::IOException, + ::com::sun::star::uno::Exception ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/XEmbedPersist.idl b/offapi/com/sun/star/embed/XEmbedPersist.idl new file mode 100644 index 0000000000..29bb9601ee --- /dev/null +++ b/offapi/com/sun/star/embed/XEmbedPersist.idl @@ -0,0 +1,227 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module embed { + +/** specifies an implementation for embedded object persistence. ++ The idea is that any usable embedded object should be initialized + with an entry in the parent storage that will be used as persistent + representation. +
+ */ +published interface XEmbedPersist: XCommonEmbedPersist +{ + /** provides object with a parent storage and a name for object's entry. + ++ An entry with the specified name should be created/opened inside + provided storage. It can be a storage or a stream. For example, + OOo API will refer to OLE storages only by streams, but the object + implementation will use storage based on this stream. +
+ ++ Factory does this call to initialize the embedded object. + The linked object can be initialized by factory in different way + ( internally ). +
+ ++ It is also possible to switch object persistent representation through + this call. Actually this is the way, this call can be used by user + ( since initialization is done by factory ). +
+ + @param xStorage + a parent storage the entry should be created in + + @param sEntName + a name for the entry + + @param nEntryConnectionMode + a mode in which the object should be initialized from entry + can take values from EntryInitModes constant set + + @param aMediaArgs + optional parameters for the embedded document persistence + initialization, see also + com::sun::star::document::MediaDescriptor + + @param aObjectArgs + optional parameters for the object persistence initialization, + see also + com::sun::star::embed::EmbeddedObjectDescriptor + + @throws ::com::sun::star::lang::IllegalArgumentException + one of arguments is illegal + + @throws com::sun::star::embed::WrongStateException + the object is in wrong state + + @throws com::sun::star::io::IOException + in case of io problems during opening or creation + + @throws com::sun::star::uno::Exception + in case of other problems + */ + void setPersistentEntry( + [in] ::com::sun::star::embed::XStorage xStorage, + [in] string sEntName, + [in] long nEntryConnectionMode, + [in] sequence< ::com::sun::star::beans::PropertyValue > aMediaArgs, + [in] sequence< ::com::sun::star::beans::PropertyValue > aObjectArgs ) + raises( ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::embed::WrongStateException, + ::com::sun::star::io::IOException, + ::com::sun::star::uno::Exception ); + + /** lets the object store itself to an entry in destination storage, + the own persistence entry is not changed. + + @param xStorage + a parent storage the entry should be created inside + + @param sEntName + a name for the entry + + @param aMediaArgs + optional parameters for document saving, see also + com::sun::star::document::MediaDescriptor + + @param aObjectArgs + optional parameters for the object saving, see also + com::sun::star::embed::EmbeddedObjectDescriptor + + @throws ::com::sun::star::lang::IllegalArgumentException + one of arguments is illegal + + @throws com::sun::star::embed::WrongStateException + the object is in wrong state + + @throws com::sun::star::io::IOException + in case of io problems during storing + + @throws com::sun::star::uno::Exception + in case of other problems + */ + void storeToEntry( + [in] ::com::sun::star::embed::XStorage xStorage, + [in] string sEntName, + [in] sequence< ::com::sun::star::beans::PropertyValue > aMediaArgs, + [in] sequence< ::com::sun::star::beans::PropertyValue > aObjectArgs ) + raises( ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::embed::WrongStateException, + ::com::sun::star::io::IOException, + ::com::sun::star::uno::Exception ); + + /** lets the object store itself to an entry in destination storage and + prepare to use the new entry for own persistence. + ++ The object should be stored to the new entry, after that the entry + should be remembered by the object. After the storing process is + finished the XEmbedPersist::saveCompleted() method + can be used to specify whether the object should use the new entry or + the old one. The object persistence can not be used until + XEmbedPersist::saveCompleted() is called. + So this state can be treated as "HandsOff" state. +
+ + @param xStorage + a parent storage the entry should be created in + + @param sEntName + a name for the entry + + @param aMediaArgs + optional parameters for document saving, see also + com::sun::star::document::MediaDescriptor + + @param aObjectArgs + optional parameters for the object saving, see also + com::sun::star::embed::EmbeddedObjectDescriptor + + @throws ::com::sun::star::lang::IllegalArgumentException + one of arguments is illegal + + @throws com::sun::star::embed::WrongStateException + the object is in wrong state + + @throws com::sun::star::io::IOException + in case of io problems during storing + + @throws com::sun::star::uno::Exception + in case of other problems + */ + void storeAsEntry( + [in] ::com::sun::star::embed::XStorage xStorage, + [in] string sEntName, + [in] sequence< ::com::sun::star::beans::PropertyValue > aMediaArgs, + [in] sequence< ::com::sun::star::beans::PropertyValue > aObjectArgs ) + raises( ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::embed::WrongStateException, + ::com::sun::star::io::IOException, + ::com::sun::star::uno::Exception ); + + + /** specifies whether the object should use an old storage or a new one + after "save as" operation. + + @param bUseNew + `TRUE` the new storage should be used + `FALSE` the old one + + @throws com::sun::star::embed::WrongStateException + the object is in wrong state + + @throws com::sun::star::uno::Exception + in case of other problems + */ + + void saveCompleted( [in] boolean bUseNew ) + raises( ::com::sun::star::embed::WrongStateException, + ::com::sun::star::uno::Exception ); + + /** allows to detect if the object has entry. + + @returns + `TRUE` if the object has own entry set + `FALSE` otherwise + */ + boolean hasEntry() + raises( ::com::sun::star::embed::WrongStateException ); + + /** allows to retrieve the current object entry name. + + @returns + the object entry name if any + + @throws com::sun::star::embed::WrongStateException + the object is in wrong state ( has no entry ) + */ + string getEntryName() + raises( ::com::sun::star::embed::WrongStateException ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/XEmbedPersist2.idl b/offapi/com/sun/star/embed/XEmbedPersist2.idl new file mode 100644 index 0000000000..68a82d6e5f --- /dev/null +++ b/offapi/com/sun/star/embed/XEmbedPersist2.idl @@ -0,0 +1,23 @@ +/* -*- 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/. + */ + +module com { module sun { module star { module embed { + +interface XEmbedPersist2 : XEmbedPersist +{ + /** + * Checks whether or not the object has created its persistent + * representation counterpart of its in-memory model. + */ + boolean isStored(); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/XEmbeddedClient.idl b/offapi/com/sun/star/embed/XEmbeddedClient.idl new file mode 100644 index 0000000000..9caa6db33d --- /dev/null +++ b/offapi/com/sun/star/embed/XEmbeddedClient.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 . + */ + + + + + module com { module sun { module star { module embed { + +/** represents common functionality for embedded clients. + */ +published interface XEmbeddedClient: XComponentSupplier +{ + /** asks client to let the object store itself. + + @throws com::sun::star::uno::ObjectSaveVetoException + in case container wants to avoid saving of object + + @throws com::sun::star::uno::Exception + in case of problems during saving + */ + void saveObject() + raises( ::com::sun::star::embed::ObjectSaveVetoException, + ::com::sun::star::uno::Exception ); + + /** An object can use this method to notify the client when the object + outplace window becomes visible or invisible. + + @param bVisible + visibility state of the window + + @throws com::sun::star::embed::WrongStateException + the object is in wrong state + */ + void visibilityChanged( [in] boolean bVisible ) + raises( ::com::sun::star::embed::WrongStateException ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/XEmbeddedObject.idl b/offapi/com/sun/star/embed/XEmbeddedObject.idl new file mode 100644 index 0000000000..0e9d71754e --- /dev/null +++ b/offapi/com/sun/star/embed/XEmbeddedObject.idl @@ -0,0 +1,217 @@ +/* -*- 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 . + */ + + + + + module com { module sun { module star { module embed { + +/** represents common functionality for embedded objects. + */ +published interface XEmbeddedObject +{ + // INTERFACES + /** represents common visualization functionality for embedded objects. + */ + interface XVisualObject; + + /** allows to detect class ID of the object. + */ + interface XClassifiedObject; + + /** allows to get access to the component handled by the object. + */ + interface XComponentSupplier; + + /** allows to be notified when object changes the state. + */ + interface XStateChangeBroadcaster; + + /** allows to be notified about object related events. + */ + interface ::com::sun::star::document::XEventBroadcaster; + + /** allows to control lifetime of the object. + */ + interface ::com::sun::star::util::XCloseable; + + // METHODS + /** changes the state of the object to the requested one. + + @param nNewState + specifies the new state, can take values from the constant set + com::sun::star::embed::EmbedStates + + @throws com::sun::star::embed::UnreachableStateException + the specified state can not be reached + + @throws com::sun::star::embed::WrongStateException + in case object is in invalid state + + @throws com::sun::star::uno::Exception + in case of other problems + */ + void changeState( [in] long nNewState ) + raises( ::com::sun::star::embed::UnreachableStateException, + ::com::sun::star::embed::WrongStateException, + ::com::sun::star::uno::Exception ); + + /** returns supported states for the object. + + @returns + the sequence of states the object can be set to + + @throws com::sun::star::embed::NeedsRunningStateException + means that the object is in loaded state now and can be switched + to running state, other possible states can be detected only when + the object is not in loaded state any more + + @throws com::sun::star::embed::WrongStateException + in case object is in invalid state + */ + sequence< long > getReachableStates() + raises( ::com::sun::star::embed::NeedsRunningStateException, + ::com::sun::star::embed::WrongStateException ); + + /** returns the current state of the object. + + @returns + the current state of the object + + @throws com::sun::star::embed::WrongStateException + in case object is in invalid state + */ + long getCurrentState() + raises( ::com::sun::star::embed::WrongStateException ); + + /** lets object perform an action referenced by nVerbID. + + @param nVerbID + specifies an action to perform, can take values from + EmbedVerbs + + @throws ::com::sun::star::lang::IllegalArgumentException + the verb is not supported + + @throws com::sun::star::embed::WrongStateException + the object is in wrong state to call the function + + @throws com::sun::star::embed::UnreachableStateException + the state, required by the verb, can not be reached + + @throws com::sun::star::uno::Exception + in case of other problems + */ + void doVerb( [in] long nVerbID ) + raises( ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::embed::WrongStateException, + ::com::sun::star::embed::UnreachableStateException, + ::com::sun::star::uno::Exception ); + + /** returns supported verbs for the object. + + @returns + the sequence of verbs the object supports + + @throws com::sun::star::embed::NeedsRunningStateException + means that the object is in loaded state now and can be switched + to running state, acceptable verbs can be detected only when the + object is not in loaded state any more + + @throws com::sun::star::embed::WrongStateException + the object is in wrong state to call the function + */ + sequence< VerbDescriptor > getSupportedVerbs() + raises( ::com::sun::star::embed::NeedsRunningStateException, + ::com::sun::star::embed::WrongStateException ); + + /** sets a connection to the container's client. + + @param xClient + provides a reference to a client implementation + + @throws com::sun::star::embed::WrongStateException + the object is in wrong state + */ + void setClientSite( [in] XEmbeddedClient xClient ) + raises( ::com::sun::star::embed::WrongStateException ); + + /** provides access to the internal link to the container client. + + @returns + a reference to related container client if any is set + + @throws com::sun::star::embed::WrongStateException + the object is in wrong state + */ + XEmbeddedClient getClientSite() + raises( ::com::sun::star::embed::WrongStateException ); + + /** updates object's representations. + + @throws com::sun::star::embed::WrongStateException + the object is in wrong state to call the function + + @throws com::sun::star::uno::Exception + in case problems detected + */ + void update() + raises( ::com::sun::star::embed::WrongStateException, + ::com::sun::star::uno::Exception ); + + /** specifies how often the object's representation should be updated. + + @param nMode + the new update mode, can take values from + EmbeddedUpdateModes + + @throws ::com::sun::star::embed::WrongStateException + the object is in wrong state + */ + void setUpdateMode( [in] long nMode ) + raises( ::com::sun::star::embed::WrongStateException ); + + /** retrieves the status of the object. + + @param nAspect + the aspect specifying the form of object representation + + @return + the value specifying the status of the object for specified aspect + can take values from EmbedMisc constant set + + @throws com::sun::star::embed::WrongStateException + the object is in wrong state + */ + hyper getStatus( [in] hyper nAspect ) + raises( ::com::sun::star::embed::WrongStateException ); + + /** provides object with the name of container document. + + @param sName + name of the container document + */ + void setContainerName( [in] string sName ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/XEmbeddedObjectCreator.idl b/offapi/com/sun/star/embed/XEmbeddedObjectCreator.idl new file mode 100644 index 0000000000..f0354b78a5 --- /dev/null +++ b/offapi/com/sun/star/embed/XEmbeddedObjectCreator.idl @@ -0,0 +1,37 @@ +/* -*- 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 . + */ + + module com { module sun { module star { module embed { + +/** + @since LibreOffice 4.1 + */ +interface XEmbeddedObjectCreator +{ + interface XEmbedObjectCreator; + interface XEmbedObjectFactory; + interface XLinkCreator; + [optional] interface XLinkFactory; +}; + + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/XEmbeddedOleObject.idl b/offapi/com/sun/star/embed/XEmbeddedOleObject.idl new file mode 100644 index 0000000000..5c832a4c98 --- /dev/null +++ b/offapi/com/sun/star/embed/XEmbeddedOleObject.idl @@ -0,0 +1,23 @@ +/* -*- 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/. + */ + + module com { module sun { module star { module embed { + +/** Represents a marker for embedded OLE objects. + * + * @since LibreOffice 5.2 + */ +interface XEmbeddedOleObject +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ diff --git a/offapi/com/sun/star/embed/XEncryptionProtectedSource.idl b/offapi/com/sun/star/embed/XEncryptionProtectedSource.idl new file mode 100644 index 0000000000..f3d583fe6c --- /dev/null +++ b/offapi/com/sun/star/embed/XEncryptionProtectedSource.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 . + */ + + + module com { module sun { module star { module embed { + +/** This interface allows to set a password for an object. + */ +published interface XEncryptionProtectedSource: com::sun::star::uno::XInterface +{ + /** sets a password for the object. + + @param sPassword + the new password + + @throws ::com::sun::star::io::IOException + in case password could not be set + */ + void setEncryptionPassword( [in] string sPassword ) + raises( ::com::sun::star::io::IOException ); + + /** removes encryption from the object. + + @throws ::com::sun::star::io::IOException + in case encryption could not be removed + */ + void removeEncryption() + raises( ::com::sun::star::io::IOException ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/XEncryptionProtectedSource2.idl b/offapi/com/sun/star/embed/XEncryptionProtectedSource2.idl new file mode 100644 index 0000000000..5e086d567d --- /dev/null +++ b/offapi/com/sun/star/embed/XEncryptionProtectedSource2.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 . + */ + + +module com { module sun { module star { module embed { + +/** This interface allows to set a password for an object. + + @since OOo 3.4 + */ +interface XEncryptionProtectedSource2: XEncryptionProtectedSource +{ + /** sets an encryption data for the object. + + @param aEncryptionData + the new encryption data + + @throws ::com::sun::star::io::IOException + in case the data could not be set + */ + void setEncryptionData( [in] sequence< ::com::sun::star::beans::NamedValue > aEncryptionData ) + raises( ::com::sun::star::io::IOException ); + + /** determine if an encryption data is set for this object. + + @return + true if some encryption data was set, false otherwise + */ + boolean hasEncryptionData(); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/XEncryptionProtectedStorage.idl b/offapi/com/sun/star/embed/XEncryptionProtectedStorage.idl new file mode 100644 index 0000000000..da14714c62 --- /dev/null +++ b/offapi/com/sun/star/embed/XEncryptionProtectedStorage.idl @@ -0,0 +1,123 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module embed { + +/** This interface allows to set a password for an object. + + @since OOo 3.4 + */ +interface XEncryptionProtectedStorage: XEncryptionProtectedSource2 +{ + /** allows to set the encryption algorithms for the object. +
+ The algorithms will of course be used only for streams that have been + marked to be encrypted. If no stream in the storage is marked to be + encrypted, the algorithms-related information may have no effect to + the result package. +
+ ++ The following values could be part of the provided sequence: +
++ When provided, switch ODF package encryption to OpenPGP. +
++ For each recipient, add one sequence of named values, each of + the same structure. The following values could be part of that + provided sequence: +
++ This interface must be supported in case either seekable readonly + or read-write access is requested. +
+ */ + [optional] interface ::com::sun::star::io::XSeekable; + + /** allows to set password to the stream. + ++ This interface must be supported by a stream with read-write access + to allow to set a password that should be used next time the + stream is stored if the encryption is supported. +
+ ++ If the password is set or changed by this interface and the + stream is closed the new password should be used to get access to the + stream next time. +
+ */ + [optional] interface ::com::sun::star::embed::XEncryptionProtectedSource; + + /** allows to get access to stream properties. + */ + [optional] interface ::com::sun::star::beans::XPropertySet; + + /** allows to have transacted access. + */ + [optional] interface ::com::sun::star::embed::XTransactedObject; + + /** allows to register a listener for transaction actions. + ++ If XTransactedObject interface is implemented this + interface must be implemented as well. +
+ */ + [optional] interface ::com::sun::star::embed::XTransactionBroadcaster; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/XHatchWindow.idl b/offapi/com/sun/star/embed/XHatchWindow.idl new file mode 100644 index 0000000000..22277503ca --- /dev/null +++ b/offapi/com/sun/star/embed/XHatchWindow.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 . + */ + + + module com { module sun { module star { module embed { + + +/** specifies the operations for a hatch window. + ++ A hatch window is a kind of window that is adopted to contain + an embedded object window to represent the contained window border + and to handle resizing/moving in a specific way: after user have + selected the new size/placement the hatching window sends request + to owner for resizing/moving. + Thus the window can not resize/move itself. +
+ */ +published interface XHatchWindow: com::sun::star::lang::XComponent +{ + /** sets the object that will control resizing/moving, if the object is + not set the window can not be resized/moved. + */ + void setController( [in] XHatchWindowController xController ); + + [attribute] com::sun::star::awt::Size HatchBorderSize; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/XHatchWindowController.idl b/offapi/com/sun/star/embed/XHatchWindowController.idl new file mode 100644 index 0000000000..8506674b67 --- /dev/null +++ b/offapi/com/sun/star/embed/XHatchWindowController.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 . + */ + + + module com { module sun { module star { module embed { + + +/** specifies the operations for a hatch window. + ++ A hatch window owner is responsible to handle resize/move requests + sent by the window. It is also responsible to validate tracking + rectangle size. +
+ */ +published interface XHatchWindowController: com::sun::star::uno::XInterface +{ + /** requests window owner to resize/move the window. + + @param aRect + the new requested position and size of the window + */ + void requestPositioning( [in] com::sun::star::awt::Rectangle aRect ); + + /** returns the closest valid rectangle to the provided one. + + @param aRect + a new selected position and size of the tracking rectangle + + @returns + the closest valid position and size to the provided one + */ + com::sun::star::awt::Rectangle calcAdjustedRectangle( + [in] com::sun::star::awt::Rectangle aRect ); + + void activated(); + void deactivated(); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/XHatchWindowFactory.idl b/offapi/com/sun/star/embed/XHatchWindowFactory.idl new file mode 100644 index 0000000000..b53b312491 --- /dev/null +++ b/offapi/com/sun/star/embed/XHatchWindowFactory.idl @@ -0,0 +1,56 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module embed { + + +/** creates a hatch window implementation. + */ +published interface XHatchWindowFactory: com::sun::star::uno::XInterface +{ + /** creates a new hatch window instance. + + @param xParent + the parent window the hatch window should be created in + + @param aBounds + position and size of the hatch window + + @param aSize + border and handler squares size + + @returns + a new hatch window + + @throws ::com::sun::star::lang::IllegalArgumentException + one of arguments is illegal + + */ + ::com::sun::star::embed::XHatchWindow createHatchWindowInstance( + [in] com::sun::star::awt::XWindowPeer xParent, + [in] com::sun::star::awt::Rectangle aBounds, + [in] com::sun::star::awt::Size aSize ) + raises( ::com::sun::star::lang::IllegalArgumentException ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/XHierarchicalStorageAccess.idl b/offapi/com/sun/star/embed/XHierarchicalStorageAccess.idl new file mode 100644 index 0000000000..4682cd8927 --- /dev/null +++ b/offapi/com/sun/star/embed/XHierarchicalStorageAccess.idl @@ -0,0 +1,169 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module embed { + +/** This interface allows hierarchical access to storage tree. + ++ Currently only streams can be opened using this interface. +
+ ++ The hierarchical access can not be mixed with a normal access. Thus when + in a storage a stream with a path "a/b/c" is accessed using hierarchical + access, another stream "a/b/d" can also be opened with hierarchical + access ( if it is still not opened ), but the substorage "a" can not be + opened ( it is locked by hierarchical access ). +
+ */ +published interface XHierarchicalStorageAccess +{ + // METHODS + /** allows to get access to a child stream of the storage, using + hierarchical path. + ++ In case the stream is open in readonly mode the + com::sun::star::io::XStream::getOutputStream() + method will return an empty reference. +
+ + @param sStreamPath + the path to the substream that should be open + + @param nOpenMode + a mode the stream should be open in, + can be a combination of ElementModes values + + @throws ::com::sun::star::embed::InvalidStorageException + this storage is in invalid state for any reason + + @throws ::com::sun::star::lang::IllegalArgumentException + one of provided arguments is illegal + + @throws ::com::sun::star::packages::WrongPasswordException + the provided password is wrong + + @throws ::com::sun::star::io::IOException + in case of io errors during stream opening + + @throws ::com::sun::star::embed::StorageWrappedTargetException + wraps other exceptions + */ + XExtendedStorageStream openStreamElementByHierarchicalName( + [in] string sStreamPath, + [in] long nOpenMode ) + raises( ::com::sun::star::embed::InvalidStorageException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::packages::WrongPasswordException, + ::com::sun::star::io::IOException, + ::com::sun::star::embed::StorageWrappedTargetException ); + + /** allows to get access to a child encrypted stream with password using + hierarchical path. + ++ If storage does not allow any encryption this method will always throw + com::sun::star::packages::NoEncryptionException. +
+ ++ In case the stream is open in readonly mode the + com::sun::star::io::XStream::getOutputStream() + method will return an empty reference. +
+ + @param sStreamName + the path to the substream that should be open + + @param nOpenMode + a mode the stream should be open in, + can be a combination of ElementModes values + + @param sPassword + this parameter allows to specify a reading password for the + stream, the password must be a correct one, otherwise an + exception will be thrown + + @throws ::com::sun::star::embed::InvalidStorageException + this storage is in invalid state for any reason + + @throws ::com::sun::star::lang::IllegalArgumentException + one of provided arguments is illegal + + @throws ::com::sun::star::packages::NoEncryptionException + the stream is not encrypted + + @throws ::com::sun::star::packages::WrongPasswordException + the provided password is wrong + + @throws ::com::sun::star::io::IOException + in case of io errors during stream opening + + @throws ::com::sun::star::embed::StorageWrappedTargetException + wraps other exceptions + */ + XExtendedStorageStream openEncryptedStreamElementByHierarchicalName( + [in] string sStreamName, + [in] long nOpenMode, + [in] string sPassword ) + raises( ::com::sun::star::embed::InvalidStorageException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::packages::NoEncryptionException, + ::com::sun::star::packages::WrongPasswordException, + ::com::sun::star::io::IOException, + ::com::sun::star::embed::StorageWrappedTargetException ); + + /** removes a stream specified by hierarchical name from a storage. + + @param sElementPath + the path to the element to remove + + @throws ::com::sun::star::embed::InvalidStorageException + this storage is in invalid state for any reason + + @throws ::com::sun::star::lang::IllegalArgumentException + an illegal argument is provided + + @throws ::com::sun::star::container::NoSuchElementException + there is no element with such name + + @throws ::com::sun::star::io::IOException + in case of io errors during removing + + @throws ::com::sun::star::embed::StorageWrappedTargetException + wraps other exceptions + + */ + void removeStreamElementByHierarchicalName( [in] string sElementPath ) + raises( ::com::sun::star::embed::InvalidStorageException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::container::NoSuchElementException, + ::com::sun::star::io::IOException, + ::com::sun::star::embed::StorageWrappedTargetException ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/XHierarchicalStorageAccess2.idl b/offapi/com/sun/star/embed/XHierarchicalStorageAccess2.idl new file mode 100644 index 0000000000..4887ceb518 --- /dev/null +++ b/offapi/com/sun/star/embed/XHierarchicalStorageAccess2.idl @@ -0,0 +1,87 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module embed { + +/** This interface extends XHierarchicalStorageAccess interface. + */ +interface XHierarchicalStorageAccess2 : XHierarchicalStorageAccess +{ + /** allows to get access to a child encrypted stream with encryption data + using hierarchical path. + ++ If storage does not allow any encryption this method will always throw + com::sun::star::packages::NoEncryptionException. +
+ ++ In case the stream is open in readonly mode the + com::sun::star::io::XStream::getOutputStream() + method will return an empty reference. +
+ + @param sStreamName + the path to the substream that should be open + + @param nOpenMode + a mode the stream should be open in, + can be a combination of ElementModes values + + @param aEncryptionData + this parameter allows to specify an encryption data for the + stream, the data must be correct, otherwise an + exception will be thrown + + @throws ::com::sun::star::embed::InvalidStorageException + this storage is in invalid state for any reason + + @throws ::com::sun::star::lang::IllegalArgumentException + one of provided arguments is illegal + + @throws ::com::sun::star::packages::NoEncryptionException + the stream is not encrypted + + @throws ::com::sun::star::packages::WrongPasswordException + the provided password is wrong + + @throws ::com::sun::star::io::IOException + in case of io errors during stream opening + + @throws ::com::sun::star::embed::StorageWrappedTargetException + wraps other exceptions + */ + XExtendedStorageStream openEncryptedStreamByHierarchicalName( + [in] string sStreamName, + [in] long nOpenMode, + [in] sequence< ::com::sun::star::beans::NamedValue > aEncryptionData ) + raises( ::com::sun::star::embed::InvalidStorageException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::packages::NoEncryptionException, + ::com::sun::star::packages::WrongPasswordException, + ::com::sun::star::container::NoSuchElementException, + ::com::sun::star::io::IOException, + ::com::sun::star::embed::StorageWrappedTargetException ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/XInplaceClient.idl b/offapi/com/sun/star/embed/XInplaceClient.idl new file mode 100644 index 0000000000..f4262e8b40 --- /dev/null +++ b/offapi/com/sun/star/embed/XInplaceClient.idl @@ -0,0 +1,180 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module embed { + +/** represents common functionality for inplace clients. + */ +interface XInplaceClient: com::sun::star::uno::XInterface +{ + /** checks if the container can activate the object inplace. + + @return + `TRUE` the container can activate the object inplace. + `FALSE` otherwise. + */ + boolean canInplaceActivate(); + + /** notifies container through the client that the object is to be + inplace activated. + + @throws com::sun::star::embed::WrongStateException + the container is not ready for activation + */ + void activatingInplace() + raises( ::com::sun::star::embed::WrongStateException ); + + /** notifies container through the client that the object is to be + UI-activated. + + @throws com::sun::star::embed::WrongStateException + the container is not ready for activation + */ + void activatingUI() + raises( ::com::sun::star::embed::WrongStateException ); + + /** notifies container through the client that the object is deactivated. + + @throws com::sun::star::embed::WrongStateException + the container is not ready for deactivation + */ + void deactivatedInplace() + raises( ::com::sun::star::embed::WrongStateException ); + + /** notifies container through the client that the object is + UI-deactivated. + ++ After this notification the container can restore its own UI and take focus. +
+ + @throws com::sun::star::embed::WrongStateException + the container is not ready for deactivation + */ + void deactivatedUI() + raises( ::com::sun::star::embed::WrongStateException ); + + /** allows to retrieve the + com::sun::star::frame::LayoutManager of the + container. + + @return + reference to object representing the + com::sun::star::frame::LayoutManager of the + container + + @throws com::sun::star::embed::WrongStateException + the object is in unexpected state to make such request + */ + ::com::sun::star::frame::XLayoutManager getLayoutManager() + raises( ::com::sun::star::embed::WrongStateException ); + + /** allows to retrieve the container's dispatch provider. + + @return + reference to object implementing the + com::sun::star::frame::XDispatchProvider + + @throws com::sun::star::embed::WrongStateException + the object is in unexpected state to make such request + */ + ::com::sun::star::frame::XDispatchProvider getInplaceDispatchProvider() + raises( ::com::sun::star::embed::WrongStateException ); + + /** gets the inplace object position rectangle. + ++ The rectangle is provided in object's parent window coordinates in + pixels. The intersection of position and clip rectangles specifies + the visible part of the object. In case the position window has a size + that is bigger than object's size, the object should either scale or + deactivate. +
+ + @return + specifies a new position rectangle + + @throws com::sun::star::embed::WrongStateException + the object is in unexpected state to make such request + */ + ::com::sun::star::awt::Rectangle getPlacement() + raises( ::com::sun::star::embed::WrongStateException ); + + /** gets the inplace object clip rectangle. + ++ The rectangle is provided in object's parent window coordinates in + pixels. The intersection of position and clip rectangles specifies + the visible part of the object. +
+ + @return + specifies a new clip rectangle + + @throws com::sun::star::embed::WrongStateException + the object is in unexpected state to make such request + */ + ::com::sun::star::awt::Rectangle getClipRectangle() + raises( ::com::sun::star::embed::WrongStateException ); + + /** provides accelerator table the object wants to use while it is + inplace active. + + @param aKeys + an accelerator table from object + + @throws com::sun::star::embed::WrongStateException + the object is in unexpected state + */ + void translateAccelerators( [in] sequence< ::com::sun::star::awt::KeyEvent > aKeys ) + raises( ::com::sun::star::embed::WrongStateException ); + + /** scrolls the object. + + @param aOffset + scrolls the object to specified offset in pixels + + @throws com::sun::star::embed::WrongStateException + the object is in unexpected state + */ + void scrollObject( [in] ::com::sun::star::awt::Size aOffset ) + raises( ::com::sun::star::embed::WrongStateException ); + + /** notifies the container that the position of the object is changed. + + @param aPosRect + specifies a new position rectangle + + @throws com::sun::star::embed::WrongStateException + the object state is not correct + + @throws com::sun::star::uno::Exception + in case of other problems + */ + void changedPlacement( [in] ::com::sun::star::awt::Rectangle aPosRect ) + raises( ::com::sun::star::embed::WrongStateException, + ::com::sun::star::uno::Exception ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/XInplaceObject.idl b/offapi/com/sun/star/embed/XInplaceObject.idl new file mode 100644 index 0000000000..dd41dcfa56 --- /dev/null +++ b/offapi/com/sun/star/embed/XInplaceObject.idl @@ -0,0 +1,100 @@ +/* -*- 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 . + */ + + + + + module com { module sun { module star { module embed { + +/** represents common functionality for inplace embedded objects. + */ +published interface XInplaceObject: com::sun::star::uno::XInterface +{ + /** sets the visible part of the inplace object. + ++ Both rectangles are provided in object's parent window coordinates + in pixels. The intersection of rectangles specifies the visible part + of the object. In case the position window has a size that is + different from object's visual area size, the object should either + scale or deactivate. +
+ ++ The method must activate object repainting. +
+ + @param aPosRect + specifies a new position rectangle + + @param aClipRect + specifies a new clip rectangle + + @throws com::sun::star::embed::WrongStateException + the object is in invalid state + + @throws com::sun::star::uno::Exception + in case of other problems + */ + void setObjectRectangles( [in] ::com::sun::star::awt::Rectangle aPosRect, + [in] ::com::sun::star::awt::Rectangle aClipRect ) + raises( ::com::sun::star::embed::WrongStateException, + ::com::sun::star::uno::Exception ); + + /** enables or disables modeless dialogs of the object. + ++ In case container wants to show a modal dialog it should disable + modeless of embedded object dialogs with this call. Later the same + call can be used to enable it. +
+ + @param bEnable + `TRUE` to enable object modeless + `FALSE` to disable it + + @throws com::sun::star::embed::WrongStateException + the object is in wrong state + + @throws com::sun::star::uno::Exception + in case of other problems + */ + void enableModeless( [in] boolean bEnable ) + raises( ::com::sun::star::embed::WrongStateException, + ::com::sun::star::uno::Exception ); + + /** provides accelerator table the container wants to use during inplace + editing. + + @param aKeys + an accelerator table from container + + @throws com::sun::star::embed::WrongStateException + the object is in unexpected state + */ + void translateAccelerators( + [in] sequence< ::com::sun::star::awt::KeyEvent > aKeys ) + raises( ::com::sun::star::embed::WrongStateException ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/XInsertObjectDialog.idl b/offapi/com/sun/star/embed/XInsertObjectDialog.idl new file mode 100644 index 0000000000..6205787e52 --- /dev/null +++ b/offapi/com/sun/star/embed/XInsertObjectDialog.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 . + */ + + + module com { module sun { module star { module embed { + +/** allows to create and initialize a new embedded object using GUI dialog. + */ +published interface XInsertObjectDialog: com::sun::star::uno::XInterface +{ + /** creates a new object using GUI dialog. + ++ The dialog allows for user to do a number of choices that are container + related. This information will be returned in the + InsertedObjectInfo object. +
+ + @param xStorage + a parent storage the entry should be created/opened in + + @param sEntName + a name for the entry + + @param lObjArgs + optional parameters for the object persistence initialization + see also com::sun::star::embed::EmbeddedObjectDescriptor + + @returns + the structure containing the object and container related options + + @throws ::com::sun::star::lang::IllegalArgumentException + one of arguments is illegal + + @throws com::sun::star::io::IOException + in case of io problems during opening or creation + + @throws com::sun::star::uno::Exception + in case of other problems + */ + InsertedObjectInfo createInstanceByDialog( + [in] ::com::sun::star::embed::XStorage xStorage, + [in] string sEntName, + [in] sequence< ::com::sun::star::beans::PropertyValue > lObjArgs ) + raises( ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::io::IOException, + ::com::sun::star::uno::Exception ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/XLinkCreator.idl b/offapi/com/sun/star/embed/XLinkCreator.idl new file mode 100644 index 0000000000..49313ed1f1 --- /dev/null +++ b/offapi/com/sun/star/embed/XLinkCreator.idl @@ -0,0 +1,77 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module embed { + +/** allows to create and initialize a new link. +
+ Methods of this interface does not require specification of the object type, + it will be detected. +
+ */ +published interface XLinkCreator: com::sun::star::uno::XInterface +{ + /** creates a new object based on + com::sun::star::document::MediaDescriptor + and initializes it as a link. + ++ In case the entry exists already all its contents will be ignored and + rewritten on storing of the object. +
+ + @param xStorage + a parent storage the entry should be created or opened in + + @param sEntryName + a name for the entry + + @param aArgs + com::sun::star::document::MediaDescriptor + the link will be based on + + @param aObjectArgs + optional parameters for the object persistence initialization, + see also + com::sun::star::embed::EmbeddedObjectDescriptor + + @throws ::com::sun::star::lang::IllegalArgumentException + the argument is illegal + + @throws com::sun::star::io::IOException + in case of io problems during opening or creation + + @throws com::sun::star::uno::Exception + in case of other problems + */ + ::com::sun::star::uno::XInterface createInstanceLink( + [in] ::com::sun::star::embed::XStorage xStorage, + [in] string sEntryName, + [in] sequence< ::com::sun::star::beans::PropertyValue > aArgs, + [in] sequence< ::com::sun::star::beans::PropertyValue > aObjectArgs ) + raises( ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::io::IOException, + ::com::sun::star::uno::Exception ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/XLinkFactory.idl b/offapi/com/sun/star/embed/XLinkFactory.idl new file mode 100644 index 0000000000..70ec24053c --- /dev/null +++ b/offapi/com/sun/star/embed/XLinkFactory.idl @@ -0,0 +1,80 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module embed { + +/** allows to create and initialize a new link of specified type. + */ +published interface XLinkFactory: com::sun::star::uno::XInterface +{ + /** creates a new link and transport parameters for persistent + initialization. + ++ This method can be used to have a full control over persistence + initialization of a link. +
+ + @param aClassID + the class id of the new object + + @param ClassName + the class name of the new object + + @param xStorage + a parent storage the entry should be created in + + @param sEntryName + a name for the entry + + @param aArgs + com::sun::star::document::MediaDescriptor + that contains source for the link + + @param aObjectArgs + optional parameters for the object persistence initialization + see also + com::sun::star::embed::EmbeddedObjectDescriptor + + @throws ::com::sun::star::lang::IllegalArgumentException + one of arguments is illegal + + @throws com::sun::star::io::IOException + in case of io problems during opening or creation + + @throws com::sun::star::uno::Exception + in case of other problems + */ + ::com::sun::star::uno::XInterface createInstanceLinkUserInit( + [in] sequence< byte > aClassID, + [in] string ClassName, + [in] ::com::sun::star::embed::XStorage xStorage, + [in] string sEntryName, + [in] sequence< ::com::sun::star::beans::PropertyValue > aArgs, + [in] sequence< ::com::sun::star::beans::PropertyValue > aObjectArgs ) + raises( ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::io::IOException, + ::com::sun::star::uno::Exception ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/XLinkageSupport.idl b/offapi/com/sun/star/embed/XLinkageSupport.idl new file mode 100644 index 0000000000..6e599f9508 --- /dev/null +++ b/offapi/com/sun/star/embed/XLinkageSupport.idl @@ -0,0 +1,109 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module embed { + +/** specifies an additional implementation for linked embedded object support. + */ +published interface XLinkageSupport: XCommonEmbedPersist +{ + /** breaks the link and provides the object with a parent storage and a + name for object's entry + ++ This method can be used only for links implementations that implement + the whole set of embedded object interfaces. Usually the sets of + interfaces are the same for links and objects. An example of exception + from this are OOo links that do not implement + XEmbedPersist interface. For such cases the method will + throw an exception. +
+ ++ The link will be broken and the linked object will become a normal + embedded object. +
+ ++ An entry with the specified name should be created or opened inside + provided storage. This entry will be used for the object persistence. + If the entry exists already all its contents will be ignored. +
+ + @param xStorage + a parent storage the entry should be created or opened in + + @param sEntryName + a name for the entry + + @throws ::com::sun::star::lang::IllegalArgumentException + one of arguments is illegal + + @throws com::sun::star::embed::WrongStateException + the object is in wrong state or not a linked object + + @throws com::sun::star::io::IOException + in case object has not persistence or other io problems + + @throws com::sun::star::uno::Exception + in case of other problems + + @see also XEmbedPersist::setPersistentEntry + */ + void breakLink( [in] ::com::sun::star::embed::XStorage xStorage, + [in] string sEntryName ) + raises( ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::embed::WrongStateException, + ::com::sun::star::io::IOException, + ::com::sun::star::uno::Exception ); + + + /** allows to detect whether the object is a linked one. ++ Most of embedded objects will not support this interface, but some + of them can do it, to allow conversion from link to object. After + the conversion the object does not change, so interface set stays the + same, but the object is not a link any more. +
+ + @return + `TRUE` - the object is a linked one. + `FALSE` - otherwise + + @throws com::sun::star::embed::WrongStateException + the object is in wrong state + */ + boolean isLink() + raises( ::com::sun::star::embed::WrongStateException ); + + /** returns the URL of the link object. + + @throws com::sun::star::embed::WrongStateException + the object is in wrong state or is not a link + */ + string getLinkURL() + raises( ::com::sun::star::embed::WrongStateException, + ::com::sun::star::uno::Exception ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/XOLESimpleStorage.idl b/offapi/com/sun/star/embed/XOLESimpleStorage.idl new file mode 100644 index 0000000000..966f203e44 --- /dev/null +++ b/offapi/com/sun/star/embed/XOLESimpleStorage.idl @@ -0,0 +1,67 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module embed { +/** This interface allows to access and change contents of OLE storages. + ++ This is a simple container allowing the access to OLE storages. The + subcomponents are either OLE storages themselves or streams. +
+*/ +published interface XOLESimpleStorage +{ + //INTERFACES + /** interface XNameContainer is the generic interface for + supporting the insertion and removal of named elements. + +The access to the elements is provided though + XNameContainer methods.
+ */ + interface ::com::sun::star::container::XNameContainer; + + /** interface XComponent allows to explicitly free resources + and break cyclic references. + */ + interface ::com::sun::star::lang::XComponent; + + /** interface XTransactedObject allows transacted access to + an object. + +The storages are always opened in transacted mode, the + XTransactedObject interface allows to commit the storage. +
+ */ + interface XTransactedObject; + + /** interface XClassifiedObject represents common + functionality for embedded objects + +the XClassifiedObject interface allows to set/get the + ClassID of the storage.
+ */ + interface XClassifiedObject; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/XOptimizedStorage.idl b/offapi/com/sun/star/embed/XOptimizedStorage.idl new file mode 100644 index 0000000000..b0646826f7 --- /dev/null +++ b/offapi/com/sun/star/embed/XOptimizedStorage.idl @@ -0,0 +1,145 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module embed { + +/** This is a temporary interface that is introduced to temporarily optimize + the document storing process. PLEASE DO NOT USE IT, it might change in any + time and will be deprecated soon! + Another solution will be introduced as final one. + */ +published interface XOptimizedStorage +{ + /** allows to insert a raw stream representing non-encrypted stream with + header. + */ + void insertRawNonEncrStreamElementDirect( + [in] string sStreamName, + [in] ::com::sun::star::io::XInputStream xInStream ) + raises( ::com::sun::star::embed::InvalidStorageException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::packages::NoRawFormatException, + ::com::sun::star::container::ElementExistException, + ::com::sun::star::io::IOException, + ::com::sun::star::embed::StorageWrappedTargetException ); + + /** allows to insert a stream to the storage directly. The stream must + stay alive till the storage is committed. + */ + void insertStreamElementDirect( + [in] string sStreamName, + [in] ::com::sun::star::io::XInputStream xInStream, + [in] sequence < ::com::sun::star::beans::PropertyValue > aProperties ) + raises( ::com::sun::star::embed::InvalidStorageException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::container::ElementExistException, + ::com::sun::star::io::IOException, + ::com::sun::star::embed::StorageWrappedTargetException ); + + /** allows to copy storage element directly, not guaranteed to work. + */ + void copyElementDirectlyTo( + [in] string sSourceName, + [in] ::com::sun::star::embed::XOptimizedStorage xTargetStorage, + [in] string sTargetName ) + raises( ::com::sun::star::embed::InvalidStorageException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::container::NoSuchElementException, + ::com::sun::star::container::ElementExistException, + ::com::sun::star::io::IOException, + ::com::sun::star::embed::StorageWrappedTargetException ); + + /** allows to switch storage persistence to the provided stream. The stream + will be filled by the storage. If an empty reference is provided, the + storage will create a temporary stream to switch to itself. + It is applicable only for root storages. + */ + void writeAndAttachToStream( + [in] ::com::sun::star::io::XStream xStream ) + raises( ::com::sun::star::embed::InvalidStorageException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::io::IOException, + ::com::sun::star::embed::StorageWrappedTargetException ); + + /** allows to switch storage persistence to the provided URL. The caller is + responsible to be sure that the file referenced by the URL contains the + same contents as the stream the storage is based currently. Thus using + of this method is very dangerous and should be avoided when possible. + It is applicable only for root storages. + */ + void attachToURL( [in] string sURL, + [in] boolean bReadOnly ) + raises( ::com::sun::star::embed::InvalidStorageException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::io::IOException, + ::com::sun::star::embed::StorageWrappedTargetException ); + + /** allows to get property of the child element with the specified name. + The implementation of the method might allow to access only subset + of the supported by element properties. + */ + any getElementPropertyValue( [in] string sElementName, + [in] string sPropertyName ) + raises( ::com::sun::star::embed::InvalidStorageException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::container::NoSuchElementException, + ::com::sun::star::io::IOException, + ::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::beans::PropertyVetoException, + ::com::sun::star::embed::StorageWrappedTargetException ); + + /** fills the provided stream with the last flushed version of data from + the child stream of the storage. + + @param sStreamName + the name of the substream that should be copied + + @param xTargetStream + the target stream where the data must be copied to + + @throws ::com::sun::star::embed::InvalidStorageException + this storage is in invalid state for any reason + + @throws ::com::sun::star::lang::IllegalArgumentException + one of provided arguments is illegal + + @throws ::com::sun::star::packages::WrongPasswordException + the provided password is wrong + + @throws ::com::sun::star::io::IOException + in case of io errors during stream opening + + @throws ::com::sun::star::embed::StorageWrappedTargetException + wraps other exceptions + */ + void copyStreamElementData( [in] string sStreamName, + [in] ::com::sun::star::io::XStream xTargetStream ) + raises( ::com::sun::star::embed::InvalidStorageException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::packages::WrongPasswordException, + ::com::sun::star::io::IOException, + ::com::sun::star::embed::StorageWrappedTargetException ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/XPackageStructureCreator.idl b/offapi/com/sun/star/embed/XPackageStructureCreator.idl new file mode 100644 index 0000000000..4174579261 --- /dev/null +++ b/offapi/com/sun/star/embed/XPackageStructureCreator.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 . + */ + + + module com { module sun { module star { module embed { + +/** allows to convert filesystem folder tree into a package. + */ +published interface XPackageStructureCreator: com::sun::star::uno::XInterface +{ + /** converts filesystem folder tree into a package. + + @param sFolderURL + the URL of folder that must be converted, + the URL must be in format accepted by UCB + + @param xTargetStream + the result package will be written into this stream + + @throws ::com::sun::star::io::IOException + in case any problem on reading/writing appears + */ + void convertToPackage( + [in] string sFolderURL, + [in] ::com::sun::star::io::XOutputStream xTargetStream ) + raises( ::com::sun::star::io::IOException ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/XPersistanceHolder.idl b/offapi/com/sun/star/embed/XPersistanceHolder.idl new file mode 100644 index 0000000000..c8292a893e --- /dev/null +++ b/offapi/com/sun/star/embed/XPersistanceHolder.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 . + */ + + + module com { module sun { module star { module embed { + +/** allows to disconnect an object from its persistence. + */ +published interface XPersistanceHolder: com::sun::star::uno::XInterface +{ + /** disconnects the object from the persistence. + + @throws com::sun::star::io::IOException + in case of io problems + + @throws com::sun::star::uno::Exception + in case of other problems + */ + void disconnectPersistence() + raises( ::com::sun::star::io::IOException, + ::com::sun::star::uno::Exception ); + + /** connects the object to a persistence. + + @param xStream + a stream that specify the persistence + + @throws com::sun::star::io::IOException + in case of io problems + + @throws com::sun::star::uno::Exception + in case of other problems + */ + void connectPersistance( + [in] ::com::sun::star::io::XStream xStream ) + raises( ::com::sun::star::io::IOException, + ::com::sun::star::uno::Exception ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/XRelationshipAccess.idl b/offapi/com/sun/star/embed/XRelationshipAccess.idl new file mode 100644 index 0000000000..759d9a9f17 --- /dev/null +++ b/offapi/com/sun/star/embed/XRelationshipAccess.idl @@ -0,0 +1,239 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module embed { + +/** This interface allows to get access to relationship data. + ++ The relationship data is organized as a set of entries. Each of entry + is represented by a set of tags, where each tag has unique for this entry + name and a string value. An entry must contain at least one tag named + "ID", the value of this tag must be unique for the whole set of entries, + this tag is used as a unique identifier of an entry. +
+ */ +published interface XRelationshipAccess : ::com::sun::star::uno::XInterface +{ + /** allows to detect whether there is an entry with specified value of + "ID" tag. + + @param sID + the value of "ID" tag + + @throws ::com::sun::star::io::IOException + in case there is a problem reading the relations info + */ + boolean hasByID( [in] string sID ) + raises( ::com::sun::star::io::IOException ); + + /** retrieves the value of "Target" tag from the entry with specified "ID" + tag. + ++ If the entry has no "Target" tag an empty string is returned. +
+ + @param sID + the value of "ID" tag + + @throws ::com::sun::star::container::NoSuchElementException + in case there is no entry with specified tag + + @throws ::com::sun::star::io::IOException + in case there is a problem reading the relations info + */ + string getTargetByID( [in] string sID ) + raises( ::com::sun::star::container::NoSuchElementException, + ::com::sun::star::io::IOException ); + + /** retrieves the value of "Type" tag from the entry with specified "ID" + tag. + ++ If the entry has no "Type" tag an empty string is returned. +
+ + @param sID + the value of "ID" tag + + @throws ::com::sun::star::container::NoSuchElementException + in case there is no entry with specified tag + + @throws ::com::sun::star::io::IOException + in case there is a problem reading the relations info + */ + string getTypeByID( [in] string sID ) + raises( ::com::sun::star::container::NoSuchElementException, + ::com::sun::star::io::IOException ); + + /** retrieves the sequence containing all the tags from the entry with + specified value of "ID" tag. + + @param sID + the value of "ID" tag + + @returns + sequence, each element of the sequence represents tag, + ::com::sun::star::beans::StringPair::First + represents the tag name and + ::com::sun::star::beans::StringPair::Second + represents the tag value + + @throws ::com::sun::star::container::NoSuchElementException + in case there is no entry with specified tag + + @throws ::com::sun::star::io::IOException + in case there is a problem reading the relations info + */ + sequence< ::com::sun::star::beans::StringPair > + getRelationshipByID( [in] string sID ) + raises( ::com::sun::star::container::NoSuchElementException, + ::com::sun::star::io::IOException ); + + /** retrieves the sequence containing all the entries which "Type" tag + takes the specified value. + + @param sType + specified value of "Type" tag, the parameter can contain an empty + string, in this case all the entries that have empty "Type" tag or + no such tag at all are returned + + @returns + sequence of entries, each entry is represented by sequence, + each element of the sequence represents tag, + ::com::sun::star::beans::StringPair::First + represents the tag name and + ::com::sun::star::beans::StringPair::Second + represents the tag value. + The sequence should contain the "ID" tag. + + @throws ::com::sun::star::io::IOException + in case there is a problem reading the relations info + */ + sequence< sequence< ::com::sun::star::beans::StringPair > > + getRelationshipsByType( [in] string sType ) + raises( ::com::sun::star::io::IOException ); + + /** retrieves the sequence containing all the entries controlled by the + object. + + @returns + sequence of entries, each entry is represented by sequence, + each element of the sequence represents tag, + ::com::sun::star::beans::StringPair::First + represents the tag name and + ::com::sun::star::beans::StringPair::Second + represents the tag value + + @throws ::com::sun::star::io::IOException + in case there is a problem reading the relations info + */ + sequence< sequence< ::com::sun::star::beans::StringPair > > + getAllRelationships() + raises( ::com::sun::star::io::IOException ); + + /** allows to insert an entry. + + @param sID + the value of "ID" tag + + @param aEntry + a sequence, each element of the sequence represents tag, + ::com::sun::star::beans::StringPair::First + represents the tag name and + ::com::sun::star::beans::StringPair::Second + represents the tag value. + May not contain "ID" tag, that is already specified in previous + parameter. + + @param bReplace + specifies whether the replacement of existing entry is allowed + + @throws ::com::sun::star::io::IOException + in case there is a problem reading/writing the relations info + + @throws ::com::sun::star::container::ElementExistException + in case an element with the specified "ID" tag exists already, and + no replacement is allowed + */ + void insertRelationshipByID( + [in] string sID, + [in] sequence< ::com::sun::star::beans::StringPair > aEntry, + [in] boolean bReplace ) + raises( ::com::sun::star::container::ElementExistException, + ::com::sun::star::io::IOException ); + + /** allows to remove an entry. + + @param sID + the value of "ID" tag + + @throws ::com::sun::star::container::NoSuchElementException + in case there is no entry with specified tag + + @throws ::com::sun::star::io::IOException + in case there is a problem reading/writing the relations info + */ + void removeRelationshipByID( [in] string sID ) + raises( ::com::sun::star::container::NoSuchElementException, + ::com::sun::star::io::IOException ); + + /** allows to insert a set of entries + + @param aEntries + sequence of entries, each entry is represented by sequence, + each element of the sequence represents tag, + ::com::sun::star::beans::StringPair::First + represents the tag name and + ::com::sun::star::beans::StringPair::Second + represents the tag value. + Each entry must contain "ID" tag. + + @param bReplace + specifies whether the replacement of existing entry is allowed + + @throws ::com::sun::star::container::ElementExistException + in case an element with the provided "ID" tag exists already, and + no replacement is allowed + + @throws ::com::sun::star::io::IOException + in case there is a problem reading/writing the relations info + */ + void insertRelationships( + [in] sequence< sequence< ::com::sun::star::beans::StringPair > > aEntries, + [in] boolean bReplace ) + raises( ::com::sun::star::container::ElementExistException, + ::com::sun::star::io::IOException ); + + /** allows to clear the set of entries. + + @throws ::com::sun::star::io::IOException + in case there is a problem reading/writing the relations info + */ + void clearRelationships() + raises( ::com::sun::star::io::IOException ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/XStateChangeBroadcaster.idl b/offapi/com/sun/star/embed/XStateChangeBroadcaster.idl new file mode 100644 index 0000000000..dbca90e06c --- /dev/null +++ b/offapi/com/sun/star/embed/XStateChangeBroadcaster.idl @@ -0,0 +1,43 @@ +/* -*- 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 . + */ + + + +module com { module sun { module star { module embed { + + +/** broadcasts message in case embedded object object changes it's state. + */ +published interface XStateChangeBroadcaster: com::sun::star::uno::XInterface +{ + /** adds the specified listener to receive events about states change + */ + void addStateChangeListener( + [in] com::sun::star::embed::XStateChangeListener xListener ); + + /** removes the specified listener + */ + void removeStateChangeListener( + [in] com::sun::star::embed::XStateChangeListener xListener ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/XStateChangeListener.idl b/offapi/com/sun/star/embed/XStateChangeListener.idl new file mode 100644 index 0000000000..8604742b0b --- /dev/null +++ b/offapi/com/sun/star/embed/XStateChangeListener.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 . + */ + + +module com { module sun { module star { module embed { + + +/** makes it possible to receive events when an embedded object changes it's + state. + */ +published interface XStateChangeListener: com::sun::star::lang::XEventListener +{ + /** is called just before the object changes state. + ++ Actually the listener can try to complain about state changing, but + it is up to object to decide whether the state change can be + prevented. Anyway the possibility to complain must be used very + carefully. +
+ + @param aEvent + specifies the object that is going to change own state + + @param nOldState + specifies the old state of the object + + @param nNewState + specifies the new state of the object + + @throws ::com::sun::star::embed::WrongStateException + the state change is unexpected by listener + */ + void changingState( [in] com::sun::star::lang::EventObject aEvent, + [in] long nOldState, + [in] long nNewState ) + raises( ::com::sun::star::embed::WrongStateException ); + + /** is called after the object has changed state. + + @param aEvent + specifies the object that has changed own state + + @param nOldState + specifies the old state of the object + + @param nNewState + specifies the new state of the object + */ + void stateChanged( [in] com::sun::star::lang::EventObject aEvent, + [in] long nOldState, + [in] long nNewState ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/XStorage.idl b/offapi/com/sun/star/embed/XStorage.idl new file mode 100644 index 0000000000..42fbe856fe --- /dev/null +++ b/offapi/com/sun/star/embed/XStorage.idl @@ -0,0 +1,573 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module embed { + +/** This interface represents main storage functionality. + */ +published interface XStorage +{ + // INTERFACES + /** allows to get list of child elements and to check if an element with a + specified name exists in a storage. + ++ It is also possible to use this interface to get read access to + a child element by + com::sun::star::container::XNameAccess::getByName() + call. But the recommended way is to use XStorage + interface for this purpose. +
+ */ + interface ::com::sun::star::container::XNameAccess; + + /** allows to control and track lifetime of the storage. + ++ In case a storage is disposed any call to its methods should result + in com::sun::star::lang::DisposedException. +
+ */ + interface ::com::sun::star::lang::XComponent; + + + // METHODS + /** allows to copy current storage to another one + ++ The destination storage contents are overwritten. + After the successful copying the target storage is automatically + committed if it implements transacted access. +
+ + @param xDest + a destination storage this storage must be copied to. + + @throws ::com::sun::star::embed::InvalidStorageException + this storage is in invalid state for any reason + + @throws ::com::sun::star::lang::IllegalArgumentException + an illegal argument is provided + + @throws ::com::sun::star::io::IOException + in case of io errors during copying + + @throws ::com::sun::star::embed::StorageWrappedTargetException + wraps other exception acquired during copying + */ + void copyToStorage( [in] XStorage xDest ) + raises( ::com::sun::star::embed::InvalidStorageException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::io::IOException, + ::com::sun::star::embed::StorageWrappedTargetException ); + + /** allows to get access to a child stream of the storage. + ++ In case the stream is open in readonly mode the + com::sun::star::io::XStream::getOutputStream() + method will return an empty reference. +
+ + @param sStreamName + the name of the substream that should be open + + @param nOpenMode + a mode the stream should be open in, + can be a combination of ElementModes values + + @throws ::com::sun::star::embed::InvalidStorageException + this storage is in invalid state for any reason + + @throws ::com::sun::star::lang::IllegalArgumentException + one of provided arguments is illegal + + @throws ::com::sun::star::packages::WrongPasswordException + the provided password is wrong + + @throws ::com::sun::star::io::IOException + in case of io errors during stream opening + + @throws ::com::sun::star::embed::StorageWrappedTargetException + wraps other exceptions + */ + ::com::sun::star::io::XStream openStreamElement( + [in] string sStreamName, + [in] long nOpenMode ) + raises( ::com::sun::star::embed::InvalidStorageException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::packages::WrongPasswordException, + ::com::sun::star::io::IOException, + ::com::sun::star::embed::StorageWrappedTargetException ); + + /** allows to get access to a child encrypted stream with password. + ++ If storage does not allow any encryption this method will always throw + com::sun::star::packages::NoEncryptionException. +
+ ++ In case the stream is open in readonly mode the + com::sun::star::io::XStream::getOutputStream() + method will return an empty reference. +
+ + @param sStreamName + the name of the substream that should be open + + @param nOpenMode + a mode the stream should be open in, + can be a combination of ElementModes values + + @param sPassword + this parameter allows to specify a reading password for the + stream, the password must be a correct one, otherwise an + exception will be thrown + + @throws ::com::sun::star::embed::InvalidStorageException + this storage is in invalid state for any reason + + @throws ::com::sun::star::lang::IllegalArgumentException + one of provided arguments is illegal + + @throws ::com::sun::star::packages::NoEncryptionException + the stream is not encrypted + + @throws ::com::sun::star::packages::WrongPasswordException + the provided password is wrong + + @throws ::com::sun::star::io::IOException + in case of io errors during stream opening + + @throws ::com::sun::star::embed::StorageWrappedTargetException + wraps other exceptions + */ + ::com::sun::star::io::XStream openEncryptedStreamElement( + [in] string sStreamName, + [in] long nOpenMode, + [in] string sPassword ) + raises( ::com::sun::star::embed::InvalidStorageException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::packages::NoEncryptionException, + ::com::sun::star::packages::WrongPasswordException, + ::com::sun::star::io::IOException, + ::com::sun::star::embed::StorageWrappedTargetException ); + + /** allows to get access to a child storage. + ++ The opened substorage must support specified in "nOpenMode" access + modes. It can support "read" mode in addition. But any child element + can support one of those modes only in case this mode is supported by + parent storage. +
+ + @param sStorName + the name of the storage that should be open + + @param nOpenMode + a mode the storage should be open in + + @throws ::com::sun::star::embed::InvalidStorageException + this storage is in invalid state for any reason + + @throws ::com::sun::star::lang::IllegalArgumentException + one of provided arguments is illegal + + @throws ::com::sun::star::io::IOException + in case of io errors during stream opening + + @throws ::com::sun::star::embed::StorageWrappedTargetException + wraps other exceptions + + */ + XStorage openStorageElement( [in] string sStorName, + [in] long nOpenMode ) + raises( ::com::sun::star::embed::InvalidStorageException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::io::IOException, + ::com::sun::star::embed::StorageWrappedTargetException ); + + /** allows to get readonly copy of a child stream of the storage. + ++ The stream is open in readonly mode so the + com::sun::star::io::XStream::getOutputStream() + method will return an empty reference. +
+ + @param sStreamName + the name of the substream that should be copied + + @throws ::com::sun::star::embed::InvalidStorageException + this storage is in invalid state for any reason + + @throws ::com::sun::star::lang::IllegalArgumentException + one of provided arguments is illegal + + @throws ::com::sun::star::packages::WrongPasswordException + the provided password is wrong + + @throws ::com::sun::star::io::IOException + in case of io errors during stream opening + + @throws ::com::sun::star::embed::StorageWrappedTargetException + wraps other exceptions + */ + ::com::sun::star::io::XStream cloneStreamElement( [in] string sStreamName ) + raises( ::com::sun::star::embed::InvalidStorageException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::packages::WrongPasswordException, + ::com::sun::star::io::IOException, + ::com::sun::star::embed::StorageWrappedTargetException ); + + /** allows to get readonly copy of a child encrypted stream with password. + ++ If storage does not allow any encryption this method will always throw + com::sun::star::packages::NoEncryptionException. +
+ ++ The stream is open in readonly mode so the + com::sun::star::io::XStream::getOutputStream() + method will return an empty reference. +
+ ++ This method allows to specify reading password for the child stream + explicitly. +
+ + @param sStreamName + the name of the substream that should be copied + + @param sPassword + this parameter allows to specify a reading password for the + stream, the password must be a correct one, otherwise an + exception will be thrown + + @throws ::com::sun::star::embed::InvalidStorageException + this storage is in invalid state for any reason + + @throws ::com::sun::star::lang::IllegalArgumentException + one of provided arguments is illegal + + @throws ::com::sun::star::packages::NoEncryptionException + the stream is not encrypted + + @throws ::com::sun::star::packages::WrongPasswordException + the provided password is wrong + + @throws ::com::sun::star::io::IOException + in case of io errors during stream opening + + @throws ::com::sun::star::embed::StorageWrappedTargetException + wraps other exceptions + */ + ::com::sun::star::io::XStream cloneEncryptedStreamElement( + [in] string sStreamName, + [in] string sPassword ) + raises( ::com::sun::star::embed::InvalidStorageException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::packages::NoEncryptionException, + ::com::sun::star::packages::WrongPasswordException, + ::com::sun::star::io::IOException, + ::com::sun::star::embed::StorageWrappedTargetException ); + + /** allows to get copy of this storage at the state of its last commit. + ++ This method makes sense only for services implementations that allow + transaction in the storage. +
+ + @param xTargetStorage + the target storage that will be filled in with copy. + + @throws ::com::sun::star::embed::InvalidStorageException + this storage is in invalid state for any reason + + @throws ::com::sun::star::lang::IllegalArgumentException + one of provided arguments is illegal + + @throws ::com::sun::star::io::IOException + in case of io errors during copying + + @throws ::com::sun::star::embed::StorageWrappedTargetException + wraps other exceptions + + */ + void copyLastCommitTo( [in] XStorage xTargetStorage ) + raises( ::com::sun::star::embed::InvalidStorageException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::io::IOException, + ::com::sun::star::embed::StorageWrappedTargetException ); + + /** allows to get copy of a child storage at the state of its last commit. + ++ This method makes sense only for services implementations that allow + transaction in the storage. +
+ + @param sStorName + the name of the storage that should be copied + + @param xTargetStorage + the target storage that will be filled in with copy + + @throws ::com::sun::star::embed::InvalidStorageException + this storage is in invalid state for any reason + + @throws ::com::sun::star::lang::IllegalArgumentException + one of provided arguments is illegal + + @throws ::com::sun::star::io::IOException + in case of io errors during copying + + @throws ::com::sun::star::embed::StorageWrappedTargetException + wraps other exceptions + + */ + void copyStorageElementLastCommitTo( + [in] string sStorName, + [in] XStorage xTargetStorage ) + raises( ::com::sun::star::embed::InvalidStorageException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::io::IOException, + ::com::sun::star::embed::StorageWrappedTargetException ); + + /** allows to check if an element is a child stream with specified name. + ++ In case there is no child element with such name an exception will be + thrown. +
+ + @param sElementName + the name of the element to check + + @returns + `TRUE` in case the element is a stream + `FALSE` - the element is a storage + + @throws ::com::sun::star::container::NoSuchElementException + there is no element with such name + + @throws ::com::sun::star::lang::IllegalArgumentException + an illegal argument is provided + + @throws ::com::sun::star::embed::InvalidStorageException + this storage is in invalid state for any reason + + */ + boolean isStreamElement( [in] string sElementName ) + raises( ::com::sun::star::container::NoSuchElementException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::embed::InvalidStorageException ); + + + /** allows to check if an element is a child storage with specified name. + ++ In case there is no child element with such name an exception will be + thrown. +
+ + @param sElementName + the name of the element to check + + @returns + `TRUE` in case the element is a storage + `FALSE` - the element is a stream + + @throws ::com::sun::star::container::NoSuchElementException + there is no element with such name + + @throws ::com::sun::star::lang::IllegalArgumentException + an illegal argument is provided + + @throws ::com::sun::star::embed::InvalidStorageException + this storage is in invalid state for any reason + + */ + boolean isStorageElement( [in] string sElementName ) + raises( ::com::sun::star::container::NoSuchElementException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::embed::InvalidStorageException ); + + /** removes an element from a storage. + + @param sElementName + the name of the element to remove + + @throws ::com::sun::star::embed::InvalidStorageException + this storage is in invalid state for any reason + + @throws ::com::sun::star::lang::IllegalArgumentException + an illegal argument is provided + + @throws ::com::sun::star::container::NoSuchElementException + there is no element with such name + + @throws ::com::sun::star::io::IOException + in case of io errors during removing + + @throws ::com::sun::star::embed::StorageWrappedTargetException + wraps other exceptions + + */ + void removeElement( [in] string sElementName ) + raises( ::com::sun::star::embed::InvalidStorageException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::container::NoSuchElementException, + ::com::sun::star::io::IOException, + ::com::sun::star::embed::StorageWrappedTargetException ); + + /** renames an element in a storage. + + @param sElementName + the old name of the element to rename + + @param sNewName + the new name of the element to rename + + @throws ::com::sun::star::embed::InvalidStorageException + this storage is in invalid state for any reason + + @throws ::com::sun::star::lang::IllegalArgumentException + an illegal argument is provided + + @throws ::com::sun::star::container::NoSuchElementException + there is no element with old name in this storage + + @throws ::com::sun::star::container::ElementExistException + an element with new name already exists in this storage + + @throws ::com::sun::star::io::IOException + in case of io errors during renaming + + @throws ::com::sun::star::embed::StorageWrappedTargetException + wraps other exceptions + + */ + void renameElement( [in] string sElementName, [in] string sNewName ) + raises( ::com::sun::star::embed::InvalidStorageException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::container::NoSuchElementException, + ::com::sun::star::container::ElementExistException, + ::com::sun::star::io::IOException, + ::com::sun::star::embed::StorageWrappedTargetException ); + + /** allows to copy an entry from one storage to another. + ++ If target element supports transacted mode it must be committed by this + method after successful copying. +
+ + @param sElementName + the name of the element in this storage + + @param xDest + a destination storage + + @param sNewName + the name of the result element in destination storage + + @throws ::com::sun::star::embed::InvalidStorageException + this storage is in invalid state for any reason + + @throws ::com::sun::star::container::NoSuchElementException + there is no specified source element in this storage + + @throws ::com::sun::star::container::ElementExistException + an element with specified destination name already exists in destination storage + + @throws ::com::sun::star::io::IOException + in case of io errors during copying + + @throws ::com::sun::star::embed::StorageWrappedTargetException + wraps other exceptions + + */ + void copyElementTo( + [in] string sElementName, + [in] XStorage xDest, + [in] string sNewName ) + raises( ::com::sun::star::embed::InvalidStorageException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::container::NoSuchElementException, + ::com::sun::star::container::ElementExistException, + ::com::sun::star::io::IOException, + ::com::sun::star::embed::StorageWrappedTargetException ); + + /** allows to move an entry from one storage to another. + ++ If target element supports transacted mode it must be committed by this + method after successful moving. +
+ + @param sElementName + the name of the element in this storage + + @param xDest + a destination storage + + @param sNewName + the name of the result element in destination storage + + @throws ::com::sun::star::embed::InvalidStorageException + this storage is in invalid state for any reason + + @throws ::com::sun::star::container::NoSuchElementException + there is no specified source element in this storage + + @throws ::com::sun::star::container::ElementExistException + an element with specified destination name already exists in destination storage + + @throws ::com::sun::star::io::IOException + in case of io errors during moving + + @throws ::com::sun::star::embed::StorageWrappedTargetException + wraps other exceptions + + */ + void moveElementTo( + [in] string sElementName, + [in] XStorage xDest, + [in] string sNewName ) + raises( ::com::sun::star::embed::InvalidStorageException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::container::NoSuchElementException, + ::com::sun::star::container::ElementExistException, + ::com::sun::star::io::IOException, + ::com::sun::star::embed::StorageWrappedTargetException ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/XStorage2.idl b/offapi/com/sun/star/embed/XStorage2.idl new file mode 100644 index 0000000000..d7f08c1934 --- /dev/null +++ b/offapi/com/sun/star/embed/XStorage2.idl @@ -0,0 +1,141 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module embed { + +/** This interface extends the base XStorage interface. + */ +interface XStorage2 : XStorage +{ + /** allows to get access to a child encrypted stream with EncryptionData. + ++ If storage does not allow any encryption this method will always throw + com::sun::star::packages::NoEncryptionException. +
+ ++ In case the stream is open in readonly mode the + com::sun::star::io::XStream::getOutputStream() + method will return an empty reference. +
+ + @param sStreamName + the name of the substream that should be open + + @param nOpenMode + a mode the stream should be open in, + can be a combination of ElementModes values + + @param aEncryptionData + this parameter allows to specify an encryption data to decrypt the + stream, the encryption data must be correct, otherwise an + exception will be thrown + + @throws ::com::sun::star::embed::InvalidStorageException + this storage is in invalid state for any reason + + @throws ::com::sun::star::lang::IllegalArgumentException + one of provided arguments is illegal + + @throws ::com::sun::star::packages::NoEncryptionException + the stream is not encrypted + + @throws ::com::sun::star::packages::WrongPasswordException + the provided encryption data is wrong + + @throws ::com::sun::star::io::IOException + in case of io errors during stream opening + + @throws ::com::sun::star::embed::StorageWrappedTargetException + wraps other exceptions + */ + ::com::sun::star::io::XStream openEncryptedStream( + [in] string sStreamName, + [in] long nOpenMode, + [in] sequence< ::com::sun::star::beans::NamedValue > aEncryptionData ) + raises( ::com::sun::star::embed::InvalidStorageException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::packages::NoEncryptionException, + ::com::sun::star::packages::WrongPasswordException, + ::com::sun::star::io::IOException, + ::com::sun::star::embed::StorageWrappedTargetException ); + + /** allows to get readonly copy of a child encrypted stream with encryption + data. + ++ If storage does not allow any encryption this method will always throw + com::sun::star::packages::NoEncryptionException. +
+ ++ The stream is open in readonly mode so the + com::sun::star::io::XStream::getOutputStream() + method will return an empty reference. +
+ ++ This method allows to specify encryption data for the child stream + explicitly. +
+ + @param sStreamName + the name of the substream that should be copied + + @param aEncryptionData + this parameter allows to specify an encryption data for the + stream, the encryption data must be correct, otherwise an + exception will be thrown + + @throws ::com::sun::star::embed::InvalidStorageException + this storage is in invalid state for any reason + + @throws ::com::sun::star::lang::IllegalArgumentException + one of provided arguments is illegal + + @throws ::com::sun::star::packages::NoEncryptionException + the stream is not encrypted + + @throws ::com::sun::star::packages::WrongPasswordException + the provided encryption data is wrong + + @throws ::com::sun::star::io::IOException + in case of io errors during stream opening + + @throws ::com::sun::star::embed::StorageWrappedTargetException + wraps other exceptions + */ + ::com::sun::star::io::XStream cloneEncryptedStream( + [in] string sStreamName, + [in] sequence< ::com::sun::star::beans::NamedValue > aEncryptionData ) + raises( ::com::sun::star::embed::InvalidStorageException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::packages::NoEncryptionException, + ::com::sun::star::packages::WrongPasswordException, + ::com::sun::star::io::IOException, + ::com::sun::star::embed::StorageWrappedTargetException ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/XStorageRawAccess.idl b/offapi/com/sun/star/embed/XStorageRawAccess.idl new file mode 100644 index 0000000000..e59e18e62b --- /dev/null +++ b/offapi/com/sun/star/embed/XStorageRawAccess.idl @@ -0,0 +1,171 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module embed { + +/** This interface represents main storage functionality. + */ +published interface XStorageRawAccess +{ + /** allows to get a plain raw stream representing a package stream. + ++ This method returns a stream from the package as it is stored there, + without any decompression/description and etc. This method can be + helpful to check file consistency, for example by signing. +
+ + @returns + the raw representation of encrypted stream with all the data + required to copy the stream without information loss + + @param sStreamName + the name of the substream that should be open + + @throws ::com::sun::star::embed::InvalidStorageException + this storage is in invalid state for any reason + + @throws ::com::sun::star::lang::IllegalArgumentException + one of provided arguments is illegal + + @throws ::com::sun::star::container::NoSuchElementException + there is no element with specified name + + @throws ::com::sun::star::io::IOException + in case of io errors during stream opening + + @throws ::com::sun::star::embed::StorageWrappedTargetException + wraps other exceptions + */ + ::com::sun::star::io::XInputStream getPlainRawStreamElement( + [in] string sStreamName ) + raises( ::com::sun::star::embed::InvalidStorageException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::container::NoSuchElementException, + ::com::sun::star::io::IOException, + ::com::sun::star::embed::StorageWrappedTargetException ); + + /** allows to get a raw stream representing encrypted stream with header. + ++ This method allows to transport encrypted streams without decryption. + Mainly this method is introduced to allow to copy one encrypted + storage stream to another without decryption. It is not recommended to + use this method outside of storage implementation since different + storages implementation could have different encryption format. If the + method is used outside of storage implementation the user code is + responsible to get sure that the raw format of source and target + storages is the same. +
+ ++ The difference of this method from the previous one is that it handles + only encrypted streams. The contents of returned by these methods + streams can differ for the same entry, since this method can add + additional data into the stream to allow successful insertion. +
+ + @param sStreamName + the name of the substream that should be open + + @throws ::com::sun::star::embed::InvalidStorageException + this storage is in invalid state for any reason + + @throws ::com::sun::star::lang::IllegalArgumentException + one of provided arguments is illegal + + @throws ::com::sun::star::packages::NoEncryptionException + the stream is not an encrypted one + + @throws ::com::sun::star::container::NoSuchElementException + there is no element with specified name + + @throws ::com::sun::star::io::IOException + in case of io errors during stream opening + + @throws ::com::sun::star::embed::StorageWrappedTargetException + wraps other exceptions + */ + ::com::sun::star::io::XInputStream getRawEncrStreamElement( + [in] string sStreamName ) + raises( ::com::sun::star::embed::InvalidStorageException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::packages::NoEncryptionException, + ::com::sun::star::container::NoSuchElementException, + ::com::sun::star::io::IOException, + ::com::sun::star::embed::StorageWrappedTargetException ); + + /** allows to insert a raw stream representing encrypted stream with + header. + ++ This method allows to insert a stream retrieved by + XStorageRawAccess::getRawEncrStreamElement() into a + storage. +
+ ++ This method allows to transport encrypted streams without decryption. + Mainly this method is introduced to allow to copy one encrypted + storage stream to another without decryption. It is not recommended to + use this method outside of storage implementation since different + storages implementation could have different encryption format. +
+ + @param sStreamName + the name of the substream that should be open + + @param xInStream + a raw stream representing encrypted stream + + @throws ::com::sun::star::embed::InvalidStorageException + this storage is in invalid state for any reason + + @throws ::com::sun::star::lang::IllegalArgumentException + one of provided arguments is illegal + + @throws ::com::sun::star::packages::NoRawFormatException + the stream is not one of raw package stream format + + @throws ::com::sun::star::container::ElementExistException + an element with specified name already exists + + @throws ::com::sun::star::io::IOException + in case of io errors during stream opening + + @throws ::com::sun::star::embed::StorageWrappedTargetException + wraps other exceptions + */ + void insertRawEncrStreamElement( + [in] string sStreamName, + [in] ::com::sun::star::io::XInputStream xInStream ) + raises( ::com::sun::star::embed::InvalidStorageException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::packages::NoRawFormatException, + ::com::sun::star::container::ElementExistException, + ::com::sun::star::io::IOException, + ::com::sun::star::embed::StorageWrappedTargetException ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/XTransactedObject.idl b/offapi/com/sun/star/embed/XTransactedObject.idl new file mode 100644 index 0000000000..f8139b7626 --- /dev/null +++ b/offapi/com/sun/star/embed/XTransactedObject.idl @@ -0,0 +1,44 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module embed { + +/** allows transacted access to an object. + */ +published interface XTransactedObject: com::sun::star::uno::XInterface +{ + /** commits the changes made for object. + */ + void commit() + raises( ::com::sun::star::io::IOException, + ::com::sun::star::lang::WrappedTargetException ); + + /** removes all the changes made for the object after last commit or + loading. + */ + void revert() + raises( ::com::sun::star::io::IOException, + ::com::sun::star::lang::WrappedTargetException ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/XTransactionBroadcaster.idl b/offapi/com/sun/star/embed/XTransactionBroadcaster.idl new file mode 100644 index 0000000000..b36d5e23f8 --- /dev/null +++ b/offapi/com/sun/star/embed/XTransactionBroadcaster.idl @@ -0,0 +1,44 @@ +/* -*- 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 . + */ + + + +module com { module sun { module star { module embed { + + +/** broadcasts message in case transacted object is committed or reverted. + */ +published interface XTransactionBroadcaster: com::sun::star::uno::XInterface +{ + /** adds the specified listener to receive events about commits and + reverts. + */ + void addTransactionListener( + [in] com::sun::star::embed::XTransactionListener aListener ); + + /** removes the specified listener. + */ + void removeTransactionListener( + [in] com::sun::star::embed::XTransactionListener aListener ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/XTransactionListener.idl b/offapi/com/sun/star/embed/XTransactionListener.idl new file mode 100644 index 0000000000..09f9e68ac0 --- /dev/null +++ b/offapi/com/sun/star/embed/XTransactionListener.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 . + */ + + +module com { module sun { module star { module embed { + + +/** makes it possible to receive events when a transacted object is committed + or reverted. + */ +published interface XTransactionListener: com::sun::star::lang::XEventListener +{ + /** is called just before the object is committed. + */ + void preCommit( [in] com::sun::star::lang::EventObject aEvent ) + raises( ::com::sun::star::uno::Exception ); + + /** is called after the object is committed. + */ + void commited( [in] com::sun::star::lang::EventObject aEvent ); + + /** is called just before the object is reverted. + */ + void preRevert( [in] com::sun::star::lang::EventObject aEvent ) + raises( ::com::sun::star::uno::Exception ); + + /** is called after the object is reverted. + */ + void reverted( [in] com::sun::star::lang::EventObject aEvent ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/XTransferableSupplier.idl b/offapi/com/sun/star/embed/XTransferableSupplier.idl new file mode 100644 index 0000000000..c7ce174ec3 --- /dev/null +++ b/offapi/com/sun/star/embed/XTransferableSupplier.idl @@ -0,0 +1,43 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module embed { + +/** provide access to a + com::sun::star::datatransfer::XTransferable + implementation from the object. + */ +published interface XTransferableSupplier: com::sun::star::uno::XInterface +{ + /** allows to get access to + com::sun::star::datatransfer::XTransferable + implementation. + + @return + com::sun::star::datatransfer::XTransferable + implementation + */ + ::com::sun::star::datatransfer::XTransferable getTransferable(); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/XVisualObject.idl b/offapi/com/sun/star/embed/XVisualObject.idl new file mode 100644 index 0000000000..67c380d6e4 --- /dev/null +++ b/offapi/com/sun/star/embed/XVisualObject.idl @@ -0,0 +1,141 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module embed { + +/** represents common visualization functionality for embedded objects. + */ +published interface XVisualObject: ::com::sun::star::uno::XInterface +{ + /** sets the size of object's visual area. + ++ The size must be provided in logical units according to map mode the + object communicates in. +
+ ++ If an object is inplace- or ui-active the method must not initiate + repainting itself. +
+ + @param nAspect + the aspect specifying the form of object representation. + Can take values from Aspects constant set. + + @param aSize + the new size of the visual area + + @throws ::com::sun::star::lang::IllegalArgumentException + one of arguments is illegal + + @throws ::com::sun::star::embed::WrongStateException + the object is in wrong state + + @throws ::com::sun::star::uno::Exception + the object failed to resize + */ + void setVisualAreaSize( [in] hyper nAspect, + [in] ::com::sun::star::awt::Size aSize ) + raises( ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::embed::WrongStateException, + ::com::sun::star::uno::Exception ); + + /** gets the size of object's visual area. + ++ The size must be provided in logical units according to map mode the + object communicates in. +
+ + @param nAspect + the aspect specifying the form of object representation. + Can take values from Aspects constant set. + + @return + the size of visual area + + @throws ::com::sun::star::lang::IllegalArgumentException + one of arguments is illegal + + @throws ::com::sun::star::embed::WrongStateException + the object is in wrong state + */ + ::com::sun::star::awt::Size getVisualAreaSize( [in] hyper nAspect ) + raises( ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::embed::WrongStateException, + ::com::sun::star::uno::Exception ); + + /** retrieves visual representation of the object in preferable format. + ++ If the object persistence entry contains cached visual representation + then it can be retrieved by using this method even in loaded state. +
+ + @param nAspect + the aspect the representation is requested for. + Can take values from Aspects constant set. + + @return + the visual representation of the object in the default format and + the format + + @throws ::com::sun::star::lang::IllegalArgumentException + one of arguments is illegal + + @throws ::com::sun::star::embed::WrongStateException + the object is in wrong state + + @throws ::com::sun::star::uno::Exception + in case of problems + + */ + VisualRepresentation getPreferredVisualRepresentation( [in] hyper nAspect ) + raises( ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::embed::WrongStateException, + ::com::sun::star::uno::Exception ); + + + /** retrieves map mode the object communicates in. + + @param nAspect + the aspect the map mode is requested for. + Can take values from Aspects constant set. + + @return + the map mode the object communicates in, it can take values from + EmbedMapUnits constant + + @throws ::com::sun::star::embed::WrongStateException + the object is in wrong state + + @throws ::com::sun::star::uno::Exception + in case of problems + */ + long getMapUnit( [in] hyper nAspect ) + raises( ::com::sun::star::uno::Exception ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/embed/XWindowSupplier.idl b/offapi/com/sun/star/embed/XWindowSupplier.idl new file mode 100644 index 0000000000..2deeac8d2e --- /dev/null +++ b/offapi/com/sun/star/embed/XWindowSupplier.idl @@ -0,0 +1,38 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module embed { + +/** provides access to a VCL window implementation. + */ +published interface XWindowSupplier: com::sun::star::uno::XInterface +{ + /** allows to get access to a VCL window implementation. + + @return + VCL window implementation + */ + ::com::sun::star::awt::XWindow getWindow(); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/ControlFontDialog.idl b/offapi/com/sun/star/form/ControlFontDialog.idl new file mode 100644 index 0000000000..a2f15bf405 --- /dev/null +++ b/offapi/com/sun/star/form/ControlFontDialog.idl @@ -0,0 +1,35 @@ +/* -*- 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 . + */ + + + +module com { module sun { module star { module form { + + +/** + @since LibreOffice 4.1 + */ +published service ControlFontDialog : com::sun::star::ui::dialogs::XExecutableDialog +{ + createWithGridModel([in] com::sun::star::beans::XPropertySet GridModel); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/DataAwareControlModel.idl b/offapi/com/sun/star/form/DataAwareControlModel.idl new file mode 100644 index 0000000000..4b4e1994a9 --- /dev/null +++ b/offapi/com/sun/star/form/DataAwareControlModel.idl @@ -0,0 +1,159 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module form { + + +/** is an abstract service for specialized FormControlModels + which are data aware and thus can be bound to a data source. + +The connection between a data-aware control model and a form whose data the + control should display is made by parentship relations. The parent of a data-aware + control model (see com::sun::star::container::XChild, inherited + via the FormControlModel and FormComponent services) has + always to be a com::sun::star::form::component::DataForm.
+ */ +published service DataAwareControlModel +{ + service com::sun::star::form::FormControlModel; + + /** makes it possible to transfer the data of the model to the connected data field. ++ This interface is optional, if a component doesn't support it, it has to forward + the changes of its value to the field it is connected to immediately (means whenever a user + interaction changes it's content). +
+ */ + [optional] interface com::sun::star::form::XBoundComponent; + + + /** must be implemented in order to recognize when the containing form of the model connects + to its data source (loads its data). After loading the form, the model may bind to its + related field source.In the context of a control model which is data-aware, the semantics of default value
+ (see XReset) is as follows:
+ If (and only if) the control is valid bound to a column of its com::sun::star::form::component::DataForm, and the form
+ is not positioned on a new record (see com::sun::star::sdb::RowSet::IsNew), then
+ XReset::reset() does not reset the model's value to its default value, but uses the
+ underlying column value.
+ In all other cases, the model is reset to the default value as specified by the respective property.
For an example, have a look at the com::sun::star::form::component::TextField. It inherits + the com::sun::star::awt::UnoControlEditModel::Text property from the underlying + service, and additionally specifies the com::sun::star::form::component::TextField::DefaultText. +
+ +In the context of a com::sun::star::form::component::DataForm, controls are + automatically reset when one of the following applies +
This property makes sense in the context of the control model only. Normally, a control model
+ is a child of a com::sun::star::form::component::DataForm, which is bound
+ to a higher level object such as a table or query - more general, a result set.
+ This member here describes the column of this result set which the control should act for.
Not every control model can be bound to every database column. Usually, super services of the + DataAwareControlModel restrict the column types they can be used with.
+ + @see DataAwareControlModel::BoundField + */ + [property] string DataField; + + /** determines whether or not input into this field is required, when it is actually bound to a database field. + +If this property is set to `FALSE`, then the form runtime will not check the control/model for
+ `NULL` values before submitting data to the database. Usually, if a control model is bound to
+ a database field which cannot be `NULL`, and the model itself does not have a value, then the database
+ update is prevented, showing an error message to the user. To disable this behavior on a per-control
+ basis, use the InputRequired
property.
Applies only if the form the control model belongs to is loaded and the control is valid bound. + The referenced field supports the com::sun::star::sdb::Column service. +
+ @see DataAwareControlModel::DataField + */ + [readonly, property] com::sun::star::beans::XPropertySet BoundField; + + + /** references to a control model within the same document which should be used as a label. +Any user interface action which needs to refer to the control is assumed to use this
+ property.
+ A very common design method for forms is to group a data aware control with a label control,
+ with the latter describing the content of the former. For instance, you may have a
+ com::sun::star::form::component::TextField, which is bound to the e-mail
+ column of your data source. Then you will probably add a
+ com::sun::star::form::component::FixedText whose label is "E-Mail",
+ and associate it with the TextField by setting it as #LabelControl.
+ Now if you imagine a component offering data search in a form, this component will examine
+ the #LabelControl property, find the com::sun::star::form::component::FixedText,
+ examine it's label, and use this label to refer to the com::sun::star::form::component::TextField.
+
When setting the property, a number of constraints apply: +
Please do not use anymore, this enum is deprecated. + @deprecated + */ +published enum DataSelectionType +{ + TABLE, + QUERY, + SQL, + SQLPASSTHROUGH + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/DatabaseDeleteEvent.idl b/offapi/com/sun/star/form/DatabaseDeleteEvent.idl new file mode 100644 index 0000000000..4a5ef76a42 --- /dev/null +++ b/offapi/com/sun/star/form/DatabaseDeleteEvent.idl @@ -0,0 +1,38 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module form { + + +/** is fired if a database record is going to be deleted. +
Please do not use anymore, this struct is deprecated.
+ @deprecated
+ */
+published struct DatabaseDeleteEvent: com::sun::star::lang::EventObject
+{
+ sequence Usually, a com::sun::star::form::component::DataForm fires this
+ event when loading the form requires parameters to be filled in. Every parameter object supports the com::sun::star::beans::XPropertySet
+ interface, and at least the properties Name and Value Please do not use anymore, this struct is deprecated.
+ @deprecated
+ */
+published struct ErrorEvent: com::sun::star::lang::EventObject
+{
+ any Reason;
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/form/FormButtonType.idl b/offapi/com/sun/star/form/FormButtonType.idl
new file mode 100644
index 0000000000..8938b0503c
--- /dev/null
+++ b/offapi/com/sun/star/form/FormButtonType.idl
@@ -0,0 +1,57 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module form {
+
+
+/** specifies the action to execute when a button is pressed.
+ @see com::sun::star::form::component::CommandButton
+ */
+published enum FormButtonType
+{
+
+ /** requires the button to act like a common push button, means no special action is triggered.
+ */
+ PUSH,
+
+
+ /** When the button is clicked, it performs a submit on its containing form.
+ */
+ SUBMIT,
+
+
+ /** When the button is clicked, it performs a reset on its containing form.
+ */
+ RESET,
+
+
+ /** When the button is clicked, a URL set for the button is opened.
+ @see com::sun::star::form::component::CommandButton::TargetURL
+ @see com::sun::star::form::component::CommandButton::TargetFrame
+ */
+ URL
+
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/form/FormComponent.idl b/offapi/com/sun/star/form/FormComponent.idl
new file mode 100644
index 0000000000..ceabcb1568
--- /dev/null
+++ b/offapi/com/sun/star/form/FormComponent.idl
@@ -0,0 +1,93 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module form {
+
+
+/** specifies a component which can be part of a form.
+
+ @see FormControlModel
+ @see com::sun::star::form::component::Form
+ */
+published service FormComponent
+{
+ /** identifies the component as a candidate for being part of a form.
+ This interface also provides the access to the component's parent. Every concrete form component - i.e. every service which includes
+ the Additionally, you can add more properties to the component as needed,
+ using the com::sun::star::beans::XPropertyContainer interface.
+ Those properties are called dynamic properties. Dynamic properties are not evaluated by the component itself,
+ nor by the form's runtime environment. They're only remembered and available for
+ use by other instances. Note that dynamic properties added to a form component are, by definition,
+ removable. That is, the com::sun::star::beans::PropertyAttribute::REMOVABLE
+ will always be set, even if you do not specify it in the
+ com::sun::star::beans::XPropertyContainer::addProperty() call. Note that the name accessed here is the same as when using the
+ com::sun::star::container::XNamed interface. The collection must provide the possibility of adding and removing
+ components by name and by index. The name of a component is not
+ necessarily unique, so the collection must be able to handle duplicate
+ entry names. The interface allows managing of scripts associated with dependent components, accessed by index.
+ However, as a client of the FormComponents service, there's no need to bother with
+ the container aspect of the com::sun::star::script::XEventAttacherManager
+ directly. A FormComponents container will automatically synchronize the elements
+ you put into it with the scripting information obtained at the
+ com::sun::star::script::XEventAttacherManager interface. For instance, at any time you can obtain the events associated with
+ the Note that the model-view-paradigm is used for form controls, too. The default -1 is used to indicate that the tab-order of this control should be
+ determined automatically. Each component which supports a tabstop must provide a
+ FormControlModel::TabIndex property. Normally, a FormController instance is evaluating this property. No semantics is given for this property, it will usually be used by the creator of a document
+ containing form controls. Usually used if the FormSubmitMethod attribute has the value POST.
+ Usually used when the form contains a file upload element. Usually used if the FormSubmitMethod attribute has the value POST and
+ the content should be reviewed as full text. Basically, a Forms is a FormComponents,
+ with the additional restriction that the contained elements support the
+ com::sun::star::form::component::Form service. Note that when this mode is set, a simultaneous TabulatorCycle
+ value of TabulatorCycle::CURRENT means that you cannot travel
+ between records anymore. This is the default and most often encountered mode. This option is usually used for forms containing a grid control only.
+ In such a form, the control has its own navigation elements, so there is
+ no need to use the navigation bar for the form, but rather for its parent.
+ The controller can be plugged into a com::sun::star::frame::XFrame, and will
+ provide a visual component for inspecting control properties. This means it allows to interactively control
+ several aspects of a FormControlModel or DataAwareControlModel, such as it's
+ data binding, it's layout, and it's event binding For using a PropertyBrowserController, you need to
+ FormComponent
service - has a set of properties which
+ are available as long as the component lives - the so-called static
+ properties.n
th
+ element in the form components by calling
+ com::sun::star::script::XEventAttacherManager::getScriptEvents()
+ with parameter n
. In particular, this invariant is always met, even after you
+ inserted/removed elements into/from the container.
+
Note that nowadays, this service is only a legacy wrapper using the + com::sun::star::inspection::ObjectInspector and the + com::sun::star::form::inspection::DefaultFormComponentInspectorModel services, and knitting them together.
+ +*/ +published service PropertyBrowserController +{ + /** contains the object to inspect. + +Changing this property from outside causes the controller to update its view + with the data of the new object
+ */ + [property] com::sun::star::beans::XPropertySet IntrospectedObject; + + /** controls the actually visible page. + +The aspects of a DataAwareControlModel which can be browsed and modified
+ using this controller can be separated into 3 groups: common aspects, data-awareness
+ related aspects, and bound events.
+ The appearance of the visual component created by the controller is that 3 tab pages, one for
+ each group, are displayed (of course if the control does not support any aspects of a given group,
+ the group is omitted).
+ With this property, it can be controller which page is currently active.
Valid values are (this list may be extended in the future): +
With supporting this interface, the component is able to operate in (and provide content + for) a com::sun::star::frame::XFrame.
+ */ + interface com::sun::star::frame::XController; + + /** allows to access the properties of the object + */ + interface com::sun::star::beans::XPropertySet; + + /** allows to access the properties via indices + */ + interface com::sun::star::beans::XFastPropertySet; + + /** allows to access more than one property of the object at the same time + */ + interface com::sun::star::beans::XMultiPropertySet; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/TabOrderDialog.idl b/offapi/com/sun/star/form/TabOrderDialog.idl new file mode 100644 index 0000000000..b7e9eee22f --- /dev/null +++ b/offapi/com/sun/star/form/TabOrderDialog.idl @@ -0,0 +1,37 @@ +/* -*- 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 . + */ + + + +module com { module sun { module star { module form { + + +/** + @since LibreOffice 4.2 + */ +published service TabOrderDialog : com::sun::star::ui::dialogs::XExecutableDialog +{ + createWithModel([in] com::sun::star::awt::XTabControllerModel TabbingModel, + [in] com::sun::star::awt::XControlContainer ControlContext, + [in] com::sun::star::awt::XWindow ParentWindow); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/TabulatorCycle.idl b/offapi/com/sun/star/form/TabulatorCycle.idl new file mode 100644 index 0000000000..75a3b50165 --- /dev/null +++ b/offapi/com/sun/star/form/TabulatorCycle.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 . + */ + + + + module com { module sun { module star { module form { + + +/** specifies how the TAB key should be used in a form. + +If the last control of a form is focused, and the user pressed the TAB key, there are + several possibilities how a FormController should handle this. + TabulatorCycle specifies these possibilities.
+ +Note that the TabulatorCycle determines what happens when SHIFT-TAB + is pressed on the first control of a form, as well as when TAB is pressed on the + last control.
+ +First and last refers to the tabbing order of controls.
+ + @see FormControlModel::TabIndex + @see FormController + */ +published enum TabulatorCycle +{ + + /** pressing the TAB key from the last control moves the focus to + the first control in the tab order of the next record. + */ + RECORDS, + + + /** pressing the TAB key from the last control moves the focus to + the first control in the tab order of the same record. + */ + CURRENT, + + + /** pressing the TAB key from the last control of a form moves + the focus to the first control of the next form in the tab order. + */ + PAGE + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/XApproveActionBroadcaster.idl b/offapi/com/sun/star/form/XApproveActionBroadcaster.idl new file mode 100644 index 0000000000..b17be2b069 --- /dev/null +++ b/offapi/com/sun/star/form/XApproveActionBroadcaster.idl @@ -0,0 +1,55 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module form { + + +/** allows to probably veto actions to be performed on components. + +Usually, a component which supports the + XApproveActionBroadcaster interface implements + com::sun::star::awt::XActionListener as well.
+ */ +published interface XApproveActionBroadcaster: com::sun::star::uno::XInterface +{ + + /** adds the specified listener to receive the XApproveActionListener::approveAction() + event. + + @param aListener + the listener to be added + */ + void addApproveActionListener( [in] com::sun::star::form::XApproveActionListener aListener ); + + + /** removes the specified listener + + @param aListener + the listener to be removed + */ + void removeApproveActionListener( [in] com::sun::star::form::XApproveActionListener aListener ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/XApproveActionListener.idl b/offapi/com/sun/star/form/XApproveActionListener.idl new file mode 100644 index 0000000000..238a738fde --- /dev/null +++ b/offapi/com/sun/star/form/XApproveActionListener.idl @@ -0,0 +1,52 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module form { + + +/** can be implemented to listen and probably veto actions to be performed on components. + +An example for an action would be the click of a + CommandButton.
+ + @see XApproveActionBroadcaster + @see com::sun::star::form::component::CommandButton + @see com::sun::star::form::control::CommandButton + */ +published interface XApproveActionListener: com::sun::star::lang::XEventListener +{ + + /** is invoked when an action is performed. + + @param aEvent + A descriptor specifying the source of the event. + + @returns + `TRUE` when the action is permitted, otherwise `FALSE`. + */ + boolean approveAction( [in] com::sun::star::lang::EventObject aEvent ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/XBoundComponent.idl b/offapi/com/sun/star/form/XBoundComponent.idl new file mode 100644 index 0000000000..3ea14ce213 --- /dev/null +++ b/offapi/com/sun/star/form/XBoundComponent.idl @@ -0,0 +1,54 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module form { + + +/** specifies a (form) component which is bound to a data source. + +The interface provides the possibility of committing its respective
+ data to a data source it is bound to. A commit() will be
+ performed by the environment (usually, a FormController).
+ For example, suppose you have a data-bound control that is connected
+ to a database field. Each time the control loses its focus, the
+ model (component) of the control is triggered by the environment
+ to store its value in the database field.
A commit may fail if an XUpdateListener vetoes the it.
+ + @see com::sun::star::form::XUpdateListener + */ +published interface XBoundComponent: com::sun::star::form::XUpdateBroadcaster +{ + + /** commits the content of the component into the data source it is bound to. + + @returns + `TRUE` when the commitment was successful, otherwise `FALSE`. + */ + boolean commit(); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/XBoundControl.idl b/offapi/com/sun/star/form/XBoundControl.idl new file mode 100644 index 0000000000..e408ae547b --- /dev/null +++ b/offapi/com/sun/star/form/XBoundControl.idl @@ -0,0 +1,52 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module form { + + +/** allows locking the input on components. + */ + +published interface XBoundControl: com::sun::star::uno::XInterface +{ + + /** determines whether the input is currently locked or not. + + @returns + `TRUE` when it is currently locked, otherwise `FALSE`. + */ + boolean getLock(); + + + /** is used for altering the current lock state of the + component. + + @param bLock + the new lock state. + */ + void setLock( [in] boolean bLock ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/XChangeBroadcaster.idl b/offapi/com/sun/star/form/XChangeBroadcaster.idl new file mode 100644 index 0000000000..a7f184137c --- /dev/null +++ b/offapi/com/sun/star/form/XChangeBroadcaster.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 . + */ + + + + module com { module sun { module star { module form { + + +/** provides functionality to notify listeners of data changes. + +The concrete semantics of a change (i.e. the conditions for when a change event + is fired) must be specified in the service description of the providing service.
+ + @see XChangeListener + */ +published interface XChangeBroadcaster: com::sun::star::uno::XInterface +{ + + /** adds the specified listener to receive the "changed" event. + + @param aListener + the listener to add. + + @see com::sun::star::form::XChangeListener + */ + void addChangeListener( [in] com::sun::star::form::XChangeListener aListener ); + + + /** removes the specified listener. + + @param aListener + the listener to remove. + + @see com::sun::star::form::XChangeListener + */ + void removeChangeListener( [in] com::sun::star::form::XChangeListener aListener ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/XChangeListener.idl b/offapi/com/sun/star/form/XChangeListener.idl new file mode 100644 index 0000000000..35aa2e987a --- /dev/null +++ b/offapi/com/sun/star/form/XChangeListener.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 . + */ + + + + module com { module sun { module star { module form { + + +/** is the listener interface for receiving notifications about data changes. + +The concrete semantics of a change (i.e. the conditions for when a change event + is fired) must be specified in the description of the service broadcasting the + change.
+ + @see XChangeBroadcaster + */ +published interface XChangeListener: com::sun::star::lang::XEventListener +{ + + /** is invoked when the data of a component has been changed. + + @param rEvent + A descriptor specifying the source of the event. + */ + void changed( [in] com::sun::star::lang::EventObject rEvent ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/XConfirmDeleteBroadcaster.idl b/offapi/com/sun/star/form/XConfirmDeleteBroadcaster.idl new file mode 100644 index 0000000000..5a08415144 --- /dev/null +++ b/offapi/com/sun/star/form/XConfirmDeleteBroadcaster.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 . + */ + + + + module com { module sun { module star { module form { + + +/** provides the possibility of receiving an event for confirming deletions of + rows in a com::sun::star::form::component::DataForm. + + @see XConfirmDeleteListener + */ +published interface XConfirmDeleteBroadcaster: com::sun::star::uno::XInterface +{ + + /** remembers the specified listener to receive an event for confirming deletions + +XConfirmDeleteListener::confirmDelete() is called before a + deletion is performed. You may use the event to write your own confirmation messages.
+ + @param aListener + the listener to add. + + @see com::sun::star::form::XConfirmDeleteListener + */ + void addConfirmDeleteListener( [in] com::sun::star::form::XConfirmDeleteListener aListener ); + + + /** removes the specified listener. + + @param aListener + the listener to remove. + + @see com::sun::star::form::XConfirmDeleteListener + */ + void removeConfirmDeleteListener( [in] com::sun::star::form::XConfirmDeleteListener aListener ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/XConfirmDeleteListener.idl b/offapi/com/sun/star/form/XConfirmDeleteListener.idl new file mode 100644 index 0000000000..2a38999b80 --- /dev/null +++ b/offapi/com/sun/star/form/XConfirmDeleteListener.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 . + */ + + + module com { module sun { module star { module form { + + +/** allows to register a component for confirming deletions of + rows in a com::sun::star::form::component::DataForm. + + @see XConfirmDeleteBroadcaster + */ +published interface XConfirmDeleteListener: com::sun::star::lang::XEventListener +{ + + /** is invoked when the current record of a database form will be deleted. + + @param aEvent + A descriptor specifying the deletion request. + + @returns + `TRUE` when the row can be deleted, otherwise `FALSE`. + */ + boolean confirmDelete( [in] com::sun::star::sdb::RowChangeEvent aEvent ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/XDatabaseParameterBroadcaster.idl b/offapi/com/sun/star/form/XDatabaseParameterBroadcaster.idl new file mode 100644 index 0000000000..285bdc641b --- /dev/null +++ b/offapi/com/sun/star/form/XDatabaseParameterBroadcaster.idl @@ -0,0 +1,57 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module form { + + +/** provides the possibility of receiving an event for configuration of parameters. +This interface is usually implemented by components which are to execute a statement, + and may need parameter information. For example, the + com::sun::star::form::component::DataForm is such a component. When it is + bound to a statement which contains parameters, or to a query which is based upon a parametrized + statement, it needs values to fill in the parameters with actual values when it is being loaded. + One method to gather these values is calling the XDatabaseParameterListener listeners, which + can fill them in.
+ */ +published interface XDatabaseParameterBroadcaster: com::sun::star::uno::XInterface +{ + + /** adds the specified listener, to allow it to fill in necessary parameter values. + @param aListener + the listener to add. + @see com::sun::star::form::XDatabaseParameterListener + */ + void addParameterListener( [in] com::sun::star::form::XDatabaseParameterListener aListener ); + + + /** removes the specified listener. + @param aListener + the listener to remove. + @see com::sun::star::form::XDatabaseParameterListener + */ + void removeParameterListener( [in] com::sun::star::form::XDatabaseParameterListener aListener ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/XDatabaseParameterBroadcaster2.idl b/offapi/com/sun/star/form/XDatabaseParameterBroadcaster2.idl new file mode 100644 index 0000000000..4f0665acf3 --- /dev/null +++ b/offapi/com/sun/star/form/XDatabaseParameterBroadcaster2.idl @@ -0,0 +1,57 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module form { + + +/** provides the possibility of receiving an event for configuration of parameters. + +Note that this interface provides exactly the same functionality as the + XDatabaseParameterBroadcaster interface. It exists purely for compatibility + with the com::sun::star::script::XEventAttacher::attachSingleEventListener(): + It expects the methods for adding and removing listeners to follow a certain naming scheme, + respective to the name of the listener which is being added/removed.
+ + @see XDatabaseParameterBroadcaster + @see com::sun::star::script::XEventAttacher +*/ +interface XDatabaseParameterBroadcaster2: XDatabaseParameterBroadcaster +{ + /** registers an XDatabaseParameterListener + +This method behaves exactly as the XDatabaseParameterBroadcaster::addParameterListener() + method inherited from the base interface.
+ */ + void addDatabaseParameterListener( [in] com::sun::star::form::XDatabaseParameterListener aListener ); + + + /** revokes an XDatabaseParameterListener + +This method behaves exactly as the XDatabaseParameterBroadcaster::removeParameterListener() + method inherited from the base interface.
+ */ + void removeDatabaseParameterListener( [in] com::sun::star::form::XDatabaseParameterListener aListener ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/XDatabaseParameterListener.idl b/offapi/com/sun/star/form/XDatabaseParameterListener.idl new file mode 100644 index 0000000000..9d6e2a620d --- /dev/null +++ b/offapi/com/sun/star/form/XDatabaseParameterListener.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 . + */ + + + + module com { module sun { module star { module form { + + +/** allows to intercept value request for parametrized SQL statements. + */ +published interface XDatabaseParameterListener: com::sun::star::lang::XEventListener +{ + + /** is invoked when there is a need for parameter values + + @param aEvent + the event describing the parameter value request. + + @returns + `TRUE` when the execution of the parametrized statement should continue, `FALSE` otherwise. + + @see com::sun::star::form::DatabaseParameterEvent + */ + boolean approveParameter( [in] com::sun::star::form::DatabaseParameterEvent aEvent ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/XDeleteListener.idl b/offapi/com/sun/star/form/XDeleteListener.idl new file mode 100644 index 0000000000..54b0d2ceb2 --- /dev/null +++ b/offapi/com/sun/star/form/XDeleteListener.idl @@ -0,0 +1,54 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module form { + + +/** This is the listener interface for receiving "approveDelete" and + "deleted" events posted by a database form. + +"approveDelete" may be used to abort a deletion of the current data + record.
+ +Please do not use anymore, this interface is superseded + by com::sun::star::form::XConfirmDeleteListener.
+ + @deprecated + */ +published interface XDeleteListener: com::sun::star::lang::XEventListener +{ + + /** is invoked when the current record of the database form will be deleted. + */ + boolean approveDelete( [in] com::sun::star::lang::EventObject aEvent ); + + + /** is invoked when a database form has finished the delete processing and + the data has been successfully deleted from the datasource. + */ + void deleted( [in] com::sun::star::lang::EventObject aEvent ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/XErrorBroadcaster.idl b/offapi/com/sun/star/form/XErrorBroadcaster.idl new file mode 100644 index 0000000000..aca0b1be36 --- /dev/null +++ b/offapi/com/sun/star/form/XErrorBroadcaster.idl @@ -0,0 +1,49 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module form { + + +/** provides the possibility of receiving database error events. + +Please do not use anymore, this interface is superseded + by com::sun::star::sdb::XSQLErrorBroadcaster.
+ + @deprecated + */ +published interface XErrorBroadcaster: com::sun::star::uno::XInterface +{ + + /** adds the specified listener to be notified of errors. + */ + void addErrorListener( [in] com::sun::star::form::XErrorListener aListener ); + + + /** removes the specified listener. + */ + void removeErrorListener( [in] com::sun::star::form::XErrorListener aListener ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/XErrorListener.idl b/offapi/com/sun/star/form/XErrorListener.idl new file mode 100644 index 0000000000..d355ce73e6 --- /dev/null +++ b/offapi/com/sun/star/form/XErrorListener.idl @@ -0,0 +1,49 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module form { + + +/** used to be notified when errors in a database form happen. + +Each time an exception is triggered by a database form, the error + event is posted to the error listeners. This event may be used to + configure the error handling of a database form.
+ +Please do not use anymore, this interface is superseded + by com::sun::star::sdb::XSQLErrorListener.
+ + @deprecated + */ +published interface XErrorListener: com::sun::star::lang::XEventListener +{ + + /** is invoked when a database action performed by a database form raises + an exception. + */ + void errorOccured( [in] com::sun::star::form::ErrorEvent aEvent ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/XForm.idl b/offapi/com/sun/star/form/XForm.idl new file mode 100644 index 0000000000..eecf7329fe --- /dev/null +++ b/offapi/com/sun/star/form/XForm.idl @@ -0,0 +1,39 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module form { + + +/** identifies a FormComponent as being a (sub-) form. + +This interface does not really provide an own functionality, it is only for easier + runtime identification of form components.
+ + @see XFormComponent + */ +published interface XForm: com::sun::star::form::XFormComponent +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/XFormComponent.idl b/offapi/com/sun/star/form/XFormComponent.idl new file mode 100644 index 0000000000..ccec6ae6e3 --- /dev/null +++ b/offapi/com/sun/star/form/XFormComponent.idl @@ -0,0 +1,39 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module form { + + +/** describes a component which may be part of a form. + +This interface does not really provide an own functionality, it is only for easier + runtime identification of form components.
+ + @see XForm + */ +published interface XFormComponent: com::sun::star::container::XChild +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/XFormController.idl b/offapi/com/sun/star/form/XFormController.idl new file mode 100644 index 0000000000..cd72c7ce26 --- /dev/null +++ b/offapi/com/sun/star/form/XFormController.idl @@ -0,0 +1,39 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module form { + + +/** is superseded by com::sun::star::form::runtime::XFormController. + @deprecated + */ +published interface XFormController: com::sun::star::awt::XTabController +{ + ::com::sun::star::awt::XControl getCurrentControl(); + void addActivateListener( [in] ::com::sun::star::form::XFormControllerListener l ); + void removeActivateListener( [in] ::com::sun::star::form::XFormControllerListener l ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/XFormControllerListener.idl b/offapi/com/sun/star/form/XFormControllerListener.idl new file mode 100644 index 0000000000..c98e39f861 --- /dev/null +++ b/offapi/com/sun/star/form/XFormControllerListener.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 . + */ + + + + module com { module sun { module star { module form { + + +/** allows to be notified when the activation status of a FormController changes. + +A form controller is activated if a form control gains the + focus and none of its controls currently owned the focus before.
+ + @see XFormController + */ +published interface XFormControllerListener: com::sun::star::lang::XEventListener +{ + + /** is invoked when a control of the controller gained the focus and + the controller was not previously activated. + + @param rEvent + the event happened. + */ + void formActivated( [in] com::sun::star::lang::EventObject rEvent ); + + + /** is invoked when a control of the "XFormController" lost the focus + and no control of the controller received the focus. In other + words, no control of the controller owns the focus. + + @param rEvent + the event happened. + */ + void formDeactivated( [in] com::sun::star::lang::EventObject rEvent ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/XForms.idl b/offapi/com/sun/star/form/XForms.idl new file mode 100644 index 0000000000..4bb091f728 --- /dev/null +++ b/offapi/com/sun/star/form/XForms.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 . + */ + + +module com { module sun { module star { module form { + + +/** + @since LibreOffice 4.1 + */ +published interface XForms +{ + /** allows to register listeners to be notified of changes in the container. + */ + interface com::sun::star::container::XContainer; + + /** allows to add/remove elements by name. + */ + interface com::sun::star::container::XNameContainer; // ->XNameReplace->XNameAccess->XElementAccess->XInterface + + /** gives access to the elements by index. + */ + interface com::sun::star::container::XIndexContainer; // ->XIndexReplace->XIndexAccess->XElementAccess->XInterface + + /** creates an enumeration of the elements. + */ + interface com::sun::star::container::XEnumerationAccess; // ->XElementAccess->XInterface + + /** This interface has to be implemented to supply the scripting environment + for the contained components. + +The interface allows managing of scripts associated with dependent components, accessed by index. + However, as a client of the FormComponents service, there's no need to bother with + the container aspect of the com::sun::star::script::XEventAttacherManager + directly. A FormComponents container will automatically synchronize the elements + you put into it with the scripting information obtained at the + com::sun::star::script::XEventAttacherManager interface.
+ +For instance, at any time you can obtain the events associated with
+ the n
th
+ element in the form components by calling
+ com::sun::star::script::XEventAttacherManager::getScriptEvents()
+ with parameter n
. In particular, this invariant is always met, even after you
+ inserted/removed elements into/from the container.
If you need read access to the forms collection, then you might check + the existence of forms using hasForms(), and if it returns + `FALSE`, you can do as if XFormsSupplier::getForms() would + have returned an empty container.
+ +Semantically, hasForms() is equivalent to calling + XElementAccess::hasElements() on the container returned by + XFormsSupplier::getForms(). But when using the latter, the + implementation is forced to create an empty container, which might be potentially + expensive.
+ */ + boolean hasForms(); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/XGrid.idl b/offapi/com/sun/star/form/XGrid.idl new file mode 100644 index 0000000000..72f729f17f --- /dev/null +++ b/offapi/com/sun/star/form/XGrid.idl @@ -0,0 +1,57 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module form { + + +/** provides the possibility of setting and retrieving the position + of the current cell in a grid control. + +Note that a grid control does not allow free control over the current row:
+ In such a control, every line represents a row of data of the underlying
+ com::sun::star::form::component::DataForm. Thus, the current
+ row of the grid control always equals the current row of the
+ com::sun::star::form::component::DataForm, and can be affected only
+ by changing the latter.
+ The current column of a grid control, whoever, can be freely controlled.
Grid columns (more precise: models of grid columns) are direct children of + the grid control model they belong to. Grid columns can't be created on a global + service factory, instead, you need to create them on the grid, where you want to + insert them later on.
+ + @see com::sun::star::form::component::GridControl + */ +published interface XGridColumnFactory: com::sun::star::uno::XInterface +{ + + /** creates a new column object + + @param aColumnType + the type of column to be created + + @returns + the new column object + + @throws com::sun::star::lang::IllegalArgumentException + if aColumnType is not available. + */ + com::sun::star::beans::XPropertySet createColumn( [in] string aColumnType ) + raises( com::sun::star::lang::IllegalArgumentException ); + + + /** returns a list of available column types. + + @returns + a list of column types. + */ + sequenceYou can retrieve the data type information and the data in a row.
+ +This interface allows to retrieve data even for rows which are not current, which is quite useful, + as normally, you can't affect the current row in a grid control without moving the cursor of the underlying + com::sun::star::form::component::DataForm.
+ + @see XGrid + @see com::sun::star::form::control::GridControl + @see com::sun::star::form::component::GridControl + + @deprecated + */ +published interface XGridFieldDataSupplier: com::sun::star::uno::XInterface +{ + /** checks whether or not the content of the grid's columns can be retrieved in the requested format. + +Not every cell content can be retrieved in every representation. For example, in a text column,
+ you usually won't be able to retrieve the content as double.
+ To check if the type you need is supported by the columns, use this method.
If a column does not support the requested type, `NULL` is returned at the respective + position.
+ + @see XGridFieldDataSupplier::queryFieldDataType + */ + sequenceUsually, the columns used are the columns as supplied by the grid control model.
+ +You should use this interface only if you know exactly what you are doing. Tampering + with the columns of a grid control which is part of a complex form can really hurt...
+ + @deprecated + @see com::sun::star::awt::XWindowPeer + @see com::sun::star::form::component::GridControl + */ +published interface XGridPeer: com::sun::star::uno::XInterface +{ + + /** retrieves the currently used column definitions of the peer. + */ + com::sun::star::container::XIndexContainer getColumns(); + + + /** sets the column definition for the peer. + */ + void setColumns( [in] com::sun::star::container::XIndexContainer aColumns ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/XImageProducerSupplier.idl b/offapi/com/sun/star/form/XImageProducerSupplier.idl new file mode 100644 index 0000000000..eb3787ea2e --- /dev/null +++ b/offapi/com/sun/star/form/XImageProducerSupplier.idl @@ -0,0 +1,44 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module form { + + +/** provides the access to an image producer. + + @see com::sun::star::awt::XImageProducer + */ +published interface XImageProducerSupplier: com::sun::star::uno::XInterface +{ + + /** accesses the image producer. + + @returns + the image producer. + */ + com::sun::star::awt::XImageProducer getImageProducer(); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/XInsertListener.idl b/offapi/com/sun/star/form/XInsertListener.idl new file mode 100644 index 0000000000..908fcc8af0 --- /dev/null +++ b/offapi/com/sun/star/form/XInsertListener.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 . + */ + + + + module com { module sun { module star { module form { + + +/** allows to receive notifications about insertions into a database form. + +Please do not use anymore, this interface is deprecated, and + superseded by functionality from the com::sun::star::form::component::DataForm + service, as well as the com::sun::star::sdbc::XRowSetListener and + com::sun::star::sdb::XRowSetApproveListener interfaces.
+ + @deprecated + */ +published interface XInsertListener: com::sun::star::lang::XEventListener +{ + + /** is invoked when a database form starts inserting a record. + */ + void inserting( [in] com::sun::star::lang::EventObject aEvent ); + + + /** is invoked after a database form has inserted a record to a data source. + */ + void inserted( [in] com::sun::star::lang::EventObject aEvent ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/XLoadListener.idl b/offapi/com/sun/star/form/XLoadListener.idl new file mode 100644 index 0000000000..fad9dbb053 --- /dev/null +++ b/offapi/com/sun/star/form/XLoadListener.idl @@ -0,0 +1,85 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module form { + + +/** receives load-related events from a loadable object. + +The interface is typically implemented by data-bound components, + which want to listen to the data source that contains their database + form.
+ + @see com::sun::star::form::XLoadable + @see DataAwareControlModel + */ +published interface XLoadListener: com::sun::star::lang::XEventListener +{ + + /** is invoked when the object has successfully connected to a datasource. + + @param aEvent + the event happened. + */ + void loaded( [in] com::sun::star::lang::EventObject aEvent ); + + + /** is invoked when the object is about to be unloaded. +Components may use this to stop any other event processing related to + the event source before the object is unloaded.
+ + @param aEvent + the event happened. + */ + void unloading( [in] com::sun::star::lang::EventObject aEvent ); + + + /** is invoked after the object has disconnected from a datasource. + + @param aEvent + the event happened. + */ + void unloaded( [in] com::sun::star::lang::EventObject aEvent ); + + + /** is invoked when the object is about to be reloaded. + +Components may use this to stop any other event processing related + to the event source until they get the reloaded event.
+ + @param aEvent + the event happened. + */ + void reloading( [in] com::sun::star::lang::EventObject aEvent ); + + + /** is invoked when the object has been reloaded. + + @param aEvent + the event happened. + */ + void reloaded( [in] com::sun::star::lang::EventObject aEvent ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/XLoadable.idl b/offapi/com/sun/star/form/XLoadable.idl new file mode 100644 index 0000000000..cab059c102 --- /dev/null +++ b/offapi/com/sun/star/form/XLoadable.idl @@ -0,0 +1,77 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module form { + + +/** provides functionality to implement objects which may be loaded. + +The object is typically implemented by high-level objects which can connect to a data source.
+ + @see XLoadListener + */ +published interface XLoadable: com::sun::star::uno::XInterface +{ + + /** loads the data. + +If the data is already loaded (->isLoaded), then the method returns silently. + In this case, you should use ->reload.
+ */ + void load(); + + + /** unloads the data. + */ + void unload(); + + + /** does a smart refresh of the object. + +The final state will be the same as if unload and load were called, but reload + is the more efficient way to do the same. If the object isn't loaded, nothing happens.
+ */ + void reload(); + + + /** returns if the object is in loaded state. + */ + boolean isLoaded(); + + + /** adds the specified listener to receive load-related events + + @param aListener + the listener to add. + */ + void addLoadListener( [in] com::sun::star::form::XLoadListener aListener ); + + + /** removes the specified listener. + + @param aListener + the listener to remove. + */ + void removeLoadListener( [in] com::sun::star::form::XLoadListener aListener ); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/XPositioningListener.idl b/offapi/com/sun/star/form/XPositioningListener.idl new file mode 100644 index 0000000000..bb3f006e2f --- /dev/null +++ b/offapi/com/sun/star/form/XPositioningListener.idl @@ -0,0 +1,45 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module form { + + +/** allows to receive notifications about cursor movements into a database form. + +Please do not use anymore, this interface is deprecated, and + superseded by functionality from the com::sun::star::form::component::DataForm + service, as well as the com::sun::star::sdbc::XRowSetListener.
+ + @deprecated + */ +published interface XPositioningListener: com::sun::star::lang::XEventListener +{ + + /** is invoked when the database form has been positioned on a data record. + */ + void positioned( [in] com::sun::star::lang::EventObject aEvent ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/XReset.idl b/offapi/com/sun/star/form/XReset.idl new file mode 100644 index 0000000000..948f26ff0d --- /dev/null +++ b/offapi/com/sun/star/form/XReset.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 . + */ + + + + module com { module sun { module star { module form { + + +/** provides functionality to reset components to some default values. + +The semantics of default value depends on the providing service.
+ */ +published interface XReset: com::sun::star::uno::XInterface +{ + + /** resets a component to some default value. + */ + void reset(); + + + /** adds the specified listener to receive events related to resetting the + component. + + @param aListener + the listener to add. + */ + void addResetListener( [in] com::sun::star::form::XResetListener aListener ); + + + /** removes the specified listener + + @param aListener + the listener to remove + */ + void removeResetListener( [in] com::sun::star::form::XResetListener aListener ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/XResetListener.idl b/offapi/com/sun/star/form/XResetListener.idl new file mode 100644 index 0000000000..19b97918f5 --- /dev/null +++ b/offapi/com/sun/star/form/XResetListener.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 . + */ + + + + module com { module sun { module star { module form { + + +/** is the interface for receiving notifications about reset events. + +The listener is called if a component implementing the
+ XReset interface performs a reset.
+ Order of events:
+
Such a notification is typically sent when the user cancels updating the + current record of a database form + without saving the data. After restoring, the user operates on the original data.
+ +Please do not use anymore, this interface is deprecated, and + superseded by functionality from the com::sun::star::form::component::DataForm + and com::sun::star::sdb::RowSet services
+ + @deprecated + */ +published interface XRestoreListener: com::sun::star::lang::XEventListener +{ + + /** is invoked when a modified record has been restored + */ + void restored( [in] com::sun::star::lang::EventObject aEvent ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/XSubmit.idl b/offapi/com/sun/star/form/XSubmit.idl new file mode 100644 index 0000000000..53d88bf35d --- /dev/null +++ b/offapi/com/sun/star/form/XSubmit.idl @@ -0,0 +1,71 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module form { + + +/** provides functionality to submit data from a component. + +Usually, this is used by com::sun::star::form::component::HTMLForms. + +
See the HTML specification + to learn about submitting forms.
+ */ +published interface XSubmit: com::sun::star::uno::XInterface +{ + + /** submits the component's data to a specified target. + + @param aControl + the control whose data is to be submitted + + @param aMouseEvt + the event which triggered the submit, if it was a mouse event + + @see com::sun::star::awt::MouseEvent + */ + void submit( [in] com::sun::star::awt::XControl aControl, + [in] com::sun::star::awt::MouseEvent aMouseEvt ); + + + /** adds the specified listener to receive the "approveSubmit" event. + + @param aListener + the listener to add. + + @see com::sun::star::form::XSubmitListener + */ + void addSubmitListener( [in] com::sun::star::form::XSubmitListener aListener ); + + + /** removes the specified listener. + @param aListener + the listener to remove. + @see com::sun::star::form::XSubmitListener + */ + void removeSubmitListener( [in] com::sun::star::form::XSubmitListener aListener ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/XSubmitListener.idl b/offapi/com/sun/star/form/XSubmitListener.idl new file mode 100644 index 0000000000..44ae39b818 --- /dev/null +++ b/offapi/com/sun/star/form/XSubmitListener.idl @@ -0,0 +1,54 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module form { + + +/** receives notifications about data being submitted. + +The submission may be canceled, so the listener has the possibility + of verifying the data before submission.
+ + @see XSubmit + + @deprecated + This interface is superseded by the com::sun::star::form::submission::XSubmissionVetoListener + interface. New implementations should use the latter, if possible. + */ +published interface XSubmitListener: com::sun::star::lang::XEventListener +{ + + /** is invoked when a component is about to submit it's data. + + @param Event + the event happened + + @returns + `TRUE` when submitting was approved, otherwise `FALSE`. + */ + boolean approveSubmit( [in] com::sun::star::lang::EventObject Event ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/XUpdateBroadcaster.idl b/offapi/com/sun/star/form/XUpdateBroadcaster.idl new file mode 100644 index 0000000000..374432565e --- /dev/null +++ b/offapi/com/sun/star/form/XUpdateBroadcaster.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 . + */ + + + + module com { module sun { module star { module form { + + +/** is the broadcaster interface for sending "approveUpdate" and "updated" events. + +The component supporting this interface must do approval calls + (XUpdateListener::approveUpdate()) immediately + before the data is updated, and notification calls + (XUpdateListener::updated()) immediately afterwards.
+ + @see XUpdateListener + */ +published interface XUpdateBroadcaster: com::sun::star::uno::XInterface +{ + + /** adds the specified listener to receive the events "approveUpdate" + and "updated". + @param aListener + the listener to add. + @see com::sun::star::form::XUpdateListener + */ + void addUpdateListener( [in] com::sun::star::form::XUpdateListener aListener ); + + + /** removes the specified listener. + @param aListener + the listener to remove. + @see com::sun::star::form::XUpdateListener + */ + void removeUpdateListener( [in] com::sun::star::form::XUpdateListener aListener ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/XUpdateListener.idl b/offapi/com/sun/star/form/XUpdateListener.idl new file mode 100644 index 0000000000..b5ac224cb0 --- /dev/null +++ b/offapi/com/sun/star/form/XUpdateListener.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 . + */ + + + + module com { module sun { module star { module form { + + +/** used to listen on objects which allow updating their data. +In addition to just get notified when a data update happened, the listener + has a chance to veto updates before they happen.
+ + @see XUpdateBroadcaster + */ +published interface XUpdateListener: com::sun::star::lang::XEventListener +{ + + /** is invoked to check the current data. + +For a given update process, if one of the XUpdateListeners + vetoes the change, the update is canceled, and no further notification happens.
+ + @param aEvent + An event descriptor specifying the broadcaster of the change. + + @returns + `TRUE` when the update was approved, otherwise `FALSE`. + */ + boolean approveUpdate( [in] com::sun::star::lang::EventObject aEvent ); + + + /** is invoked when an object has finished processing the updates and + the data has been successfully written. + + @param aEvent + A event descriptor specifying the broadcaster of the change. + */ + void updated( [in] com::sun::star::lang::EventObject aEvent ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/binding/BindableControlModel.idl b/offapi/com/sun/star/form/binding/BindableControlModel.idl new file mode 100644 index 0000000000..d667cab686 --- /dev/null +++ b/offapi/com/sun/star/form/binding/BindableControlModel.idl @@ -0,0 +1,72 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module form { module binding { + +/** specifies the model of a form control which supports binding to an external + value supplier. +*/ +service BindableControlModel +{ + /** specifies the basic functionality for a form control model + +Via this service, bindable control models inherit the
+ com::sun::star::util::XCloneable interface.
+ If a bindable control model, at which a binding has been established (via
+ XBindableValue::setValueBinding()), is being cloned, then the
+ binding is also established at the clone. Effectively, this means that
+ both control model instances share the same binding instance.
When a BindableControlModel is bound to an external value, + then every change in the control model's value is immediately reflected + in the external binding.
+ +If the binding set via this interface supports the ValueBinding::ReadOnly + and ValueBinding::Relevant properties, they're respected by the control model: +
ReadOnly
property (if present) is kept in sync with the
+ binding's ReadOnly
property. That is, any control using the value
+ binding is read-only as long as the binding is.Enabled
property (if present) is kept in sync
+ with the binding's Relevant
property. That is, any control using
+ the value binding is disabled as long as the binding is not relevant.In both cases, explicit changes of the model's property are ignored if they would relax
+ the restriction imposed by the binding.
+ For instance, if the binding declares its value to
+ be read-only (indicated by ValueBinding::ReadOnly being `TRUE`), then
+ any attempt to set the ReadOnly
property of the control model to `FALSE` will
+ fail. However, if the binding's value is not read-only, then the ReadOnly
+ property at the control model can be freely set.
+ The very same holds for the binding's ValueBinding::Relevant and the control
+ model's Enabled
properties.
Control models usually have some kind of value property, which reflects the very current + content of the controls associated with this model. For instance, for an + com::sun::star::form::component::TextField, this would be the + com::sun::star::awt::UnoControlEditModel::Text property of the base + service. Similarly, a com::sun::star::form::component::CheckBox has + a property com::sun::star::awt::UnoControlCheckBoxModel::State, which + reflects the current check state.
+ +Usual com::sun::star::form::DataAwareControlModels can be bound to
+ a column of a com::sun::star::form::component::DataForm, and exchange
+ their content with such a column.
+ In particular, when the com::sun::star::form::component::DataForm
+ is moved to a different record, then the bound control model is updated with the value of
+ it's column in this particular row.
+ On the other hand, when any change in the control model (e.g. resulting from a user entering
+ data in a control associated with the control model) is committed
+ (com::sun::star::form::XBoundComponent::commit()), then the actual
+ data of the control model is written into the associated
+ com::sun::star::form::component::DataForm column.
BindableDataAwareControlModel's additionally support an alternative value + binding, which forces them to exchange their value with another foreign instance. + In some sense, they are an abstraction of the data aware control models, which only + support a specialized, hard-coded value binding (namely the binding to a + com::sun::star::form::component::DataForm column).
+ +For this, they provide the XBindableValue interface which allows to + set an external component to exchange the value with.
+ +The following rules apply when a data aware control model is bound to an external value binding: +
When a BindableDataAwareControlModel is being bound to an external value, + using XBindableValue::setValueBinding(), + then the control model (its value property, respectively) and the external value are + initially synchronized by setting the external value (XValueBinding::getValue()) + at the control model.
+ +*/ +service BindableDataAwareControlModel +{ + /** specifies the functionality for binding the control model to a + column of an SQL com::sun::star::form::component::DataForm. + */ + service com::sun::star::form::DataAwareControlModel; + + /** specifies the functionality for alternatively binding the control model + to an external value. + */ + service BindableControlModel; +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/binding/BindableDatabaseCheckBox.idl b/offapi/com/sun/star/form/binding/BindableDatabaseCheckBox.idl new file mode 100644 index 0000000000..b53a685834 --- /dev/null +++ b/offapi/com/sun/star/form/binding/BindableDatabaseCheckBox.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 . + */ + + +module com { module sun { module star { module form { module binding { + + +/** This service specifies a check box which is data-aware and thus can be bound to a + database field, and additionally supports binding to arbitrary external values. + +The com::sun::star::form::binding::XValueBinding instance which + can be associated with a BindableDatabaseCheckBox must support exchanging + boolean values. The following mapping between external values and control states apply: +
If the value binding associated with a BindableDatabaseCheckBox + supports exchanging string values, and the com::sun::star::form::component::CheckBox::RefValue + is not empty, then the radio button will exchange its value as string: +
com::sun::star::form::component::CheckBox::RefValue is transferred to + possible external value bindings as soon as the check box is checked. With the member + #SecondaryRefValue, clients of the check box can also associate a value with + the not checked state of the control.
+ */ + [property] string SecondaryRefValue; +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/binding/BindableDatabaseComboBox.idl b/offapi/com/sun/star/form/binding/BindableDatabaseComboBox.idl new file mode 100644 index 0000000000..773f8239c9 --- /dev/null +++ b/offapi/com/sun/star/form/binding/BindableDatabaseComboBox.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 . + */ + + +module com { module sun { module star { module form { module binding { + + +/** This service specifies a model of a combo box (a list box combined with a text + input field) which is data-aware and thus can be bound to a database field, + and additionally supports binding to arbitrary external values. + +If a com::sun::star::form::binding::ValueBinding instance is + set at the field, it will exchange it's text with the binding as string, thus only + bindings supporting string exchange will be accepted in + com::sun::star::form::binding::XValueBinding::setValueBinding(). +
+ + @see com::sun::star::form::binding::XValueBinding::supportsType + @see com::sun::star::awt::UnoControlComboBoxModel::Text + */ +service BindableDatabaseComboBox +{ + service com::sun::star::form::component::DatabaseComboBox; + + /** specifies the interaction between an internal binding to a database column, + and an external value binding. + */ + service com::sun::star::form::binding::BindableDataAwareControlModel; + +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/binding/BindableDatabaseDateField.idl b/offapi/com/sun/star/form/binding/BindableDatabaseDateField.idl new file mode 100644 index 0000000000..dd54580722 --- /dev/null +++ b/offapi/com/sun/star/form/binding/BindableDatabaseDateField.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 . + */ + + +module com { module sun { module star { module form { module binding { + + +/** This service specifies a date input field which is data-aware and thus can be bound to a + database field, and additionally supports binding to arbitrary external values. + +If a com::sun::star::form::binding::ValueBinding instance is + set at the field, it will exchange it's content with the binding as com::sun::star::util::Date. +
+ + @see com::sun::star::form::binding::XValueBinding::supportsType + @see com::sun::star::awt::UnoControlDateFieldModel::Date + */ +service BindableDatabaseDateField +{ + service com::sun::star::form::component::DatabaseDateField; + + /** specifies the interaction between an internal binding to a database column, + and an external value binding. + */ + service com::sun::star::form::binding::BindableDataAwareControlModel; + +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/binding/BindableDatabaseFormattedField.idl b/offapi/com/sun/star/form/binding/BindableDatabaseFormattedField.idl new file mode 100644 index 0000000000..22648dcc2a --- /dev/null +++ b/offapi/com/sun/star/form/binding/BindableDatabaseFormattedField.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 . + */ + + +module com { module sun { module star { module form { module binding { + + +/** This service specifies a formatted input field which is data-aware and thus can be bound to a + database field, and additionally supports binding to arbitrary external values. + +The com::sun::star::form::binding::XValueBinding instance which + can be associated with a BindableDatabaseFormattedField must support exchanging + values of type double.
+ + @see com::sun::star::form::binding::XValueBinding::supportsType + */ +service BindableDatabaseFormattedField +{ + service com::sun::star::form::component::DatabaseFormattedField; + + /** specifies the interaction between an internal binding to a database column, + and an external value binding. + */ + service com::sun::star::form::binding::BindableDataAwareControlModel; + +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/binding/BindableDatabaseListBox.idl b/offapi/com/sun/star/form/binding/BindableDatabaseListBox.idl new file mode 100644 index 0000000000..9c61d79725 --- /dev/null +++ b/offapi/com/sun/star/form/binding/BindableDatabaseListBox.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 . + */ + + +module com { module sun { module star { module form { module binding { + +/** This service specifies a list box model which is data-aware and thus can be bound to a + database field, and additionally supports binding to arbitrary external values. + +There are six possible ways that a BindableDatabaseListBox exchanges + values with an external binding. If a new binding + is set at a BindableDatabaseListBox, the types from the following list are + tried in descending order: The first type supported by the binding is used for data exchange. +
The com::sun::star::form::binding::XValueBinding instance which + can be associated with a BindableDatabaseNumericField must support exchanging + values of type double.
+ + @see com::sun::star::form::binding::XValueBinding::supportsType + */ +service BindableDatabaseNumericField +{ + service com::sun::star::form::component::DatabaseNumericField; + + /** specifies the interaction between an internal binding to a database column, + and an external value binding. + */ + service com::sun::star::form::binding::BindableDataAwareControlModel; + +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/binding/BindableDatabaseRadioButton.idl b/offapi/com/sun/star/form/binding/BindableDatabaseRadioButton.idl new file mode 100644 index 0000000000..83c59e517d --- /dev/null +++ b/offapi/com/sun/star/form/binding/BindableDatabaseRadioButton.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 . + */ + + +module com { module sun { module star { module form { module binding { + + +/** This service specifies a radio button which is data-aware and thus can be bound to a + database field, and additionally supports binding to arbitrary external values. + +The com::sun::star::form::binding::XValueBinding instance which + can be associated with a BindableDatabaseRadioButton must support exchanging + boolean values. The following mapping between external values and control states apply: +
If the value binding associated with a BindableDatabaseRadioButton + supports exchanging string values, and the com::sun::star::form::component::RadioButton::RefValue + is not empty, then the radio button will exchange its value as string: +
com::sun::star::form::component::RadioButton::RefValue is transferred to + possible external value bindings as soon as the radio button is selected. With the member + #SecondaryRefValue, clients of the radio button can also associate a value with + the not selected state of the control.
+ */ + [property] string SecondaryRefValue; +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/binding/BindableDatabaseTextField.idl b/offapi/com/sun/star/form/binding/BindableDatabaseTextField.idl new file mode 100644 index 0000000000..729cdc5dc7 --- /dev/null +++ b/offapi/com/sun/star/form/binding/BindableDatabaseTextField.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 . + */ + + +module com { module sun { module star { module form { module binding { + + +/** This service specifies a text input field which is data-aware and thus can be bound to a + database field, and additionally supports binding to arbitrary external values. + +If a com::sun::star::form::binding::ValueBinding instance is + set at the field, it will exchange it's text with the binding as string, thus only + bindings supporting string exchange will be accepted in + com::sun::star::form::binding::XValueBinding::setValueBinding(). +
+ + @see com::sun::star::form::binding::XValueBinding::supportsType + @see com::sun::star::awt::UnoControlEditModel::Text + */ +service BindableDatabaseTextField +{ + service com::sun::star::form::component::DatabaseTextField; + + /** specifies the interaction between an internal binding to a database column, + and an external value binding. + */ + service com::sun::star::form::binding::BindableDataAwareControlModel; + +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/binding/BindableDatabaseTimeField.idl b/offapi/com/sun/star/form/binding/BindableDatabaseTimeField.idl new file mode 100644 index 0000000000..edd84e2395 --- /dev/null +++ b/offapi/com/sun/star/form/binding/BindableDatabaseTimeField.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 . + */ + + +module com { module sun { module star { module form { module binding { + + +/** This service specifies a date input field which is data-aware and thus can be bound to a + database field, and additionally supports binding to arbitrary external values. + +If a com::sun::star::form::binding::ValueBinding instance is + set at the field, it will exchange it's content with the binding as com::sun::star::util::Time. +
+ + @see com::sun::star::form::binding::XValueBinding::supportsType + @see com::sun::star::awt::UnoControlTimeFieldModel::Time + */ +service BindableDatabaseTimeField +{ + service com::sun::star::form::component::DatabaseTimeField; + + /** specifies the interaction between an internal binding to a database column, + and an external value binding. + */ + service com::sun::star::form::binding::BindableDataAwareControlModel; + +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/binding/BindableIntegerValueRange.idl b/offapi/com/sun/star/form/binding/BindableIntegerValueRange.idl new file mode 100644 index 0000000000..f47ac63ac4 --- /dev/null +++ b/offapi/com/sun/star/form/binding/BindableIntegerValueRange.idl @@ -0,0 +1,57 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module form { module binding { + + +/** this service specifies a BindableControlModel which reflects + an integer value, out of a range of permitted integer values. + +BindableIntegerValueRanges have a value property, a minimum, and a maximum, + all of type integer.
+*/ +service BindableIntegerValueRange +{ + /** specifies that the control can be bound to external values + +Any binding used with the control model (see XBindableValue::setValueBinding()) + must support exchanging double values.
+ +When the (integer) value reflected by the control model is changed, it's converted + into a double value and propagated to the binding.
+ +When the external (double) value changes, it's converted as follows to an integer + value: +
The concrete semantics of the value depends on the concrete + event being notified.
+ */ + long Position; + + /** denotes the number of changed entries, in case a change of + an entry range is being notified. + */ + long Count; + + /** denotes the changed entries + +The concrete semantics of the value depends on the concrete + event being notified.
+ */ + sequence< string > + Entries; +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/binding/ListEntrySource.idl b/offapi/com/sun/star/form/binding/ListEntrySource.idl new file mode 100644 index 0000000000..4da8e751ef --- /dev/null +++ b/offapi/com/sun/star/form/binding/ListEntrySource.idl @@ -0,0 +1,49 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module form { module binding { + + +/** defines a component which provides a list of string entries +*/ +service ListEntrySource +{ + /** allows read access to the entries represented by this component + */ + interface XListEntrySource; + + /** allows life time control for the component + +An ListEntrySource will be known to one or more components + supporting the XListEntrySink interface, which all work with + this source. However, they will not own the ListEntrySource. + The ownership is with another instance, which may also decide to obsolete + the ListEntrySource for whatever reasons (e.g. because the data model + which the binding reflected died). For this reason, a ListEntrySource + must offer a possibility to be obsoleted by its owner, and to notify this + obsoleteness to other interested parties, such as XListEntrySinks.
+ */ + interface com::sun::star::lang::XComponent; +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/binding/ValueBinding.idl b/offapi/com/sun/star/form/binding/ValueBinding.idl new file mode 100644 index 0000000000..3562e6d232 --- /dev/null +++ b/offapi/com/sun/star/form/binding/ValueBinding.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 . + */ + + +module com { module sun { module star { module form { module binding { + + +/** defines a component which allows access to a single value + +Read/Write access to the value represented by this component is supported, + as well as (optionally) active broadcasting of value changes
+*/ +service ValueBinding +{ + /** determines whether the value is currently readonly + +For instance, you could imagine a ValueBinding which + represents a cell in a spreadsheet document, and whose value is readonly + as long as the spreadsheet is locked.
+ +As long as this property is `TRUE`, the value binding should throw + an InvalidBindingStateException when its + XValueBinding::setValue() method is invoked.
+ */ + [optional, property, bound, readonly] boolean ReadOnly; + + /** determines the relevance of the value represented by the binding + +In a more complex scenario, where different form controls are bound to different + values, which all are part of a larger data structure, some of the items in this + data structure may not be relevant currently. This is indicated by the + #Relevant property being `FALSE`.
+ +XBindableValues which are bound to this binding may or may not + react in certain ways on the (ir)relevance of their bound value.
+ +One possible reaction could be that user interface elements which are associated + with the XBindableValue are disabled as long as #Relevant + is `FALSE`.
+ */ + [optional, property, bound, readonly] boolean Relevant; + + /** allows access to the properties of the binding + */ + [optional] interface com::sun::star::beans::XPropertySet; + + /** allows read and write access to the value represented by this binding + */ + interface XValueBinding; + + /** allows other components to be notified when the value represented + by the ValueBinding instance changes. + +This interface is optional, since a binding may not support + actively notifying changes in its value. Note, however, that in case + this interface is not supported, the bound component cannot react + on value changes, and will thus override any values which are + set by an instance other than itself.
+ */ + [optional] interface com::sun::star::util::XModifyBroadcaster; + + /** allows life time control for the component + +A ValueBinding may be known to one or more components + supporting the XBindableValue interface, which all work with + this binding. However, they will not own the ValueBinding. + The ownership is with another instance, which may also decide to obsolete + the ValueBinding for whatever reasons (e.g. because the data model + which the binding reflected died). For this reason, a ValueBinding + must offer a possibility to be obsoleted by its owner, and to notify this + obsoleteness to other interested parties, such as XBindableValues.
+ */ + interface com::sun::star::lang::XComponent; +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/binding/XBindableValue.idl b/offapi/com/sun/star/form/binding/XBindableValue.idl new file mode 100644 index 0000000000..96d8da5746 --- /dev/null +++ b/offapi/com/sun/star/form/binding/XBindableValue.idl @@ -0,0 +1,57 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module form { module binding { + +interface XValueBinding; + + +/** specifies support for being bound to an external value + + @see XValueBinding +*/ +interface XBindableValue : com::sun::star::uno::XInterface +{ + /** sets an external instance which controls the value of the component + +Any previously active binding will be revoked. There can be only one!
+ + @param aBinding + the new binding which is to be used by the component. May be `NULL`, + in this case only the current binding is revoked. + + @throws IncompatibleTypesException + if the new binding (provided it's not `NULL`) supports only types + which are incompatible with the types of the bindable component. + */ + void setValueBinding( [in] XValueBinding aBinding ) + raises ( IncompatibleTypesException ); + + /** retrieves the external instance which currently controls the value of the + component + */ + XValueBinding + getValueBinding( ); +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/binding/XListEntryListener.idl b/offapi/com/sun/star/form/binding/XListEntryListener.idl new file mode 100644 index 0000000000..71ebe81fc4 --- /dev/null +++ b/offapi/com/sun/star/form/binding/XListEntryListener.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 . + */ + + +module com { module sun { module star { module form { module binding { + + +/** specifies a listener for changes in a string entry list +*/ +interface XListEntryListener : com::sun::star::lang::XEventListener +{ + /** notifies the listener that a single entry in the list has change + + @param Source + is the event describing the change. The ListEntryEvent::Position + member denotes the position of the changed entry, the first (and only) element + of the ListEntryEvent::Entries member denotes the new string + */ + void entryChanged( [in] ListEntryEvent Source ); + + /** notifies the listener that a range of entries has been inserted into the list + + @param Source + is the event describing the change. The ListEntryEvent::Position + member denotes the position of the first inserted entry, the + ListEntryEvent::Entries member contains the strings which have + been inserted. + */ + void entryRangeInserted( [in] ListEntryEvent Source ); + + /** notifies the listener that a range of entries has been removed from the list + + @param Source + is the event describing the change. The ListEntryEvent::Position + member denotes the position of the first removed entry, the + ListEntryEvent::Count member the number of removed entries. + */ + void entryRangeRemoved( [in] ListEntryEvent Source ); + + /** notifies the listener that all entries of the list have changed. + +The listener should retrieve the complete new list by calling the + XListEntrySource::getAllListEntries() method of the event source + (which is denoted by com::sun::star::lang::EventObject::Source). + */ + void allEntriesChanged( [in] com::sun::star::lang::EventObject Source ); +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/binding/XListEntrySink.idl b/offapi/com/sun/star/form/binding/XListEntrySink.idl new file mode 100644 index 0000000000..8aac0bd431 --- /dev/null +++ b/offapi/com/sun/star/form/binding/XListEntrySink.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 . + */ + + +module com { module sun { module star { module form { module binding { + +interface XListEntrySource; + + +/** specifies support for indirect manipulation of a string list +*/ +interface XListEntrySink : com::sun::star::uno::XInterface +{ + /** sets the new source for the list entries of the component + +
The list represented by this component will be cleared, and initially + filled with the entries from the new list source.
+ + @param Source + the new source for the list entries. May be `NULL`, in this + case, the current source is revoked. + */ + void setListEntrySource( [in] XListEntrySource Source ); + + /** retrieves the current source for the list entries of the component. + */ + XListEntrySource + getListEntrySource( ); +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/binding/XListEntrySource.idl b/offapi/com/sun/star/form/binding/XListEntrySource.idl new file mode 100644 index 0000000000..e9af214d97 --- /dev/null +++ b/offapi/com/sun/star/form/binding/XListEntrySource.idl @@ -0,0 +1,76 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module form { module binding { + +interface XListEntryListener; + + +/** specifies a source of string list entries + +The interface supports foreign components which actively retrieve list entries, + as well as components which want to passively being notified of changes in the list.
+ + @see XListEntrySink +*/ +interface XListEntrySource : com::sun::star::uno::XInterface +{ + /** retrieves the number of entries in the list + */ + long getListEntryCount( ); + + /** provides access to a single list entry + + @throws com::sun::star::lang::IndexOutOfBoundsException + if the given position does not denote a valid index in the list + + @see getListEntryCount + */ + string getListEntry( [in] long Position ) + raises( com::sun::star::lang::IndexOutOfBoundsException ); + + /** provides access to the entirety of all list entries + */ + sequence< string > + getAllListEntries( ); + + /** adds a listener which will be notified about changes in the list + reflected by the component. + + @throws com::sun::star::lang::NullPointerException + if the given listener is `NULL` + */ + void addListEntryListener( [in] XListEntryListener Listener ) + raises( com::sun::star::lang::NullPointerException ); + + /** revokes the given listener from the list of components which will + be notified about changes in the entry list. + + @throws com::sun::star::lang::NullPointerException + if the given listener is `NULL` + */ + void removeListEntryListener( [in] XListEntryListener Listener ) + raises( com::sun::star::lang::NullPointerException ); +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/binding/XListEntryTypedSource.idl b/offapi/com/sun/star/form/binding/XListEntryTypedSource.idl new file mode 100644 index 0000000000..895f2665c2 --- /dev/null +++ b/offapi/com/sun/star/form/binding/XListEntryTypedSource.idl @@ -0,0 +1,40 @@ +/* -*- 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/. + */ + + +module com { module sun { module star { module form { module binding { + + +/** specifies a source of string list entries with corresponding underlying data values + + @see XListEntrySource + + @since LibreOffice 5.4 +*/ +interface XListEntryTypedSource : com::sun::star::form::binding::XListEntrySource +{ + /** provides access to the entirety of all list entries, along with + the corresponding underlying data values. + + @param DataValues + The sequence is used by + com::sun::star::form::component::ListBox for external + sources such as spreadsheets to return the resulting + data value if a listbox entry was selected, e.g. set it + at the specified bound cell using + com::sun::star::form::binding::XValueBinding::setValue(). + */ + sequence< string > getAllListEntriesTyped( [out] sequence< any > DataValues ); + +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/binding/XValueBinding.idl b/offapi/com/sun/star/form/binding/XValueBinding.idl new file mode 100644 index 0000000000..17e6fac33c --- /dev/null +++ b/offapi/com/sun/star/form/binding/XValueBinding.idl @@ -0,0 +1,76 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module form { module binding { + + +/** specifies a binding to a value which can be read and written. +*/ +interface XValueBinding : com::sun::star::uno::XInterface +{ + /** determines the types which are supported by this binding for value exchange + + @see supportsType + */ + sequence< type > + getSupportedValueTypes( ); + + /** determines whether a given type is supported by this binding for value exchange + +Calling this method is equal to calling getSupportedValueTypes(), + and looking up the given type in the resulting type sequence.
+ + @see getSupportedValueTypes + */ + boolean supportsType( [in] type aType ); + + /** retrieves the current value + + @throws IncompatibleTypesException + if the requested value type is not supported by the binding + @see getSupportedValueTypes + @see supportsType + */ + any getValue( [in] type aType ) + raises( IncompatibleTypesException ); + + /** sets the current value + + @throws IncompatibleTypesException + if the given value type is not supported by the binding + @throws InvalidBindingStateException + if the value currently cannot be changed, since the binding is not + fully operational. Possible reasons for this include the binding being + readonly, or the target of the binding not being present. + @throws com::sun::star::lang::NoSupportException + if the binding in general does not support write access to its binding + + @see getSupportedValueTypes + @see supportsType + @see ValueBinding + */ + void setValue( [in] any aValue ) + raises( IncompatibleTypesException, InvalidBindingStateException, com::sun::star::lang::NoSupportException ); +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/component/CheckBox.idl b/offapi/com/sun/star/form/component/CheckBox.idl new file mode 100644 index 0000000000..1f669824fc --- /dev/null +++ b/offapi/com/sun/star/form/component/CheckBox.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 . + */ + + + + module com { module sun { module star { module form { module component { + + +/** specifies the model of a check box control + +The model supports the properties required for HTML, thus you can build up + HTMLForms with it
+ */ +published service CheckBox +{ + service com::sun::star::awt::UnoControlCheckBoxModel; + + service com::sun::star::form::FormControlModel; + + /** can be used to reset the control to its default state. + + @see CheckBox::DefaultState + */ + interface com::sun::star::form::XReset; + + + /** contains a default value for the control. + +This value is used when the control is initially displayed, and for resetting it.
+ + @see com::sun::star::awt::UnoControlCheckBoxModel::State + @see com::sun::star::form::XReset + */ + [property] short DefaultState; + + + /** contains a reference value which is used for submission in a HTML + form + +When submitting a HTMLForm which contains a check box, + which is checked, the RefValue is used for submission. + */ + [property] string RefValue; +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/component/ComboBox.idl b/offapi/com/sun/star/form/component/ComboBox.idl new file mode 100644 index 0000000000..b92412311a --- /dev/null +++ b/offapi/com/sun/star/form/component/ComboBox.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 . + */ + + + + module com { module sun { module star { module form { module component { + + +/** specifies a component which allows the input of text or selection + of text from a list of text values. + */ +published service ComboBox +{ + service com::sun::star::awt::UnoControlComboBoxModel; + + service com::sun::star::form::FormControlModel; + + /** can be used to reset the control to its default text. + + @see ComboBox::DefaultText + */ + interface com::sun::star::form::XReset; + + /** contains a default value for the control. + +
This value is used when the control is initially displayed, and for resetting it.
+ + @see com::sun::star::awt::UnoControlComboBoxModel::Text + @see com::sun::star::form::XReset + */ + [property] string DefaultText; +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/component/CommandButton.idl b/offapi/com/sun/star/form/component/CommandButton.idl new file mode 100644 index 0000000000..7fa1d94dbc --- /dev/null +++ b/offapi/com/sun/star/form/component/CommandButton.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 . + */ + + + + module com { module sun { module star { module form { module component { + + +/** specifies the control model for a clickable button which is part of a form + component hierarchy. + + @see ImageButton + */ +published service CommandButton +{ + service com::sun::star::awt::UnoControlButtonModel; + + service com::sun::star::form::FormControlModel; + + /** supplies the image producer when the button is to display an image. + +If the com::sun::star::awt::UnoControlButtonModel::ImageURL points to the location of an + image to be displayed on the button, this interface can be used to retrieve an image + producer, which itself will supply the image.
+ +Usually, a control belonging to the model will use this interface to obtain the + image to be painted
+ */ + interface com::sun::star::form::XImageProducerSupplier; + + + /** describes the action to be executed by the button when pressed. + */ + [property] com::sun::star::form::FormButtonType ButtonType; + + /** describes the frame, where to open the document specified by the TargetURL. + +This property is evaluated if the button is of type URL.
+ +As always, there is a number of target names which have a special meaning, and force + a special com::sun::star::frame::Frame to be used.
+ */ + [property] string TargetFrame; + + /** specifies the URL, which should be opened if the button was clicked. + +This property is evaluated if the button is of type URL.
+ + @see com::sun::star::form::FormButtonType + */ + [property] string TargetURL; + + /** specifies the default toggle state for the button, used when it is reset. + +This property is meaningful only when com::sun::star::awt::UnoControlButtonModel::Toggle
+ is `TRUE`. In this case, the DefaultState
controls to which State
the button will
+ be reset.
For a given implementation of the interface, if this (optional) property is present, then also the optional + interface com::sun::star::form::XReset must be present.
+ */ + [optional, property] boolean DefaultState; + + /** allows resetting the button + +This property is meaningful only when com::sun::star::awt::UnoControlButtonModel::Toggle
+ is `TRUE`. In this case, the DefaultState
controls to which State
the button will
+ be reset, when com::sun::star::form::XReset::reset() is invoked.
For a given implementation of the interface, if this (optional) interface is present, then also the optional + property #DefaultState must be present.
+ */ + [optional] interface ::com::sun::star::form::XReset; +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/component/CurrencyField.idl b/offapi/com/sun/star/form/component/CurrencyField.idl new file mode 100644 index 0000000000..2ccacf8f55 --- /dev/null +++ b/offapi/com/sun/star/form/component/CurrencyField.idl @@ -0,0 +1,52 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module form { module component { + + +/** This service specifies the ControlModel for an edit field which + contains a currency value. + */ +published service CurrencyField +{ + service com::sun::star::awt::UnoControlCurrencyFieldModel; + + service com::sun::star::form::FormControlModel; + + /** can be used to reset the control to its default state. + + @see CurrencyField::DefaultValue + */ + interface com::sun::star::form::XReset; + + /** contains a default value for the control. + + @see com::sun::star::awt::UnoControlCurrencyFieldModel::Value + @see com::sun::star::form::XReset + */ + [property] double DefaultValue; + +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/component/DataForm.idl b/offapi/com/sun/star/form/component/DataForm.idl new file mode 100644 index 0000000000..ed0ff3eb7d --- /dev/null +++ b/offapi/com/sun/star/form/component/DataForm.idl @@ -0,0 +1,184 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module form { + + published interface XReset; + published interface XDatabaseParameterBroadcaster; + +module component { +/** This service specifies a form which is connected to a database and + displays the results of SQL queries. It provides the possibility of + adding new data records, modifying existing ones, or deleting them. + +A database form is a special kind of enhanced database row set + which provides all information for displaying the data and has more + possibilities for configuring the data manipulation.
+ +*/ +published service DataForm +{ + service com::sun::star::sdb::RowSet; + service com::sun::star::form::component::Form; + + /** is used to reset controls belonging to the form, and to reset database fields to which the + controls are bound + +A DataForm is reset either on explicit request, or after it is moved + to the insertion row.
+ +The insertion row is a virtual row which is used to insert new records. It is reached + by calling com::sun::star::sdbc::XResultSetUpdate::moveToInsertRow(). + The com::sun::star::sdb::RowSet service specifies exactly which notifications + happen in which order when calling com::sun::star::sdbc::XResultSetUpdate::moveToInsertRow(), + and a DataForm implementation extends this with the following contract: +
Loading a form is basically the same as executing the underlying row set. In fact, all the + functionality of this interface could be simulated by using setting some properties manually, + com::sun::star::sdbc::XRowSet::execute(), moving the row set cursor and so on.
+ +One main difference between XLoadable::load() and com::sun::star::sdbc::XRowSet::execute() + is that if you use the former, the row set is positioned on the first record, while in the latter case + it is position before the it.
+ */ + interface com::sun::star::form::XLoadable; + + /** can be used to allow an interaction handler to supply missing data during a load process. + +If data is needed during loading a form, then this is usually obtained via broadcaster-listener + mechanisms. An example for this (and currently the only one) are parameter values.
+However, if you use this method, you can pass an interaction handler which should supply these + additional data.
+ + @see com::sun::star::sdb::InteractionHandler + */ + interface com::sun::star::sdb::XCompletedExecution; + + /** can be used for filling parameters. + +You can add your component as
+ com::sun::star::form::XDatabaseParameterListener
+ to a form to get notified whenever the form needs parameter values to be filled in
+ In a first approach, the form tries to fill any parameters from its master-detail relation
+ (if any). All values which can't be filled are then passed to all listeners, which can
+ fill them by their own choice.
This is slightly changed if the form is loaded using the + com::sun::star::sdb::XCompletedExecution::connectWithCompletion() method. In this case, the parameters + are obtained from the interaction handler, not from the listeners
+ + @see XCompletedExecution + @see MasterFields + @see DetailFields + */ + interface com::sun::star::form::XDatabaseParameterBroadcaster; + + /** is used for subforms and contains the names of columns of the parent form. + +These columns are typically the foreign key fields of the parent form. + The values of these columns are used to identify the data for the subform. + Each time the parent form changes its current row, the subform requeries + it's data based on the values of the master fields.
+ +If the form is no sub form (e.g. its parent is not a form itself), this + property is not evaluated.
+ */ + [property] sequenceEntries in this sequence can either denote column names in the sub form,
+ or parameter names.
+ For instance, you could base the form on the SQL statement
+ SELECT * FROM invoices WHERE cust_ref = :cid
, and add cid
+ to the DetailFields property. In this case, the parameter will be filled from
+ the corresponding master field.
+ Alternatively, you could simply base your form on the table invoices
,
+ and add the column name cust_ref
to the DetailFields. In this case,
+ and implicit filter clause WHERE cust_ref = :<new_param_name>
will
+ be created, and the artificial parameter will be filled from the corresponding
+ master field.
+ If a string in this property denotes both a column name and a parameter name, it
+ is undefined which way it is interpreted, but implementations of the service are required
+ to either decide for the parameter or the column, and proceed as usual.
+
The columns specified herein typically represent a part of the primary key + fields or their aliases of the detail form.
+ +If the form is no sub form (e.g. its parent is not a form itself), this + property is not evaluated.
+ */ + [property] sequenceNote that this is a recommendation for user interface components displaying the + form. Form implementations may decide to allow for insertions done via the API, even + if the property is set to `FALSE`, but the user interface should respect the property + value.
+ */ + [property] boolean AllowInserts; + + /** determines if modifications of the current record of the form are allowed. + +Note that this is a recommendation for user interface components displaying the + form. Form implementations may decide to allow for updates done via the API, even + if the property is set to `FALSE`, but the user interface should respect the property + value.
+ */ + [property] boolean AllowUpdates; + + /** determines if deletions of records of the form are allowed. + +Note that this is a recommendation for user interface components displaying the + form. Form implementations may decide to allow for deletions done via the API, even + if the property is set to `FALSE`, but the user interface should respect the property + value.
+ */ + [property] boolean AllowDeletes; +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/component/DatabaseCheckBox.idl b/offapi/com/sun/star/form/component/DatabaseCheckBox.idl new file mode 100644 index 0000000000..5d7db13cf5 --- /dev/null +++ b/offapi/com/sun/star/form/component/DatabaseCheckBox.idl @@ -0,0 +1,43 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module form { module component { + + +/** This service specifies a check box which is data-aware, and can be bound to a database field. + +Mostly, you will create data-aware checkboxes as tristate checkboxes, because this + is a requirement to correctly handle `NULL` values in databases.
+ + @see ::com::sun::star::awt::UnoControlCheckBoxModel::TriState + */ +published service DatabaseCheckBox +{ + service com::sun::star::form::component::CheckBox; + + service com::sun::star::form::DataAwareControlModel; + +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/component/DatabaseComboBox.idl b/offapi/com/sun/star/form/component/DatabaseComboBox.idl new file mode 100644 index 0000000000..5591e435ab --- /dev/null +++ b/offapi/com/sun/star/form/component/DatabaseComboBox.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 . + */ + + + + module com { module sun { module star { module form { module component { + + +/** This service specifies a combo box which is data-aware, and can be bound to a database field. + +Like most other data aware controls, such a combo box will display the actual content + of the field it is bound to. In addition, as a combo box contains a list where the user + can choose items to fill into the control, this list can be filled with different data from + a database, too.
+ */ +published service DatabaseComboBox +{ + service com::sun::star::form::component::ComboBox; + + service com::sun::star::form::DataAwareControlModel; + + + /** determines if an empty text should be treated as a `NULL` value. + +When the user enters text into a combo box, and after this, the control
+ content is to be committed into the database field the control is bound to,
+ a decision must be made how to deal with empty strings.
+ This is controlled by #ConvertEmptyToNull.
If the property is set to `TRUE`, and an empty text is to be committed, this is + converted into `NULL`, else it is written as empty string.
+ */ + [property] boolean ConvertEmptyToNull; + + /** describes the source of items in the combo box's list. + +The concrete meaning of this property depends on the value of #ListSourceType
+ */ + [property] string ListSource; + + /** specifies the kind of list source. + +Note: A value of com::sun::star::form::ListSourceType::VALUELIST + is not valid for a combo box. It won't be rejected when setting it, but controls will usually ignore it + and leave the list empty.
+ */ + [property] com::sun::star::form::ListSourceType ListSourceType; +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/component/DatabaseCurrencyField.idl b/offapi/com/sun/star/form/component/DatabaseCurrencyField.idl new file mode 100644 index 0000000000..7cd1ccfc16 --- /dev/null +++ b/offapi/com/sun/star/form/component/DatabaseCurrencyField.idl @@ -0,0 +1,38 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module form { module component { + + +/** This service specifies a currency field which is data-aware, and can be bound to a database field. + */ +published service DatabaseCurrencyField +{ + service com::sun::star::form::component::CurrencyField; + + service com::sun::star::form::DataAwareControlModel; + +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/component/DatabaseDateField.idl b/offapi/com/sun/star/form/component/DatabaseDateField.idl new file mode 100644 index 0000000000..d805965c27 --- /dev/null +++ b/offapi/com/sun/star/form/component/DatabaseDateField.idl @@ -0,0 +1,38 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module form { module component { + + +/** This service specifies a date field which is data-aware, and can be bound to a database field. + */ +published service DatabaseDateField +{ + service com::sun::star::form::component::DateField; + + service com::sun::star::form::DataAwareControlModel; + +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/component/DatabaseFormattedField.idl b/offapi/com/sun/star/form/component/DatabaseFormattedField.idl new file mode 100644 index 0000000000..0504474048 --- /dev/null +++ b/offapi/com/sun/star/form/component/DatabaseFormattedField.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 . + */ + + + + module com { module sun { module star { module form { module component { + + +/** This service specifies a formatted field model which is data-aware, and can be bound to a database field. + */ +published service DatabaseFormattedField +{ + service com::sun::star::form::component::FormattedField; + + service com::sun::star::form::DataAwareControlModel; + + + /** determines if an empty text should be treated as a `NULL` value. + +When the user enters text into a formatted field control, and after this, the control
+ content is to be committed into the database field the control is bound to,
+ a decision must be made how to deal with empty strings.
+ This is controlled by #ConvertEmptyToNull.
If the property is set to `TRUE`, and an empty text is to be committed, this is + converted into `NULL`, else it is written as empty string.
+ */ + [property] boolean ConvertEmptyToNull; + +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/component/DatabaseImageControl.idl b/offapi/com/sun/star/form/component/DatabaseImageControl.idl new file mode 100644 index 0000000000..3c7f493a06 --- /dev/null +++ b/offapi/com/sun/star/form/component/DatabaseImageControl.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 . + */ + + + + module com { module sun { module star { module form { module component { + + +/** specifies the model of a control used for displaying images stored in a database. + +As every com::sun::star::form::DataAwareControlModel, an image control
+ can be bound to a database field. This means that for instance with every record change, the content
+ of the database field is taken, interpreted as image, and displayed in the control.
+ Unlike other more text-based controls, it does not interpret the content of the field as text or double,
+ but as binary stream (see com::sun::star::sdb::XColumn::getBinaryStream()).
Usually, an image control model can be bound to binary columns only, namely + com::sun::star::sdbc::DataType::BINARY, + com::sun::star::sdbc::DataType::VARBINARY, + com::sun::star::sdbc::DataType::LONGVARBINARY, + com::sun::star::sdbc::DataType::OTHER, + com::sun::star::sdbc::DataType::LONGVARCHAR
+ + + +Note that besides taking the image to be displayed from the bound field, there is another option. The + com::sun::star::awt::UnoControlImageControlModel::ImageURL property specifies + the URL of an image to be displayed. If this property is changed from outside, the respective file + is loaded and set as image source.
+ +In a usual data form, the scenario will be as follows: +
Other components can register as com::sun::star::awt::XImageConsumer + at this producer. Then they will be notified of any change in the image to be displayed.
+ */ + interface com::sun::star::form::XImageProducerSupplier; + + + /** indicates if it is possible to change the image being displayed. + */ + [property] boolean ReadOnly; + +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/component/DatabaseListBox.idl b/offapi/com/sun/star/form/component/DatabaseListBox.idl new file mode 100644 index 0000000000..4bc5ca7fa5 --- /dev/null +++ b/offapi/com/sun/star/form/component/DatabaseListBox.idl @@ -0,0 +1,147 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module form { module component { + + +/** This service specifies a data-aware list box control model. + +The base service for list boxes (ListBox) offers only + one possibility to specify the list entries: + The display strings in the + com::sun::star::awt::UnoControlListBoxModel::StringItemList + property and the corresponding values in the ListBox::ListSource + property.
+ +This service here extends this mimic. It allows to fill the list from a data source. + This means that a second result set is opened, which works on the same connection as the + form which the list box belongs to, but can be based on an arbitrary table or SQL statement.
+ +For instance, you may have a form which is bound to a table invoice, and you use it
+ to enter invoices for your customers. Probably, you will have a second table (say customer),
+ which (among other data) contains a unique key for identifying customers. In your invoice table, you will
+ have a foreign key referring to these customers.
+ Now, besides the result set the form is based on (all your invoices), the list box can be instructed
+ to open a second result set, this time for the customer table, and fill its list with entries
+ from this result set.
+ Additionally, it allows to model the relation between the two tables: When the user selects a customer from
+ the list, this customer has the unique id we just talked about (which is not necessarily visible to the
+ user in any way). The list box then automatically transfers this id into the foreign key column of
+ invoice, thus allowing the user to transparently work with human-readable strings instead of
+ pure numbers.
+ Let's call this result set the list is filled from the list result set here ...
The display strings are always taken from the first column of that result set, + and the corresponding value as per the BoundColumn property.
+ */ +published service DatabaseListBox +{ + service com::sun::star::form::component::ListBox; + + service com::sun::star::form::DataAwareControlModel; + + + /** specifies which column of the list result set should be used for data exchange. + +When you make a selection from a list box, the "BoundColumn" + property reflects which column value of a result set should + be used as the value of the component. If the control is bound + to a database field, the column value is stored in the + database field identified by the property + com::sun::star::form::DataAwareControlModel::DataField. + +
The bound column property is only used if a list source is defined + and the list source matches with the types + com::sun::star::form::ListSourceType::TABLE, + com::sun::star::form::ListSourceType::QUERY, + com::sun::star::form::ListSourceType::SQL or + com::sun::star::form::ListSourceType::SQLPASSTHROUGH. + Otherwise the property is ignored, as there is no result set from which to + get the column values.
+ */ + [property] short BoundColumn; + + + /** describes the kind of list source used. + +Depending on the value of this property, the way the value of ListBox::ListSource + is evaluated varies. +
When the user enters text into a pattern field, and after this, the control
+ content is to be committed into the database field the control is bound to,
+ a decision must be made how to deal with empty strings.
+ This is controlled by this property.
If the property is set to `TRUE`, and an empty text is to be committed, this is + converted into `NULL`, else it is written as empty string.
+ */ + [property] boolean ConvertEmptyToNull; + +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/component/DatabaseRadioButton.idl b/offapi/com/sun/star/form/component/DatabaseRadioButton.idl new file mode 100644 index 0000000000..67fa79abbd --- /dev/null +++ b/offapi/com/sun/star/form/component/DatabaseRadioButton.idl @@ -0,0 +1,38 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module form { module component { + + +/** This service specifies a radio button which is data-aware, and can be bound to a database field. + */ +published service DatabaseRadioButton +{ + service com::sun::star::form::component::RadioButton; + + service com::sun::star::form::DataAwareControlModel; + +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/component/DatabaseTextField.idl b/offapi/com/sun/star/form/component/DatabaseTextField.idl new file mode 100644 index 0000000000..2019db0ad3 --- /dev/null +++ b/offapi/com/sun/star/form/component/DatabaseTextField.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 . + */ + + + + module com { module sun { module star { module form { module component { + + +/** This service specifies a text field which is data-aware, and can be bound to a database field. + */ +published service DatabaseTextField +{ + service com::sun::star::form::component::TextField; + + service com::sun::star::form::DataAwareControlModel; + + + /** determines if an empty text should be treated as a `NULL` value. + +When the user enters text into a text field, and after this, the control
+ content is to be committed into the database field the control is bound to,
+ a decision must be made how to deal with empty strings.
+ This is controlled by this property.
If the property is set to `TRUE`, and an empty text is to be committed, this is + converted into `NULL`, else it is written as empty string.
+ */ + [property] boolean ConvertEmptyToNull; + +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/component/DatabaseTimeField.idl b/offapi/com/sun/star/form/component/DatabaseTimeField.idl new file mode 100644 index 0000000000..60692109d0 --- /dev/null +++ b/offapi/com/sun/star/form/component/DatabaseTimeField.idl @@ -0,0 +1,38 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module form { module component { + + +/** This service specifies a data-aware field for inputting a time value. + */ +published service DatabaseTimeField +{ + service com::sun::star::form::component::TimeField; + + service com::sun::star::form::DataAwareControlModel; + +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/component/DateField.idl b/offapi/com/sun/star/form/component/DateField.idl new file mode 100644 index 0000000000..e33316f30a --- /dev/null +++ b/offapi/com/sun/star/form/component/DateField.idl @@ -0,0 +1,55 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module form { module component { + + +/** specifies the model of a date field control, which is an edit field used to enter a date. +*/ +published service DateField +{ + service com::sun::star::awt::UnoControlDateFieldModel; + + service com::sun::star::form::FormControlModel; + + /** resets the control. + +If you do not set a value for the #DefaultDate, then resetting the control + will result in setting to the current system date. This is for HTML compatibility.
+ */ + interface com::sun::star::form::XReset; + + + /** contains a default value for the control. + +This value is used when the control is initially displayed, and for resetting it.
+ + @see com::sun::star::awt::UnoControlDateFieldModel::Date + @see com::sun::star::form::XReset + */ + [property] long DefaultDate; + +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/component/FileControl.idl b/offapi/com/sun/star/form/component/FileControl.idl new file mode 100644 index 0000000000..81f8215a3e --- /dev/null +++ b/offapi/com/sun/star/form/component/FileControl.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 . + */ + + + module com { module sun { module star { module form { module component { + + +/** This service specifies the control model of an edit field for a + file name. + */ +published service FileControl +{ + service com::sun::star::awt::UnoControlFileControlModel; + + service com::sun::star::form::FormControlModel; + + /** can be used to reset the control to its default text. + + @see FileControl::DefaultText + */ + interface com::sun::star::form::XReset; + + /** contains a default value for the control. + +This value is used when the control is initially displayed, and for resetting it.
+ + @see com::sun::star::awt::UnoControlFileControlModel::Text + @see com::sun::star::form::XReset + */ + [property] string DefaultText; + +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/component/FixedText.idl b/offapi/com/sun/star/form/component/FixedText.idl new file mode 100644 index 0000000000..a9d354fa54 --- /dev/null +++ b/offapi/com/sun/star/form/component/FixedText.idl @@ -0,0 +1,43 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module form { module component { + + +/** This service specifies the control model for a text which can be + displayed, but not edited by the user. + +These kind of controls is usually used to label other controls.
+ + @see com::sun::star::form::DataAwareControlModel::LabelControl + */ +published service FixedText +{ + service com::sun::star::awt::UnoControlFixedTextModel; + + service com::sun::star::form::FormControlModel; + +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/component/Form.idl b/offapi/com/sun/star/form/component/Form.idl new file mode 100644 index 0000000000..bd1c1c7814 --- /dev/null +++ b/offapi/com/sun/star/form/component/Form.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 . + */ + + + + module com { module sun { module star { module form { module component { + + +/** This service specifies a form which is a group of FormComponents. + +A form fulfills several tasks, like storing the structure of its + form components, storing the information concerning tab ordering + and control grouping, and last but not least, it provides the + event environment for its contained elements.
+ +A form acts on the one hand like a container of FormComponents + and on the other hand like a FormComponent. This generic + construction allows the definition of hierarchies of forms and their + dependent subforms.
+ + @see com::sun::star::form::FormControlModel + */ +published service Form +{ + service com::sun::star::form::FormComponent; + + service com::sun::star::form::FormComponents; + + /** identifies a component as form. + */ + interface com::sun::star::form::XForm; + + + /** This interface has to be implemented to supply the information for tab ordering and component grouping. + + @see com::sun::star::form::FormControlModel::TabIndex + */ + interface com::sun::star::awt::XTabControllerModel; +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/component/FormattedField.idl b/offapi/com/sun/star/form/component/FormattedField.idl new file mode 100644 index 0000000000..00750d32ec --- /dev/null +++ b/offapi/com/sun/star/form/component/FormattedField.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 . + */ + + + + module com { module sun { module star { module form { module component { + + +/** This service specifies the control model of an edit field for entering text which can be + (nearly) arbitrarily formatted. + + @see com::sun::star::util::XNumberFormatsSupplier + */ +published service FormattedField +{ + service com::sun::star::awt::UnoControlFormattedFieldModel; + + service com::sun::star::form::FormControlModel; + + /** can be used to reset the control to its default state. + + @see com::sun::star::awt::UnoControlFormattedFieldModel::EffectiveValue + @see com::sun::star::awt::UnoControlFormattedFieldModel::EffectiveDefault + */ + interface com::sun::star::form::XReset; +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/component/GridControl.idl b/offapi/com/sun/star/form/component/GridControl.idl new file mode 100644 index 0000000000..dd0a8358be --- /dev/null +++ b/offapi/com/sun/star/form/component/GridControl.idl @@ -0,0 +1,142 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module form { module component { + + +/** specifies a model for a control which can display form data in a table-like way. + +In opposite to other form controls, grid controls do not only + display the single current value of a column they are bound to. Moreover, they do + display not only the current row of the form, but all rows (at least potentially, limited + by the control size, of course).
+ +The table rows in a grid control correspond to the rows in the DataForm + the control belongs to, and the columns correspond to single columns of the form's row set.
+ +Columns of a grid control are modeled by own objects, too. They are very similar to usual + com::sun::star::form::DataAwareControlModels modeling other "single-value" controls, but they are not described + as own services. Instead, they need to be created using the com::sun::star::form::XGridColumnFactory interface.
+ */ +published service GridControl +{ + service com::sun::star::form::FormControlModel; + + /** provides basic functionality of a container of com::sun::star::form::FormComponents. + +All the container-related methods of this service related to control models, + this is what are the container elements for a GridControl.
+ +As the com::sun::star::form::FormComponents service also specifies + the com::sun::star::script::XEventAttacherManager service, grid control + models also provide a scripting environment for their columns.
+ */ + service com::sun::star::form::FormComponents; + + /** allows to create column models to be inserted into the control model. + +Note that the object returned by the com::sun::star::form::XGridColumnFactory::createColumn() + method is not part of the grid control, yet. It needs to be inserted using any of the + container interfaces.
+ +You always need to use this interface for creating columns for the grid control. + Column models not created this way will not be accepted when inserted later on.
+ */ + interface com::sun::star::form::XGridColumnFactory; + + /** gives access to the currently selection. + +In a grid control, single columns can be selected (at most one at a time).
+ For various unfortunate reasons, this selection is an aspect of the model, not of the
+ control as you would expect.
This interface is deprecated, new implementations should not use it anymore, as it is to + be superseded by a solution which is bound to the control, not the model.
+ + @deprecated + */ + interface com::sun::star::view::XSelectionSupplier; + + /** resets the control. + +The reset of the control is forwarded to all its elements, means to all the column models. + As grid columns are very much like data-aware stand-alone controls, you can find a description + of the reset functionality in com::sun::star::form::DataAwareControlModel::XReset. + */ + interface com::sun::star::form::XReset; + + + /** returns the border style of the control. + +
+ 0: No border + 1: 3D border + 2: simple border ++ */ + [property] short Border; + + + /** specifies the color of the border, if present + +
Not every border style (see #Border) may support coloring. + For instance, usually a border with 3D effect will ignore the BorderColor setting.
+ + @since OOo 2.0 + */ + [optional, property] long BorderColor; + + + /** determines whether the control is enabled or disabled. + */ + [property] boolean Enabled; + + + /** contains the font attributes of the text in the control. + */ + [property] com::sun::star::awt::FontDescriptor FontDescriptor; + + + /** specifies the height of a row of the grid. + +If the value is set to `NULL`, the height is determined automatically according + to the current font used.
+ + @see GridControl::FontDescriptor + */ + [property] long RowHeight; + + + /** determines whether the control can be reached by the tabulator key. + */ + [property] boolean Tabstop; + + + /** specifies the text color (RGB) of the control. + */ + [property] com::sun::star::util::Color TextColor; + +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/component/GroupBox.idl b/offapi/com/sun/star/form/component/GroupBox.idl new file mode 100644 index 0000000000..bf26ad473b --- /dev/null +++ b/offapi/com/sun/star/form/component/GroupBox.idl @@ -0,0 +1,39 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module form { module component { + + +/** This service specifies a model for a control which can be used to visually + group controls. + */ +published service GroupBox +{ + service com::sun::star::awt::UnoControlGroupBoxModel; + + service com::sun::star::form::FormControlModel; + +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/component/HTMLForm.idl b/offapi/com/sun/star/form/component/HTMLForm.idl new file mode 100644 index 0000000000..9d577321af --- /dev/null +++ b/offapi/com/sun/star/form/component/HTMLForm.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 . + */ + + + + module com { module sun { module star { module form { module component { + + +/** This service specifies the special kind of Forms for HTML documents. + +An HTMLForm fulfills the specification of forms in HTML. It supplies + the possibility of submitting or resetting the contents of a form. + For more information on HTML forms, please see the documentation of HTML.
+ */ +published service HTMLForm +{ + service com::sun::star::form::component::Form; + + /** resets the control. + */ + interface com::sun::star::form::XReset; + + /** allows to submit changes. + +When a form is submitted, the data contained in the form is sent + to the target URL as a series of name/value pairs. The name portion + of each pair is the name of a form component as specified by its NAME + attribute. In most cases the value portion is the value displayed + by the element, for example, the text displayed in a text field.
+ */ + interface com::sun::star::form::XSubmit; + + /** describes the frame, where to open the document specified by the TargetURL. + */ + [property] string TargetFrame; + + + /** specifies the URL, which should be used for submission. + */ + [property] string TargetURL; + + /** specifies the kind of submission. + */ + [property] com::sun::star::form::FormSubmitMethod SubmitMethod; + + /** specifies the kind of encoding for submission. + */ + [property] com::sun::star::form::FormSubmitEncoding SubmitEncoding; +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/component/HiddenControl.idl b/offapi/com/sun/star/form/component/HiddenControl.idl new file mode 100644 index 0000000000..5c1cc21a87 --- /dev/null +++ b/offapi/com/sun/star/form/component/HiddenControl.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 . + */ + + + + module com { module sun { module star { module form { module component { + + +/** This service specifies the model of a hidden control. + +The only sense of a hidden control is to store data in the form which is + not visible to the user.
+ +Usually, hidden controls are used in com::sun::star::form::component::HTMLForms,
+ where they contain data which is to be submitted.
+ Nevertheless, you can use them in your own forms for storing any data, for instance
+ to evaluate it in some scripting macro.
The image to be displayed is determined by com::sun::star::awt::UnoControlImageControlModel::ImageURL + property specifies the URL of an image to be displayed.
+ + @see CommandButton +*/ +published service ImageButton +{ + service com::sun::star::awt::UnoControlImageControlModel; + + service com::sun::star::form::FormControlModel; + + + /** supplies the caller with a com::sun::star::awt::XImageProducer. + +Other components can register as com::sun::star::awt::XImageConsumer + at this producer. Then they will be notified of any change in the image to be displayed.
+ +Whenever the com::sun::star::awt::UnoControlImageControlModel::ImageURL
+ property is changed, the model loads the specified image, and sets it as image source
+ at its com::sun::star::awt::XImageProducer. Then, all
+ com::sun::star::awt::XImageConsumers are notified and supplied with
+ the binary data of the image.
+ Usually, controls acting for an ImageButton model are consumers, and use the
+ data stream to display the image
This property is evaluated if the button is of type URL.
+ +As always, there is a number of target names which have a special meaning, and force + a special com::sun::star::frame::Frame to be used.
+ */ + [property] string TargetFrame; + + /** specifies the URL, which should be opened if the button was clicked. + +This property is evaluated if the button is of type URL.
+ + @see com::sun::star::form::FormButtonType + */ + [property] string TargetURL; +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/component/ListBox.idl b/offapi/com/sun/star/form/component/ListBox.idl new file mode 100644 index 0000000000..513b38a9e9 --- /dev/null +++ b/offapi/com/sun/star/form/component/ListBox.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 . + */ + + + + module com { module sun { module star { module form { module component { + + +/** specifies a model for a control which allows to choose in a list of alternative values. + */ +published service ListBox +{ + service com::sun::star::awt::UnoControlListBoxModel; + + service com::sun::star::form::FormControlModel; + + /** can be used to reset the control to its default state. + + @see ListBox::DefaultSelection + */ + interface com::sun::star::form::XReset; + + /** contains the indexes of entries of the listbox, which should selected + by default. + +This selection is used initially or for a reset.
+ + @see com::sun::star::awt::UnoControlListBoxModel::SelectedItems + @see com::sun::star::form::XReset + */ + [property] sequenceThis color is used if the #FontDescriptor defines + that the text in the control should be underlined or stroke out.
+ */ + [property] long TextLineColor; + + /** specifies the relief for the font described in #FontDescriptor + +The value must be one of the com::sun::star::text::FontRelief + constants.
+ */ + [property] long FontRelief; + + /** specifies the emphasis mark for the font described in #FontDescriptor + +The value must be one of the com::sun::star::text::FontEmphasis + constants.
+ */ + [property] long FontEmphasisMark; + + /** specifies the size of the icons in the control + +At least the following values are to be supported: +
Some buttons of a NavigationToolBar may show repeating behavior, e.g. may be
+ repeatedly triggered when the user keeps the mouse pressed over such a button.
+ The delay between two such triggers (in milliseconds) is specified with this property.
+
This value is used when the control is initially displayed, and for resetting it.
+ + @see com::sun::star::awt::UnoControlNumericFieldModel::Value + @see com::sun::star::form::XReset + */ + [property] double DefaultValue; + +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/component/PatternField.idl b/offapi/com/sun/star/form/component/PatternField.idl new file mode 100644 index 0000000000..ec52fd918b --- /dev/null +++ b/offapi/com/sun/star/form/component/PatternField.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 . + */ + + + + module com { module sun { module star { module form { module component { + + +/** specifies a component which allows the input of text which matches a specific pattern. + */ +published service PatternField +{ + service com::sun::star::awt::UnoControlPatternFieldModel; + + service com::sun::star::form::FormControlModel; + + /** can be used to reset the control to its default text. + + @see PatternField::DefaultText + */ + interface com::sun::star::form::XReset; + + /** contains a default value for the control. + +This value is used when the control is initially displayed, and for resetting it.
+ + @see com::sun::star::awt::UnoControlPatternFieldModel::Text + @see com::sun::star::form::XReset + */ + [property] string DefaultText; + +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/component/RadioButton.idl b/offapi/com/sun/star/form/component/RadioButton.idl new file mode 100644 index 0000000000..754802ac7e --- /dev/null +++ b/offapi/com/sun/star/form/component/RadioButton.idl @@ -0,0 +1,85 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module form { module component { + + +/** specifies a component which acts as a radio button as needed in HTMLForms. + +Radio buttons are controls which can be grouped together, and in every + group, only one of the controls can be check. This means if one of them + is checked by a user interaction, all other controls in the same group + are automatically unchecked
+ +Like in HTML, radio buttons are grouped together if and only if they have the + same name (see com::sun::star::form::FormComponent::Name).
+ */ +published service RadioButton +{ + service com::sun::star::awt::UnoControlRadioButtonModel; + + service com::sun::star::form::FormControlModel; + + /** can be used to reset the control to its default text. + + @see RadioButton::DefaultState + */ + interface com::sun::star::form::XReset; + + + /** contains a default value for the control. + +This value is used when the control is initially displayed, and for resetting it.
+ +In a group of radio buttons only one button should be checked + by default.
+ + @see com::sun::star::awt::UnoControlRadioButtonModel::State + @see com::sun::star::form::XReset + */ + [property] short DefaultState; + + + /** contains a reference value which is used for submission in a HTML + form. + +If the form the control belongs to is to be submitted (see + com::sun::star::form::XSubmit), and the control is checked, this reference + value is used for submission.
+ */ + [property] string RefValue; + + + /** specifies a value which is to be associated with the control when it's not + selected. + +In various situations, the #RefValue is associated with the control
+ if and only if it is selected.
+ #UncheckedRefValue provides an extension of this concept: If present,
+ the value should be associated with the control when it is not selected.
If set to `TRUE`, users need to manually press the enter key to insert a line break. + If set to `FALSE`, text is automatically wrapped at the control border.
+ */ + [property] boolean HardLineBreaks; + + /** specifies whether the control should display the text including all its formatting. + +If this is set to `FALSE`, the control will act as ordinary + com::sun::star::awt::UnoControlEditModel.
+ +If the property is set to `TRUE`, the control will ignore the following properties: +
This value is used when the control is initially displayed, and for resetting it.
+ + @see com::sun::star::awt::UnoControlScrollBarModel::ScrollValue + @see com::sun::star::form::XReset + */ + [property] long DefaultScrollValue; + +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/component/SpinButton.idl b/offapi/com/sun/star/form/component/SpinButton.idl new file mode 100644 index 0000000000..4c619ab278 --- /dev/null +++ b/offapi/com/sun/star/form/component/SpinButton.idl @@ -0,0 +1,52 @@ +/* -*- 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 . + */ + + + +module com { module sun { module star { module form { module component { + + +/** specifies the model of a scroll bar control. +*/ +service SpinButton +{ + service com::sun::star::awt::UnoControlSpinButtonModel; + + service com::sun::star::form::FormControlModel; + + /** resets the control. + */ + interface com::sun::star::form::XReset; + + + /** contains a default value for the control. + +This value is used when the control is initially displayed, and for resetting it.
+ + @see com::sun::star::awt::UnoControlSpinButtonModel::SpinValue + @see com::sun::star::form::XReset + */ + [property] long DefaultSpinValue; + +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/component/SubmitButton.idl b/offapi/com/sun/star/form/component/SubmitButton.idl new file mode 100644 index 0000000000..a6e8142ca3 --- /dev/null +++ b/offapi/com/sun/star/form/component/SubmitButton.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 . + */ + + +module com { module sun { module star { module form { module component { + + +/** specifies the control model for a button, part of a form component hierarchy, + which can be bound to external submissions. + + @see CommandButton + */ +service SubmitButton +{ + service com::sun::star::form::FormControlModel; + + /** allows binding external submissions to the control model + +Note that the control model itself will not make any use of the submission. + Instead, submissions are triggered by a control (not a control model). + Thus, the com::sun::star::form::control::SubmitButton + control associated with a SubmitButton model is responsible for + using the submission supplied at this model.
+ */ + interface com::sun::star::form::submission::XSubmissionSupplier; +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/component/TextField.idl b/offapi/com/sun/star/form/component/TextField.idl new file mode 100644 index 0000000000..97c654bf78 --- /dev/null +++ b/offapi/com/sun/star/form/component/TextField.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 . + */ + + + + module com { module sun { module star { module form { module component { + + +/** specifies a component which allows the input of text, either single- or multi-line. + */ +published service TextField +{ + service com::sun::star::awt::UnoControlEditModel; + + service com::sun::star::form::FormControlModel; + + /** specifies optional capabilities for displaying and inputting formatted text. + +If the RichTextControl::RichText property is set to `TRUE`, + then the TextField component will disable it's reset capabilities. This means + that all calls to com::sun::star::form::XReset::reset() will be ignored.
+ */ + [optional] service RichTextControl; + + /** can be used to reset the control to its default text. + + @see TextField::DefaultText + */ + interface com::sun::star::form::XReset; + + /** contains a default value for the control. + +This value is used when the control is initially displayed, and for resetting it.
+ + @see com::sun::star::awt::UnoControlEditModel::Text + @see com::sun::star::form::XReset + */ + [property] string DefaultText; +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/component/TimeField.idl b/offapi/com/sun/star/form/component/TimeField.idl new file mode 100644 index 0000000000..7acdb1c140 --- /dev/null +++ b/offapi/com/sun/star/form/component/TimeField.idl @@ -0,0 +1,55 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module form { module component { + + +/** specifies the control model for a field which can be used to input time values. + */ +published service TimeField +{ + service com::sun::star::awt::UnoControlTimeFieldModel; + + service com::sun::star::form::FormControlModel; + + /** resets the control. + +If you do not set a value for the #DefaultTime, then resetting the control + will result in setting to the current system time. This is for HTML compatibility.
+ */ + interface com::sun::star::form::XReset; + + + /** contains a default value for the control. + +This value is used when the control is initially displayed, and for resetting it.
+ + @see com::sun::star::awt::UnoControlTimeFieldModel::Time + @see com::sun::star::form::XReset + */ + [property] long DefaultTime; + +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/control/CheckBox.idl b/offapi/com/sun/star/form/control/CheckBox.idl new file mode 100644 index 0000000000..aeeabaeb06 --- /dev/null +++ b/offapi/com/sun/star/form/control/CheckBox.idl @@ -0,0 +1,43 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module form { module control { + + +/** describes a check box control which can (but not necessarily has to) be bound to a database field. + +The model of the control has to support the com::sun::star::form::component::CheckBox + service.
+ + @see com::sun::star::awt::UnoControl + @see com::sun::star::awt::UnoControlModel +*/ +published service CheckBox +{ + service com::sun::star::awt::UnoControlCheckBox; + + interface com::sun::star::form::XBoundControl; +}; + + +}; }; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/control/ComboBox.idl b/offapi/com/sun/star/form/control/ComboBox.idl new file mode 100644 index 0000000000..fa370188f5 --- /dev/null +++ b/offapi/com/sun/star/form/control/ComboBox.idl @@ -0,0 +1,43 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module form { module control { + + +/** describes a combo box control. + +The model of the control has to support the com::sun::star::form::component::ComboBox + service.
+ + @see com::sun::star::awt::UnoControl + @see com::sun::star::awt::UnoControlModel +*/ +published service ComboBox +{ + service com::sun::star::awt::UnoControlComboBox; + + interface com::sun::star::form::XBoundControl; +}; + + +}; }; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/control/CommandButton.idl b/offapi/com/sun/star/form/control/CommandButton.idl new file mode 100644 index 0000000000..e10002a86f --- /dev/null +++ b/offapi/com/sun/star/form/control/CommandButton.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 . + */ + + + module com { module sun { module star { module form { module control { + + +/** describes a button control. + +The model of the control has to support the com::sun::star::form::component::CommandButton + service.
+ +The control is clickable, the action taken upon clicking depends on the settings + of the model the control belongs to.
+ + @see com::sun::star::awt::UnoControl + @see com::sun::star::awt::UnoControlModel + @see com::sun::star::form::component::CommandButton::ButtonType +*/ +published service CommandButton +{ + service com::sun::star::awt::UnoControlButton; + + /** allows external instances to register as veto listener for the button's actions. + +A com::sun::star::form::XApproveActionListener returning false on
+ it's approve-method will prevent any action which would usually be triggered - this includes
+ not only submitting or resetting forms, but also calling the
+ com::sun::star::awt::XActionListeners of the super service
+ This may be interesting for e.g. forms which want to provide input validation before submitting
+ data.
+
+ @see com::sun::star::form::component::HTMLForm
+ @see com::sun::star::form::XSubmit
+ @see com::sun::star::form::XReset
+ @see com::sun::star::awt::XButton
+ */
+ interface com::sun::star::form::XApproveActionBroadcaster;
+};
+
+
+}; }; }; }; };
+
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/form/control/CurrencyField.idl b/offapi/com/sun/star/form/control/CurrencyField.idl
new file mode 100644
index 0000000000..43b4dc1563
--- /dev/null
+++ b/offapi/com/sun/star/form/control/CurrencyField.idl
@@ -0,0 +1,44 @@
+/* -*- 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 .
+ */
+
+
+ module com { module sun { module star { module form { module control {
+
+
+/** describes a control which can be used for inputting currency values, and
+ which can (but not necessarily has to) be bound to a database field.
+
+
The model of the control has to support the com::sun::star::form::component::CurrencyField + service.
+ + @see com::sun::star::awt::UnoControl + @see com::sun::star::awt::UnoControlModel +*/ +published service CurrencyField +{ + service com::sun::star::awt::UnoControlCurrencyField; + + interface com::sun::star::form::XBoundControl; +}; + + +}; }; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/control/DateField.idl b/offapi/com/sun/star/form/control/DateField.idl new file mode 100644 index 0000000000..861ee48bb1 --- /dev/null +++ b/offapi/com/sun/star/form/control/DateField.idl @@ -0,0 +1,44 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module form { module control { + + +/** describes a control which can be used for inputting date values, and + which can (but not necessarily has to) be bound to a database field. + +The model of the control has to support the com::sun::star::form::component::DateField + service.
+ + @see com::sun::star::awt::UnoControl + @see com::sun::star::awt::UnoControlModel +*/ +published service DateField +{ + service com::sun::star::awt::UnoControlDateField; + + interface com::sun::star::form::XBoundControl; +}; + + +}; }; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/control/FilterControl.idl b/offapi/com/sun/star/form/control/FilterControl.idl new file mode 100644 index 0000000000..80a3646dbb --- /dev/null +++ b/offapi/com/sun/star/form/control/FilterControl.idl @@ -0,0 +1,43 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module form { module control { + + +/** describes a check box control which can (but not necessarily has to) be bound to a database field. + +The model of the control has to support the com::sun::star::form::component::CheckBox + service.
+ + @see com::sun::star::awt::UnoControl + @see com::sun::star::awt::UnoControlModel +*/ +service FilterControl : com::sun::star::awt::XControl +{ + createWithFormat([in] com::sun::star::awt::XWindow MessageParent, + [in] com::sun::star::util::XNumberFormatter NumberFormatter, + [in] com::sun::star::beans::XPropertySet ControlModel); +}; + + +}; }; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/control/FormattedField.idl b/offapi/com/sun/star/form/control/FormattedField.idl new file mode 100644 index 0000000000..e518530969 --- /dev/null +++ b/offapi/com/sun/star/form/control/FormattedField.idl @@ -0,0 +1,49 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module form { module control { + + +/** describes a control which can be used for inputting values with an arbitrary formatting, and + can (but not necessarily has to) be bound to a database field. + +The model of the control has to support the com::sun::star::form::component::FormattedField + service.
+ +In addition, this control can be used in HTML forms. It triggers the + com::sun::star::form::XSubmit::submit() method of the form it belongs to if + the enter key is pressed while it has the focus.
+ + @see com::sun::star::awt::UnoControl + @see com::sun::star::awt::UnoControlModel + @see com::sun::star::util::XNumberFormatsSupplier +*/ +published service FormattedField +{ + service com::sun::star::awt::UnoControlFormattedField; + + interface com::sun::star::form::XBoundControl; +}; + + +}; }; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/control/GridControl.idl b/offapi/com/sun/star/form/control/GridControl.idl new file mode 100644 index 0000000000..024f35be97 --- /dev/null +++ b/offapi/com/sun/star/form/control/GridControl.idl @@ -0,0 +1,114 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module form { + +published interface XGridControl; + +module control { + + +/** describes a table-like control for displaying data. + +The model of the control has to support the com::sun::star::form::component::GridControl + service.
+ + @see com::sun::star::awt::UnoControl + @see com::sun::star::awt::UnoControlModel +*/ +published service GridControl +{ + service com::sun::star::awt::UnoControl; + + /** allows committing the content of the active cell of the control. + */ + interface com::sun::star::form::XBoundComponent; + + /** allows access to the active cell within the grid. + +Only the column position can be modified using this interface, as the row position within + a table control bound to a data source is given implicitly (by the cursor position of the data source).
+ */ + interface com::sun::star::form::XGrid; + + [optional] interface com::sun::star::form::XGridControl; + + /** used to broadcast modifications made by the user (within the active cell) + */ + interface com::sun::star::util::XModifyBroadcaster; + + /** allows access to the field data of the grid's current row in different formats + */ + [optional] interface com::sun::star::form::XGridFieldDataSupplier; + + /** allows access to objects wrapping a single column + */ + interface com::sun::star::container::XIndexAccess; + + /** allows creation of an enumeration for the column objects + */ + interface com::sun::star::container::XEnumerationAccess; + + /** is used to switch the operating modes of the control. + +Besides the normal operation mode (which is used to display the database form's data) the control may + for instance support a filter mode.
+ */ + [optional] interface com::sun::star::util::XModeSelector; + + /** used to control the selection of rows in the grid control. + +The selection used with the methods com::sun::star::view::XSelectionSupplier::getSelection()
+ and com::sun::star::view::XSelectionSupplier::select() is a sequence of Any's.
+ Here the elements of the Sequence are the bookmarks (in the com::sun::star::sdb::RowSet)
+ of the (to-be-) selected rows.
A grid control can contain own UI elements for traveling within the database form it belongs to (This
+ concept seems to make sense, as a grid control - in opposite to other data aware controls - displays
+ not only one record at a time, but a larger number of records of the database form.)
+ With the help of this interface, external components which wish to handle such travelings themselves can
+ register interceptors for the actions in question.
Usual URLs to use include +
A concrete implementation of this service may offer more or less URLs, but if it offers some of the URLs + above, it must stick to the meanings defined above.
+ */ + [optional] interface com::sun::star::frame::XDispatchProviderInterception; +}; + + +}; }; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/control/GroupBox.idl b/offapi/com/sun/star/form/control/GroupBox.idl new file mode 100644 index 0000000000..d6cb04db50 --- /dev/null +++ b/offapi/com/sun/star/form/control/GroupBox.idl @@ -0,0 +1,41 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module form { module control { + + +/** describes a control which can be used for visually grouping controls + +The model of the control has to support the com::sun::star::form::component::GroupBox + service.
+ + @see com::sun::star::awt::UnoControl + @see com::sun::star::awt::UnoControlModel +*/ +published service GroupBox +{ + service com::sun::star::awt::UnoControlGroupBox; +}; + + +}; }; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/control/ImageButton.idl b/offapi/com/sun/star/form/control/ImageButton.idl new file mode 100644 index 0000000000..5a56c4fdcb --- /dev/null +++ b/offapi/com/sun/star/form/control/ImageButton.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 . + */ + + + module com { module sun { module star { module form { module control { + + +/** describes a control which can be used for displaying images on a control acting like a button. + +The model of the control has to support the com::sun::star::form::component::ImageButton + service.
+ +The control is clickable, the action taken upon clicking depends on the settings + of the model the control belongs to.
+ + @see com::sun::star::awt::UnoControl + @see com::sun::star::awt::UnoControlModel + @see com::sun::star::form::component::ImageButton::ButtonType +*/ +published service ImageButton +{ + service com::sun::star::awt::UnoControlImageControl; + + /** allows external instances to register as veto listener for the button's actions. + +A com::sun::star::form::XApproveActionListener returning false on
+ it's approve-method will prevent any action which would usually be triggered - this includes
+ not only submitting or resetting forms, but also calling the
+ com::sun::star::awt::XActionListeners of the super service
+ This may be interesting for e.g. forms which want to provide input validation before submitting
+ data.
+
+ @see com::sun::star::form::component::HTMLForm
+ @see com::sun::star::form::XSubmit
+ @see com::sun::star::form::XReset
+ @see com::sun::star::awt::XButton
+ */
+ interface com::sun::star::form::XApproveActionBroadcaster;
+};
+
+
+}; }; }; }; };
+
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/form/control/ImageControl.idl b/offapi/com/sun/star/form/control/ImageControl.idl
new file mode 100644
index 0000000000..5cdd472b2f
--- /dev/null
+++ b/offapi/com/sun/star/form/control/ImageControl.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 .
+ */
+
+
+ module com { module sun { module star { module form { module control {
+
+
+/** describes a control used for displaying images stored in a database.
+
+
The model of the control has to support the com::sun::star::form::component::DatabaseImageControl + service.
+ +If the model of the control is valid bound to a database field, the control allows + to select an image (browsing the file system) upon double clicking into it, + and forwards the URL of the chosen image to the ImageURL property of its model.
+ + @see com::sun::star::awt::UnoControl + @see com::sun::star::awt::UnoControlModel +*/ +published service ImageControl +{ + service com::sun::star::awt::UnoControlImageControl; + + interface com::sun::star::form::XBoundControl; +}; + + +}; }; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/control/InteractionGridControl.idl b/offapi/com/sun/star/form/control/InteractionGridControl.idl new file mode 100644 index 0000000000..ea56cda626 --- /dev/null +++ b/offapi/com/sun/star/form/control/InteractionGridControl.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 . + */ + + + module com { module sun { module star { module form { module control { + + +/** is an extended grid control, which allows the user to customize some of its user interface's aspects. +*/ +published service InteractionGridControl +{ + service com::sun::star::form::control::GridControl; + + /** allows access to the UI features of the control + +Though concrete implementations of the service may offer different sets of aspects which can be customized, + the following commands have, if supported, a defined meaning: +
The following parameters may be passed when dispatching the commands above (as before, concrete implementations + may extend this list): +
The model of the control has to support the com::sun::star::form::component::ListBox + service.
+ + @see com::sun::star::awt::UnoControl + @see com::sun::star::awt::UnoControlModel +*/ +published service ListBox +{ + service com::sun::star::awt::UnoControlListBox; + + interface com::sun::star::form::XBoundControl; + + /** allows broadcasts of HTML-compatible change events. + +HTML-compatible means that a change event is broadcasted if and only if all of + the following applies. +
The model of the control has to support the com::sun::star::form::component::NumericField + service.
+ + @see com::sun::star::awt::UnoControl + @see com::sun::star::awt::UnoControlModel +*/ +published service NumericField +{ + service com::sun::star::awt::UnoControlNumericField; + + interface com::sun::star::form::XBoundControl; +}; + + +}; }; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/control/PatternField.idl b/offapi/com/sun/star/form/control/PatternField.idl new file mode 100644 index 0000000000..bb8ab8bb93 --- /dev/null +++ b/offapi/com/sun/star/form/control/PatternField.idl @@ -0,0 +1,44 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module form { module control { + + +/** describes a control for inputting text complying to a given pattern, + and which can (but not necessarily has to) be bound to a database field. + +The model of the control has to support the com::sun::star::form::component::PatternField + service.
+ + @see com::sun::star::awt::UnoControl + @see com::sun::star::awt::UnoControlModel +*/ +published service PatternField +{ + service com::sun::star::awt::UnoControlPatternField; + + interface com::sun::star::form::XBoundControl; +}; + + +}; }; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/control/RadioButton.idl b/offapi/com/sun/star/form/control/RadioButton.idl new file mode 100644 index 0000000000..dbe461b01c --- /dev/null +++ b/offapi/com/sun/star/form/control/RadioButton.idl @@ -0,0 +1,43 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module form { module control { + + +/** describes a radio button control which can (but not necessarily has to) be bound to a database field. + +The model of the control has to support the com::sun::star::form::component::RadioButton + service.
+ + @see com::sun::star::awt::UnoControl + @see com::sun::star::awt::UnoControlModel +*/ +published service RadioButton +{ + service com::sun::star::awt::UnoControlRadioButton; + + interface com::sun::star::form::XBoundControl; +}; + + +}; }; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/control/SubmitButton.idl b/offapi/com/sun/star/form/control/SubmitButton.idl new file mode 100644 index 0000000000..208e611720 --- /dev/null +++ b/offapi/com/sun/star/form/control/SubmitButton.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 . + */ + + +module com { module sun { module star { module form { module control { + + +/** specifies a button control which can execute external submissions + +The model of the control has to support the com::sun::star::form::component::SubmitButton + service.
+ +The control is clickable. When clicked (by mouse or keyboard, or programmatically), + the following happens: +
The model of the control has to support the com::sun::star::form::component::TextField + service.
+ +In addition, this control can be used in HTML forms. It triggers the + com::sun::star::form::XSubmit::submit() method of the form it belongs to if + the enter is pressed while it has the focus.
+ + @see com::sun::star::awt::UnoControl + @see com::sun::star::awt::UnoControlModel +*/ +published service TextField +{ + service com::sun::star::awt::UnoControlEdit; + + interface com::sun::star::form::XBoundControl; + + /** allows broadcasts of HTML-compatible change events. + +HTML-compatible means that a change event is broadcasted if and only if all of + the following applies. +
The model of the control has to support the com::sun::star::form::component::TimeField + service.
+ + @see com::sun::star::awt::UnoControl + @see com::sun::star::awt::UnoControlModel +*/ +published service TimeField +{ + service com::sun::star::awt::UnoControlTimeField; + + interface com::sun::star::form::XBoundControl; +}; + + +}; }; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/inspection/ButtonNavigationHandler.idl b/offapi/com/sun/star/form/inspection/ButtonNavigationHandler.idl new file mode 100644 index 0000000000..83225a614a --- /dev/null +++ b/offapi/com/sun/star/form/inspection/ButtonNavigationHandler.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 . + */ + + +module com { module sun { module star { module form { module inspection { + + +/** implements a property handler for use with a com::sun::star::inspection::ObjectInspector + which is able to enhance the com::sun::star::form::component::CommandButton::ButtonType + and com::sun::star::form::component::CommandButton::TargetURL properties of a + com::sun::star::form::component::CommandButton. + +For this, the two properties are superseded by new versions, where as button type, additional + possible values are added for navigating the parent form of the button. For instance, in an + com::sun::star::inspection::ObjectInspector using this handler, the user will be able + to choose a button type saying "move to the next record", which, when chosen, well, moves the parent + database form of the button to the next record.
+ + @see com::sun::star::inspection::XPropertyHandler + @see com::sun::star::form::component::CommandButton +*/ +service ButtonNavigationHandler +{ + interface com::sun::star::inspection::XPropertyHandler; +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/inspection/CellBindingPropertyHandler.idl b/offapi/com/sun/star/form/inspection/CellBindingPropertyHandler.idl new file mode 100644 index 0000000000..cbd4150488 --- /dev/null +++ b/offapi/com/sun/star/form/inspection/CellBindingPropertyHandler.idl @@ -0,0 +1,49 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module form { module inspection { + + +/** implements a property handler for use with a com::sun::star::inspection::ObjectInspector + which is able to provide properties to bind a form component to a spreadsheet cell. + +The handler expects a value named "ContextDocument" in the context in which it is created. + That is, the com::sun::star::uno::XComponentContext used for creating the + CellBindingPropertyHandler is examined for a value with this name. If the object in this + value denotes a spreadsheet document (indicated by supporting the com::sun::star::sheet::XSpreadsheetDocument + interface), this document is used to create the com::sun::star::form::binding::ValueBindings + to bind the inspected object to cells in this document.
+ + @see com::sun::star::inspection::XPropertyHandler + @see com::sun::star::form::binding::BindableControlModel + @see com::sun::star::form::binding::ValueBinding + @see com::sun::star::table::CellValueBinding + @see com::sun::star::table::ListPositionCellBinding + @see com::sun::star::uno::XComponentContext::getValueByName +*/ +service CellBindingPropertyHandler +{ + interface com::sun::star::inspection::XPropertyHandler; +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/inspection/DefaultFormComponentInspectorModel.idl b/offapi/com/sun/star/form/inspection/DefaultFormComponentInspectorModel.idl new file mode 100644 index 0000000000..5c82e0e1d2 --- /dev/null +++ b/offapi/com/sun/star/form/inspection/DefaultFormComponentInspectorModel.idl @@ -0,0 +1,81 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module form { module inspection { + + +/** implements a com::sun::star::inspection::XObjectInspectorModel for + inspecting form components, in particular all components implementing the FormComponent + service. + +A DefaultFormComponentInspectorModel provides the following handlers by default: +
First, the handler supersedes the HScroll and the VScroll properties of a com::sun::star::awt::UnoControlEditModel + and puts them into one common property, allowing the user to choose whether she want to + have "no", a "vertical", a "horizontal", or "both" scrollbars.
+ +
Second, if it detects a com::sun::star::form::component::RichTextControl to inspect, + it supersedes the com::sun::star::form::component::RichTextControl::RichText + and the com::sun::star::awt::UnoControlEditModel::MultiLine properties with a new + one which allows choosing the text type with one single action.
+ + @see com::sun::star::inspection::XPropertyHandler + @see com::sun::star::awt::UnoControlEditModel + @see com::sun::star::form::component::RichTextControl + @see com::sun::star::form::component::TextField +*/ +service EditPropertyHandler +{ + interface com::sun::star::inspection::XPropertyHandler; +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/inspection/EventHandler.idl b/offapi/com/sun/star/form/inspection/EventHandler.idl new file mode 100644 index 0000000000..f65ab9fae3 --- /dev/null +++ b/offapi/com/sun/star/form/inspection/EventHandler.idl @@ -0,0 +1,44 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module form { module inspection { + + +/** implements a property handler for use with a com::sun::star::inspection::ObjectInspector + which, for a com::sun::star::form::FormComponent, provides the script events + offered by this form component. + +For this, the parent of the form component, which by definition supports the com::sun::star::form::FormComponent + service, is examined for the com::sun::star::script::XEventAttacherManager interface.
+ + @see com::sun::star::inspection::XPropertyHandler + @see com::sun::star::form::component::CommandButton + @see com::sun::star::form::FormComponents + @see com::sun::star::script::XEventAttacherManager +*/ +service EventHandler +{ + interface com::sun::star::inspection::XPropertyHandler; +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/inspection/FormComponentPropertyHandler.idl b/offapi/com/sun/star/form/inspection/FormComponentPropertyHandler.idl new file mode 100644 index 0000000000..88c33ba676 --- /dev/null +++ b/offapi/com/sun/star/form/inspection/FormComponentPropertyHandler.idl @@ -0,0 +1,34 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module form { module inspection { + + +/** implements the default property handler for all known types of com::sun::star::form::FormComponents. + + @see com::sun::star::inspection::XPropertyHandler + @see com::sun::star::form::FormComponents +*/ +service FormComponentPropertyHandler : com::sun::star::inspection::XPropertyHandler; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/inspection/SubmissionPropertyHandler.idl b/offapi/com/sun/star/form/inspection/SubmissionPropertyHandler.idl new file mode 100644 index 0000000000..bc8c8936b8 --- /dev/null +++ b/offapi/com/sun/star/form/inspection/SubmissionPropertyHandler.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 . + */ + + +module com { module sun { module star { module form { module inspection { + + +/** implements a property handler for use with a com::sun::star::inspection::ObjectInspector + which provides properties for button controls which support submission of XML forms. + +The handler expects a value named "ContextDocument" in the context in which it is created. + That is, the com::sun::star::uno::XComponentContext used for creating the + CellBindingPropertyHandler is examined for a value with this name. If the object in this + value denotes a XML form document (indicated by supporting the com::sun::star::xforms::XFormsSupplier + interface), this document is used to examine the XML submissions which the button can be bound to.
+ + @see com::sun::star::inspection::XPropertyHandler + @see com::sun::star::form::submission::XSubmission + @see com::sun::star::form::submission::XSubmissionProvider + @see com::sun::star::form::component::SubmitButton + @see com::sun::star::xforms::XSubmission + @see com::sun::star::uno::XComponentContext::getValueByName +*/ +service SubmissionPropertyHandler +{ + interface com::sun::star::inspection::XPropertyHandler; +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/inspection/XMLFormsPropertyHandler.idl b/offapi/com/sun/star/form/inspection/XMLFormsPropertyHandler.idl new file mode 100644 index 0000000000..4e10367e60 --- /dev/null +++ b/offapi/com/sun/star/form/inspection/XMLFormsPropertyHandler.idl @@ -0,0 +1,54 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module form { module inspection { + + +/** implements a property handler for use with a com::sun::star::inspection::ObjectInspector + which provides properties related to binding form control models to XForm bindings. + +The handler introduces new properties to choose a com::sun::star::xforms::XModel + and a com::sun::star::xforms::Binding within this model. Additionally, + it introduces properties which reflect the different facets of the binding (e.g. + com::sun::star::xforms::Binding::BindingExpression), so they can be changed + directly in the com::sun::star::inspection::ObjectInspector as if they were a + property of the form component which is being inspected.
+ +The handler expects a value named "ContextDocument" in the context in which it is created. + That is, the com::sun::star::uno::XComponentContext used for creating the + CellBindingPropertyHandler is examined for a value with this name. If the object in this + value denotes a XML form document (indicated by supporting the com::sun::star::xforms::XFormsSupplier + interface), this document is used to do XML binding related work.
+ + @see com::sun::star::inspection::XPropertyHandler + @see com::sun::star::form::binding::BindableControlModel + @see com::sun::star::form::binding::ValueBinding + @see com::sun::star::xforms::Binding + @see com::sun::star::uno::XComponentContext::getValueByName +*/ +service XMLFormsPropertyHandler +{ + interface com::sun::star::inspection::XPropertyHandler; +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/inspection/XSDValidationPropertyHandler.idl b/offapi/com/sun/star/form/inspection/XSDValidationPropertyHandler.idl new file mode 100644 index 0000000000..bc6e2e514d --- /dev/null +++ b/offapi/com/sun/star/form/inspection/XSDValidationPropertyHandler.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 . + */ + + +module com { module sun { module star { module form { module inspection { + + +/** implements a property handler for use with a com::sun::star::inspection::ObjectInspector + which provides properties related to binding form control models to XForm bindings and validating + the form control content. + +By using an XMLFormsPropertyHandler, a com::sun::star::inspection::ObjectInspector + can be used to bind form components to com::sun::star::xforms::Binding instances. + Since those instances also support validating form control content (by supporting an + com::sun::star::form::validation::XValidator interface), it seems reasonable to + edit those validate-related properties (like the XSD data type to validate against) in the + com::sun::star::inspection::ObjectInspector, too. This is what an XSDValidationPropertyHandler + is good for.
+ +The handler expects a value named "ContextDocument" in the context in which it is created. + That is, the com::sun::star::uno::XComponentContext used for creating the + CellBindingPropertyHandler is examined for a value with this name. If the object in this + value denotes a XML form document (indicated by supporting the com::sun::star::xforms::XFormsSupplier + interface), this document is used to do XML binding related work.
+ + @see com::sun::star::inspection::XPropertyHandler + @see com::sun::star::form::binding::BindableControlModel + @see com::sun::star::form::binding::ValueBinding + @see com::sun::star::forms::validation::ValidatableControlModel + @see com::sun::star::xforms::Binding + @see com::sun::star::xsd::XDataType + @see com::sun::star::uno::XComponentContext::getValueByName +*/ +service XSDValidationPropertyHandler +{ + interface com::sun::star::inspection::XPropertyHandler; +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/modules.idl b/offapi/com/sun/star/form/modules.idl new file mode 100644 index 0000000000..6a9b556eef --- /dev/null +++ b/offapi/com/sun/star/form/modules.idl @@ -0,0 +1,57 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module form { + + /** collects functionality for binding form controls to external + data sources. + */ + module binding { }; + + /** collects form control model descriptions + */ + module component { }; + + /** collects form control descriptions + */ + module control { }; + + /** collects services for inspecting form/components + @see com::sun::star::inspection::ObjectInspector + @see com::sun::star::inspection + */ + module inspection { }; + + /** collects functionality needed during a form's runtime, e.g. + when it is active and interacts with the user. + */ + module runtime { }; + + /** collects functionality for submitting forms to external data sinks + */ + module submission { }; + + /** collects functionality to validate form components by help + of external validator instances + */ + module validation { }; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/runtime/FeatureState.idl b/offapi/com/sun/star/form/runtime/FeatureState.idl new file mode 100644 index 0000000000..ebc160f0c6 --- /dev/null +++ b/offapi/com/sun/star/form/runtime/FeatureState.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 . + */ + + +module com { module sun { module star { module form { module runtime { + + +/** encapsulates the state of a FormFeature + + @see XFormOperations + + @since OOo 2.2 + */ +struct FeatureState +{ + /** determines whether the respective feature is enabled (i.e. available) + in the current state of the form. + */ + boolean Enabled; + + /** determines the state of the feature. The concrete semantics depends + on the concrete FormFeature. + */ + any State; +}; + + +}; }; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/runtime/FilterEvent.idl b/offapi/com/sun/star/form/runtime/FilterEvent.idl new file mode 100644 index 0000000000..362bc44538 --- /dev/null +++ b/offapi/com/sun/star/form/runtime/FilterEvent.idl @@ -0,0 +1,49 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module form { module runtime { + + +/** is an event fired by a filter controller, when the filter managed by the controller changes. + + @see XFilterController + + @since OOo 3.3 + */ +struct FilterEvent : ::com::sun::star::lang::EventObject +{ + /** denotes the index of the disjunctive term to which the event applies, if any. + */ + long DisjunctiveTerm; + + /** denotes the index of the filter component to which the event applies, if any. + */ + long FilterComponent; + + /** denotes the predicate expression associated with the event. + */ + string PredicateExpression; +}; + + +}; }; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/runtime/FormController.idl b/offapi/com/sun/star/form/runtime/FormController.idl new file mode 100644 index 0000000000..7bb44cdf6f --- /dev/null +++ b/offapi/com/sun/star/form/runtime/FormController.idl @@ -0,0 +1,33 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module form { module runtime { + + +/** specifies a component controlling the interaction between the user and multiple + form controls belonging to a single form. + */ +service FormController : XFormController; + + +}; }; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/runtime/FormFeature.idl b/offapi/com/sun/star/form/runtime/FormFeature.idl new file mode 100644 index 0000000000..6a3ff83c43 --- /dev/null +++ b/offapi/com/sun/star/form/runtime/FormFeature.idl @@ -0,0 +1,140 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module form { module runtime { + + +/** specifies the operations on a user interface form, as supported by the + XFormOperations interface. + + @since OOo 2.2 +*/ +constants FormFeature +{ + /** moves the form to a record given by absolute position. + +This operation cannot be executed without arguments. When executing it (i.e.
+ when calling com::sun::star::form::runtime::XFormOperations::executeWithArguments()),
+ you need to specify a parameter named Position of type long
, which
+ denotes the position to move the form to.
This is not strictly an operation you can do on a form, but rather a + state you can retrieve (and display to the user) using the XFormOperations's + respective methods.
+ +The state obtained here is a string, not a number. This is because in an UI
+ form, the fact that the current record count is not yet known (since not all
+ records have been visited, yet) is indicated by an asterisk (*
) besides
+ the record count.
For instance, if the currently active form control is bound to a table field
+ named Price
, and currently has a value of 100
, then invoking
+ the AutoFilter
operation will put an additional filter Price = 100
+ on the form.
Note that this does not apply to criteria which are part of the form's
+ data source. That is, if you bind the form to the SQL command SELECT * FROM
+ Articles WHERE Price > 100
, then the Price > 100
filter
+ will not be removed.
Effectively, this operation resets the com::sun::star::sdb::RowSet::Filter + and com::sun::star::sdb::RowSet::Order properties of the form.
+ */ + const short RemoveFilterAndSort = 18; + + /** refreshes the current control + +Basically, this means calling XRefreshable::refresh on the current control, if it supports + this interface.
+ + @since OOo 3.1 + */ + const short RefreshCurrentControl = 19; +}; + + +}; }; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/runtime/FormOperations.idl b/offapi/com/sun/star/form/runtime/FormOperations.idl new file mode 100644 index 0000000000..58c185eb30 --- /dev/null +++ b/offapi/com/sun/star/form/runtime/FormOperations.idl @@ -0,0 +1,63 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module form { module runtime { + + +/** encapsulates operations on a database form which has a UI representation, + and is interacting with the user. + + @since OOo 2.2 + */ +service FormOperations : XFormOperations +{ + /** creates aFormOperations
instance which works on a com::sun::star::form::FormController
+ instance.
+ @throws IllegalArgumentException
+ if the given form controller is `NULL`, or does not have a model denoting a valid
+ com::sun::star::form::component::DataForm instance.
+ */
+ createWithFormController(
+ [in] XFormController Controller
+ )
+ raises(
+ ::com::sun::star::lang::IllegalArgumentException
+ );
+
+ /** creates a FormOperations
instance which works on a com::sun::star::form::component::DataForm
+ instance.
+
+ @throws IllegalArgumentException
+ if the given form is `NULL`, or does not support the com::sun::star::form::component::DataForm
+ service.
+ */
+ createWithForm(
+ [in] XForm Form
+ )
+ raises(
+ ::com::sun::star::lang::IllegalArgumentException
+ );
+};
+
+
+}; }; }; }; };
+
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/form/runtime/XFeatureInvalidation.idl b/offapi/com/sun/star/form/runtime/XFeatureInvalidation.idl
new file mode 100644
index 0000000000..9c7aa43aed
--- /dev/null
+++ b/offapi/com/sun/star/form/runtime/XFeatureInvalidation.idl
@@ -0,0 +1,57 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module form { module runtime {
+
+
+/** implements a callback for a XFormOperations instance, which is called
+ when the state of one or more FormFeatures might have changed.
+
+ @see XFormOperations
+
+ @since OOo 2.2
+*/
+interface XFeatureInvalidation
+{
+ /** invalidates the given FormFeatures
+
+ Invalidation means that any user interface representation (such as toolbox buttons), or + any dispatches associated with the features in question are potentially out-of-date, and + need to be updated.
+ + @param Features + The set of features whose state might have changed. + */ + void invalidateFeatures( [in] sequence< short > Features ); + + /** invalidates all features + +This method is used of it cannot be exactly and reliably determined + which features might actually have changed their state. In this case, the callee + should assume all features it is interested in must be required.
+ */ + void invalidateAllFeatures(); +}; + + +}; }; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/runtime/XFilterController.idl b/offapi/com/sun/star/form/runtime/XFilterController.idl new file mode 100644 index 0000000000..477ff8cf1d --- /dev/null +++ b/offapi/com/sun/star/form/runtime/XFilterController.idl @@ -0,0 +1,164 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module form { module runtime { + + +interface XFilterControllerListener; + +/** provides access to a form based filter for a database form + +In a form based filter, form controls bound to a searchable database field are replaced with a control
+ which allows entering a search expression. This so-called predicate expression is basically a part of an
+ SQL WHERE
clause, but without the part denoting the database column. For instance, if you
+ have a form control bound to a table column named Name
, then entering the string
+ LIKE '%Smith%'
effectively constitutes a SQL WHERE
clause "Name" LIKE '%Smith%'
.
In the actual document view, there are usually some relaxations to this. For instance, keywords such as
+ LIKE
might be localized, according to OpenOffice.org's UI locale. Also, for an equality criterion,
+ the equality sign =
is usually omitted. However, this interface here provides programmatic access
+ to the form based filter, so those relaxations are not considered here.
The filter maintained by a filter controller is, logically, a disjunctive normal form of an SQL WHERE
+ class. That is, it is a disjunction of m terms, where each term is a conjunction of n clauses
+ of the form <column> <predicate> <literal>
or of the form <column>
+ IS [NOT] NULL
.
n equals the number of filter controls which the filter controller is responsible for. This number + doesn't change during one session of the form based filter. On the other hand, m, the number of disjunctive + terms, is dynamic.
+ + +With the above, there are potentially m * n predicate expressions (though usually only a fraction + of those will actually exist). Since in a form based filter, there are only n filter controls, and each + filter control displays exactly one predicate expression, this means that only a part of the complete + filter can be displayed, in particular, only one disjunctive term can be displayed at a time. Thus, + the filter controller knows the concept of an active term, denoted by the #ActiveTerm + attribute, controls which of the terms is currently displayed in the form controls.
+ + @see XFormController + @see com::sun::star::sdbc::XResultSetMetaData::isSearchable + @see com::sun::star::sdb::XSingleSelectQueryAnalyzer::getStructuredFilter + @see com::sun::star::sdb::SQLFilterOperator + + @since OOo 3.3 + */ +interface XFilterController +{ + /** registers a listener to be notified of certain changes in the form based filter. + +Registering the same listener multiple times results in multiple notifications of the same event, + and also requires multiple revocations of the listener. + */ + void addFilterControllerListener( [in] XFilterControllerListener Listener ); + + /** revokes a listener which was previously registered to be notified of certain changes in the form based filter. + */ + void removeFilterControllerListener( [in] XFilterControllerListener Listener ); + + /** is the number of filter components, or filter controls, which the filter controller is responsible + for. + +
This number is constant during one session of the form based filter.
+ */ + [attribute, readonly] long FilterComponents; + + /** is the number of disjunctive terms of the filter expression represented by the form based filter. + */ + [attribute, readonly] long DisjunctiveTerms; + + /** denotes the active term of the filter controller. + */ + [attribute] long ActiveTerm + { + set raises ( ::com::sun::star::lang::IndexOutOfBoundsException ); + }; + + /** sets a given predicate expression + + @param Component + denotes the filter component whose expression is to be set. Must be greater than or equal to 0, and smaller than + #FilterComponents. + + @param Term + denotes the disjunctive term in which the expression is to be set. Must be greater than or equal to 0, + and smaller than #DisjunctiveTerms. + + @param PredicateExpression + denotes the predicate expression to set for the given filter component in the given term. + + @throws ::com::sun::star::lang::IndexOutOfBoundsException + if one of the indexes is out of the allowed range + */ + void + setPredicateExpression( [in] long Component, [in] long Term, [in] string PredicateExpression ) + raises( ::com::sun::star::lang::IndexOutOfBoundsException ); + + /** retrieves the filter component with the given index. + +The filter control has the same control model as the control which it stands in for. Consequently, you can use this method
+ to obtain the database column which the filter control works on, by examining the control model's BoundField
+ property.
Each element of the returned sequence is a disjunctive term, having exactly #FilterComponents + elements, which denote the single predicate expressions of this term.
+ */ + sequence< sequence< string > > + getPredicateExpressions(); + + /** removes a given disjunctive term + + @param Term + the index of the term to remove. Must be greater than or equal to 0, and smaller than + #DisjunctiveTerms. + + @throws ::com::sun::star::lang::IndexOutOfBoundsException + if Term is out of the allowed range. + */ + void + removeDisjunctiveTerm( [in] long Term ) + raises( ::com::sun::star::lang::IndexOutOfBoundsException ); + + /** appends an empty disjunctive term to the list of terms. + */ + void + appendEmptyDisjunctiveTerm(); +}; + + +}; }; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/runtime/XFilterControllerListener.idl b/offapi/com/sun/star/form/runtime/XFilterControllerListener.idl new file mode 100644 index 0000000000..2931a0cfcb --- /dev/null +++ b/offapi/com/sun/star/form/runtime/XFilterControllerListener.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 . + */ + + +module com { module sun { module star { module form { module runtime { + + +/** is implemented by components listening for events fired by an XFilterController. + + @since OOo 3.3 +*/ +interface XFilterControllerListener : ::com::sun::star::lang::XEventListener +{ + /** is fired when a single predicate expression of the filter represented by the filter + controller changed. + +FilterEvent::DisjunctiveTerm is the index of the disjunctive term in which the + expression changed. This usually equals XFilterController::ActiveTerm.
+ +FilterEvent::FilterComponent denotes the index of the filter component whose + predicate expression changed.
+ +FilterEvent::PredicateExpression is the new predicate expressions.
+ */ + void predicateExpressionChanged( [in] FilterEvent Event ); + + /** is fired when a disjunctive term was removed from the filter of the filter controller. + +FilterEvent::DisjunctiveTerm is the index of the disjunctive term which was + removed.
+ +FilterEvent::FilterComponent and FilterEvent::PredicateExpression are not + used for this event type.
+ */ + void disjunctiveTermRemoved( [in] FilterEvent Event ); + + /** is fired when a disjunctive term was added to the filter of the filter controller. + +FilterEvent::DisjunctiveTerm is the index of the disjunctive term which was + added.
+ +FilterEvent::FilterComponent and FilterEvent::PredicateExpression are not + used for this event type.
+ */ + void disjunctiveTermAdded( [in] FilterEvent Event ); +}; + + +}; }; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/runtime/XFormController.idl b/offapi/com/sun/star/form/runtime/XFormController.idl new file mode 100644 index 0000000000..cc7e6e6956 --- /dev/null +++ b/offapi/com/sun/star/form/runtime/XFormController.idl @@ -0,0 +1,343 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module form { module runtime { + +interface XFormOperations; +interface XFormControllerContext; + + +/** specifies a component controlling the interaction between the user and form functionality. + +As soon as a form (containing controls) is to be presented to the user,
+ there is a need for an instance controlling the user interaction.
+ Such a FormController
is responsible for dialog processing,
+ like controlling the tab order and the grouping of controls.
As a form may contain one or many subforms, a FormController may
+ contain one or more other FormControllers, so the form model structure or hierarchy
+ is reflected in the structure of FormControllers. That is, retrieving the parent of
+ the model of a controller will give you the same object as retrieving the model of the parent of
+ the controller. Similarly, retrieving the model of the n
th child of
+ a controller gives you the same object as retrieving the n
th child of
+ the model of the controller.
A controller is called active if one of the controls it is responsible for has the focus, + else inactive. To be notified whenever this activation state of a given controller changes, you can + add listeners.
+ +This interface supersedes the com::sun::star::form::FormController.
+ +A FormController is responsible for a com::sun::star::awt::UnoControlContainer, + and all controls therein.
+ +Furthermore, a form controller is responsible for preventing invalid user input. That is, if the form + contains controls bound to a database, or to an external validator, then the form controller will + check their current value when the current record is to be saved to the database.
+ +First, it will check whether any controls with an external validator exist. If so, those validators + will be asked to validate the current control content. If this fails, the message provided by the validator + is displayed to the user, the control is focused, and the update of the record is vetoed.
+ +Second, the controls are examined for NULL values. If a control is bound to a database field which
+ is declared to be NOT NULL
, no auto-increment field, but still `NULL`, then an error
+ message is shown to the user saying that input is required, the respective control is focused, and
+ the update of the record is vetoed.
Note that you can present the second check - for database fields containing `NULL` values - on
+ a per-form and a per-database basis.
+ For the former, you need to add a boolean property FormsCheckRequiredFields
to the form
+ (aka the FormController
's model), using its
+ com::sun::star::beans::XPropertyContainer::addProperty() method, with a value
+ of `FALSE`.
+ For the latter, you need to set the respective property of the data source's Settings
+ (also named FormsCheckRequiredFields
) to `FALSE`.
Alternatively, you can prevent the check on a per-control basis, using the + DataAwareControlModel::InputRequired property of a single control model.
+ +If a control which the controller is responsible for supports the com::sun::star::frame::XDispatchProviderInterception + interface, the controller registers a dispatch interceptor. Then, the control can try to delegate part of its + functionality to the controller by querying the dispatch interceptor for it.
+ +Below, there's a list of URLs which have a defined meaning - if an implementation supports one of them, + there must be a guaranteed semantics. However, concrete implementations may support an arbitrary sub or super + set of these URLs.
+ +In general, all URLs start with the same prefix, namely .uno:FormController/. To this, a suffix is
+ appended which describes the requested functionality.
+ Example: The URL suffix for deleting the current record is deleteRecord, so the complete URL for
+ requesting a dispatcher for this functionality is .uno:FormController/deleteRecord.
Some URLs may require parameters. For this, the sequence of com::sun::star::beans::PropertyValues + passed to the com::sun::star::frame::XDispatch::dispatch() call is used - every property value is + used as one named parameter.
+ +For all URLs, interested parties can register as status listeners (com::sun::star::frame::XStatusListener)
+ at the dispatchers, and be notified whenever the functionality associated with the URL becomes enabled or
+ disabled.
+ For instance, the URL with the suffix moveToFirst is associated with moving the form to the first
+ record, and it will be disabled in case the form is already positioned on the first record.
URL suffix | +functionality | +
positionForm | +positions the form on a record given by absolute number. + There's one parameter for this functionality, named Position, which must be a long + value specifying the absolute position to which the form should be moved |
+
RecordCount | +This is a passive functionality: It cannot be dispatched, instead, interested parties may
+ use the dispatcher to add as com::sun::star::frame::XStatusListener, and be
+ notified when the record count changes. + The status value which is being notified (com::sun::star::frame::FeatureStateEvent::State) + is a string which can be used to display the record count. In particular, if the record count is not yet known + (com::sun::star::sdb::RowSet::IsRowCountFinal is `FALSE`), this is indicated in the + string, too. |
+
moveToFirst | +moves the form to the first record | +
moveToPrev | +moves the form to the record preceding the current one | +
moveToNext | +moves the form to the record after the current one | +
moveToLast | +moves the form to the last record | +
moveToNew | +moves the form to the virtual "insert row", where new records can be inserted | +
saveRecord | +Commits any potentially pending changes in the current control, and saves the current record to + the database, or inserts a new record if the form is currently positioned on the virtual insertion row. | +
undoRecord | +reverts the changes done to the current record. Basically, this means refreshing the + current row from the database, and updating all controls with the new content. | +
deleteRecord | +deletes the current record, after asking the user for confirmation. | +
refreshForm | +reloads the complete form. After this, the form is positioned on the first record | +
sortUp | +Adds an order clause to the form, to sort it ascending by the field which the current control is bound to, + and then reloads the form. | +
sortDown | +Adds an order clause to the form, to sort it descending by the field which the current control is bound to, + and then reloads the form. | +
sort | +opens a dialog, which allows the user to manipulate the current sorting order of the form. If the dialog + is closed with OK, the form is reloaded after setting the new sorting order. | +
autoFilter | +creates, from the current control, a filter for the form. This is, if the current control is bound to + the field, say, "customer", and contains the value "Furs, Inc.", then a filter "customer = 'Furs, Inc.'" + is created and set at the form. After this, the form is reloaded. | +
filter | +opens a dialog, which allows the user to manipulate the current filter of the form. If the dialog + is closed with OK, the form is reloaded after setting the new filter. | +
applyFilter | +Toggles the com::sun::star::sdb::RowSet::ApplyFilter property + of the form. +Additionally, status listeners will be provided with the current (boolean) state of this property + in the com::sun::star::frame::FeatureStateEvent::State member of the event + notified by the dispatcher. |
+
removeFilterOrder | +completely removes any filter and sorting order from the form, and reloads it. | +
The model obtained via com::sun::star::awt::XTabController::getModel() is the form for which the + controller is responsible.
+ */ + interface ::com::sun::star::awt::XTabController; + + /** allows access to the parent controller. + */ + interface ::com::sun::star::container::XChild; + + /** allows access to the sub controllers. + */ + interface ::com::sun::star::container::XIndexAccess; + + /** allows enumerating sub controllers + */ + interface ::com::sun::star::container::XEnumerationAccess; + + /** allows life time control of the controller. + */ + interface ::com::sun::star::lang::XComponent; + + /** allows to register as listener for modifications in the controls which the controller is responsible + for. + */ + interface ::com::sun::star::util::XModifyBroadcaster; + + /** used to notify deletions of data in the form before they happen. + +A form controller listens for deletion events at the form it is responsible for. If and only if no + com::sun::star::form::XConfirmDeleteListener is registered at + the controller, it uses an own dialog to ask the user for confirmation.
+ */ + interface ::com::sun::star::form::XConfirmDeleteBroadcaster; + + /** is used to notify errors which happen in the form the controller is responsible for. + +A form controller listens for error events at the form it is responsible for. If and only if no + com::sun::star::sdb::XSQLErrorListener is registered at the controller, it + uses an own dialog to notify the user of the error.
+ + */ + interface ::com::sun::star::sdb::XSQLErrorBroadcaster; + + /** is used for multiplexing row set events happening on the form which the controller is responsible for. + */ + interface ::com::sun::star::sdb::XRowSetApproveBroadcaster; + + /** is used broadcasting parameter events in the form. + +A form controller listens for parameter events at the form it is responsible for. If and only if no + com::sun::star::form::XDatabaseParameterListener is registered at the controller, it + uses an own dialog to ask the user for parameter values.
+ */ + interface ::com::sun::star::form::XDatabaseParameterBroadcaster2; + + /** allows switching the form controller to different operation modes. + + +The two modes usually (but not necessarily) supported by a form controller are the DataMode
+ and the FilterMode
, where the former is the usual modus operandi for displaying and modifying
+ data, and the latter is a special mode to enter a filter for the database form which the controller is
+ responsible for.
If the form controller supports a form based filter mode, then it shall also + support the XFilterController interface, which allows controlling this mode.
+ */ + [optional] interface XFilterController; + + /** denotes the instance which is used to implement operations on the form which the controller + works for. + +This instance can be used, for instance, to determine the current state of certain form features.
+ */ + [attribute, readonly] XFormOperations FormOperations; + + /** provides access to the currently active control + */ + [attribute, readonly] ::com::sun::star::awt::XControl CurrentControl; + + /** allows to delegate certain tasks to the context of the form controller + */ + [attribute] XFormControllerContext Context; + + /** used (if not `NULL`) for user interactions triggered by the form controller. + */ + [attribute] ::com::sun::star::task::XInteractionHandler InteractionHandler; + + /** adds the specified listener to receive notifications whenever the activation state of + the controller changes. + */ + void addActivateListener( [in] ::com::sun::star::form::XFormControllerListener Listener ); + + /** removes the specified listener from the list of components to receive notifications whenever the activation + state of the controller changes. + */ + void removeActivateListener( [in] ::com::sun::star::form::XFormControllerListener Listener ); + + /** adds a controller to the list of child controllers + @throws ::com::sun::star::lang::IllegalArgumentException + if the given controller is `NULL`, or cannot rightfully be a child controller. Since controllers + mirror the hierarchy of the forms the are responsible for, this means that the form of the given + child controller must be a child of the controller at which the method is invoked. + */ + void addChildController( [in] XFormController ChildController ) + raises ( ::com::sun::star::lang::IllegalArgumentException ); +}; + + +}; }; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/runtime/XFormControllerContext.idl b/offapi/com/sun/star/form/runtime/XFormControllerContext.idl new file mode 100644 index 0000000000..d4f439ffeb --- /dev/null +++ b/offapi/com/sun/star/form/runtime/XFormControllerContext.idl @@ -0,0 +1,42 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module form { module runtime { + + +/** provides a context for a FormController + +A FormController knows about the controls it is responsible
+ for, and about the control container which those controls live in. However, it doesn't know
+ about a possible larger context, like a scrollable view which the controls are embedded into.
+ To compensate this, it can be provided a XFormControllerContext
.
This instance allows for operations on a user interface form, by saving its clients + from various tedious and error-prone operations.
+ +As an example, imagine you have a database form, displayed in some user
+ interface, which you want to move to the next record.
+ It is as easy as calling com::sun::star::sdbc::XResultSet::next()
+ on this form, right? Wrong. First, you need to care for saving the current
+ record, so the user doesn't lose her input. So you need to call
+ com::sun::star::sdbc::XResultSetUpdate::updateRow() or
+ com::sun::star::sdbc::XResultSetUpdate::insertRow(), depending
+ on the form's com::sun::star::sdb::RowSet::IsNew property.
+ But then you're done, right? Wrong, again.
+ When the user just entered some data into one of the form fields, but did not yet
+ leave this field, then the data is not yet committed to the form, not to talk
+ about being committed to the underlying database. So, before everything else,
+ you would need to obtain the active control of the form, and commit it.
+ Now you're done ...
As another example, consider that you want to delete the current record from the + form. You have to take into account any com::sun::star::form::XConfirmDeleteListeners + registered at the com::sun::star::form::FormController or the + com::sun::star::form::component::DataForm.
+ +If you agree that this is ugly to do and maintain, then XFormOperations
+ is for you. It provides an execute() method, which will do all of the above
+ for you; plus some similar convenient wrappers for similar functionality.
Note that it is possible to operate on a user interface form without + actually having access to the form controller instance. However, in this + case some functionality will not be available. In particular, every feature + which relies on the active control of the controller might be of limited use.
+ */ + [attribute, readonly] ::com::sun::star::form::runtime::XFormController Controller; + + /** retrieves the current state of the given feature + +You would usually use this to update some user interface to reflect this state.
+ For instance, you could imagine a toolbar button which is associated with a given feature.
+ This button would be enabled if and only if the respective feature is currently
+ available, and be checked if and only if the feature state is a boolean
+ evaluating to `TRUE`.
+
+ @param Feature
+ the feature whose state is to be determined. Must be one of the FormFeature
+ constants.
+ An invalid value here will be silently ignored, and simply return a FeatureState
+ indicating disabled with a `NULL` state.
Calling this is equivalent to calling getState(), and evaluating the + FeatureState::Enabled member.
+ + @param Feature + the feature whose state is to be determined. Must be one of the FormFeature + constants.This is a convenience method only. Calling it is equivalent to examining the + com::sun::star::sdb::RowSet::IsNew property of the form.
+ + @throws ::com::sun::star::lang::WrappedTargetException + if an error occurs obtaining the form property + */ + boolean isInsertionRow( + ) + raises ( ::com::sun::star::lang::WrappedTargetException ); + + /** determines whether the current row of the form is modified + +This is a convenience method only. Calling it is equivalent to examining the + com::sun::star::sdb::RowSet::IsModified property of the form.
+ + @throws ::com::sun::star::lang::WrappedTargetException + if an error occurs obtaining the form property + */ + boolean isModifiedRow( + ) + raises ( ::com::sun::star::lang::WrappedTargetException ); + + /** denotes the instance which should be notified about features whose state might have changed. + +If this attribute is not `NULL`, the instance which it denotes will be notified + whenever the state of any supported feature might have changed.
+ +For instance, imagine a form whose current row has just been moved to another + record, using the execute() method. This means that potentially, the state + of all movement-related features might have changed.
+ +Note that the instance does not actually notify changes in the feature states, but only + potential changes: It's up to the callee to react on this appropriately. This is + since OpenOffice.org's application framework features own mechanisms to cache and invalidate + feature states, so we do not burden this implementation here with such mechanisms.
+ + @see FormFeature + */ + [attribute] XFeatureInvalidation FeatureInvalidation; +}; + + +}; }; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/submission/XSubmission.idl b/offapi/com/sun/star/form/submission/XSubmission.idl new file mode 100644 index 0000000000..d4ddd35f2b --- /dev/null +++ b/offapi/com/sun/star/form/submission/XSubmission.idl @@ -0,0 +1,84 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module form { module submission { + +interface XSubmissionVetoListener; + + +/** is implemented by components which support submitting data. +*/ +interface XSubmission : com::sun::star::uno::XInterface +{ + /** tells the component to submit data + + @throws com::sun::star::util::VetoException + if the submission has been vetoed. Usually, this indicates that not all + requirements for the submission, e.g. data consistency, are fulfilled. + + @throws com::sun::star::lang::WrappedTargetException + if an error occurred during invoking the submission target + */ + void submit( ) + raises ( com::sun::star::util::VetoException, com::sun::star::lang::WrappedTargetException ); + + /** tells the component to submit data + + @param aHandler + This handler allows additional user interaction, which may be necessary before + the submission can be performed. + + @throws com::sun::star::util::VetoException + if the submission has been vetoed. Usually, this indicates that not all + requirements for the submission, e.g. data consistency, are fulfilled. + + @throws com::sun::star::lang::WrappedTargetException + if an error occurred during invoking the submission target + */ + void submitWithInteraction( [in] com::sun::star::task::XInteractionHandler aHandler ) + raises ( com::sun::star::util::VetoException, com::sun::star::lang::WrappedTargetException ); + + /** registers the given listener to be notified when a submission occurs + + @param listener + the listener to register + + @throws com::sun::star::lang::NoSupportException + when the component does not support external components vetoing the submission + */ + void addSubmissionVetoListener( [in] XSubmissionVetoListener listener ) + raises ( com::sun::star::lang::NoSupportException ); + + /** revokes a listener which has previously been registered to be notified when a submission occurs + + @param listener + the listener to revoke + + @throws com::sun::star::lang::NoSupportException + when the component does not support external components vetoing the submission + */ + void removeSubmissionVetoListener( [in] XSubmissionVetoListener listener ) + raises ( com::sun::star::lang::NoSupportException ); +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/submission/XSubmissionSupplier.idl b/offapi/com/sun/star/form/submission/XSubmissionSupplier.idl new file mode 100644 index 0000000000..1776ea7bf3 --- /dev/null +++ b/offapi/com/sun/star/form/submission/XSubmissionSupplier.idl @@ -0,0 +1,42 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module form { module submission { + +interface XSubmission; + + +/** is implemented by a component which allows access to a component which can + submit data. + + @see XSubmission +*/ +interface XSubmissionSupplier : com::sun::star::uno::XInterface +{ + /** specifies the XSubmission instance to which the submission + request should be delegated. + */ + [attribute] XSubmission Submission; +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/submission/XSubmissionVetoListener.idl b/offapi/com/sun/star/form/submission/XSubmissionVetoListener.idl new file mode 100644 index 0000000000..eab12b96f2 --- /dev/null +++ b/offapi/com/sun/star/form/submission/XSubmissionVetoListener.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 . + */ + + +module com { module sun { module star { module form { module submission { + + +/** is implement by components which want to observe (and probably veto) the + submission of data. + + @see XSubmission +*/ +interface XSubmissionVetoListener : com::sun::star::lang::XEventListener +{ + /** is invoked when a component, at which the listener has been registered, + is about to submit its data. + + @param event + The submission event. The com::sun::star::lang::EventObject::Source + member of the structure describes the component which is about to submit its data. + + @throws com::sun::star::util::VetoException + when the submission is vetoed. com::sun::star::uno::Exception::Message + should contain a justification for the veto then. + */ + void submitting( [in] com::sun::star::lang::EventObject event ) + raises ( com::sun::star::util::VetoException ); + +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/validation/ValidatableBindableControlModel.idl b/offapi/com/sun/star/form/validation/ValidatableBindableControlModel.idl new file mode 100644 index 0000000000..87aa9a9019 --- /dev/null +++ b/offapi/com/sun/star/form/validation/ValidatableBindableControlModel.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 . + */ + +module com { module sun { module star { module form { module validation { + +/** specifies a control model which supports both binding to an external value supplier, + and to an external validator. + +There are two methods how the value which is represented by a control model + can interact with other components (well, except the trivial ones accessible + by using com::sun::star::beans::XPropertySet): +
The ValidatableBindableControlModel services describes the interaction of these concepts + for control models which support both of them.
+*/ +service ValidatableBindableControlModel +{ + /** specifies support for validating the current value of the control + */ + service ValidatableControlModel; + + /** specifies support for binding the control value to an external component + +If a value binding is established at the control model (by using
+ com::sun::star::form::binding::XBindableValue::setValueBinding() with a non-`NULL`
+ binding), this binding is analyzed for validation support. If it is present (read: if the
+ binding also supports the XValidator interface), the binding is also
+ established as validator, as if it has been passed to XValidatable::setValidator().
+ If, while this binding is active (in both its roles as value binding and validator),
+ an attempt is made to establish another validator, this is blocked with raising a
+ com::sun::star::util::VetoException upon calling XValidatable::setValidator().
Validatable control models support setting a validator with dynamic + validity constraints, and broadcasting changes in their value as well as the + validity of their value.
+*/ +service ValidatableControlModel +{ + /** specifies the basic functionality for a form control model + +Via this service, validatable control models inherit the
+ com::sun::star::util::XCloneable interface.
+ If a validatable control model, at which a validator has been set (via
+ XValidatable::setValidator()), is being cloned, then the
+ validator is also set at the clone. Effectively, this means that
+ both control model instances share the same validator instance.
Setting and retrieving the current validator of the control model is + possible via the XValidatable interface (which + XValidatableFormComponent is derived from).
+ +Easy access to the current value of the control, as well as it's validity + (relative to the active validator), is provided by the methods XValidatableFormComponent::isValid() + and XValidatableFormComponent::getCurrentValue().
+ +Note that the type of the value provided by XValidatableFormComponent::getCurrentValue() + is not specified here, but depends on the concrete control type.
+ */ + interface XValidatableFormComponent; + + /** enables support for validators with dynamic validity constraints. + +As soon as a validator is set via XValidatable::setValidator(), the validatable + control model registers itself as listener. If the validity constraint of the validator + changes, the ValidatableControlModel re-validates its current valid, and + broadcasts any resulting changes to all its XFormComponentValidityListener, if + necessary.
+ */ + interface XValidityConstraintListener; +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/validation/XFormComponentValidityListener.idl b/offapi/com/sun/star/form/validation/XFormComponentValidityListener.idl new file mode 100644 index 0000000000..5114f337f6 --- /dev/null +++ b/offapi/com/sun/star/form/validation/XFormComponentValidityListener.idl @@ -0,0 +1,41 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module form { module validation { + + +/** is the listener interface to be notified of changes of a XValidatableFormComponent +*/ +interface XFormComponentValidityListener : com::sun::star::lang::XEventListener +{ + /** called when the validity and/or the value of the form component at which the listener + is registered changed. + + @param Source + The member com::sun::star::lang::EventObject::Source + represents the XValidatableFormComponent whose validity, value, or text changed. + */ + void componentValidityChanged( [in] com::sun::star::lang::EventObject Source ); +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/validation/XValidatable.idl b/offapi/com/sun/star/form/validation/XValidatable.idl new file mode 100644 index 0000000000..be7d27f7a6 --- /dev/null +++ b/offapi/com/sun/star/form/validation/XValidatable.idl @@ -0,0 +1,55 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module form { module validation { + +interface XValidator; + + +/** specifies support for validating a component + + @see XValidator +*/ +interface XValidatable : com::sun::star::uno::XInterface +{ + /** sets an external instance which is able to validate the component + +Any previously active validator will be revoked - there can be only one!
+ + @param Validator + the new validator which is to be used by the component. May be `NULL`, + in this case only the current validator is revoked. + + @throws com::sun::star::util::VetoException + if changing the validator is not allowed in the current component state + */ + void setValidator( [in] XValidator Validator ) + raises ( com::sun::star::util::VetoException ); + + /** retrieves the external instance which is currently used to validate the component + */ + XValidator + getValidator( ); +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/validation/XValidatableFormComponent.idl b/offapi/com/sun/star/form/validation/XValidatableFormComponent.idl new file mode 100644 index 0000000000..f797ef2521 --- /dev/null +++ b/offapi/com/sun/star/form/validation/XValidatableFormComponent.idl @@ -0,0 +1,100 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module form { module validation { + +interface XFormComponentValidityListener; + + +/** is a convenience interface for accessing several aspects of a form component + which supports validation. + +A validatable form component has two aspects which other parties might + be interested in: +
An XValidatableFormComponent allows to easily access both of these aspects.
+ +Note that all of the information provided at this interface can also obtained by other means, + but much more inconveniently.
+ + @see XValidatable + @see XValidator +*/ +interface XValidatableFormComponent : XValidatable +{ + /** determines whether the current value of the component passed the validity test + at the validator. + +Calling this is equal to calling XValidator::isValid() with + the current value (see getCurrentValue()) of the component, where + the validator is obtained via XValidatable::getValidator().
+ +If no validator has been set (XValidatable::setValidator()), this method + returns true.
+ */ + boolean isValid(); + + /** retrieves the current value of the component. + +The type of the current value, as well as it's semantics, depend on the service + implementing this interface.
+ +Again, this is a convenience method. For example, for a com::sun::star::form::component::FormattedField, + calling this method is equivalent to retrieving the + com::sun::star::awt::UnoControlFormattedFieldModel::EffectiveValue.
+ +If no validator has been set (XValidatable::setValidator()), the value returned + here is defined by the service implementing this interface.
+ */ + any getCurrentValue(); + + /** registers the given listener. + +XFormComponentValidityListeners are called whenever any of the aspects + of the validatable form component (the validity flag, or the value) changed.
+ + @throws com::sun::star::lang::NullPointerException + if the given listener is `NULL` + */ + void addFormComponentValidityListener( [in] XFormComponentValidityListener Listener ) + raises( com::sun::star::lang::NullPointerException ); + + /** registers the given listener. + + @throws com::sun::star::lang::NullPointerException + if the given listener is `NULL` + */ + void removeFormComponentValidityListener( [in] XFormComponentValidityListener Listener ) + raises( com::sun::star::lang::NullPointerException ); +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/validation/XValidator.idl b/offapi/com/sun/star/form/validation/XValidator.idl new file mode 100644 index 0000000000..a46db60045 --- /dev/null +++ b/offapi/com/sun/star/form/validation/XValidator.idl @@ -0,0 +1,85 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module form { module validation { + +interface XValidityConstraintListener; + + +/** specifies a component able to validate (the content of) other components + +Validators support simple validity checks and retrieving justifications for + invalidity.
+ +Validators may additionally support dynamic validity constraints. In such a case,
+ the validity of a given value may change, without the value changing itself.
+ To be notified about this, interested components should register as XValidityConstraintListener.
+
+ @see XValidatable
+*/
+interface XValidator : com::sun::star::uno::XInterface
+{
+ /** determines whether the given value is valid
+
+ @param Value
+ the value to check for validity
+ @return
+ `TRUE` if and only if the value is considered valid.
+ */
+ boolean isValid( [in] any Value );
+
+ /** retrieves a justification for the invalidity of the given value
+
+ @param Value
+ the value which has been recognized as being invalid
+ @return
+ a human-readable string, which explains why the given value is considered invalid.
+ */
+ string explainInvalid( [in] any Value );
+
+ /** registers the given validity listener.
+
+
Usually, an XValidatable instance will also add itself as validity listener, + as soon as the validator is introduced to it.
+ +Implementations which do not support dynamic validity constraints should simply ignore this + call.
+ + @throws com::sun::star::lang::NullPointerException + if the given listener is `NULL` + @see XValidityConstraintListener + */ + void addValidityConstraintListener( [in] XValidityConstraintListener Listener ) + raises( com::sun::star::lang::NullPointerException ); + + /** revokes the given validity listener + + @throws com::sun::star::lang::NullPointerException + if the given listener is `NULL` + @see XValidityConstraintListener + */ + void removeValidityConstraintListener( [in] XValidityConstraintListener Listener ) + raises( com::sun::star::lang::NullPointerException ); +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/form/validation/XValidityConstraintListener.idl b/offapi/com/sun/star/form/validation/XValidityConstraintListener.idl new file mode 100644 index 0000000000..dad86ef2eb --- /dev/null +++ b/offapi/com/sun/star/form/validation/XValidityConstraintListener.idl @@ -0,0 +1,42 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module form { module validation { + + +/** specifies an interface for listening for changes in the validity constraints + represented by an XValidator. +*/ +interface XValidityConstraintListener : com::sun::star::lang::XEventListener +{ + /** called when the validity constraint represented by an XValidator, + at which the listener is registered, changed. + + @param Source + The event source. The member com::sun::star::lang::EventObject::Source + represents the validator component whose validity constraint changed. + */ + void validityConstraintChanged( [in] com::sun::star::lang::EventObject Source ); +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/formula/AccessibleFormulaText.idl b/offapi/com/sun/star/formula/AccessibleFormulaText.idl new file mode 100644 index 0000000000..d5e669775c --- /dev/null +++ b/offapi/com/sun/star/formula/AccessibleFormulaText.idl @@ -0,0 +1,40 @@ +/* -*- 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 . + */ + + + +module com { module sun { module star { module formula { + + +/** The accessible view of a formula documents command text. + + @since OOo 1.1.2 + */ +service AccessibleFormulaText +{ + interface ::com::sun::star::accessibility::XAccessible; + interface ::com::sun::star::accessibility::XAccessibleComponent; + interface ::com::sun::star::accessibility::XAccessibleContext; + interface ::com::sun::star::accessibility::XAccessibleEventBroadcaster; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/formula/AccessibleFormulaView.idl b/offapi/com/sun/star/formula/AccessibleFormulaView.idl new file mode 100644 index 0000000000..0a2ebfa530 --- /dev/null +++ b/offapi/com/sun/star/formula/AccessibleFormulaView.idl @@ -0,0 +1,41 @@ +/* -*- 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 . + */ + + + +module com { module sun { module star { module formula { + + +/** The accessible view of a formula documents visual representation. + + @since OOo 1.1.2 + */ +service AccessibleFormulaView +{ + interface ::com::sun::star::accessibility::XAccessible; + interface ::com::sun::star::accessibility::XAccessibleComponent; + interface ::com::sun::star::accessibility::XAccessibleContext; + interface ::com::sun::star::accessibility::XAccessibleText; + interface ::com::sun::star::accessibility::XAccessibleEventBroadcaster; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/formula/FormulaProperties.idl b/offapi/com/sun/star/formula/FormulaProperties.idl new file mode 100644 index 0000000000..79ab4e7244 --- /dev/null +++ b/offapi/com/sun/star/formula/FormulaProperties.idl @@ -0,0 +1,296 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module formula { + + +/** The formula properties provide access to the properties of a formula + in a formula generator + */ +published service FormulaProperties +{ + + /** contains the alignment of the formula. + + @see com::sun::star::style::HorizontalAlignment + */ + [property] short Alignment; + + /** contains the base font height in point the formula will be + formatted in. + +All properties containing relative values are related to this value. +
+ */ + [property] short BaseFontHeight; + + /** customized name for fixed font. + */ + [property] string CustomFontNameFixed; + + /** determines if the customized fixed font is italic. + */ + [property] boolean FontFixedIsItalic; + + /** determines if the customized fixed font is bold. + */ + [property] boolean FontFixedIsBold; + + /** customized name for sans serif font + */ + [property] string CustomFontNameSans; + + /** determines if the customized sans serif font is italic. + */ + [property] boolean FontSansIsItalic; + + /** determines if the customized sans serif font is bold. + */ + [property] boolean FontSansIsBold; + + /** customized name for serif font + */ + [property] string CustomFontNameSerif; + + /** determines if the customized serif font is italic. + */ + [property] boolean FontSerifIsItalic; + + /** determines if the customized serif font is bold. + */ + [property] boolean FontSerifIsBold; + + /** contains the name of the font that is used to + display functions contained in the formula. + */ + [property] string FontNameFunctions; + + /** determines if the font that is used to display functions is italic. + */ + [property] boolean FontFunctionsIsItalic; + + /** determines if the font that is used to display functions is bold. + */ + [property] boolean FontFunctionsIsBold; + + /** contains the name of the font that is used to + display numbers contained in the formula. + */ + [property] string FontNameNumbers; + + /** determines if the font that is used to display numbers is italic. + */ + [property] boolean FontNumbersIsItalic; + + /** determines if the font that is used to display numbers is bold. + */ + [property] boolean FontNumbersIsBold; + + /** contains the name of the font that is used to + display text contained in the formula. + */ + [property] string FontNameText; + + /** determines if the font that is used to display text is italic. + */ + [property] boolean FontTextIsItalic; + + /** determines if the font that is used to display text is bold. + */ + [property] boolean FontTextIsBold; + + /** contains the name of the font that is used to + display variables contained in the formula. + */ + [property] string FontNameVariables; + + /** determines if the font that is used to display variables is italic. + */ + [property] boolean FontVariablesIsItalic; + + /** determines if the font that is used to display variables is bold. + */ + [property] boolean FontVariablesIsBold; + + /** contains the command string of the formula + */ + [property] string Formula; + + /** decides if all brackets (even those without "left"/"right" + modifier) are scaled. + */ + [property] boolean IsScaleAllBrackets; + + /** switches into text mode. + + This is a mode where formulas are displayed the same height as + a line of text. + */ + [property] boolean IsTextMode; + + /** contains the relative height of the font for functions. + + The values unit is percent of the + com::sun::star::formula::FormulaProperties::BaseFontHeight + */ + [property] short RelativeFontHeightFunctions; + + /** contains the relative height of the font for indices. + + The values unit is percent of the + com::sun::star::formula::FormulaProperties::BaseFontHeight + */ + [property] short RelativeFontHeightIndices; + + /** contains the relative height of the font for limits. + + The values unit is percent of the + com::sun::star::formula::FormulaProperties::BaseFontHeight + */ + [property] short RelativeFontHeightLimits; + + /** contains the relative height of the font for operators. + + The values unit is percent of the + com::sun::star::formula::FormulaProperties::BaseFontHeight + */ + [property] short RelativeFontHeightOperators; + + /** contains the relative height of the font for text. + + The values unit is percent of the + com::sun::star::formula::FormulaProperties::BaseFontHeight + */ + [property] short RelativeFontHeightText; + + /** contains the relative distance of brackets. + */ + [property] short RelativeBracketDistance; + + /** contains the relative excess size of brackets. + */ + [property] short RelativeBracketExcessSize; + + /** contains the relative excess length of a fraction bar. + */ + [property] short RelativeFractionBarExcessLength; + + /** contains the relative line weight of a fraction bar. + */ + [property] short RelativeFractionBarLineWeight; + + /** contains the relative depth of the denominator of a fraction + */ + [property] short RelativeFractionDenominatorDepth; + + /** contains the relative height of the numerator of a fraction. + */ + [property] short RelativeFractionNumeratorHeight; + + /** contains the relative superscript of indices. + */ + [property] short RelativeIndexSubscript; + + /** contains the relative subscript of indices. + */ + [property] short RelativeIndexSuperscript; + + /** contains the relative line spacing. + */ + [property] short RelativeLineSpacing; + + /** contains the relative distance of lower limits. + */ + [property] short RelativeLowerLimitDistance; + + /** contains the relative column spacing of matrices. + */ + [property] short RelativeMatrixColumnSpacing; + + /** contains the relative line spacing of matrices. + */ + [property] short RelativeMatrixLineSpacing; + + /** contains the relative excess of operators. + */ + [property] short RelativeOperatorExcessSize; + + /** contains the relative spacing of operators. + */ + [property] short RelativeOperatorSpacing; + + /** contains the relative root spacing + */ + [property] short RelativeRootSpacing; + + /** contains the relative scaling of the bracket excess. + */ + [property] short RelativeScaleBracketExcessSize; + + /** contains the relative spacing. + */ + [property] short RelativeSpacing; + + /** contains the relative minimum height of the formula. + */ + [property] short RelativeSymbolMinimumHeight; + + /** contains the relative primary height of symbols. + */ + [property] short RelativeSymbolPrimaryHeight; + + /** contains the relative distance of upper limits + */ + [property] short RelativeUpperLimitDistance; + + /** contains the metric value of the top margin of the formula. + */ + [property] short TopMargin; + + /** contains the metric value of the bottom margin of the formula. + */ + [property] short BottomMargin; + + /** contains the metric value of the left margin of the formula. + */ + [property] short LeftMargin; + + /** contains the metric value of the right margin of the formula. + */ + [property] short RightMargin; + + + /** contains the baselines offset in respect to the top of the formula rectangle + + @since OOo 3.4 + */ + [property, optional] short BaseLine; + + /** switches into right-to-left layout. + + @since LibreOffice 24.2 + */ + [property, optional] boolean IsRightToLeft; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/formula/SymbolDescriptor.idl b/offapi/com/sun/star/formula/SymbolDescriptor.idl new file mode 100644 index 0000000000..5254393b98 --- /dev/null +++ b/offapi/com/sun/star/formula/SymbolDescriptor.idl @@ -0,0 +1,102 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module formula { + +/** @deprecated draft + - nWeight should be changed to float as in FontWeight.idl + - nItalic probably needs to have FontItalic extended by the two + extra defines REVERSE_* listed in FontSlant.idl + - nCharSet should have the CharSet.idl extended by the new defines + from rtl/textenc.h +*/ +published struct SymbolDescriptor +{ + /** The name of the symbol. + */ + string sName; + + /** The export name of the symbol. + */ + string sExportName; + + /** Specifies the name of the symbol set to which this symbol belongs. + */ + string sSymbolSet; + + /** Specifies the Unicode character of the symbol. + */ + long nCharacter; + + /** Specifies the exact name of the font ("Arial", "Courier", etc.). + */ + string sFontName; + + /** Specifies the character set which is supported by the font. + + @see com::sun::star::awt::CharSet + */ + short nCharSet; + + /** Specifies the general style of the font. + + @see com::sun::star::awt::FontFamily + */ + short nFamily; + + /** Specifies the pitch of the font. + + @see com::sun::star::awt::FontPitch + */ + short nPitch; + + /** Specifies the thickness of the line. + + @see com::sun::star::awt::FontWeight + + The allowed integer values correspond as follows: + 0 : com::sun::star::awt::FontWeight::DONTKNOW + 1 : com::sun::star::awt::FontWeight::THIN + 2 : com::sun::star::awt::FontWeight::ULTRALIGHT + 3 : com::sun::star::awt::FontWeight::LIGHT + 4 : com::sun::star::awt::FontWeight::SEMILIGHT + 5 : com::sun::star::awt::FontWeight::NORMAL + 7 : com::sun::star::awt::FontWeight::SEMIBOLD + 8 : com::sun::star::awt::FontWeight::BOLD + 9 : com::sun::star::awt::FontWeight::ULTRABOLD + 10 : com::sun::star::awt::FontWeight::BLACK + + */ + short nWeight; + + /** Specifies if the font is italic. + + @see com::sun::star::awt::FontSlant + + The values + com::sun::star::awt::FontSlant::REVERSE_OBLIQUE and + com::sun::star::awt::FontSlant::REVERSE_ITALIC + may not be used. + */ + short nItalic; +}; +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/AppDispatchProvider.idl b/offapi/com/sun/star/frame/AppDispatchProvider.idl new file mode 100644 index 0000000000..0090702eb6 --- /dev/null +++ b/offapi/com/sun/star/frame/AppDispatchProvider.idl @@ -0,0 +1,31 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module frame { + +/** + @since LibreOffice 4.2 + */ +service AppDispatchProvider : XAppDispatchProvider; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/AutoRecovery.idl b/offapi/com/sun/star/frame/AutoRecovery.idl new file mode 100644 index 0000000000..a712e4666f --- /dev/null +++ b/offapi/com/sun/star/frame/AutoRecovery.idl @@ -0,0 +1,34 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module frame { + +/** + A legacy (single-instance) service-variant of theAutoRecovery singleton. + + @deprecated Use theAutoRecovery singleton instead. + + @since LibreOffice 4.0 + */ +service AutoRecovery : XDispatch; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/Bibliography.idl b/offapi/com/sun/star/frame/Bibliography.idl new file mode 100644 index 0000000000..b068c8baa2 --- /dev/null +++ b/offapi/com/sun/star/frame/Bibliography.idl @@ -0,0 +1,31 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module frame { + +/** + @since LibreOffice 4.1 + */ +published service Bibliography : com::sun::star::container::XNameAccess; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/BorderWidths.idl b/offapi/com/sun/star/frame/BorderWidths.idl new file mode 100644 index 0000000000..33bf992981 --- /dev/null +++ b/offapi/com/sun/star/frame/BorderWidths.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 . + */ + + + + module com { module sun { module star { module frame { + + +/** specifies a border area by offsets from each side. + */ +struct BorderWidths +{ + /** specifies the offset from left border. + */ + long Left; + + /** specifies the offset from top border. + */ + long Top; + + /** specifies the offset from right border. + */ + long Right; + + /** specifies the offset from bottom border. + */ + long Bottom; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/CommandGroup.idl b/offapi/com/sun/star/frame/CommandGroup.idl new file mode 100644 index 0000000000..86d37b901a --- /dev/null +++ b/offapi/com/sun/star/frame/CommandGroup.idl @@ -0,0 +1,140 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module frame { + +/** provides information about a supported command + + @see XDispatchInformationProvider + @see Controller + + @since OOo 2.0 + */ +published constants CommandGroup +{ + /** specifies internal commands. + */ + const short INTERNAL = 0; + + /** specifies application based commands. + */ + const short APPLICATION = 1; + + /** specifies view specific commands. + */ + const short VIEW = 2; + + /** specifies document specific commands. + */ + const short DOCUMENT = 3; + + /** specifies edit specific commands. + */ + const short EDIT = 4; + + /** specifies commands used by the built-in Basic. + */ + const short MACRO = 5; + + /** specifies commands to change options. + */ + const short OPTIONS = 6; + + /** specifies math specific commands. + */ + const short MATH = 7; + + /** specifies navigate commands. + */ + const short NAVIGATOR = 8; + + /** specifies insert commands. + */ + const short INSERT = 9; + + /** specifies commands that are related to formats. + */ + const short FORMAT = 10; + + /** specifies commands that are related to templates. + */ + const short TEMPLATE = 11; + + /** specifies text specific commands. + */ + const short TEXT = 12; + + /** specifies frame specific commands. + */ + const short FRAME = 13; + + /** specifies commands that are related to graphical data. + */ + const short GRAPHIC = 14; + + /** specifies commands that are related to tables. + */ + const short TABLE = 15; + + /** specifies commands that are related to bullets and numbering. + */ + const short ENUMERATION = 16; + + /** specifies commands that are related to data. + */ + const short DATA = 17; + + /** specifies special commands. + */ + const short SPECIAL = 18; + + /** specifies commands that are related to images. + */ + const short IMAGE = 19; + + /** specifies chart specific commands. + */ + const short CHART = 20; + + /** specifies explorer specific commands. + */ + const short EXPLORER = 21; + + /** specifies commands that are related to connectors. + */ + const short CONNECTOR = 22; + + /** specifies commands that are related to modifications. + */ + const short MODIFY = 23; + + /** specifies commands that are related to drawing. + */ + const short DRAWING = 24; + + /** specifies commands that are related to controls. + */ + const short CONTROLS = 25; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/Components.idl b/offapi/com/sun/star/frame/Components.idl new file mode 100644 index 0000000000..7950745560 --- /dev/null +++ b/offapi/com/sun/star/frame/Components.idl @@ -0,0 +1,43 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module frame { + +/** specifies a collection of components + ++ One important instance of this service is available from the + Desktop object via the XDesktop interface. +
+ + @see com::sun::star::lang::XComponent + @see XDesktop + */ +published service Components +{ + /** use it to get snapshot of current available components as an enumeration + */ + interface com::sun::star::container::XEnumerationAccess; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/ContentHandler.idl b/offapi/com/sun/star/frame/ContentHandler.idl new file mode 100644 index 0000000000..eeeaafc5dd --- /dev/null +++ b/offapi/com/sun/star/frame/ContentHandler.idl @@ -0,0 +1,52 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module frame { + +/** special dispatcher for non visible contents, e.g. sounds + ++ This handler doesn't need any frame as target for loading components. + Content handler are registered for content types. + (See type/filter configuration of com::sun::star::document::TypeDetection + for further information) If generic load mechanism found such documents which + can be handled by a ContentHandler it will create and use it. +
+ + @see com::sun::star::document::TypeDetection + */ +published service ContentHandler +{ + /** provides handling of dispatches with defined result state + ++ Base interface of XNotifyingDispatch is XDispatch + and can be called for requests if result isn't necessary for dispatch operation. +
+ + @see XDispatch + */ + interface XNotifyingDispatch; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/ContentHandlerFactory.idl b/offapi/com/sun/star/frame/ContentHandlerFactory.idl new file mode 100644 index 0000000000..33ec53b04a --- /dev/null +++ b/offapi/com/sun/star/frame/ContentHandlerFactory.idl @@ -0,0 +1,39 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module frame { + +/** factory to create content loader + ++ With this factory it's possible to +
+ Such components can be loaded into a Frame inside a Desktop
+ environment. A controller is a richer component then a pure window, but full featured
+ components need a XModel interface too.
+
+ (see service com::sun::star::document::OfficeDocument for further information)
+
+ + @see com::sun::star::document::OfficeDocument + */ +published service Controller +{ + /** with this interface, components viewed in a Frame can serve + events (by supplying dispatches) + */ + interface XController; + + /** for certain functions which are useful at the UI + +
+ Mostly used by the Frame service, which contains this + controller object. There will be an interception mechanism for dispatches + available too. +
+ + @see XDispatch + @see XDispatchProviderInterception + */ + interface XDispatchProvider; + + /** this interface enables the controller to get interceptors registered that + change context menus or prevent them from being executed + ++ Don't mix it with XDispatchProviderInterception which + intercept calls of XDispatch::dispatch(). +
+ */ + [optional] interface com::sun::star::ui::XContextMenuInterception; + + /** makes it possible to intercept keyboard and mouse input. + */ + [optional] interface com::sun::star::awt::XUserInputInterception; + + /** makes it possible to access and change the selection in a view + */ + [optional] interface com::sun::star::view::XSelectionSupplier; + + /** makes it possible to work with clipboard data + */ + [optional] interface com::sun::star::datatransfer::XTransferableSupplier; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/Desktop.idl b/offapi/com/sun/star/frame/Desktop.idl new file mode 100644 index 0000000000..3bd0cb6df7 --- /dev/null +++ b/offapi/com/sun/star/frame/Desktop.idl @@ -0,0 +1,33 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module frame { + +/** + A legacy (single-instance) service-variant of theDesktop singleton. + + @deprecated Use theDesktop singleton instead. + */ + +published service Desktop : XDesktop2; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/DesktopTask.idl b/offapi/com/sun/star/frame/DesktopTask.idl new file mode 100644 index 0000000000..670a0ac473 --- /dev/null +++ b/offapi/com/sun/star/frame/DesktopTask.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 . + */ + + + module com { module sun { module star { module frame { + +/** use the Frame service instead of this + @deprecated + */ +published service DesktopTask +{ + /** use Frame service */ + interface com::sun::star::frame::XDesktopTask; + + /** use the same interface at the Frame service */ + interface com::sun::star::frame::XFrame; + + /** use the same interface at the Frame service */ + interface com::sun::star::beans::XPropertySet; + + /** - */ + interface com::sun::star::frame::XWindowArranger; + + /** use the same interface at the Desktop or + Frame service */ + interface com::sun::star::frame::XFramesSupplier; + + /** use property Frame::Title instead of that */ + [readonly, property] string Title; + + /** - */ + [readonly, property] boolean IsDesktop; + + /** use th visible state of the frame container window instead of this */ + [property] boolean IsVisible; + + /** - */ + [property] boolean IsFloating; + /** - */ + [property] boolean IsAlwaysVisible; + + /** use the position of the frame container window instead of this */ + [property] com::sun::star::awt::Point Position; + + /** use the size of the frame container window instead of this */ + [property] com::sun::star::awt::Size Size; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/DesktopTasks.idl b/offapi/com/sun/star/frame/DesktopTasks.idl new file mode 100644 index 0000000000..7652bd249a --- /dev/null +++ b/offapi/com/sun/star/frame/DesktopTasks.idl @@ -0,0 +1,33 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module frame { + +/** @deprecated + */ +published service DesktopTasks +{ + interface com::sun::star::container::XEnumerationAccess; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/DispatchDescriptor.idl b/offapi/com/sun/star/frame/DispatchDescriptor.idl new file mode 100644 index 0000000000..2e90331151 --- /dev/null +++ b/offapi/com/sun/star/frame/DispatchDescriptor.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 . + */ + + + + module com { module sun { module star { module frame { + +/** describes a feature to be retrieved by a URL that + has to be loaded into a specified frame + ++ For a normal dispatch calls all needed parameters are separated. + For optimized remote functionality XDispatch::queryDispatches() + it's necessary to pack these parameters in a flat structure which can be used + in a simple manner. +
+ + @see XDispatchProvider::queryDispatches() + */ +published struct DispatchDescriptor +{ + /** specifies the URL of the resource/function + ++ Must be a full parsed URL. Use service com::sun::star::util::URLTransformer + for that. +
+ + @see com::sun::star::util::URLTransformer + */ + com::sun::star::util::URL FeatureURL; + + /** name of the target frame + ++ Special targets (e.g. "_blank", "_self") or really existing target names can be used. +
+ + @see XDispatchProvider::queryDispatch() + */ + string FrameName; + + /** describes how the target frame is to be searched + ++ This optional parameter is used if FrameName isn't a special target only. +
+ + @see FrameSearchFlag + */ + long SearchFlags; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/DispatchHelper.idl b/offapi/com/sun/star/frame/DispatchHelper.idl new file mode 100644 index 0000000000..1e8e57e5b8 --- /dev/null +++ b/offapi/com/sun/star/frame/DispatchHelper.idl @@ -0,0 +1,43 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module frame { + +/** provides an easy way to dispatch a URL using one call instead of multiple ones. + ++ Normally a complete dispatch is split into different parts: + - converting and parsing the URL + - searching for a valid dispatch object available on a dispatch provider + - dispatching of the URL and its parameters +
+ + @see DispatchProvider + @see XDispatchProvider + @see XDispatch + + @since OOo 1.1.2 + */ +published service DispatchHelper : XDispatchHelper; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/DispatchInformation.idl b/offapi/com/sun/star/frame/DispatchInformation.idl new file mode 100644 index 0000000000..e2d7b1562b --- /dev/null +++ b/offapi/com/sun/star/frame/DispatchInformation.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 . + */ + + +module com { module sun { module star { module frame { + +/** provides information about a supported command + + @see XDispatchInformationProvider + @see Controller + + @since OOo 2.0 + */ +published struct DispatchInformation +{ + /** command URL of a supported command. + */ + string Command; + + /** group identifier to which the supported command belong. + ++ @see CommandGroup +
+ */ + short GroupId; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/DispatchProvider.idl b/offapi/com/sun/star/frame/DispatchProvider.idl new file mode 100644 index 0000000000..c0384d8f0f --- /dev/null +++ b/offapi/com/sun/star/frame/DispatchProvider.idl @@ -0,0 +1,63 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module frame { + +/** provides XDispatch objects for certain functions which + are useful at the UI + ++ Such dispatch objects must be queried explicitly and used for + queried purposes only. They can handle requests with guaranteed + notifications (XNotifyingDispatch) or with possible + (but not guaranteed) notifications (XDispatch). +
+ + @see XNotifyingDispatch + @see XDispatch + @see XControlNotificationListener + */ +published service DispatchProvider +{ + /** provides handling of dispatches with defined result state + ++ Base interface of XNotifyingDispatch is XDispatch + and can be called for requests if result isn't necessary for dispatch operation. +
+ + @see XDispatch + */ + interface XDispatchProvider; + + /** provides dispatch interception + ++ It makes it possible to register an XDispatchProvider which + intercepts all requests of XDispatch to this instance. +
+ */ + [optional] interface XDispatchProviderInterception; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/DispatchRecorder.idl b/offapi/com/sun/star/frame/DispatchRecorder.idl new file mode 100644 index 0000000000..6ce6598cca --- /dev/null +++ b/offapi/com/sun/star/frame/DispatchRecorder.idl @@ -0,0 +1,45 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module frame { + +/** provides functionality to record XDispatch::dispatch() requests + ++ It records all necessary parameters of a call XDispatch::dispatch() + and generate code which can be executed at later time to run same operations + again. Which code will be generated depends from real implementation. So it's + possible to generate e.g. Java/Basic or may Perl code. + By using of a DispatchRecorderSupplier, which is available on + a property of a Frame::DispatchRecorderSupplier, it's possible to change such code generation + for further requests or disable it in general by setting this property to `NULL`. +
+ + @see DispatchRecorderSupplier + @see Frame::RecorderSupplier + + @since OOo 1.1.2 + */ +published service DispatchRecorder : XDispatchRecorder; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/DispatchRecorderSupplier.idl b/offapi/com/sun/star/frame/DispatchRecorderSupplier.idl new file mode 100644 index 0000000000..d37b412cb1 --- /dev/null +++ b/offapi/com/sun/star/frame/DispatchRecorderSupplier.idl @@ -0,0 +1,45 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module frame { + +/** provides a DispatchRecorder + ++ This supplier regulate macro recording of XDispatch::dispatch() + calls. For that it encapsulates a reference to a DispatchRecorder. + Such recorder is used internally and can be used externally too. + A supplier will be available on a Frame if recording was enabled, + otherwise not. A frame supports a special property for that. + This modular concept of recorder, supplier and frame makes it possible to + implement local recording on one frame; global recording by using all currently + opened frames or only some of them; and so on. +
+ + @see DispatchRecorder + @see Frame + @since OOo 1.1.2 + */ +published service DispatchRecorderSupplier : XDispatchRecorderSupplier; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/DispatchResultEvent.idl b/offapi/com/sun/star/frame/DispatchResultEvent.idl new file mode 100644 index 0000000000..cb2d4c5b8c --- /dev/null +++ b/offapi/com/sun/star/frame/DispatchResultEvent.idl @@ -0,0 +1,49 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module frame { + +/** contains the result of the dispatch action, if State is set to SUCCESS + ++ The type of the result is dispatch action dependent. The member State + can be set to one of the values defined in DispatchResultState. + If State is set to DispatchResultState::FAILURE, Result may + specify the reason (or is empty). The type is also dispatch action dependent. + If State is set to DispatchResultState::DONTKNOW, Result is empty. +
+ + @see DispatchResultState +*/ +published struct DispatchResultEvent: com::sun::star::lang::EventObject +{ + /** describes state of dispatch + */ + short State; + + /** describes result for given State + */ + any Result; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/DispatchResultState.idl b/offapi/com/sun/star/frame/DispatchResultState.idl new file mode 100644 index 0000000000..3c6389f80b --- /dev/null +++ b/offapi/com/sun/star/frame/DispatchResultState.idl @@ -0,0 +1,43 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module frame { + +/** possible values for DispatchResultEvent + */ +published constants DispatchResultState +{ + /** indicates: dispatch failed + */ + const short FAILURE = 0; + + /** indicates: dispatch was successful + */ + const short SUCCESS = 1; + + /** indicates: result isn't defined + */ + const short DONTKNOW = 2; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/DispatchStatement.idl b/offapi/com/sun/star/frame/DispatchStatement.idl new file mode 100644 index 0000000000..16e50dda17 --- /dev/null +++ b/offapi/com/sun/star/frame/DispatchStatement.idl @@ -0,0 +1,72 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module frame { + +/** represents a dispatch statement from a recorded macro + + @since OOo 1.1.2 + */ +published struct DispatchStatement +{ + /** specifies the dispatch command + ++ That means the URL parameter of a corresponding XDispatchProvider::queryDispatch() request. +
+ */ + string aCommand; + + + /** specifies the frame target + ++ That means the TargetFrameName parameter of a corresponding XDispatchProvider::queryDispatch() request. +
+ */ + string aTarget; + + /** specifies the dispatch command arguments + ++ That means the Arguments parameter of a corresponding XDispatch::dispatch() request. +
+ */ + sequence < com::sun::star::beans::PropertyValue > aArgs; + + /** specifies the optional search flags ++ That means the SearchFlags parameter of a corresponding XDispatchProvider::queryDispatch() request. +
+ */ + long nFlags; + + /** specifies if this statement should be recorded as commented out or not + + @see XDispatchRecorder::recordDispatchAsComment() + */ + boolean bIsComment; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/DocumentTemplates.idl b/offapi/com/sun/star/frame/DocumentTemplates.idl new file mode 100644 index 0000000000..55f4d22726 --- /dev/null +++ b/offapi/com/sun/star/frame/DocumentTemplates.idl @@ -0,0 +1,34 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module frame { + +/** is a service for accessing the document templates of the office + and manipulate them ( add or rename or remove templates ) + + It implements a high level interface on top of a ucb content provider which + is used for template configuration. +*/ +published service DocumentTemplates : XDocumentTemplates; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/DoubleInitializationException.idl b/offapi/com/sun/star/frame/DoubleInitializationException.idl new file mode 100644 index 0000000000..6880e7e3dc --- /dev/null +++ b/offapi/com/sun/star/frame/DoubleInitializationException.idl @@ -0,0 +1,35 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module frame { + +/** This exception can be thrown in case an object is initialized second time. + + @since OOo 1.1.2 + */ +published exception DoubleInitializationException: com::sun::star::uno::Exception +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/FeatureStateEvent.idl b/offapi/com/sun/star/frame/FeatureStateEvent.idl new file mode 100644 index 0000000000..30697cfc3c --- /dev/null +++ b/offapi/com/sun/star/frame/FeatureStateEvent.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 . + */ + + + + module com { module sun { module star { module frame { + +/** This event is broadcast by a Controller whenever the state of + the feature changes + + @see XController + @see XStatusListener + */ +published struct FeatureStateEvent: com::sun::star::lang::EventObject +{ + /** contains the URL of the feature. + */ + com::sun::star::util::URL FeatureURL; + + /** contains a descriptor of the feature for the user interface. + */ + string FeatureDescriptor; + + /** specifies whether the feature is currently enabled or disabled. + */ + boolean IsEnabled; + + /** specifies whether the XDispatch has to be required. + ++ Interest code should listen for FrameActionEvent + too, to update own feature states and dispatch listener on + FrameAction::CONTEXT_CHANGED. +
+ */ + boolean Requery; + + /** contains the state of the feature in this dispatch. + +
+ This can be, for example, simply `TRUE` for a boolean feature like
+ underline on/off. Some simple types like string
or
+ `boolean` are useful here for generic UI elements, like
+ a checkmark in a menu.
+
+ Frames are the anchors for the office components and they are the component's link + to the outside world. They create a skeleton for the whole office API infrastructure + by building frame hierarchies. These hierarchies contains all currently loaded + documents and make it possible to walk during these trees. + A special service Desktop can(!) combine different of such trees + to a global one which life time will be controlled by it. +
+ + @see Desktop + */ +published service Frame : XFrame2; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/FrameAction.idl b/offapi/com/sun/star/frame/FrameAction.idl new file mode 100644 index 0000000000..c516efecad --- /dev/null +++ b/offapi/com/sun/star/frame/FrameAction.idl @@ -0,0 +1,130 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module frame { + +/** these are the events which can happen to the components in frames + of the desktop + ++ Interest listener can get information about loaded/reloaded or unloaded + components into a Frame. +
+ + @see XFrame + @see XFrameActionListener + @see FrameActionEvent + */ +published enum FrameAction +{ + /** an event of this kind is broadcast whenever a component is + attached to a frame + ++ This is almost the same as the instantiation of the component + within that frame. The component is attached to the frame + immediately before this event is broadcast. +
+ + @see XFrame::setComponent() + */ + COMPONENT_ATTACHED, + + /** an event of this kind is broadcast whenever a component is + detaching from a frame + ++ This is quite the same as the destruction of the component + which was in that frame. At the moment when the event is broadcast + the component is still attached to the frame but in the next + moment it won't. +
+ + @see XFrame::setComponent() + */ + COMPONENT_DETACHING, + + /** an event of this kind is broadcast whenever a component is + attached to a new model. + ++ In this case the component remains the same but operates + on a new model component. +
+ */ + COMPONENT_REATTACHED, + + /** an event of this kind is broadcast whenever a component gets + activated + ++ Activations are broadcast from the top component which was + not active before, down to the inner most component. +
+ + @see XFrame::activate() + */ + FRAME_ACTIVATED, + + /** an event of this kind is broadcasted immediately before the + component is deactivated + ++ Deactivations are broadcast from the innermost component which + does not stay active up to the outer most component which does not + stay active. +
+ + @see XFrame::deactivate() + */ + FRAME_DEACTIVATING, + + /** an event of this kind is broadcast whenever a component changes + its internal context (i.e., the selection). + ++ If the activation status within a frame changes, this counts as + a context change too. +
+ + @see XFrame::contextChanged() + */ + CONTEXT_CHANGED, + + /** an event of this kind is broadcast by an active frame when it + is getting UI control (tool control). + + @see XFrame::activate() + */ + FRAME_UI_ACTIVATED, + + /** an event of this kind is broadcast by an active frame when it + is losing UI control (tool control). + + @see XFrame::deactivate() + */ + FRAME_UI_DEACTIVATING +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/FrameActionEvent.idl b/offapi/com/sun/star/frame/FrameActionEvent.idl new file mode 100644 index 0000000000..ed1bc670a0 --- /dev/null +++ b/offapi/com/sun/star/frame/FrameActionEvent.idl @@ -0,0 +1,42 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module frame { + +/** this event struct is broadcast for actions which can happen to + components within frames + + @see XFrameActionListener + */ +published struct FrameActionEvent: com::sun::star::lang::EventObject +{ + /** contains the frame in which the event occurred + */ + XFrame Frame; + + /** specifies the concrete event + */ + FrameAction Action; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/FrameControl.idl b/offapi/com/sun/star/frame/FrameControl.idl new file mode 100644 index 0000000000..a08f9332de --- /dev/null +++ b/offapi/com/sun/star/frame/FrameControl.idl @@ -0,0 +1,56 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module frame { + +/** contains a frame with a desktop component + ++ If the control is visible and has a valid (loadable) component URL, + then the FrameControl::Frame property is set. + Normally this control can be used for preview functionality inside + any UI. +
+ */ +published service FrameControl +{ + /** the base service of all controls + */ + service com::sun::star::awt::UnoControl; + + /** contains the type of the component which is loaded into the frame, + or the document which implicitly specifies the type + */ + [property] string ComponentUrl; + + /** the frame held by this control + ++ The Frame is created if the control + is shown and the #ComponentUrl is set. +
+ */ + [property, readonly] string Frame; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/FrameLoader.idl b/offapi/com/sun/star/frame/FrameLoader.idl new file mode 100644 index 0000000000..4683b42258 --- /dev/null +++ b/offapi/com/sun/star/frame/FrameLoader.idl @@ -0,0 +1,71 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module frame { + +/** derivations of this abstract service are used to load components + into Frames of the environment + ++ Concrete implementations of this service register, for example, + for file name extensions or MIME types to load appropriate + components. The components loaded are at least Controller. + Instead of SynchronousFrameLoader this one use asynchronous + processes to load the component. +
+ + @see SynchronousFrameLoader + */ +published service FrameLoader +{ + /** support asynchronous loading of the component + */ + interface XFrameLoader; + + /** support initialization of loader with its own configuration! + ++ Concrete implementations should use it to get her own configuration data + directly after creation by the FrameLoaderFactory. + Otherwise they must use normal configuration API to do so. +
+ */ + [optional] interface com::sun::star::lang::XInitialization; + + /** provides access to the internal name of this frame loader + ++ The internal name is a part of his configuration and will be passed by + the FrameLoaderFactory after creation + if optional interface com::sun::star::lang::XInitialization + is supported. Value of function com::sun::star::container::XNamed::getName() + can be used on service FrameLoaderFactory to get further information about this loader. + Setting of this name by calling com::sun::star::container::XNamed::setName() + must be forwarded to same factory service. He should decide, if it's allowed or not. + The reason: prevent code against name ambiguities. +
+ */ + [optional] interface com::sun::star::container::XNamed; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/FrameLoaderFactory.idl b/offapi/com/sun/star/frame/FrameLoaderFactory.idl new file mode 100644 index 0000000000..42df070e69 --- /dev/null +++ b/offapi/com/sun/star/frame/FrameLoaderFactory.idl @@ -0,0 +1,39 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module frame { + +/** factory to create frame loader + ++ With this factory it's possible to +
+ Such flags will be used on methods XFrame::findFrame(), + XDispatchProvider::queryDispatch() or + XComponentLoader::loadComponentFromURL() if no special target + frame name (e.g. "_blank", "_self") is used. +
+ + @see XFrame::findFrame() + @see XDispatchProvider::queryDispatch() + @see XComponentLoader::loadComponentFromURL() + */ +published constants FrameSearchFlag +{ + /** no longer supported + ++ Using of this flag will do nothing. Use right combination of other flags + instead of this one. +
+ + @deprecated + */ + const long AUTO = 0; + + /** allows search on the parent frames + */ + const long PARENT = 1; + + /** includes the start frame himself + */ + const long SELF = 2; + + /** includes all child frames of the start frame + ++ Note: That means all direct children and of course her children too. + Search doesn't stop at the next level inside the tree! +
+ */ + const long CHILDREN = 4; + + /** frame will be created if not found + */ + const long CREATE = 8; + + /** includes the direct siblings of the start frame + ++ Normally it's interpreted as search on the direct children of the parent + only. But in combination with e.g. the CHILDREN flag it can include all + children of it too. +
+ */ + const long SIBLINGS = 16; + + /** allow the search outside the current sub task tree of the whole possible frame tree + ++ If this flag isn't present, any search from bottom to top has to stop, if a top frame + will be reached. It doesn't influence a search from top to bottom. + But it can be used at the root of the frame tree to search on direct children of it only. + Because the direct children of the root node are the root's of the task sub trees, which + are top frames too. Instead of using the CHILDREN flag there, it's possible so to suppress + a deeper search so. +
+ */ + const long TASKS = 32; + + /** includes all frames except frames in other tasks sub trees + but doesn't create any new frame + */ + const long ALL = 23; + + /** searches in the whole hierarchy of frames + but doesn't create any new frame + */ + const long GLOBAL = 55; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/FramesContainer.idl b/offapi/com/sun/star/frame/FramesContainer.idl new file mode 100644 index 0000000000..250f61902e --- /dev/null +++ b/offapi/com/sun/star/frame/FramesContainer.idl @@ -0,0 +1,43 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module frame { + +/** this is a special container which can contain frames + ++ All elements in this container support the service frame. + Implementations of this service are available by interface + XFramesSupplier. +
+ + @see XFramesSupplier + */ +published service FramesContainer +{ + /** access to frame collection by reference + */ + interface XFrames; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/GlobalEventBroadcaster.idl b/offapi/com/sun/star/frame/GlobalEventBroadcaster.idl new file mode 100644 index 0000000000..2a3f9f605a --- /dev/null +++ b/offapi/com/sun/star/frame/GlobalEventBroadcaster.idl @@ -0,0 +1,34 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module frame { + +/** + A legacy (single-instance) service-variant of theGlobalEventBroadcaster + singleton. + + @deprecated Use theGlobalEventBroadcaster singleton instead. +*/ +service GlobalEventBroadcaster : XGlobalEventBroadcaster; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/IllegalArgumentIOException.idl b/offapi/com/sun/star/frame/IllegalArgumentIOException.idl new file mode 100644 index 0000000000..81db0a69e8 --- /dev/null +++ b/offapi/com/sun/star/frame/IllegalArgumentIOException.idl @@ -0,0 +1,35 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module frame { + +/** This exception can be thrown in case arguments are wrong. + + @since OOo 1.1.2 + */ +published exception IllegalArgumentIOException: com::sun::star::io::IOException +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/InfobarType.idl b/offapi/com/sun/star/frame/InfobarType.idl new file mode 100644 index 0000000000..b955d06723 --- /dev/null +++ b/offapi/com/sun/star/frame/InfobarType.idl @@ -0,0 +1,33 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */ +/* + * 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/. + */ + +module com { module sun { module star { module frame { + +/** Infobar types. + + @since LibreOffice 6.4 +*/ +constants InfobarType +{ + /** For information messages (color: light blue). */ + const long INFO = 0; + + /** For success notifications (color: light green). */ + const long SUCCESS = 1; + + /** For warning messages (color: orange). */ + const long WARNING = 2; + + /** For critical errors (color: red). */ + const long DANGER = 3; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ \ No newline at end of file diff --git a/offapi/com/sun/star/frame/LayoutManager.idl b/offapi/com/sun/star/frame/LayoutManager.idl new file mode 100644 index 0000000000..490f308eee --- /dev/null +++ b/offapi/com/sun/star/frame/LayoutManager.idl @@ -0,0 +1,52 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module frame { + +/** controls the layout of user interface elements which are part of a frame. + ++ Layout management is the process of determining the size and position of + user interface elements. By default, each Frame has a layout + manager -- it performs layout management for the user interface elements + within the frame. User interface elements can provide size and alignment + hints to layout managers, but layout managers have the final decision on + the size and position of those user interface elements. +
+ ++ Available properties: +
MenuBarCloser
: Whether the small "Close" button in the menubar is displayedAutomaticToolbars
: Whether automatic toolbars do appearRefreshContextToolbarVisibility
: Set to true to refresh visibility of context toolbarsHideCurrentUI
: Hide/Show current UI elements (Toolbar, Statusbar, Menubar, etc)PreserveContentSize
: When true, the outer window is resized the content/document size is preservedEvents are provided only for notification + purposes only.
+ + @see com::sun::star::frame::LayoutManager + @see com::sun::star::frame::XLayoutManagerEventBroadcaster + + @since OOo 2.0 + */ +constants LayoutManagerEvents +{ + /** specifies that the layout manager processed a lock call, which + prevents it from doing layouts. + ++ This event sends the current lock count as additional + information. +
+ */ + const short LOCK = 0; + + /** specifies that the layout manager processed an unlock call, which + admit layouts when the lock count is zero. + ++ This event sends the current lock count as additional + information. +
+ */ + const short UNLOCK = 1; + + /** specifies that the layout manager refreshed the layout of + the frame. + ++ This event sends no additional information. +
+ */ + const short LAYOUT = 2; + + /** specifies that the layout manager container frame window + becomes visible. + ++ This event sends no additional information. +
+ */ + const short VISIBLE = 3; + + /** specifies that the layout manager container frame window + becomes invisible. + ++ This event sends no additional information. +
+ */ + const short INVISIBLE = 4; + + /** A merged menu bar has been set at the layout manager. + ++ This event sends no additional information. +
+ */ + const short MERGEDMENUBAR = 5; + + /** specifies that a certain user interface element has been made + visible + ++ This event sends the resource url of the newly visible user + interface element. +
+ */ + const short UIELEMENT_VISIBLE = 6; + + /** specifies that a certain user interface element has been made + invisible + ++ This event sends the resource url of the invisible user + interface element. +
+ */ + const short UIELEMENT_INVISIBLE = 7; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/MediaTypeDetectionHelper.idl b/offapi/com/sun/star/frame/MediaTypeDetectionHelper.idl new file mode 100644 index 0000000000..3ed58b6469 --- /dev/null +++ b/offapi/com/sun/star/frame/MediaTypeDetectionHelper.idl @@ -0,0 +1,38 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module frame { + +/** provides for mapping a given sequence of content identifier strings + to a sequence of respective media (mime) types + ++ Order of given and their returned corresponding strings is important. + Don't pack or optimize it. Every item of [in] list must match + to an item of [out] list. +
+ */ +published service MediaTypeDetectionHelper + : com::sun::star::util::XStringMapping; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/ModuleManager.idl b/offapi/com/sun/star/frame/ModuleManager.idl new file mode 100644 index 0000000000..acdbd238de --- /dev/null +++ b/offapi/com/sun/star/frame/ModuleManager.idl @@ -0,0 +1,37 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module frame { + +/** can be used to identify office modules. + ++ Further it provides read access to the configuration + of office modules. +
+ + @since OOo 2.0 + */ + +service ModuleManager : XModuleManager2; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/OfficeFrameLoader.idl b/offapi/com/sun/star/frame/OfficeFrameLoader.idl new file mode 100644 index 0000000000..54504f6ef4 --- /dev/null +++ b/offapi/com/sun/star/frame/OfficeFrameLoader.idl @@ -0,0 +1,31 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module frame { + +/** + @since LibreOffice 4.2 + */ +service OfficeFrameLoader : XSynchronousFrameLoader; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/PopupMenuController.idl b/offapi/com/sun/star/frame/PopupMenuController.idl new file mode 100644 index 0000000000..ef70a2a2e9 --- /dev/null +++ b/offapi/com/sun/star/frame/PopupMenuController.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 . + */ + + +module com { module sun { module star { module frame { + + +/** provides access to a pop-up menu controller. + +
+ A pop-up menu controller is used to make special functions available to
+ users, which depend on runtime or context specific conditions.
+ A typical example for a pop-up menu controller can be a recent file list
+ implementation which provides a list of latest files that a user has
+ worked on. This list gets changes consistently during a work session.
+
+ A pop-up menu controller implementation gets initialized with a + com::sun::star::awt::XPopupMenu object. This assures + that a pop-up menu controller can be implemented with any UNO based + language. +
+ */ + interface com::sun::star::frame::XPopupMenuController; + + /** provides functions to initialize a pop-up menu controller with + specific data which are needed. + +
+ This interface should not directly used. A factory service is responsible to
+ initialize every controller correctly.
+
+ A pop-up menu controller needs at least two additional arguments
+ provided as com::sun::star::beans::PropertyValue:
+
+ A pop-up menu controller makes special functions available to users which + normally depend on the state of other data. This interface is used to + send this data to a controller implementation. +
+ */ + interface com::sun::star::frame::XStatusListener; + + /** used to query for commands supported by the pop-up menu controller to + execute them directly. + +
+ A pop-up menu controller provides special functions which should be
+ available by the normal dispatch API. This optional interface enables
+ pop-up menu controller to be normal dispatch providers.
+ Attention:
+ Po-pup menu controller functions must be specified using the following
+ the dispatch URL scheme: "vnd.sun.star.popup:" opaque_part [ "?" query ].
+
+ A pop-up menu controller resides in a menu which has a limited + life-time. For correct life-time handling a pop-up menu + controller should support this interface. +
+ + @since OOo 2.2 + */ + [optional] interface com::sun::star::lang::XComponent; +}; + +}; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/PopupMenuControllerFactory.idl b/offapi/com/sun/star/frame/PopupMenuControllerFactory.idl new file mode 100644 index 0000000000..98d044e76e --- /dev/null +++ b/offapi/com/sun/star/frame/PopupMenuControllerFactory.idl @@ -0,0 +1,33 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module frame { + +/** + A legacy (single-instance) service-variant of thePopupMenuControllerFactory singleton. + + @deprecated Use thePopupMenuControllerFactory singleton instead. + + @since OOo 2.0 +*/ +service PopupMenuControllerFactory : XUIControllerFactory; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/ProtocolHandler.idl b/offapi/com/sun/star/frame/ProtocolHandler.idl new file mode 100644 index 0000000000..182b6e4a05 --- /dev/null +++ b/offapi/com/sun/star/frame/ProtocolHandler.idl @@ -0,0 +1,75 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module frame { + +/** special dispatch provider registered for URL protocols + ++ The generic dispatch mechanism on a Frame + search for such registered protocol handler and use it if it agrees with + the dispatched URL. +
+ +
+ Supported URLs must match follow format:
+ protocol scheme:protocol specific part
+ If a handler provides optional arguments ("?") or jump marks ("#") depends from his
+ definition and implementation. The generic dispatch provider will use registered
+ URL pattern to detect right handler.
+
+ Such asked handler can agree by returning itself or a special sub dispatch object, which + can handle the given URL. Of course he can disagree with it by returning an empty reference. +
+ */ + interface XDispatchProvider; + + /** initialize the new handler instance with some context information + ++ Sometimes it can be useful for a handler object, to know something about the + environment, in which it runs - especially the frame. For this case the generic + code (which uses the handler) will ask for this optional interface and use it, if it exist. + Following parameters are passed to the service: +
+ Please note: if this mechanism is used it seems not useful (nor possible) to implement a ProtocolHandler + as a singleton. Otherwise the implementation can't distinguish between different environments + and her corresponding dispatch requests. +
+ */ + [optional] interface ::com::sun::star::lang::XInitialization; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/SessionListener.idl b/offapi/com/sun/star/frame/SessionListener.idl new file mode 100644 index 0000000000..f4b690f41f --- /dev/null +++ b/offapi/com/sun/star/frame/SessionListener.idl @@ -0,0 +1,38 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module frame { + + + +/** + This was created from its sole place of use, so it might be incomplete. + + @since LibreOffice 4.1 +*/ +service SessionListener : com::sun::star::frame::XSessionManagerListener2 +{ + createWithOnQuitFlag([in] boolean AllowUserInteractionOnQuit); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/SessionManager.idl b/offapi/com/sun/star/frame/SessionManager.idl new file mode 100644 index 0000000000..7a9fa1968c --- /dev/null +++ b/offapi/com/sun/star/frame/SessionManager.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 . + */ + + + module com { module sun { module star { module frame { + +/** The SessionManager service provides an interface to the session manager + of the desktop. A session manager keeps track of applications that are + running when the desktop shuts down and starts them again in the same + state they were left when the desktop starts up the next time. To be able + to do this the session manager needs cooperation from applications; + applications have to provide sufficient information to be started again as + well as restore the state they were left in. The normal flow of operation + looks like this: + +
+ A generic status bar function is represented as a text field which
+ provides status information to the user. A status bar controller can be
+ added to a status bar and provides information or functions with a more
+ sophisticated user interface.
+ A typical example for a status bar controller is the zoom level chooser
+ within the statusbar. It provides an option to change the zoom level of
+ an application.
+
+ + @see com::sun::star::frame::XDispatchProvider + @see com::sun::star::frame::XStatusbarController + + @since OOo 2.0 + */ +service StatusbarController : XStatusbarController +{ +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/StatusbarControllerFactory.idl b/offapi/com/sun/star/frame/StatusbarControllerFactory.idl new file mode 100644 index 0000000000..1d0b4b633d --- /dev/null +++ b/offapi/com/sun/star/frame/StatusbarControllerFactory.idl @@ -0,0 +1,33 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module frame { + +/** + A legacy (single-instance) service-variant of theStatusbarControllerFactory singleton. + + @deprecated Use theStatusbarControllerFactory singleton instead. + + @since OOo 2.0 +*/ +service StatusbarControllerFactory : XUIControllerFactory; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/SynchronousFrameLoader.idl b/offapi/com/sun/star/frame/SynchronousFrameLoader.idl new file mode 100644 index 0000000000..bea4683d1b --- /dev/null +++ b/offapi/com/sun/star/frame/SynchronousFrameLoader.idl @@ -0,0 +1,71 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module frame { + +/** derivations of this abstract service are used to load components + into Frames of the environment + +
+ Concrete implementations of this service register, for example, + for file name extensions or MIME types to load appropriate + components. The components loaded are at least Controller. + Instead of service FrameLoader this one use synchronous + processes to load the component. +
+ + @see FrameLoader + */ +published service SynchronousFrameLoader +{ + /** support synchronous loading of component + */ + interface XSynchronousFrameLoader; + + /** support initialization of loader with its own configuration! + ++ Concrete implementations should use it to get her own configuration data + directly after creation by the FrameLoaderFactory. + Otherwise they must use normal configuration API to do so. +
+ */ + [optional] interface com::sun::star::lang::XInitialization; + + /** provides access to the internal name of this frame loader + ++ The internal name is a part of his configuration and will be passed by + the FrameLoaderFactory after creation + if optional interface com::sun::star::lang::XInitialization + is supported. Value of function com::sun::star::container::XNamed::getName() can be + used on service FrameLoaderFactory to get further information about this loader. + Setting of this name by calling com::sun::star::container::XNamed::setName() must be + forwarded to same factory service. He should decide, if it's allowed or not. + The reason: prevent code against name ambiguities. +
+ */ + [optional] interface com::sun::star::container::XNamed; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/Task.idl b/offapi/com/sun/star/frame/Task.idl new file mode 100644 index 0000000000..dbfc49ff2b --- /dev/null +++ b/offapi/com/sun/star/frame/Task.idl @@ -0,0 +1,55 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module frame { + +/** represents a top level frame in the frame hierarchy with the desktop as root + ++ Please use the service Frame instead of this deprecated Task. If it's + method XFrame.isTop() returns `TRUE`, it's the same + as a check for the Task service. +
+ + @see Frame + + @deprecated + + @since OOo 1.1.2 + */ +published service Task +{ + /** + @deprecated + */ + interface XFrame; + + /** + @deprecated + use com::sun::star::util::XCloseable instead. + + */ + interface XTask; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/TaskCreator.idl b/offapi/com/sun/star/frame/TaskCreator.idl new file mode 100644 index 0000000000..f7cba87cd9 --- /dev/null +++ b/offapi/com/sun/star/frame/TaskCreator.idl @@ -0,0 +1,31 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module frame { + +/** + @since LibreOffice 4.1 + */ +service TaskCreator : com::sun::star::lang::XSingleServiceFactory; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/TemplateAccess.idl b/offapi/com/sun/star/frame/TemplateAccess.idl new file mode 100644 index 0000000000..34ea5ebff2 --- /dev/null +++ b/offapi/com/sun/star/frame/TemplateAccess.idl @@ -0,0 +1,39 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module frame { + +/** provides a high level API to organize document templates + */ +published service TemplateAccess +{ + /** used to organize document templates + */ + interface XDocumentTemplates; + + /** provides selection of sets of localized templates + */ + interface com::sun::star::lang::XLocalizable; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/TerminationVetoException.idl b/offapi/com/sun/star/frame/TerminationVetoException.idl new file mode 100644 index 0000000000..71e7bce736 --- /dev/null +++ b/offapi/com/sun/star/frame/TerminationVetoException.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 . + */ + + + module com { module sun { module star { module frame { + +/** can be thrown by a XTerminateListener to prevent the environment + (e.g., desktop) from terminating + ++ If a XTerminateListener use this exception for a veto against + the termination of the office, he will be the new "owner" of it. + After his own operation will be finished, he MUST try to terminate the + office again. Any other veto listener can intercept that again or office + will die really. + + Since LibreOffice 5.3: + Throwing this exception will only prevent *termination*. + Exiting LibreOffice will close all the windows, but the process will keep running. +
+ + @see XDesktop::terminate() + @see XTerminateListener + */ +published exception TerminationVetoException: com::sun::star::uno::Exception +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/TitleChangedEvent.idl b/offapi/com/sun/star/frame/TitleChangedEvent.idl new file mode 100644 index 0000000000..ca84eca88b --- /dev/null +++ b/offapi/com/sun/star/frame/TitleChangedEvent.idl @@ -0,0 +1,35 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module frame { + +/** Contains the information about a changed title. + */ +struct TitleChangedEvent : com::sun::star::lang::EventObject +{ + /** The new title + */ + string Title; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/ToolbarController.idl b/offapi/com/sun/star/frame/ToolbarController.idl new file mode 100644 index 0000000000..c057124bd7 --- /dev/null +++ b/offapi/com/sun/star/frame/ToolbarController.idl @@ -0,0 +1,109 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module frame { + +/** is an abstract service for a component which offers a more complex user + interface to users within a toolbar. + +
+ A generic toolbar function is represented as a button which has a state
+ (enabled,disabled and selected, not selected). A toolbar controller can
+ be added to a toolbar and provide information or functions within a more
+ sophisticated user interface.
A typical example for toolbar controller
+ is the font chooser within the toolbar. It provides all available fonts in
+ a dropdown box and shows the current chosen font.
+
+ + @see com::sun::star::frame::XDispatchProvider + + @since OOo 2.0 + */ + +service ToolbarController +{ + /** with this interface a component can receive events if a feature has + changed. + +
+ The toolbar controller implementation should register itself as a + listener when its com::sun::star::util::XUpdatable + interface has been called. +
+ */ + interface com::sun::star::frame::XStatusListener; + + /** used to initialize a component with required arguments. + + A toolbar controller needs at least three additional arguments + provided as com::sun::star::beans::PropertyValue: ++ A toolbar controller instance is ready for use after this call has been made + the first time. The toolbar implementation guarantees that the controller's + item window has been added to the toolbar and its reference is held by it. +
+ */ + interface com::sun::star::util::XUpdatable; + + /** used to notify changed features and requests for additional user interface + items. + ++ Mostly used by a toolbar implementation to forward information to and request + services from a toolbar controller component. This interface must be usable + after com::sun::star::lang::XInitialization::initialize() + has been called. The behavior of the interface is undefined if the controller + component hasn't been initialized. +
+ */ + interface com::sun::star::frame::XToolbarController; + + /** used to notify and retrieve information that are specific for sub-toolbar + controllers. + ++ Used by implementations that want to provide the toolbar button/sub- + toolbar function feature. A controller supporting this interface exchanges + the function of its own toolbar button, that opened the sub-toolbar, with + the one that has been selected on the sub-toolbar. +
+ */ + [optional] interface ::com::sun::star::frame::XSubToolbarController; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/ToolbarControllerFactory.idl b/offapi/com/sun/star/frame/ToolbarControllerFactory.idl new file mode 100644 index 0000000000..9a617f0560 --- /dev/null +++ b/offapi/com/sun/star/frame/ToolbarControllerFactory.idl @@ -0,0 +1,34 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module frame { + +/** + A legacy (single-instance) service-variant of theToolbarControllerFactory singleton. + + @deprecated Use theToolbarControllerFactory singleton instead. + + @since OOo 2.0 +*/ + +service ToolbarControllerFactory : XUIControllerFactory; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/TransientDocumentsDocumentContentFactory.idl b/offapi/com/sun/star/frame/TransientDocumentsDocumentContentFactory.idl new file mode 100644 index 0000000000..65850c2b35 --- /dev/null +++ b/offapi/com/sun/star/frame/TransientDocumentsDocumentContentFactory.idl @@ -0,0 +1,38 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module frame { + +/** specifies a factory for + com::sun::star::ucb::TransientDocumentsDocumentContents. + + @since OOo 2.0 +*/ +service TransientDocumentsDocumentContentFactory +{ + /** a factory for TransientDocumentsDocumentContents. + */ + interface com::sun::star::frame::XTransientDocumentsDocumentContentFactory; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/UICommandDescription.idl b/offapi/com/sun/star/frame/UICommandDescription.idl new file mode 100644 index 0000000000..bcebb2f991 --- /dev/null +++ b/offapi/com/sun/star/frame/UICommandDescription.idl @@ -0,0 +1,35 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module frame { + + +/** + A legacy (single-instance) service-variant of theUICommandDescription singleton. + + @deprecated Use theUICommandDescription singleton instead. + + @since OOo 2.0 +*/ +service UICommandDescription : com::sun::star::container::XNameAccess; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/UnknownModuleException.idl b/offapi/com/sun/star/frame/UnknownModuleException.idl new file mode 100644 index 0000000000..707cd3293e --- /dev/null +++ b/offapi/com/sun/star/frame/UnknownModuleException.idl @@ -0,0 +1,35 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module frame { + +/** This exception can be thrown in case an office + * module could not be classified or does not have + * a valid configuration. + + @since OOo 2.0 + */ +exception UnknownModuleException : ::com::sun::star::uno::Exception +{ +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/UntitledNumbersConst.idl b/offapi/com/sun/star/frame/UntitledNumbersConst.idl new file mode 100644 index 0000000000..9ae388ed2f --- /dev/null +++ b/offapi/com/sun/star/frame/UntitledNumbersConst.idl @@ -0,0 +1,29 @@ +/* -*- 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 . + */ + + module com { module sun { module star { module frame { + +constants UntitledNumbersConst +{ + const long INVALID_NUMBER = 0; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/WindowArrange.idl b/offapi/com/sun/star/frame/WindowArrange.idl new file mode 100644 index 0000000000..fb60b7d358 --- /dev/null +++ b/offapi/com/sun/star/frame/WindowArrange.idl @@ -0,0 +1,55 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module frame { + +/** these constants are used to specify a style of window arrangement + */ +published constants WindowArrange +{ + /** arranges the windows in tiles + */ + const short TILE = 1; + + /** arranges the windows vertically + */ + const short VERTICAL = 2; + + /** arranges the windows horizontally + */ + const short HORIZONTAL = 3; + + /** cascades the windows + */ + const short CASCADE = 4; + + /** maximizes all windows + */ + const short MAXIMIZE = 5; + + /** minimizes all windows + */ + const short MINIMIZE = 6; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XAppDispatchProvider.idl b/offapi/com/sun/star/frame/XAppDispatchProvider.idl new file mode 100644 index 0000000000..fba0087e38 --- /dev/null +++ b/offapi/com/sun/star/frame/XAppDispatchProvider.idl @@ -0,0 +1,35 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module frame { + +/** + @since LibreOffice 4.2 + */ +interface XAppDispatchProvider +{ + interface XDispatchInformationProvider; + interface XDispatchProvider; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XBorderResizeListener.idl b/offapi/com/sun/star/frame/XBorderResizeListener.idl new file mode 100644 index 0000000000..25bfae755d --- /dev/null +++ b/offapi/com/sun/star/frame/XBorderResizeListener.idl @@ -0,0 +1,44 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module frame { + +/** allows to listen to border resize events of a controller. + */ +interface XBorderResizeListener: com::sun::star::lang::XEventListener +{ + /** notifies the listener that the controller's border widths have been + changed. + + @param Object + reference to the object representing the controller + + @param NewSize + the new widths of the controller's border + */ + void borderWidthsChanged( [in] ::com::sun::star::uno::XInterface Object, + [in] BorderWidths NewSize ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XBrowseHistoryRegistry.idl b/offapi/com/sun/star/frame/XBrowseHistoryRegistry.idl new file mode 100644 index 0000000000..498b88c1be --- /dev/null +++ b/offapi/com/sun/star/frame/XBrowseHistoryRegistry.idl @@ -0,0 +1,43 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module frame { + +/** @deprecated + */ +published interface XBrowseHistoryRegistry: com::sun::star::uno::XInterface +{ + /** @deprecated + */ + void updateViewData( [in] any Value ); + + /** @deprecated + */ + void createNewEntry( + [in] string URL, + [in] sequence+ To create new documents, use "private:factory/scalc", "private:factory/swriter", etc. + Other special protocols (e.g. "slot:", ".uno") are not allowed and raise + a com::sun::star::lang::IllegalArgumentException. +
+ + @param TargetFrameName + specifies the name of the frame to view the document in + ++ If a frame with the specified name already exists, it is used, otherwise it + is created. There exist some special targets which never can be used + as real frame names: +
"_blank" | +always creates a new frame | +
"_default" | +special UI functionality (e.g. detecting of already loaded documents, using of empty frames of creating of new top frames as fallback) |
+
"_self", ""(!) | +means frame himself | +
"_parent" | +address direct parent of frame | +
"_top" | +indicates top frame of current path in tree | +
"_beamer" | +means special sub frame | +
+ Note: These flags are optional ones and will be used for non special + target names only. +
+ + @param Arguments + these arguments specify component or filter specific behavior + ++ For example, "ReadOnly" with a boolean value specifies whether + the document is opened read-only. "FilterName" specifies the + component type to create and the filter to use, for example: + "Text - CSV". For more information see + com::sun::star::document::MediaDescriptor. +
+ + @return + a com::sun::star::lang::XComponent for successfully loaded + documents or ++ This interface is a generic one and can be used to start further requests on + loaded document or control the lifetime of it (means dispose() it after using). + The real document service behind this interface can be one of follow three ones: +
+ Listener can update his text values by calling XConfigManager::substituteVariables() + again. If KeyName specifies a group of keys, the listener gets one notify for each subkey. +
+ + @param KeyName + specifies variable about listener will be informed on changes + + @param Listener + listener which will be informed + + @see XConfigManager::removePropertyChangeListener() + + @deprecated + */ + void addPropertyChangeListener( + [in] string KeyName, + [in] com::sun::star::beans::XPropertyChangeListener Listener ); + + /** remove a registered listener + + @param KeyName + specifies variable on which listener was registered + + @param Listener + listener which will be deregistered + + @see XConfigManager::addPropertyChangeListener() + + @deprecated + */ + void removePropertyChangeListener( + [in] string KeyName, + [in] com::sun::star::beans::XPropertyChangeListener Listener); + + /** substitute variables (place holder) inside given parameter Text + ++ The value of Text is NOT changed. +
+ + @param Text + original value including variables + + @return + changed copy of Text without any variables + */ + string substituteVariables( [in] string Text ); + + /** was designed for additional functionality for interface com::sun::star::registry::XSimpleRegistry + and make no sense without that + @deprecated + */ + void flush(); + +}; //XConfigManager +}; //frame +}; //star +}; //sun +}; //com + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XControlNotificationListener.idl b/offapi/com/sun/star/frame/XControlNotificationListener.idl new file mode 100644 index 0000000000..2d4785aa89 --- /dev/null +++ b/offapi/com/sun/star/frame/XControlNotificationListener.idl @@ -0,0 +1,43 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module frame { + + +/** Must be implemented by dispatch objects which want to get + notifications about control events. + + @since OOo 2.0.3 + */ +interface XControlNotificationListener : com::sun::star::uno::XInterface +{ + /** notifies that a control event has happened + + @param Event + contains the event information + */ + void controlEvent( [in] ControlEvent Event ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XController.idl b/offapi/com/sun/star/frame/XController.idl new file mode 100644 index 0000000000..46da1d8d53 --- /dev/null +++ b/offapi/com/sun/star/frame/XController.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 . + */ + + + module com { module sun { module star { module frame { + + published interface XFrame; + published interface XModel; + +/** With this interface, components viewed in a Frame can serve + events (by supplying dispatches). + + @see XFrame + @see com::sun::star::awt::XWindow + @see XModel + */ +published interface XController: com::sun::star::lang::XComponent +{ + /** is called to attach the controller with its managing frame. + + @param Frame + the new owner frame of this controller + */ + void attachFrame( [in] XFrame Frame ); + + /** is called to attach the controller to a new model. + + @param Model + the new model for this controller + + @return + `TRUE` If attaching was successful +If the controller is plugged into a frame, this window acts as the
+ frame's ComponentWindow
.
A view name is a logical name, which can be used to create views of the same + type. The name is meaningful only in conjunction with XModel2::createViewController() + - if it's passed there, a view/controller pair of the same type will be created.
+ */ + [readonly, attribute] string ViewControllerName; + + /** denotes the arguments used to create the instance. + +Usually, controllers are created via XModel2::createViewController(), where the
+ caller can pass not only a controller name, but also arguments parameterizing the to-be-created instance.
+ Those arguments used at creation time can subsequently be retrieved using the CreationArguments
+ member.
If the view is going to be resized/moved this method can be + used to get suggested object area. Pixels are used as units. +
+ + @return + suggestion for the resizing + */ + ::com::sun::star::awt::Rectangle queryBorderedArea( + [in] ::com::sun::star::awt::Rectangle aPreliminaryRectangle ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XDesktop.idl b/offapi/com/sun/star/frame/XDesktop.idl new file mode 100644 index 0000000000..1fad65eac5 --- /dev/null +++ b/offapi/com/sun/star/frame/XDesktop.idl @@ -0,0 +1,126 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module frame { + +/** This is the main interface of a desktop service. + ++ A desktop is an environment for components which can be viewed in + frames. Frames are like frames in HTML framesets. This does not imply + that a desktop can handle framesets; the frames may be top frames + only. +
+ + @see Desktop + */ +published interface XDesktop: com::sun::star::uno::XInterface +{ + /** tries to terminate the desktop. + ++ First, every terminate listener is called by his XTerminateListener::queryTermination() method. + Throwing of a TerminationVetoException can break the termination process and the listener how has + done that will be the new "controller" of the desktop lifetime. He should try to terminate it by himself after + his own processes will be finished. + If nobody disagree with the termination request, every listener will be called by his + XTerminateListener::notifyTermination() method. +
+ + @return + `TRUE` If all listeners agree with this request ++ The component is, by definition, the model of the control which + is loaded into a frame, or if no model exists, into the control + itself. + The service Components which is available from this + method is a collection of all components of the desktop which are open + within a frame of the desktop. +
+ + @returns + the collection of all components + + @see Components + */ + com::sun::star::container::XEnumerationAccess getComponents(); + + /** provides read access to the component inside the tree which has the UI focus + ++ Normally, the component is the model part of the + active component. If no model exists it is the active controller + (view) itself. +
+ + @returns + the component within the desktop environment which has the UI focus. + + @see XDesktop::getCurrentFrame() + */ + com::sun::star::lang::XComponent getCurrentComponent(); + + /** provides read access to the frame which contains the current component + + @returns + the frame of the component which has the + UI focus within this desktop environment + + @see XDesktop::getCurrentComponent() + */ + XFrame getCurrentFrame(); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XDesktop2.idl b/offapi/com/sun/star/frame/XDesktop2.idl new file mode 100644 index 0000000000..8e1200ad31 --- /dev/null +++ b/offapi/com/sun/star/frame/XDesktop2.idl @@ -0,0 +1,82 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module frame { + +/** + @since LibreOffice 4.1 +*/ +published interface XDesktop2 +{ + /** provides access to dispatchers for the frame. + +
+ What kind of URLs a frame accepts in the calls to XDispatchProvider::queryDispatch(),
+ and how the returned dispatcher handles dispatches is completely implementation dependent
+ (though of course the restrictions of XDispatchProvider must be met).
+ Frame implementations may (optionally) support special targets in the call to
+ XDispatchProvider::queryDispatch().
+ Such special targets are passed as target frame name. They may, in addition,
+ require special frame search flags (see FrameSearchFlag), or,
+ in opposite, limit the set of allowed flags.
+ Common special targets include:
+
+ Registered objects can intercept, suppress or reroute dispatched URLs. + If they support another interface too (XInterceptorInfo) + it's possible to perform it by directly calling of right interceptor without + using list of all registered ones. +
+ */ + interface XDispatchProviderInterception; + + /** provides access to sub frames within this frame + */ + interface XFramesSupplier; + + /** regulate life time of desktop environment and support high level + access to components of sub frame tree + */ + interface XDesktop; + + /** supports simple API for loading components into the frame environment + */ + interface XComponentLoader; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XDesktopTask.idl b/offapi/com/sun/star/frame/XDesktopTask.idl new file mode 100644 index 0000000000..3df69dc7ba --- /dev/null +++ b/offapi/com/sun/star/frame/XDesktopTask.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 . + */ + + + + module com { module sun { module star { module frame { + +/** use XFrame instead of this + @deprecated + */ +published interface XDesktopTask: com::sun::star::lang::XComponent +{ + /** use com::sun::star::lang::XInitialization instead. + + @deprecated + */ + void initialize( [in] com::sun::star::awt::XWindow TaskWindow ); + + /** use com::sun::star::util::XCloseable + or com::sun::star::lang::XComponent::dispose() + instead. + + @deprecated + */ + boolean close(); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XDispatch.idl b/offapi/com/sun/star/frame/XDispatch.idl new file mode 100644 index 0000000000..7ece89e67b --- /dev/null +++ b/offapi/com/sun/star/frame/XDispatch.idl @@ -0,0 +1,147 @@ +/* -*- 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 . + */ + + + +module com { module sun { module star { module frame { + +/** serves state information of objects which can be connected to + controls (e.g. toolbox controls). + ++ Each state change is to be broadcasted to all registered + status listeners. The first notification should be performed + synchronously from XDispatch::addStatusListener(); + if not, controls may flicker. State listener must be aware of this + synchronous notification. +
+ ++ The state consists of enabled/disabled and a short descriptive text + of the function (e.g. "undo insert character"). It is to be broadcasted + whenever this state changes or the control should re-get the value + for the URL it is connected to. Additionally, a context-switch-event + is to be broadcasted whenever the object may be out of scope, + to force the state listener to requery the XDispatch. +
+ + @see Frame + @see FeatureStateEvent + */ +published interface XDispatch: com::sun::star::uno::XInterface +{ + /** dispatches (executes) a URL + ++ It is only allowed to dispatch URLs for which this XDispatch + was explicitly queried. Additional arguments ("'#..." or "?...") are allowed. +
+ + @param URL + fully parsed URL describing the feature which should be dispatched (=executed) + + @param Arguments + optional arguments for this request + (see com::sun::star::document::MediaDescriptor) + They depend on the real implementation of the dispatch object. + + Controlling synchronous or asynchronous mode happens via + readonly boolean Flag SynchronMode + ++ By default, and absent any arguments, "SynchronMode" is + considered `FALSE` and the execution is performed + asynchronously (i.e. dispatch() returns immediately, and + the action is performed in the background). But when set + to `TRUE`, dispatch() processes the request synchronously + - this call will block until it has finished. +
+ + some code for a click-handler (Java) + @code{.java} + void myOnClick(String sURL,String sTargetFrame, + com.sun.star.beans.PropertyValue[] lArguments) + { + com.sun.star.util.URL[] aURL = new com.sun.star.util.URL[1]; + aURL[0] = new com.sun.star.util.URL(); + aURL[0].Complete = sURL; + + com.sun.star.util.XURLTransformer xParser = + (com.sun.star.util.XURLTransformer)UnoRuntime.queryInterface( + com.sun.star.util.XURLTransformer.class, + mxServiceManager.createInstance("com.sun.star.util.URLTransformer")); + + xParser.parseStrict(aURL); + + com.sun.star.frame.XDispatch xDispatcher = + mxFrame.queryDispatch(aURL[0], sTargetFrame, com.sun.star.frame.FrameSearchFlag.GLOBAL); + + if(xDispatcher!=null) + xDispatcher.dispatch(aURL[0], lArguments); + } + @endcode + */ + void dispatch( + [in] com::sun::star::util::URL URL, + [in] sequence+ It is only allowed to register URLs for which this XDispatch + was explicitly queried. Additional arguments ("#..." or "?...") will be ignored. +
+ Note: Notifications can't be guaranteed! This will be a part of interface XNotifyingDispatch. + + @param Control + listener that wishes to be informed + + @param URL + the URL (without additional arguments) the listener wishes to be registered for. + A listener can be registered for more than one URL at the same time. + + @see XStatusListener + @see XDispatch::removeStatusListener() + */ + void addStatusListener( + [in] XStatusListener Control, + [in] com::sun::star::util::URL URL); + + /** unregisters a listener from a control. + + @param Control + listener that wishes to be unregistered + + @param URL + URL the listener was registered for. + Additional arguments ("#..." or "?...") will be ignored. + + @see XStatusListener + @see XDispatch::addStatusListener() + */ + void removeStatusListener( + [in] XStatusListener Control, + [in] com::sun::star::util::URL URL); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XDispatchHelper.idl b/offapi/com/sun/star/frame/XDispatchHelper.idl new file mode 100644 index 0000000000..e8e4364837 --- /dev/null +++ b/offapi/com/sun/star/frame/XDispatchHelper.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 . + */ + + + module com { module sun { module star { module frame { + +/** provides an easy way to dispatch functions useful at UI level. + + @see XDispatch + + @since OOo 1.1.2 + */ +published interface XDispatchHelper : com::sun::star::uno::XInterface +{ + /** executes the dispatch. + + Listeners are not supported here! + + @param DispatchProvider + points to the provider, which should be asked for valid dispatch objects + + @param URL + describes the feature which should be supported by internally used dispatch object + + @param TargetFrameName + specifies the frame which should be the target for this request + + @param SearchFlags + optional search parameter for finding the frame if no special + TargetFrameName was used + + @param Arguments + optional arguments for this request + They depend on the real implementation of the dispatch object. + + @return + A possible result of the executed internal dispatch. + The information behind this `any` depends on the dispatch! + + @see XDispatch::dispatch() + */ + + any executeDispatch( + [in] XDispatchProvider DispatchProvider, + [in] string URL, + [in] string TargetFrameName, + [in] long SearchFlags, + [in] sequence< com::sun::star::beans::PropertyValue > Arguments ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XDispatchInformationProvider.idl b/offapi/com/sun/star/frame/XDispatchInformationProvider.idl new file mode 100644 index 0000000000..bc488010f9 --- /dev/null +++ b/offapi/com/sun/star/frame/XDispatchInformationProvider.idl @@ -0,0 +1,64 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module frame { + +/** provides information about supported commands + ++ This interface can be used to retrieve additional information about + supported commands. This interface is normally used by configuration + implementations to retrieve all supported commands. + A dispatch information provider is normally supported by a + Frame service. +
+ + @see Frame + + @since OOo 2.0 + */ +published interface XDispatchInformationProvider: com::sun::star::uno::XInterface +{ + /** returns all supported command groups. + + @returns + a sequence of supported command groups. + + @see CommandGroup + */ + sequence < short > getSupportedCommandGroups(); + + /** returns additional information about supported commands of a + given command group. + + @param CommandGroup + specifies a command group. + + @returns + name and group name of every command supported. A group ID which is + not supported returns an empty com::sun::star::uno::Sequence. + */ + sequence < DispatchInformation > getConfigurableDispatchInformation( [in] short CommandGroup ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XDispatchProvider.idl b/offapi/com/sun/star/frame/XDispatchProvider.idl new file mode 100644 index 0000000000..8c881d7b95 --- /dev/null +++ b/offapi/com/sun/star/frame/XDispatchProvider.idl @@ -0,0 +1,78 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module frame { + +/** provides XDispatch interfaces for certain functions which + are useful at the UI. + + @see XDispatch + */ +published interface XDispatchProvider: com::sun::star::uno::XInterface +{ + /** searches for an XDispatch for the specified URL within + the specified target frame. + + @param URL + describe the feature which should be supported by returned dispatch object + + @param TargetFrameName + specify the frame which should be the target for this request + + @param SearchFlags + optional search parameter for finding the frame if no special + TargetFrameName was used + + @return + the dispatch object which provides queried functionality ++ It's not allowed to pack it - because every request must match + to its real result. Means: don't delete `NULL` entries inside this list. +
+ */ + sequence< XDispatch > queryDispatches( + [in] sequence+ Note: Nobody can guarantee order of used interceptor objects if more than ones exist. + Later registered ones will be used at first. But it's possible to increase the chance + for that by providing the optional interface XInterceptorInfo. +
+ + @see XDispatchProvider + @see XDispatch + @see XInterceptorInfo + */ +published interface XDispatchProviderInterception: com::sun::star::uno::XInterface +{ + /** registers an XDispatchProviderInterceptor, which will become + the first interceptor in the chain of registered interceptors. + + @param Interceptor + the interceptor which wishes to be registered + + @see XDispatchProviderInterception::releaseDispatchProviderInterceptor() + */ + void registerDispatchProviderInterceptor( [in] XDispatchProviderInterceptor Interceptor ); + + /** removes an XDispatchProviderInterceptor which was previously registered + ++ The order of removals is arbitrary. It is not necessary to remove the last + registered interceptor first. +
+ + @param Interceptor + the interceptor which wishes to be unregistered + + @see XDispatchProviderInterception::registerDispatchProviderInterceptor() + */ + void releaseDispatchProviderInterceptor( [in] XDispatchProviderInterceptor Interceptor ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XDispatchProviderInterceptor.idl b/offapi/com/sun/star/frame/XDispatchProviderInterceptor.idl new file mode 100644 index 0000000000..94aa568d76 --- /dev/null +++ b/offapi/com/sun/star/frame/XDispatchProviderInterceptor.idl @@ -0,0 +1,79 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module frame { + +/** makes it possible to intercept request of XDispatch. + ++ Can be registered as an interceptor by using interface XDispatchProviderInterception. +
+ + @see XDispatchProviderInterception + */ +published interface XDispatchProviderInterceptor: XDispatchProvider +{ + /** access to the slave XDispatchProvider of this interceptor + + @returns + the slave of this interceptor + + @see XDispatchProviderInterceptor::setSlaveDispatchProvider() + */ + XDispatchProvider getSlaveDispatchProvider(); + + /** sets the slave XDispatchProvider to which calls to + XDispatchProvider::queryDispatch() can be forwarded + under control of this dispatch provider. + + @param NewDispatchProvider + the new slave of this interceptor + + @see XDispatchProviderInterceptor::getSlaveDispatchProvider() + */ + void setSlaveDispatchProvider( [in] XDispatchProvider NewDispatchProvider ); + + /** access to the master XDispatchProvider of this interceptor + + @returns + the master of this interceptor + + @see XDispatchProviderInterceptor::setMasterDispatchProvider() + */ + XDispatchProvider getMasterDispatchProvider(); + + /** sets the master XDispatchProvider, which may forward + calls to its XDispatchProvider::queryDispatch() + to this dispatch provider. + + @param NewSupplier + the master of this interceptor + + @see XDispatchProviderInterceptor::getMasterDispatchProvider() + */ + void setMasterDispatchProvider( [in] XDispatchProvider NewSupplier ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XDispatchRecorder.idl b/offapi/com/sun/star/frame/XDispatchRecorder.idl new file mode 100644 index 0000000000..0cab956bea --- /dev/null +++ b/offapi/com/sun/star/frame/XDispatchRecorder.idl @@ -0,0 +1,116 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module frame { + + published interface XFrame; + +/** provides recording functionality of dispatches + ++ With such recorder it will be possible to record requests of type + XDispatch by using additional interface + XRecordableDispatch. The result of that will be a + a script which can be used to start the dispatch at later time again. + Such recorder objects are available on a XDispatchRecorderSupplier + which is provided by the Frame service. +
+ + @see Frame + @see XDispatchRecorderSupplier + + @since OOo 1.1.2 + */ +published interface XDispatchRecorder: com::sun::star::uno::XInterface +{ + /** initializes the recorder by passing the frame for which all + macro statements shall be recorded + + @param Frame + it includes the document on which such requests shall be recorded + */ + void startRecording( [in] com::sun::star::frame::XFrame Frame ); + + /** stops the recording process + ++ Must be called in pairs with XDispatchRecorder::startRecording(). +
+ + @attention The recorder uses this method to control the lifetime of its internal + used macro buffer. It will be cleared here. So the macro must be fetched + before endRecording() is called. + + @see getRecordedMacro() + */ + void endRecording(); + + /** records a single dispatch call identified by its command URL + + @param URL + the full parsed command URL + + @param Arguments + optional arguments for the command URL ++ This way calls that failed on execution can be documented. +
+ + @param URL + the full parsed command URL + + @param Arguments + optional arguments for the command URL ++ This method must be used before endRecording() is called! + Otherwise the macro will be released. +
+ + @returns + the recorded data as a string which can be interpreted as a script + */ + string getRecordedMacro(); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XDispatchRecorderSupplier.idl b/offapi/com/sun/star/frame/XDispatchRecorderSupplier.idl new file mode 100644 index 0000000000..8c60c5b278 --- /dev/null +++ b/offapi/com/sun/star/frame/XDispatchRecorderSupplier.idl @@ -0,0 +1,102 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module frame { + +/** provides access to the record mechanism of dispatches + ++ With a XDispatchRecorder it's possible to record calls + of XDispatch::dispatch(). The recorded data (may a script) + can be used to automate recorded dispatch and start it at later time again. + This supplier provides access to the recorder and supports some functionality + to work with the macro recording mechanism in an easy manner. +
+ + @see XDispatchRecorder + @since OOo 1.1.2 + */ +published interface XDispatchRecorderSupplier: com::sun::star::uno::XInterface +{ + /** set a dispatch recorder on this supplier + ++ Setting of a new recorder make it possible to change recording mode. + May there can exist different implementations of a recorder (e.g. to + generate Java, Basic or other formats). Changing between local recording + inside one Frame or global one by using more than ones can be + forced too. +
+ + @param Recorder + the new recorder for this supplier + */ + void setDispatchRecorder( [in] com::sun::star::frame::XDispatchRecorder Recorder ); + + /** provides access on the recorder of this supplier + ++ Returned recorder can be used to record dispatches manually or to get + recorded data for further using e.g. saving. He is internally used too + due to the method XDispatchRecorderSupplier::dispatchAndRecord(). +
+ + @returns + the dispatch recorder of this supplier + + @see XDispatchRecorder + */ + com::sun::star::frame::XDispatchRecorder getDispatchRecorder(); + + /** dispatch given URL and record it if recording is enabled + ++ Parameter Dispatcher is used internally to make the dispatch. + If recording isn't enabled it will be a normal XDispatch::dispatch() + call. Otherwise follow algorithm is used: +
+ Template information is saved as links to the original content + and organized in groups. This data should be persistent and can be + updated by calling special method XDocumentTemplates::update(). + A real implementation of this interface can do that on top of + a ucb content provider. Method XDocumentTemplates::getContent() + force that. +
+ */ +published interface XDocumentTemplates: com::sun::star::uno::XInterface +{ + /** provides access to the root of internal used hierarchy + ++ This content can be used for accessing the groups directly. +
+ + @return + the ucb content for template configuration + */ + com::sun::star::ucb::XContent getContent(); + + /** creates the template with the given name in the given group using the + data from the storable + + @param GroupName + specifies the group + + @param TemplateName + specifies the template + + @param Storable + specifies the target + + @return + `TRUE` if operation was successful ++ Because the templates are well known by links and not as direct content + they can be outdated. An update force actualization of that to find + wrong links. +
+ */ + void update(); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XExtendedFilterDetection.idl b/offapi/com/sun/star/frame/XExtendedFilterDetection.idl new file mode 100644 index 0000000000..af97b53722 --- /dev/null +++ b/offapi/com/sun/star/frame/XExtendedFilterDetection.idl @@ -0,0 +1,44 @@ +/* -*- 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 . + */ + + + module com { + module sun { + module star { + module frame { + +/** use com::sun::star::document::XExtendedFilterDetection instead of this + @deprecated + */ +published interface XExtendedFilterDetection: com::sun::star::uno::XInterface +{ + /** use com::sun::star::document::XExtendedFilterDetection::detect() instead of this + @deprecated + */ + string detect( + [in] string URL, + [in] sequence< com::sun::star::beans::PropertyValue > Argumentlist); + + }; // XExtendedFilterDetection + }; // frame + }; // star + }; // sun +}; // com + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XFilterDetect.idl b/offapi/com/sun/star/frame/XFilterDetect.idl new file mode 100644 index 0000000000..5817e1531f --- /dev/null +++ b/offapi/com/sun/star/frame/XFilterDetect.idl @@ -0,0 +1,39 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module frame { + +/** use com::sun::star::document::XExtendedFilterDetection instead of this + @deprecated + */ +published interface XFilterDetect: com::sun::star::uno::XInterface +{ + /** - */ + string getContentType( [in] string URL ); + + /** - */ + boolean useExternBrowser( [in] string URL ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XFrame.idl b/offapi/com/sun/star/frame/XFrame.idl new file mode 100644 index 0000000000..1fb590b321 --- /dev/null +++ b/offapi/com/sun/star/frame/XFrame.idl @@ -0,0 +1,350 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module frame { + + published interface XFrameActionListener; + published interface XController; + published interface XFramesSupplier; + +/** a frame object can be considered to be an "anchor" object where a component + can be attached to. + ++ A frame can be (it's not a must!) a part of a frame tree. If not this frame won't be + accessible by using the API. This mode make sense for previews. + The root node of the tree can be a Desktop implementation. +
+ + @see Desktop + */ +published interface XFrame: com::sun::star::lang::XComponent +{ + /** is called to initialize the frame within a window - the container window. + ++ This window will be used as parent for the component window and to support + some UI relevant features of the frame service. + Note: Re-parenting mustn't supported by a real frame implementation! + It's designed for initializing - not for setting. +
+ +This frame will take over ownership of the window referred from + xWindow. Thus, the previous owner is not allowed to + dispose this window anymore.
+ + @param xWindow + the new container window + + @see XFrame::getContainerWindow() + */ + void initialize( [in] com::sun::star::awt::XWindow xWindow ); + + /** provides access to the container window of the frame. + ++ Normally this is used as the parent window of the + component window. +
+ + @return + the container window of this frame + + @see XFrame::initialize() + */ + com::sun::star::awt::XWindow getContainerWindow(); + + /** sets the frame container that created this frame. + ++ Only the creator is allowed to call this method. + But creator doesn't mean the implementation which creates this instance ... + it means the parent frame of the frame hierarchy. + Because; normally a frame should be created by using the API + and is necessary for searches inside the tree (e.g. XFrame::findFrame()) +
+ + @param Creator + the creator (parent) of this frame + + @see XFrame::getCreator() + */ + void setCreator( [in] XFramesSupplier Creator ); + + /** provides access to the creator (parent) of this frame + + @returns + the frame container that created and contains this frame. + + @see XFrame::setCreator() + */ + XFramesSupplier getCreator(); + + /** access to the name property of this frame + + @returns + the programmatic name of this frame. + + @see XFrame::setName() + */ + string getName(); + + /** sets the name of the frame. + ++ Normally the name of the frame is set initially (e.g. by the creator). + The name of a frame will be used for identifying it if a frame search was started. + These searches can be forced by: +
+ Frames may contain other frames (e.g., a frameset) and may + be contained in other frames. This hierarchy is searched with + this method. + First some special names are taken into account, i.e. "", + "_self", "_top", "_blank" etc. SearchFlags is ignored when + comparing these names with TargetFrameName; further steps are + controlled by SearchFlags. If allowed, the name of the frame + itself is compared with the desired one, and then ( again if allowed ) + the method is called for all children of the frame. Finally may be called + for the siblings and then for parent frame (if allowed). +
+ ++ List of special target names: +
""/"_self" | address the starting frame itself |
"_parent" | address the direct parent frame only |
"_top" | address the top frame of this subtree of the frametree |
"_blank" | creates a new top frame |
+ If no frame with the given name is found, a new top frame is + created; if this is allowed by a special flag FrameSearchFlag::CREATE. + The new frame also gets the desired name. +
+ + @param aTargetFrameName + identify ++ In general a top frame is the frame which is a direct child of + a task frame or which does not have a parent. Possible frame searches must + stop the search at such a frame unless the flag FrameSearchFlag::TASKS + is set. +
+ + @return + `TRUE` if frame supports top frame specification ++ At first the frame sets itself as the active frame of its + creator by calling XFramesSupplier::setActiveFrame(), + then it broadcasts a FrameActionEvent with + FrameAction::FRAME_ACTIVATED. The component within + this frame may listen to this event to grab the focus on activation; + for simple components this can be done by the FrameLoader. +
+ ++ Finally, most frames may grab the focus to one of its windows + or forward the activation to a sub-frame. +
+ + @see XFrame::deactivate() + @see XFrame::isActive() + */ + void activate(); + + /** is called by the creator frame when another sub-frame gets activated. + ++ At first the frame deactivates its active sub-frame, if any. + Then broadcasts a FrameActionEvent with + FrameAction::FRAME_DEACTIVATING. +
+ + @see XFrame::activate() + @see XFrame::isActive() + */ + void deactivate(); + + /** determines if the frame is active. + + @return + `TRUE` for active or UI active frames ++ A valid component window should be a child of the frame container window. +
+ + @param xController + the controller of the new component or `NULL` for release + ++ Simple components may implement a com::sun::star::awt::XWindow only. + In this case no controller must be given here. +
+ + @return + `TRUE`if setting of new component or release of an existing one was successfully ++ Note: Don't dispose this window - the frame is the owner of it. +
+ + @returns + the current visible component in this frame ++ Note: Don't dispose it - the frame is the owner of it. + Use XController::getFrame() to dispose + the frame after you the controller agreed with a + XController::suspend() call. +
+ + @returns + the current controller within this frame ++ According to a call to this interface, the frame calls + XFrameActionListener::frameAction() with + FrameAction::CONTEXT_CHANGED to all listeners which + are registered using XFrame::addFrameActionListener(). + For external controllers this event can be used to requery dispatches. + + @see XFrameEventListener + @see FrameAction + @see XFrame::addFrameActionListener() + */ + void contextChanged(); + + /** registers an event listener, which will be called when certain things + happen to the components within this frame or within sub-frames of this frame. + +
+ E.g., it is possible to determine instantiation/destruction and + activation/deactivation of components. +
+ + @param xListener + specifies the listener which will be informed + + @see XFrame::removeFrameActionListener() + */ + void addFrameActionListener( [in]XFrameActionListener xListener ); + + /** unregisters an event listener + + @param xListener + specifies the listener which won't be informed any longer + + @see XFrame::addFrameActionListener() + */ + void removeFrameActionListener( [in] XFrameActionListener xListener ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XFrame2.idl b/offapi/com/sun/star/frame/XFrame2.idl new file mode 100644 index 0000000000..d1a143623d --- /dev/null +++ b/offapi/com/sun/star/frame/XFrame2.idl @@ -0,0 +1,133 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module frame { + +/** + @since LibreOffice 4.1 + */ +published interface XFrame2 +{ + /** contains user defined attributes. + */ + [attribute, readonly] com::sun::star::container::XNameContainer UserDefinedAttributes; + + /** provides access to dispatchers for the frame. + +
+ What kind of URLs a frame accepts in the calls to XDispatchProvider::queryDispatch(),
+ and how the returned dispatcher handles dispatches is completely implementation dependent
+ (though of course the restrictions of XDispatchProvider must be met).
+ Frame implementations may (optionally) support special targets in the call to
+ XDispatchProvider::queryDispatch().
+ Such special targets are passed as target frame name. They may, in addition,
+ require special frame search flags (see FrameSearchFlag), or,
+ in opposite, limit the set of allowed flags.
+ Common special targets include:
+
+ Registered objects can intercept, suppress or reroute dispatched URLs. + If they support another interface too (XInterceptorInfo) + it's possible to perform it by directly calling of right interceptor without + using list of all registered ones. +
+ */ + interface XDispatchProviderInterception; + + /** Provides access to sub frames within this frame, + and via its XFrame sub-interface: Allows the component to be loaded and accessed + within the frame; it is the main connection to the + environment of the component. + */ + interface XFramesSupplier; // -> XFrame + + /** supplies access to com::sun::star::task::XStatusIndicator objects + for the component within the frame to show progresses + */ + interface com::sun::star::task::XStatusIndicatorFactory; + + /** if possible it sets/gets the UI title on/from the frame container window + ++ It depends from the type of the frame container window. If it is a system + task window all will be OK. Otherwise the title can't be set. + Setting/getting of the pure value of this property must be possible in every + case. Only showing on the UI can be fail. +
+ */ + [attribute] string Title; + + /** provides access to the dispatch recorder of the frame + ++ Such recorder can be used to record dispatch requests. + The supplier contains a dispatch recorder and provide the functionality + to use it for any dispatch object from outside which supports the interface + XDispatch. A supplier is available only, if recording was enabled. + That means: if someone wishes to enable recoding on a frame he must set + a supplier with a recorder object inside of it. Every user of dispatches + has to check then if such supplier is available at this frame property. + If value of this property is `NULL` he must call XDispatch::dispatch() + on the original dispatch object. If it's a valid value he must use the supplier + by calling his method XDispatchRecorderSupplier::dispatchAndRecord() + with the original dispatch object as argument. +
+ +
+ Note:
+ It's not recommended to cache an already gotten supplier. Because there exist
+ no possibility to check for enabled/disabled recording then.
+
+ E.g., you can receive events of instantiation/destruction and + activation/deactivation of components. +
+ + @see XFrame::addFrameActionListener() + @see XFrame::removeFrameActionListener() + */ +published interface XFrameActionListener: com::sun::star::lang::XEventListener +{ + /** is called whenever any action occurs to a component within a frame. + + @param Action + describes the detected frame action for which the listener can react + */ + void frameAction( [in] FrameActionEvent Action ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XFrameLoader.idl b/offapi/com/sun/star/frame/XFrameLoader.idl new file mode 100644 index 0000000000..5c5da706c6 --- /dev/null +++ b/offapi/com/sun/star/frame/XFrameLoader.idl @@ -0,0 +1,78 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module frame { + +/** load components into a frame + ++ It's an asynchronous loading. For synchronous processes use XSynchronousFrameLoader + instead of this one. The generic load algorithm of the office supports both ones - but preferred + the synchronous interface. +
+ + @see XFrame + */ +published interface XFrameLoader: com::sun::star::uno::XInterface +{ + /** starts the loading of the specified resource into the specified Frame. + + @param Frame + specifies the loading target + + @param URL + describes the resource of loading component + Support of special protocols are implementation details + and depends from the environment. + + @param Arguments + optional arguments for loading + (see com::sun::star::document::MediaDescriptor for further information) + + @param Listener + this listener will be informed about success + + @see XLoadEventListener + */ + void load( + [in] XFrame Frame, + [in] string URL, + [in] sequence< com::sun::star::beans::PropertyValue > Arguments, + [in] XLoadEventListener Listener); + + /** cancels the loading process. + ++ After returning from this call, neither the frame nor the + load-event-listener specified in XFrameLoader::load() may be called back. + Because only the owner of this process who called load method + before can cancel this process. And he doesn't need any notification about that. + On the other hand - nobody then this owner himself can be registered as an + XLoadEventListener here. +
+ */ + void cancel(); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XFrameLoaderQuery.idl b/offapi/com/sun/star/frame/XFrameLoaderQuery.idl new file mode 100644 index 0000000000..f5b4407319 --- /dev/null +++ b/offapi/com/sun/star/frame/XFrameLoaderQuery.idl @@ -0,0 +1,55 @@ +/* -*- 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 . + */ + + + module com { + module sun { + module star { + module frame { + +/** use service FrameLoaderFactory instead of this + @deprecated + */ +published interface XFrameLoaderQuery: com::sun::star::uno::XInterface +{ + /** use member com::sun::star::container::XNameAccess::getElementNames() + provided by service FrameLoaderFactory instead of this + @deprecated + */ + sequence< string > getAvailableFilterNames(); + + /** use member com::sun::star::container::XNameAccess::getByName() + provided by service FrameLoaderFactory instead of this + @deprecated + */ + sequence< ::com::sun::star::beans::PropertyValue > getLoaderProperties( [in] string sFilterName ); + + /** use member com::sun::star::container::XContainerQuery + provided by service FrameLoaderFactory instead of this + @deprecated + */ + string searchFilter( [in] string sURL, [in] sequence< com::sun::star::beans::PropertyValue > seqArguments ); + + }; // XFrameLoaderQuery + }; // frame + }; // star + }; // sun +}; // com + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XFrameSetModel.idl b/offapi/com/sun/star/frame/XFrameSetModel.idl new file mode 100644 index 0000000000..db423efbec --- /dev/null +++ b/offapi/com/sun/star/frame/XFrameSetModel.idl @@ -0,0 +1,39 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module frame { + +/** use XModel instead of this + @deprecated + */ +published interface XFrameSetModel: com::sun::star::uno::XInterface +{ + /** - */ + string getSource(); + + /** - */ + void setSource( [in] string Source ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XFrames.idl b/offapi/com/sun/star/frame/XFrames.idl new file mode 100644 index 0000000000..81d57b5941 --- /dev/null +++ b/offapi/com/sun/star/frame/XFrames.idl @@ -0,0 +1,78 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module frame { + +/** manages and creates frames. + ++ Frames may contain other frames (by implementing an XFrames + interface) and may be contained in other frames. +
+ + @see XFrame + @see Frame + */ +published interface XFrames: com::sun::star::container::XIndexAccess +{ + /** appends the specified Frame to the list of sub-frames. + + @param xFrame + new frame for inserting into this container + */ + void append( [in] XFrame xFrame ); + + /** provides access to the list of all currently existing + frames inside this container and her sub frames + + @param nSearchFlags + use combinations of FrameSearchFlag to specify which + frames should be found + + @return + all frames of this container and all available frames of the whole frame tree + which match search parameter SearchFlags + */ + sequence< XFrame > queryFrames( [in] long nSearchFlags ); + + /** removes the frame from its container. + ++ Note: +
+ This may be the frame itself. The active frame is defined as + the frame which contains (recursively) the window with the focus. + If no window within the frame contains the focus, this method + returns the last frame which had the focus. If no containing + window ever had the focus, the first frame within this frame is + returned. +
+ + @returns + the Frame which is active within this frame. + */ + XFrame getActiveFrame(); + + /** is called on activation of a direct sub-frame. + ++ This method is only allowed to be called by a sub-frame according to + XFrame::activate() or XFramesSupplier::setActiveFrame(). + After this call XFramesSupplier::getActiveFrame() will return the + frame specified by Frame. +
+ ++ In general this method first calls the method XFramesSupplier::setActiveFrame() + at the creator frame with this as the current argument. Then it broadcasts + the FrameActionEvent FrameAction::FRAME_ACTIVATED. +
+ ++ Note: Given parameter Frame must already exist inside the container + (e.g., inserted by using XFrames::append()) +
+ + @param Frame + the new active child frame inside this container + */ + void setActiveFrame( [in] XFrame Frame ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XGlobalEventBroadcaster.idl b/offapi/com/sun/star/frame/XGlobalEventBroadcaster.idl new file mode 100644 index 0000000000..7901c30ca4 --- /dev/null +++ b/offapi/com/sun/star/frame/XGlobalEventBroadcaster.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 . + */ + +module com { module sun { module star { module frame { + +/** + Provides the unified interface of theGlobalEventBroadcaster singleton. + + @since LibreOffice 4.0 + */ + +interface XGlobalEventBroadcaster +{ + /** makes it possible to register listeners which are called whenever + a document event occurs in any document + */ + interface ::com::sun::star::document::XEventsSupplier; + + /** access to bound event handlers + */ + interface ::com::sun::star::document::XDocumentEventBroadcaster; + + interface ::com::sun::star::container::XSet; + + interface ::com::sun::star::document::XDocumentEventListener; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XInfobarProvider.idl b/offapi/com/sun/star/frame/XInfobarProvider.idl new file mode 100644 index 0000000000..c39029927f --- /dev/null +++ b/offapi/com/sun/star/frame/XInfobarProvider.idl @@ -0,0 +1,137 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */ +/* + * 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/. + */ + +module com { module sun { module star { module frame { + +/** Allows to add Infobars to a frame. + + This interface can be obtained via com::sun::star::frame::XController. + + @since LibreOffice 6.4 + */ +interface XInfobarProvider: uno::XInterface +{ + /** Creates and displays a new Infobar. + + @param id + The ID by which this Infobar is recognized. + You can remove the Infobar afterwards using this ID. + + @param primaryMessage + The (short) primary message. + Will appear at the start of the infobar in bold letters. + May be empty. + + @param secondaryMessage + The (longer) secondary message. + Will appear in normal letters after the primaryMessage + + @param infobarType + The type of the Infobar. + See com::sun::star::frame::InfobarType for possible values. + + @param actionButtons + A sequence of action buttons. + The buttons will be added from Right to Left at the right side of the info bar. + Each button is represented by a com::sun::star::beans::StringPair. + StringPair::First represents the button label, while + StringPair::Second represents the button URL which will be called on button click. + The URL can be any URL, either external (http://libreoffice.org), or internal (.uno:Save), + or from your extension (service:your.example.Extension?anyAction). + + @param showCloseButton + Whether the Close (x) button is shown at the end of the Infobar. + Set to false, when you don't want the user to close the Infobar. + + @throws com::sun::star::lang::IllegalArgumentException + If an Infobar with the same ID already exists, or infobarType contains an invalid value. + +The example below adds a new infobar named MyInfoBar with type INFO and close (x) button.
+ @code{.bas} + Sub AddInfobar + Dim buttons(1) as new com.sun.star.beans.StringPair + buttons(0).first = "Close doc" + buttons(0).second = ".uno:CloseDoc" + buttons(1).first = "Paste into doc" + buttons(1).second = ".uno:Paste" + ThisComponent.getCurrentController().appendInfobar("MyInfoBar", "Hello world", "Things happened. What now?", com.sun.star.frame.InfobarType.INFO, buttons, true) + End Sub + @endcode + */ + void appendInfobar( + [in] string id, + [in] string primaryMessage, + [in] string secondaryMessage, + [in] long infobarType, + [in] sequenceUpdate the infobar and change the type to WARNING
+ @code{.bas} + Sub UpdateInfobar + ThisComponent.getCurrentController().updateInfobar("MyInfoBar", "WARNING","Do not read this message.", com.sun.star.frame.InfobarType.WARNING) + End Sub + @endcode + */ + void updateInfobar( + [in] string id, + [in] string primaryMessage, + [in] string secondaryMessage, + [in] long infobarType) + raises(com::sun::star::container::NoSuchElementException); + + /** Removes an existing Infobar. + + @param id + The ID which was used when creating this Infobar. + + @throws com::sun::star::container::NoSuchElementException + If no such Infobar exists (it might have been closed by the user already) + +Remove MyInfoBar infobar
+ @code{.bas} + Sub RemoveInfobar + ThisComponent.getCurrentController().removeInfobar("MyInfoBar") + End Sub + @endcode + */ + + void removeInfobar([in] string id) raises(com::sun::star::container::NoSuchElementException); + + /** Check if Infobar exists. + + @param id + The ID which was used when creating this Infobar. + + @since LibreOffice 7.0 + + @code{.bas} + Function HasMyInfobar as boolean + hasMyInfoBar = ThisComponent.getCurrentController().hasInfobar("MyInfoBar") + End Function + @endcode + */ + boolean hasInfobar([in] string id); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ diff --git a/offapi/com/sun/star/frame/XInterceptorInfo.idl b/offapi/com/sun/star/frame/XInterceptorInfo.idl new file mode 100644 index 0000000000..355c1c0596 --- /dev/null +++ b/offapi/com/sun/star/frame/XInterceptorInfo.idl @@ -0,0 +1,55 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module frame { + + +/** makes it possible to get information about a registered interceptor and is used by + frame interceptor mechanism to perform interception. + ++ Frame can call right interceptor directly without calling all of registered ones. + Use it as an additional interface to XDispatchProviderInterceptor. + If any interceptor in list doesn't support this interface - these mechanism will be broken + and normal list of master-slave interceptor objects will be used from top to the bottom. +
+ + @see XDispatchProviderInterception + @see XDispatchProviderInterceptor + */ +published interface XInterceptorInfo: com::sun::star::uno::XInterface +{ + /** returns the URL list for interception. + ++ Wildcards inside the URLs are allowed to register the interceptor for + URLs too, which can have optional arguments (e.g. "..#.." or "..?.."). +
+ + @return + a list of URLs which are handled by this interceptor + */ + sequence< string > getInterceptedURLs(); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XLayoutManager.idl b/offapi/com/sun/star/frame/XLayoutManager.idl new file mode 100644 index 0000000000..5d38126bf9 --- /dev/null +++ b/offapi/com/sun/star/frame/XLayoutManager.idl @@ -0,0 +1,465 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module frame { + + +/** central interface to query for, create, destroy and manipulate user + interface elements which are bound to a layout manager. + ++ Every user interface element which is controlled by a layout manager has + a unique identifier called resource URL. + + A resource URL must meet the following syntax: + "private:resource/$type/$name". It is only allowed to use ASCII characters + for type and name. + + Currently the following user interface element types are defined: +
+ A layout manager needs a com::sun::star::frame::XFrame to be + able to work. Without a it no user interface elements can be created. +
+ */ + void attachFrame( [in] com::sun::star::frame::XFrame Frame ); + + /** resets the layout manager and remove all of its internal user interface + elements. + ++ This call should be handled with care as all user interface elements will + be destroyed and the layout manager is reset to a state after a + attachFrame() has been made. That means an attached frame + which has been set by attachFrame() is not released. + The layout manager itself calls reset after a component has been attached + or reattached to a frame. +
+ */ + void reset(); + + /** provides the current docking area size of the layout manager. + + @return + The com::sun::star::awt::Rectangle contains pixel values. The + members of com::sun::star::awt::Rectangle are filled as following: ++ A docking area acceptor retrieved by this method is owned by the layout manager. It is not + allowed to dispose this object, it will be destroyed on reference count! +
+ */ + com::sun::star::ui::XDockingAreaAcceptor getDockingAreaAcceptor(); + + /** sets a docking area acceptor that controls the border space of the frame's container window. + + @param xDockingAreaAcceptor + a docking area acceptor which controls the border space of frame's container window. + +
+ A docking area acceptor decides if the layout manager can use requested border space for
+ docking windows. If the acceptor denies the requested space the layout manager automatically
+ set all docked windows into floating state and will not use this space for docking.
+ After setting a docking area acceptor the object is owned by the layout manager. It is not
+ allowed to dispose this object, it will be destroyed on reference count!
+
+ If a user interface element should forced to the visible state + XLayoutManager::showElement() should be used. This function can be + used for context dependent elements which should respect the current visibility + state. +
+ */ + boolean requestElement( [in] string ResourceURL ); + + /** retrieves a user interface element which has been created before. + + @param ResourceURL + specifies which user interface element should be retrieved. A resource URL must meet the following + syntax: "private:resource/$type/$name". It is only allowed to use ASCII characters for type and + name. + ++ The layout manager instance is owner of the returned user interface element. That means that the life time of + the user interface element is controlled by the layout manager. It can be disposed at every time! +
+ */ + com::sun::star::ui::XUIElement getElement( [in] string ResourceURL ); + + /** retrieves all user interface elements which are currently instantiated. + + @return + a sequence of user interface elements providing com::sun::star::ui::XUIElement + interface. + ++ The layout manager instance is owner of the returned user interface elements. That means that the life time of + the user interface elements is controlled by the layout manager. They can be disposed at every time! +
+ */ + sequence< com::sun::star::ui::XUIElement > getElements(); + + /** shows a user interface element. + + @param ResourceURL + specifies which user interface element should be shown. A resource URL must meet the following + syntax: "private:resource/$type/$name". It is only allowed to use ASCII characters for type and + name. + + @return + returns `TRUE` if the user interface element has been shown, otherwise `FALSE` will be returned. + */ + boolean showElement( [in] string ResourceURL ); + + /** hides a user interface element. + + @param ResourceURL + specifies which user interface element should be hidden. A resource URL must meet the following + syntax: "private:resource/$type/$name". It is only allowed to use ASCII characters for type and + name. + + @return + returns `TRUE` if the user interface element has been hidden, otherwise `FALSE` will be returned. + */ + boolean hideElement( [in] string ResourceURL ); + + /** docks a window based user interface element to a specified docking area. + + @param ResourceURL + specifies which user interface element should be docked. A resource URL must meet the following + syntax: "private:resource/$type/$name". It is only allowed to use ASCII characters for type and + name. + + @param DockingArea + specifies on which docking area the window based user interface element should docked. + + @param Pos + specifies the position inside the docking area. + + @return + returns `TRUE` if the user interface element has been docked, otherwise `FALSE` will be returned. + + @see com::sun::star::ui::DockingArea + */ + boolean dockWindow( [in] string ResourceURL, [in] com::sun::star::ui::DockingArea DockingArea, [in] com::sun::star::awt::Point Pos ); + + /** docks all windows which are member of the provided user interface element type. + + @param nElementType + specifies which user interface element type should be docked. + + @return + returns `TRUE` if all user interface elements of the requested type could be + docked, otherwise `FALSE` will be returned. + + @see com::sun::star::ui::UIElementType + */ + boolean dockAllWindows( [in] short nElementType ); + + /** forces a window based user interface element to float. + + @param ResourceURL + specifies which user interface element should be float. A resource URL must meet the following + syntax: "private:resource/$type/$name". It is only allowed to use ASCII characters for type and + name. + + @return + returns `TRUE` if the user interface element has been docked, otherwise `FALSE` will be returned. + */ + boolean floatWindow( [in] string ResourceURL ); + + /** locks a window based user interface element if it's in a docked state. + + @param ResourceURL + specifies which user interface element should be locked. A resource URL must meet the following + syntax: "private:resource/$type/$name". It is only allowed to use ASCII characters for type and + name. + + @return + returns `TRUE` if the user interface element has been locked, otherwise `FALSE` will be returned. + */ + boolean lockWindow( [in] string ResourceURL ); + + /** unlocks a window based user interface element if it's in a docked state. + + @param ResourceURL + specifies which user interface element should be unlocked. A resource URL must + meet the following syntax: "private:resource/$type/$name". It is only allowed + to use ASCII characters for type and name. + + @return + returns `TRUE` if the user interface element has been unlocked, otherwise + `FALSE` will be returned. + */ + boolean unlockWindow( [in] string ResourceURL ); + + /** sets a new size for a window based user interface element. + + @param ResourceURL + specifies which user interface element should be resized. A resource URL must meet the following + syntax: "private:resource/$type/$name". It is only allowed to use ASCII characters for type and + name. + + @param Size + specifies the new size in pixel. + ++ It is up to the layout manager to decide if the user interface element can be resized. The new size can be retrieved + by calling getElementSize(). +
+ */ + void setElementSize( [in] string ResourceURL, [in] com::sun::star::awt::Size Size ); + + /** sets a new position for a window based user interface element. + + @param ResourceURL + specifies which user interface element should be moved. A resource URL must meet the following + syntax: "private:resource/$type/$name". It is only allowed to use ASCII characters for type and + name. + + @param Pos + specifies the new position in pixel. + ++ It is up to the layout manager to decide if the user interface element can be moved. The new position can be retrieved + by calling getElementPos(). +
+ */ + void setElementPos( [in] string ResourceURL, [in] com::sun::star::awt::Point Pos ); + + /** sets a new position and size for a window based user interface element. + + @param ResourceURL + specifies which user interface element should be moved and resized. A resource URL must meet the following + syntax: "private:resource/$type/$name". It is only allowed to use ASCII characters for type and + name. + + @param Pos + specifies the new position in pixel. + + @param Size + specifies the new position in pixel. + ++ It is up to the layout manager to decide if the user interface element can be moved and resized. The new position and size can + be retrieved by calling getElementPos() and getElementSize(). +
+ */ + void setElementPosSize( [in] string ResourceURL, [in] com::sun::star::awt::Point Pos, [in] com::sun::star::awt::Size Size ); + + /** retrieves the current visibility state of a window based user interface element. + + @param ResourceURL + specifies for which user interface element the visibility state should be retrieved. A resource URL must meet + the following syntax: "private:resource/$type/$name". It is only allowed to use ASCII characters for type and + name. + + @return + `TRUE` if the user interface element is visible, otherwise `FALSE`. + */ + boolean isElementVisible( [in] string ResourceURL ); + + /** retrieves the current floating state of a window based user interface element. + + @param ResourceURL + specifies for which user interface element the floating state should be retrieved. A resource URL must meet + the following syntax: "private:resource/$type/$name". It is only allowed to use ASCII characters for type and + name. + + @return + `TRUE` if the user interface element is floating, otherwise `FALSE`. + */ + boolean isElementFloating( [in] string ResourceURL ); + + /** retrieves the current docking state of a window based user interface element. + + @param ResourceURL + specifies for which user interface element the docking state should be retrieved. A resource URL must meet + the following syntax: "private:resource/$type/$name". It is only allowed to use ASCII characters for type and + name. + + @return + `TRUE` if the user interface element is docked, otherwise `FALSE`. + */ + boolean isElementDocked( [in] string ResourceURL ); + + /** retrieves the current lock state of a window based user interface element. + + @param ResourceURL + specifies for which user interface element the lock state should be retrieved. A resource URL must meet + the following syntax: "private:resource/$type/$name". It is only allowed to use ASCII characters for type and + name. + + @return + `TRUE` if the user interface element is locked, otherwise `FALSE`. + */ + boolean isElementLocked( [in] string ResourceURL ); + + /** retrieves the current size of a window based user interface element. + + @param ResourceURL + specifies for which user interface element the current size should be retrieved. A resource URL must meet + the following syntax: "private:resource/$type/$name". It is only allowed to use ASCII characters for type and + name. + + @return + the size in pixel of the user interface element. A non-window based user interface element provides a zero size. + */ + com::sun::star::awt::Size getElementSize( [in] string ResourceURL ); + + /** retrieves the current pixel position of a window based user interface element. + + @param ResourceURL + specifies for which user interface element the current position should be retrieved. A resource URL must meet + the following syntax: "private:resource/$type/$name". It is only allowed to use ASCII characters for type and + name. + + @return + the size in pixel of the user interface element. A non-window based user interface element provides a zero size. + */ + com::sun::star::awt::Point getElementPos( [in] string ResourceURL ); + + /** prohibit all layout updates until unlock is called again. + ++ This call can be used to speed up the creation process of several user interface elements. Otherwise the layout manager + would calculate the layout for every creation. +
+ */ + void lock(); + + /** permit layout updates again. + ++ This function should be called to permit layout updates. The layout manager starts to calculate the new layout after + this call. +
+ */ + void unlock(); + + /** forces a complete new layouting of all user interface elements. + */ + void doLayout(); + + /** sets the layout manager to invisible state and hides all user interface elements. + ++ A layout manager can be set to invisible state to force it to hide all of its + user interface elements. If another component wants to use the window for its + own user interface elements it can use this function. This function is normally + used to implement inplace editing. +
+ + @param Visible + provide `FALSE` to make layout manager invisible otherwise this must be + set to `TRUE`. + */ + void setVisible( [in] boolean Visible ); + + /** retrieves the visibility state of a layout manager. + ++ A layout manager can be set to invisible state to force it to hide all of its + user interface elements. If another component wants to use the window for its + own user interface elements it can use this function. This function is normally + used to implement inplace editing. +
+ + */ + boolean isVisible(); + +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XLayoutManager2.idl b/offapi/com/sun/star/frame/XLayoutManager2.idl new file mode 100644 index 0000000000..e4a9be9eae --- /dev/null +++ b/offapi/com/sun/star/frame/XLayoutManager2.idl @@ -0,0 +1,76 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module frame { + +/** + Unified interface for LayoutManager service. + + @since LibreOffice 4.2 +*/ +interface XLayoutManager2 +{ + /** central interface to query for, create, destroy and manipulate user + interface elements which are bound to a frame. + + @see ::com::sun::star::frame::XLayoutManager; + */ + interface ::com::sun::star::frame::XLayoutManager; + + /** notification interface to receive status information about the state + of the connected frame. + ++ E.g., you can receive events of instantiation/destruction and + activation/deactivation of a frame. +
+ + @see XFrame::addFrameActionListener() + @see XFrame::removeFrameActionListener() + */ + interface ::com::sun::star::frame::XFrameActionListener; + + /** notification interface to receive change messages of user interface + elements which are part of the layout manager. + ++ E.g., you can receive events of insertion/replacing and + removing of settings data of user interface elements. +
+ + @see com::sun::star::ui::XUIConfiguration + */ + interface ::com::sun::star::ui::XUIConfigurationListener; + + /** provides functions to merge menus for inplace editing of components + inside OpenOffice.org. + */ + interface ::com::sun::star::frame::XMenuBarMergingAcceptor; + + /** registers listeners that want to receive layout manager + events. + */ + interface ::com::sun::star::frame::XLayoutManagerEventBroadcaster; + +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XLayoutManagerEventBroadcaster.idl b/offapi/com/sun/star/frame/XLayoutManagerEventBroadcaster.idl new file mode 100644 index 0000000000..d861f38894 --- /dev/null +++ b/offapi/com/sun/star/frame/XLayoutManagerEventBroadcaster.idl @@ -0,0 +1,52 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module frame { + +/** makes it possible to receive events from a layout manager. + + @see ::com::sun::star::frame::LayoutManager + + @since OOo 2.0 + */ + +interface XLayoutManagerEventBroadcaster : com::sun::star::uno::XInterface +{ + /** adds a layout manager event listener to the object's listener list. + + @param aLayoutManagerListener + a listener that wants to receive events regarding user interface + elements that are controlled by a layout manager. + */ + void addLayoutManagerEventListener( [in] XLayoutManagerListener aLayoutManagerListener ); + + /** removes a layout manager event listener from the object's listener + list. + + @param aLayoutManagerListener + a listener that don't want to receive events regarding user + interface elements that are controlled by a layout manager. + */ + void removeLayoutManagerEventListener( [in] XLayoutManagerListener aLayoutManagerListener ); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XLayoutManagerListener.idl b/offapi/com/sun/star/frame/XLayoutManagerListener.idl new file mode 100644 index 0000000000..8eb073489e --- /dev/null +++ b/offapi/com/sun/star/frame/XLayoutManagerListener.idl @@ -0,0 +1,55 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module frame { + +/** makes it possible to receive events from a layout manager. + +Events are provided only for notification + purposes only. All operations are handled internally by the + layout manager component, so that GUI layout works properly + regardless of whether a component registers such a listener + or not.
+ + @see ::com::sun::star::frame::LayoutManager + @see ::com::sun::star::frame::LayoutManagerEvents + + @since OOo 2.0 + */ +interface XLayoutManagerListener : com::sun::star::lang::XEventListener +{ + /** is invoked when a layout manager has made a certain operation. + + @param aSource + reference to the layout manager which invoked the event. + + @param eLayoutEvent + identifies the layout event that has occurred. + + @param aInfo + provides additional information about the event. The type + of info depends on the event. + */ + void layoutEvent( [in] com::sun::star::lang::EventObject aSource, [in] short eLayoutEvent, [in] any aInfo ); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XLoadEventListener.idl b/offapi/com/sun/star/frame/XLoadEventListener.idl new file mode 100644 index 0000000000..7e04737dcc --- /dev/null +++ b/offapi/com/sun/star/frame/XLoadEventListener.idl @@ -0,0 +1,49 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module frame { + + published interface XFrameLoader; + +/** is used to receive callbacks from an asynchronous frame loader. + + @see XFrameLoader + */ +published interface XLoadEventListener: com::sun::star::lang::XEventListener +{ + /** is called when a new component is loaded into a frame successfully. + + @param Loader + the source of this event + */ + void loadFinished( [in] XFrameLoader Loader ); + + /** is called when a frame load is canceled or failed. + + @param Loader + the source of this event + */ + void loadCancelled( [in] XFrameLoader Loader ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XLoadable.idl b/offapi/com/sun/star/frame/XLoadable.idl new file mode 100644 index 0000000000..685daaca83 --- /dev/null +++ b/offapi/com/sun/star/frame/XLoadable.idl @@ -0,0 +1,54 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module frame { + +/** offers a simple way to initialize a component or load it from a URL. +In case an object supports the interface the object must be initialized + with either initNew() or load() call before any usage. In case the object + is already initialized the mentioned methods should throw DoubleInitializationException. +
+ + @since OOo 1.1.2 + */ +published interface XLoadable: com::sun::star::uno::XInterface +{ + /** creates a component from scratch + */ + void initNew() + raises( DoubleInitializationException, com::sun::star::io::IOException, com::sun::star::uno::Exception ); + + /** loads a component from a URL + @param lArguments + parameters for saving + (see com::sun::star::document::MediaDescriptor for further details) + the FileName parameter must be specified, other parameters are optional + */ + + void load( [in] sequence+ Returned objects must support the service specification of a FrameLoader + or SynchronousFrameLoader. (Note: last one will be preferred if both + are available) + They can be created by using of his internal name, which must be unambiguous every time, only. + To get this name use further specified interfaces of this factory for access on + the flat configuration. +
+ */ + interface com::sun::star::lang::XMultiServiceFactory; + + /** provides access to the whole frame loader configuration + +This interface supports an access to the internal configuration of all accessible loader objects. + The return value of com::sun::star::container::XNameAccess::getByName() + is a property sequence packed in an any. +
+Types | +[string] | +file types which loader is registered for | +
UIName | +[string] | +UI representable and localized name | +
+ This interface can be used to get sub sets of current configuration entries + which represent given search parameters. +
+ */ + interface com::sun::star::container::XContainerQuery; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XMenuBarAcceptor.idl b/offapi/com/sun/star/frame/XMenuBarAcceptor.idl new file mode 100644 index 0000000000..47a403058b --- /dev/null +++ b/offapi/com/sun/star/frame/XMenuBarAcceptor.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 . + */ + + +module com { module sun { module star { module frame { + + +/** provides function to update a menu bar for inplace editing. + + @deprecated + + @since OOo 2.0 +*/ + +interface XMenuBarAcceptor : com::sun::star::uno::XInterface +{ + /** update menu bar according to the current frame mode. This is used in + inplace editing mode where we have to merge our own menu into the + container applications menu. + + @param xMenuBar + the menu bar that should be merged with current one. + */ + void updateMenuBar( [inout] com::sun::star::awt::XMenuBar xMenuBar ); + +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XMenuBarMergingAcceptor.idl b/offapi/com/sun/star/frame/XMenuBarMergingAcceptor.idl new file mode 100644 index 0000000000..95634db92c --- /dev/null +++ b/offapi/com/sun/star/frame/XMenuBarMergingAcceptor.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 . + */ + + +module com { module sun { module star { module frame { + + +/** provides functions to set and remove a merged menu bar for inplace + editing. + + @since OOo 2.0 +*/ + +interface XMenuBarMergingAcceptor : com::sun::star::uno::XInterface +{ + /** allows to set a merged menu bar. + + @param xMergedMenuBar + specifies the merged menu bar. + ++ This function is normally used to provide inplace editing where + functions from two application parts, container application and + embedded object, are available to the user simultaneously. A menu + bar which is set by this method has a higher priority than others + created by com::sun::star::frame::XLayoutManager + interface. Settings of a merged menu bar cannot be retrieved. +
+ + @see com::sun::star::ui::UIElementSettings + @see com::sun::star::frame::XDispatchProvider + @see com::sun::star::frame::XLayoutManager + */ + boolean setMergedMenuBar( + [in] ::com::sun::star::container::XIndexAccess xMergedMenuBar ); + + /** removes a previously set merged menu bar and sets a previously created + menu bar back. + */ + void removeMergedMenuBar(); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XModel.idl b/offapi/com/sun/star/frame/XModel.idl new file mode 100644 index 0000000000..8e38bf1ba6 --- /dev/null +++ b/offapi/com/sun/star/frame/XModel.idl @@ -0,0 +1,192 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module frame { + +/** represents a component which is created from a URL and arguments. + ++ It is a representation of a resource in the sense that it was + created/loaded from the resource. The arguments are passed to the loader + to modify its behavior. An example for such an argument is "AsTemplate", + which loads the resource as a template for a new document. + (see com::sun::star::document::MediaDescriptor for further details) +
+ ++ Models can be controlled by controller components, which are usually + views of the model. + (see Controller for further details) +
+ ++ If there is at least one controller, there is by definition a + current controller. And if that controller supports the interface + com::sun::star::view::XSelectionSupplier, it has a current selection too. +
+ + @see com::sun::star::document::MediaDescriptor + @see Controller + @see com::sun::star::view::XSelectionSupplier + */ +published interface XModel: com::sun::star::lang::XComponent +{ + /** informs a model about its resource description. + + @param URL + specifies the resource + + @param Arguments + are optional arguments for that resource + (see com::sun::star::document::MediaDescriptor) + + @return + `TRUE` for success ++ The com::sun::star::lang::XComponent interface + of the controller must be used to recognize when it is deleted. +
+ + @param Controller + a new controller for this model + + @see XModel::disconnectController() + */ + void connectController( [in] XController Controller ); + + /** is called whenever an existing controller should be deregistered at this model. + ++ The com::sun::star::lang::XComponent interface + of the controller must be used to recognize when it is deleted. +
+ + @param Controller + the existing controller which should be deregistered + + @see XModel::connectController() + */ + void disconnectController( [in] XController Controller ); + + /** suspends some notifications to the controllers which are used + for display updates. + ++ The calls to XModel::lockControllers() and + XModel::unlockControllers() may be + nested and even overlapping, but they must be in pairs. While + there is at least one lock remaining, some notifications + for display updates are not broadcasted. +
+ */ + void lockControllers(); + + /** resumes the notifications which were suspended by + XModel::lockControllers(). + ++ The calls to XModel::lockControllers() and + XModel::unlockControllers() may be + nested and even overlapping, but they must be in pairs. While + there is at least one lock remaining, some notifications for + display updates are not broadcasted. +
+ */ + void unlockControllers(); + + /** determines if there is at least one lock remaining. + ++ While there is at least one lock remaining, some notifications + for display updates are not broadcasted to the controllers. +
+ + @return + `TRUE` if any lock exist ++ Please note: Because this interface will might be used inside + multi threaded environments those list can contain still disposed items + or it new added controller will be missing (if they were added after this + enumeration was created). +
+ + @returns + list of controller objects. + Enumeration can be empty but not NULL. + */ + com::sun::star::container::XEnumeration getControllers(); + + /** provides the available names of the factory to be used to create views. + +The names are usually logical view names. The following names have + a defined meaning, i.e. every concrete implementation which returns such + a name must ensure it has the same meaning, and if a concrete implementation + has a view with the given meaning, it must give it the name as defined here: +
Implementations of this interface might decide to support additional + view names, which then are documented in the respective service descriptions.
+ + @see createView + + @returns + a sequence of names of all supported views for this document. + */ + sequence< string > getAvailableViewControllerNames(); + + /** creates the default view instance for this model. + +Effectively, this method is equivalent to calling createView() with
+ the ViewName
being "Default"
.
The newly created controller must not be connected with the document and the + frame. That is, you should neither call XFrame::setComponent(), nor + XController::attachFrame(), nor XController::attachModel(), + nor XModel::connectController(), not XModel::setCurrentController(). + All of this is the responsibility of the caller, which will do it in the proper order.
+ + @param ViewName + classified name of instance + + @param Arguments + arguments used for creation + + @param Frame + used to place the new created view there + + @return the new view controller instance + + @throws ::com::sun::star::lang::IllegalArgumentException + if one of the given parameter was wrong + + @throws ::com::sun::star::uno::Exception + if creation of a new view failed by other reasons + */ + com::sun::star::frame::XController2 createViewController( [in] string ViewName , + [in] sequence< com::sun::star::beans::PropertyValue > Arguments , + [in] com::sun::star::frame::XFrame Frame ) + raises (com::sun::star::lang::IllegalArgumentException, + com::sun::star::uno::Exception ); + + /** Sets com::sun::star::document::MediaDescriptor properties + of the current model during runtime. + + @since LibreOffice 6.3 + + @param Arguments + Properties which should be set + Supported properties: ++ Normally an office module will be identified by its service name + in combination with a set of configuration data. + But sometimes whole existing office modules will be used as black box components + to implement a different office module on top of it. Patching a service name + is not possible. So this optional interface can be used to overwrite identification + of a module. +
+ + @see XModuleManager + + @since OOo 2.3 + */ +interface XModule : com::sun::star::uno::XInterface +{ + /** @param Identifier + a new "name" for this module. + */ + void setIdentifier([in] string Identifier); + + /** @return the module identifier. + */ + string getIdentifier(); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XModuleManager.idl b/offapi/com/sun/star/frame/XModuleManager.idl new file mode 100644 index 0000000000..db19971458 --- /dev/null +++ b/offapi/com/sun/star/frame/XModuleManager.idl @@ -0,0 +1,89 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module frame { + +/** can be used to identify office modules. + + @since OOo 2.0 + */ +interface XModuleManager : com::sun::star::uno::XInterface +{ + /** + @short identifies the given module. + + @details This identifier can then be used at the service ModuleManager + to get more information about this module. + + For identification the interface com::sun::star::lang::XServiceInfo + is requested on the given module. Because all module service registrations must be unique + this value can be queried and checked against the configuration. + + Since OOo 2.3.0 also the optional interface XModule will be used. + If it exists it will be preferred. + + @param Module + Possible objects for this parameter can be the following one: ++ Every module is referenced by a unique service name + (which is used inside configuration as set node name too) + and is further represented by a sequence of elements of type + com::sun::star::beans::PropertyValue. + A list of properties can be gotten from the configuration template + org.openoffice.Setup/Factory. +
+ */ + interface ::com::sun::star::container::XNameReplace; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XNotifyingDispatch.idl b/offapi/com/sun/star/frame/XNotifyingDispatch.idl new file mode 100644 index 0000000000..3e13521daf --- /dev/null +++ b/offapi/com/sun/star/frame/XNotifyingDispatch.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 . + */ + +module com { module sun { module star { module frame { + +/** dispatch with guaranteed notify (instead of XDispatch) + + @see XDispatch + @see XStatusListener + */ +published interface XNotifyingDispatch: XDispatch +{ + /** Do the same like XDispatch::dispatch() but notifies + listener in every case. Should be used if result must be known. + + @param URL + full parsed URL describes the feature which should be dispatched (executed) + + @param Arguments + optional arguments for this request + (see com::sun::star::document::MediaDescriptor) + + @param Listener + optional listener for guaranteed notifications of this request + */ + void dispatchWithNotification( + [in] com::sun::star::util::URL URL, + [in] sequence+ A pop-up menu controller gets a com::sun::star::awt::XPopupMenu + from its parent menu implementation. The controller has to fill this pop-up + menu with a set of menu items and/or sub menus. The parent menu implementation + briefs the controller whenever the pop-up menu gets activated by a user. +
+ + @since OOo 2.0 +*/ +interface XPopupMenuController : com::sun::star::uno::XInterface +{ + /** provides a com::sun::star::awt::XPopupMenu to a + pop-up menu controller implementation. The controller must fill this + pop-up menu with its functions. + + @param PopupMenu + An empty pop-up menu that must be filled by the pop-up menu controller. + */ + void setPopupMenu( [in] com::sun::star::awt::XPopupMenu PopupMenu ); + + /** briefs the pop-up menu controller to update the contents of the provided + pop-up menu to reflect the current state. + +A controller should never update the pop-up menu structure on its + own to prevent performance problems. A better way would be that a controller + registers itself as status listener to for a command URL and immediately + deregister after that. Therefore status updates will not be send regularly + for a non visible pop-up menu. +
+ */ + void updatePopupMenu(); +}; + +}; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XRecordableDispatch.idl b/offapi/com/sun/star/frame/XRecordableDispatch.idl new file mode 100644 index 0000000000..d110736604 --- /dev/null +++ b/offapi/com/sun/star/frame/XRecordableDispatch.idl @@ -0,0 +1,88 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module frame { + +/** extends an existing XDispatch implementation with functionality + for dispatch recording + ++ This interface can be implemented as an additional one beside an existing + XDispatch one to provide record functionality of dispatches. + Because it's an additional interface the status events are available there + and not at this interface. +
+ ++ But normally this interface mustn't be used directly. + If a dispatch object is well known and recording was enabled + on a XDispatchRecorderSupplier it's possible to use method + XDispatchRecorderSupplier::dispatchAndRecord() of it + to make dispatch and recording automatically. The interface XRecordableDispatch + is used transparently there. +
+ + @code{.java} + XDispatch xDispatcher = xFrame.queryDispatch(aURL,"",0); + XRecordableDispatch xRecordable = + (XRecordableDispatch)UnoRuntime.queryInterface( + XRecordableDispatch.class, + xDispatcher); + + xDispatcher.addStatusListener(this,aURL); + + if (xRecordable != null) + xRecordable.dispatchAndRecord(aURL,lArguments,xRecorder); + else + xDispatcher.dispatch(aURL,lArguments); + ... + xDispatcher.removeStatusListener(this,aURL); + @endcode + + @see XDispatchRecorderSupplier + @see XDispatch + + @since OOo 1.1.2 + */ +published interface XRecordableDispatch: com::sun::star::uno::XInterface +{ + /** dispatch and record it + + @param URL + full parsed URL which describe the feature which should be dispatched (executed) + + @param Arguments + optional arguments for this request + (see com::sun::star::document::MediaDescriptor for details) + + @param Recorder + object which can be used to record the request + (available on XDispatchRecorderSupplier::getDispatchRecorder()) + */ + void dispatchAndRecord( + [in] com::sun::star::util::URL URL, + [in] sequenceIf the listener desires to interact with the user + it must first issue a user interaction request and + only do so if interaction was granted
+ +When the save request is processed (with or without + user interaction) the listener must call + XSessionManagerClient::saveDone() + on the session manager client service object.
+ + @param bShutdown + `TRUE` if a shutdown is in progress, + `FALSE` if just a save point was requested + + @param bCancelable + `TRUE` if a shutdown in progress can be canceled by the listener, + `FALSE` else + +the listener may choose to ignore the saveDone() + event in case no real shutdown is in progress. He + still has to call + XSessionManagerClient::saveDone() + in that case.
+ + @see XSessionManagerClient + @see XSessionManagerClient::saveDone() + */ + void doSave( [in] boolean bShutdown, [in] boolean bCancelable ); + + /** approveInteraction is called when an outstanding + interaction request was processed by the session manager + + @param bInteractionGranted + If `FALSE` the listener must not interact with the user. + If `TRUE` the listener can interact with the user now. + After interaction the listener must call + XSessionManagerClient::interactionDone() + on the session manager client service object. + + @see XSessionManagerClient + @see XSessionManagerClient::interactionDone() + */ + void approveInteraction( [in] boolean bInteractionGranted ); + + /** shutdownCanceled is called when a shutdown was canceled by the user + The listener can cancel his saving operations. No + further interaction is necessary and further calls + on the session manager client service object will + be ignored. + */ + void shutdownCanceled(); + + /** returns true, if a session was restored + */ + boolean doRestore(); + }; + +}; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XSessionManagerListener2.idl b/offapi/com/sun/star/frame/XSessionManagerListener2.idl new file mode 100644 index 0000000000..2bd3d42a44 --- /dev/null +++ b/offapi/com/sun/star/frame/XSessionManagerListener2.idl @@ -0,0 +1,34 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module frame { + + interface XSessionManagerListener2 : XSessionManagerListener + { + /** doQuit gets called when the session manager has decided + the application should quit. Under these circumstances bringing up + further UI will usually be impossible and must be avoided. + */ + void doQuit(); + }; + +}; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XStatusListener.idl b/offapi/com/sun/star/frame/XStatusListener.idl new file mode 100644 index 0000000000..d0fe710275 --- /dev/null +++ b/offapi/com/sun/star/frame/XStatusListener.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 . + */ + + + + module com { module sun { module star { module frame { + +/** makes it possible to receive events when the state of a feature changes. + ++ Nobody guarantee any notification. Use combination of XNotifyingDispatch + and XDispatchResultListener for that. +
+ + @see XDispatch + @see XNotifyingDispatch + @see XDispatchResultListener + */ +published interface XStatusListener: com::sun::star::lang::XEventListener +{ + /** is called when the status of the feature changes. + + @param State + provides information about changes of the requested feature + */ + void statusChanged( [in] FeatureStateEvent State ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XStatusbarController.idl b/offapi/com/sun/star/frame/XStatusbarController.idl new file mode 100644 index 0000000000..ef7860df14 --- /dev/null +++ b/offapi/com/sun/star/frame/XStatusbarController.idl @@ -0,0 +1,200 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module frame { + +/** interface to be implemented by a component offering a more complex user + interface to users within a status bar. + +
+ A generic status bar field is represented as a simple text field. A status
+ bar controller can be added to a Statusbar and provide information or
+ functions with a more sophisticated user interface.
+ A typical example for status bar controller is a zoom chooser. It shows
+ the current zoom and provides general zoom levels on a pop-up menu
+ that can be activated by a mouse action for context menus.
+
+ + @see com::sun::star::frame::XDispatchProvider + + @since OOo 2.0 +*/ +interface XStatusbarController +{ + /** used to control the life-time of the component + + Used by a status bar implementation to control the life-time of + a status bar controller. The status bar is the only instance which + is allowed to dispose the component. + */ + interface com::sun::star::lang::XComponent; + + /** used to initialize a component with required arguments. + +
A status bar controller is initialized with five additional + arguments provided as a sequence of + com::sun::star::beans::PropertyValue:
+ +The status bar controller implementation should register itself as a + listener when its com::sun::star::util::XUpdatable + interface has been called.
+ */ + interface com::sun::star::frame::XStatusListener; + + /** used to notify an implementation that it needs to add its listener or + remove and add them again. + ++ A status bar controller instance is ready for use after this call has + been made the first time. The status bar implementation guarantees that + the controller's item window has been added to the status bar and its + reference is held by it. +
+ */ + interface com::sun::star::util::XUpdatable; + + /** is called by a status bar if the mouse position is within the controller + and a mouse button has been pressed. If the controller has captured the + mouse input this function is also called when the mouse position is not + within the controller. + + @param aMouseEvent + current information about the mouse pointer. + + @return + return `TRUE` if the event should not be processed and `FALSE` + if the event should be processed by the status bar. + */ + boolean mouseButtonDown( [in] ::com::sun::star::awt::MouseEvent aMouseEvent ); + + /** is called by a status bar if the mouse position is within the controller + and a mouse has been moved. If the controller has captured the + mouse input this function is also called when the mouse position is not + within the controller. + + @param aMouseEvent + current information about the mouse pointer. + + @return + return `TRUE` if the event should not be processed and `FALSE` + if the event should be processed by the status bar. + */ + boolean mouseMove( [in] ::com::sun::star::awt::MouseEvent aMouseEvent ); + + /** is called by a status bar if the mouse position is within the controller + and a mouse button has been released. If the controller has captured the + mouse input this function is also called when the mouse position is not + within the controller. + + @param aMouseEvent + current information about the mouse pointer. + + @return + return `TRUE` if the event should not be processed and `FALSE` + if the event should be processed by the status bar. + */ + boolean mouseButtonUp( [in] ::com::sun::star::awt::MouseEvent aMouseEvent ); + + /** is called by a status bar if a command event is available for a controller. + + @param aPos + the current mouse position in pixel. + + @param nCommand + describes which command has been invoked. ++ It is usually only useful for two cases: +
+Only objects which know their locations can be stored.
+ + @throws com::sun::star::io::IOException + if an IO error occurred during save operation + (may the location is unknown) + + @see XStorable::storeAsURL + @see XStorable::storeToURL + */ + void store() + raises( com::sun::star::io::IOException ); + + /** stores the object's persistent data to a URL and + makes this URL the new location of the object. + +This is the normal behavior for UI's "save-as" feature.
+ +The change of the location makes it necessary to store the document in + a format that the object can load. For this reason the implementation of + XStorable::storeAsURL() will throw an exception if a pure + export filter is used, it will accept only combined import/export filters. + For such filters the method XStorable::storeToURL() + must be used that does not change the location of the object.
+ + @param sURL + specifies the new location of this component + + @param lArguments + optional parameters for saving + (see com::sun::star::document::MediaDescriptor for further details) + + @throws com::sun::star::io::IOException + if an IO error occurred during save operation + (may the location is unknown) + + @see XStorable::store + @see XStorable::storeToURL + @see com::sun::star::document::MediaDescriptor + */ + void storeAsURL( + [in] string sURL, + [in] sequenceThis is the normal behavior for UI's export feature.
+ +This method accepts all kinds of export filters, not only combined + import/export filters because it implements an exporting capability, not a + persistence capability.
+ + @throws com::sun::star::io::IOException + if an IO error occurred during save operation + (may the location is unknown) + + @param sURL + specifies the location where to store the object + + @param lArguments + optional parameters for saving + (see com::sun::star::document::MediaDescriptor for further details) + + @see XStorable::store + @see XStorable::storeAsURL + @see com::sun::star::document::MediaDescriptor + */ + void storeToURL( + [in] string sURL, + [in] sequence+ Only objects which know their locations can be stored. +
+ ++ This is an extension of the XStorable::store(). + This method allows to specify some additional parameters for + storing process. +
+ + @param lArguments + optional parameters for saving, can take values from subset of + com::sun::star::document::MediaDescriptor + + @throws ::com::sun::star::lang::IllegalArgumentException + the optional parameters contain unacceptable for save entry + + @throws com::sun::star::io::IOException + if an IO error occurred during save operation + + @see XStorable::store + */ + void storeSelf( + [in] sequence+ This interface is normally used to implement the toolbar button/sub- + toolbar function feature. It exchanges the function of the toolbar + button, that opened the sub-toolbar, with the one that has been selected + on the sub-toolbar. +
+ + @see com::sun::star::frame::ToolbarController + + @since OOo 2.0 + */ +interface XSubToolbarController : com::sun::star::uno::XInterface +{ + /** if the controller features a sub-toolbar. + + @return + `TRUE` if the controller offers a sub toolbar, otherwise `FALSE`. + ++ Enables implementations to dynamically decide to support sub-toolbars + or not. +
+ */ + boolean opensSubToolbar(); + + /** provides the resource URL of the sub-toolbar this controller opens. + + @return + name of the sub-toolbar this controller offers. A empty string + will be interpreted as if this controller offers no sub-toolbar. + */ + string getSubToolbarName(); + + /** gets called to notify a controller that a sub-toolbar function has been + selected. + + @param aCommand + a string which identifies the function that has been selected by + a user. + */ + void functionSelected( [in] string aCommand ); + + /** gets called to notify a controller that it should set an image which + represents the current selected function. + ++ Only the controller instance is able to set the correct image for the + current function. A toolbar implementation will ask sub-toolbar + controllers to update their image whenever it has to update the images + of all its buttons. +
+ */ + void updateImage(); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XSynchronousDispatch.idl b/offapi/com/sun/star/frame/XSynchronousDispatch.idl new file mode 100644 index 0000000000..01dd14afa9 --- /dev/null +++ b/offapi/com/sun/star/frame/XSynchronousDispatch.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 . + */ + + +module com { module sun { module star { module frame { + +/** additional interfaces for dispatch objects: allow to execute with return value + @since OOo 2.0 + @see XDispatch + */ +published interface XSynchronousDispatch: com::sun::star::uno::XInterface +{ + /** dispatches a URL synchronously and offers a return values + ++ After getting a dispatch object as a result of a queryDispatch call, this interface can + be used to dispatch the URL synchronously and with a return value. +
+ + @param URL + full parsed URL which describe the feature which should be dispatched (executed) + + @param Arguments + optional arguments for this request + They depend on the real implementation of the dispatch object. + */ + any dispatchWithReturnValue( + [in] com::sun::star::util::URL URL, + [in] sequence+ Unlike the XFrameLoader interface, this loading will be synchronous. +
+ + @see XFrameLoader + */ +published interface XSynchronousFrameLoader: com::sun::star::uno::XInterface +{ + /** starts the loading of the specified resource into the specified Frame. + + @param Descriptor + describes the resource which should be loaded + It use a com::sun::star::document::MediaDescriptor for that. + + @param Frame + the target frame which should contain the new loaded component + + @return + `TRUE` if loading is successfully ++ No notifications (neither to the frame or the caller) must be notified. + Because it's a synchronous process this cancel call can be forced by + another thread the loader thread only. Method + XSynchronousFrameLoader::load() must return `FALSE` + then and caller of this method XSynchronousFrameLoader::cancel() + already knows the state ... +
+ */ + void cancel(); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XTask.idl b/offapi/com/sun/star/frame/XTask.idl new file mode 100644 index 0000000000..059f641947 --- /dev/null +++ b/offapi/com/sun/star/frame/XTask.idl @@ -0,0 +1,52 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module frame { + +/** use XFrame instead of this one + @deprecated + */ +published interface XTask: XFrame +{ + /** use com::sun::star::util::XCloseable or + com::sun::star::lang::XComponent::dispose() + at a Frame instead of this one + @deprecated + */ + boolean close(); + + /** @deprecated + */ + void tileWindows(); + + /** @deprecated + */ + void arrangeWindowsVertical(); + + /** @deprecated + */ + void arrangeWindowsHorizontal(); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XTasksSupplier.idl b/offapi/com/sun/star/frame/XTasksSupplier.idl new file mode 100644 index 0000000000..42fcadecd6 --- /dev/null +++ b/offapi/com/sun/star/frame/XTasksSupplier.idl @@ -0,0 +1,43 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module frame { + +/** use XFramesSupplier instead of that + @deprecated + */ +published interface XTasksSupplier: com::sun::star::uno::XInterface +{ + /** use XFramesSupplier::getFrames() instead of this one + @deprecated + */ + com::sun::star::container::XEnumerationAccess getTasks(); + + /** use XFramesSupplier::getActiveFrame() instead of this one + @deprecated + */ + XTask getActiveTask(); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XTerminateListener.idl b/offapi/com/sun/star/frame/XTerminateListener.idl new file mode 100644 index 0000000000..e7aaf0e6f6 --- /dev/null +++ b/offapi/com/sun/star/frame/XTerminateListener.idl @@ -0,0 +1,62 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module frame { + +/** has to be provided if an object wants to receive an event + when the master environment (e.g., desktop) is terminated. + + @see XDesktop::terminate() + @see XDesktop::addTerminateListener() + @see XDesktop::removeTerminateListener() + */ +published interface XTerminateListener: com::sun::star::lang::XEventListener +{ + /** is called when the master environment (e.g., desktop) is about to terminate. + ++ Termination can be intercepted by throwing TerminationVetoException. + Interceptor will be the new owner of desktop and should call XDesktop::terminate() + after finishing his own operations. +
+ + @param Event + describe the source of the event (e.g., the desktop) + + @throws TerminationVetoException + listener can disagree with this query by throwing this veto exception + */ + void queryTermination( [in] com::sun::star::lang::EventObject Event ) + raises( TerminationVetoException ); + + /** is called when the master environment is finally terminated. + No veto will be accepted then. + + @param Event + describe the source of the event (e.g., the desktop) + */ + void notifyTermination( [in] com::sun::star::lang::EventObject Event ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XTerminateListener2.idl b/offapi/com/sun/star/frame/XTerminateListener2.idl new file mode 100644 index 0000000000..8ce4e314e8 --- /dev/null +++ b/offapi/com/sun/star/frame/XTerminateListener2.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 . + */ + + + module com { module sun { module star { module frame { + +/** extend interface XTerminateListener so a listener will be informed + in case termination process was canceled by other reasons. + */ +interface XTerminateListener2 : ::com::sun::star::frame::XTerminateListener +{ + /** is called when the master environment (e.g., desktop) was canceled in + it's terminate request. + ++ Termination can be intercepted by throwing TerminationVetoException. + But if a listener was queried for termination .. doesn't throw a veto exception ... + it doesn't know if termination will be real next time. + Because any other listener can throw those exception too ... and so it can happen + that after queryTermination() no notifyTermination() will occur. But these listener + don't know if it's allowed to start new processes then. + Using this optional(!) interface will make it possible to be informed about + canceled termination requests also. +
+ + @param Event + describe the source of the event (e.g., the desktop) + */ + void cancelTermination( [in] com::sun::star::lang::EventObject Event ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XTitle.idl b/offapi/com/sun/star/frame/XTitle.idl new file mode 100644 index 0000000000..86b7340be0 --- /dev/null +++ b/offapi/com/sun/star/frame/XTitle.idl @@ -0,0 +1,45 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module frame { + +/** an interface representing an entity with a modifiable title. + */ +interface XTitle : com::sun::star::uno::XInterface +{ + /** Returns the title of the object. + * + * @returns + * The title. + */ + string getTitle (); + + /** Sets the title of the object. + * + * @param sTitle + * The title. + */ + void setTitle ( [in] string sTitle ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XTitleChangeBroadcaster.idl b/offapi/com/sun/star/frame/XTitleChangeBroadcaster.idl new file mode 100644 index 0000000000..fbb5209187 --- /dev/null +++ b/offapi/com/sun/star/frame/XTitleChangeBroadcaster.idl @@ -0,0 +1,39 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module frame { + +/** Allows to register for title changed events. + */ +interface XTitleChangeBroadcaster : com::sun::star::uno::XInterface +{ + /** Add a listener + */ + void addTitleChangeListener ( [in] com::sun::star::frame::XTitleChangeListener xListener ); + + /** Remove a listener + */ + void removeTitleChangeListener ( [in] com::sun::star::frame::XTitleChangeListener xListener ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XTitleChangeListener.idl b/offapi/com/sun/star/frame/XTitleChangeListener.idl new file mode 100644 index 0000000000..374068e67b --- /dev/null +++ b/offapi/com/sun/star/frame/XTitleChangeListener.idl @@ -0,0 +1,35 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module frame { + +/** Allows to receive notifications when the frame title changes + */ +interface XTitleChangeListener : com::sun::star::lang::XEventListener +{ + /** The frame title has changed + */ + void titleChanged ( [in] TitleChangedEvent aEvent ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XToolbarController.idl b/offapi/com/sun/star/frame/XToolbarController.idl new file mode 100644 index 0000000000..5a59b31a99 --- /dev/null +++ b/offapi/com/sun/star/frame/XToolbarController.idl @@ -0,0 +1,85 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module frame { + +/** is an abstract service for a component which offers a more complex user interface + to users within a toolbar. + +
+ A generic toolbar function is represented as a button which has a state
+ (enabled,disabled and selected, not selected). A toolbar controller can be added to a
+ toolbar and provide information or functions with a more sophisticated user interface.
+ A typical example for toolbar controller is a font chooser on a toolbar. It provides
+ all available fonts in a dropdown box and shows the current chosen font.
+
+ + @see com::sun::star::frame::XDispatchProvider + + @since OOo 2.0 + */ +interface XToolbarController : com::sun::star::uno::XInterface +{ + /** provides a function to execute the command which is bound to the toolbar controller. + + @param KeyModifier + a combination of com::sun::star::awt::KeyModifier value that represent + the current state of the modifier keys. + +
+ This function is usually called by a toolbar implementation when a user clicked on a toolbar button + or pressed enter on the keyboard when the item has the input focus. +
+ */ + void execute( [in] short KeyModifier ); + + /** notifies a component that a single click has been made on the toolbar item. + */ + void click(); + + /** notifies a component that a double click has been made on the toolbar item. + */ + void doubleClick(); + + /** requests to create a pop-up window for additional functions. + + @return + a com::sun::star::awt::XWindow which provides additional functions + to the user. The reference must be empty if component does not want to provide a separate + window. + */ + com::sun::star::awt::XWindow createPopupWindow(); + + /** requests to create an item window which can be added to the toolbar. + + @param Parent + a com::sun::star::awt::XWindow which must be used as a parent + for the requested item window. + + @return + a com::sun::star::awt::XWindow which can be added to a toolbar. + The reference must be empty if a component does not want to provide an item window. + */ + com::sun::star::awt::XWindow createItemWindow( [in] com::sun::star::awt::XWindow Parent ); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XToolbarControllerListener.idl b/offapi/com/sun/star/frame/XToolbarControllerListener.idl new file mode 100644 index 0000000000..ee019e03cf --- /dev/null +++ b/offapi/com/sun/star/frame/XToolbarControllerListener.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 . + */ + + + module com { module sun { module star { module frame { + +/** is used to notify a toolbar controller about events + + @see com::sun::star::frame::ToolbarController + + @since OOo 2.0 + */ +interface XToolbarControllerListener : com::sun::star::uno::XInterface +{ + /** gets called to notify a controller that a toolbar function has been selected. + + @param aToolbarRes + a string which identifies the toolbar where the function has been selected. + + @param aCommand + a string which identifies the function that has been selected. + ++ This notification is normally used to implement the toolbar button/sub-toolbar + function feature. It exchanges the function of the toolbar button, that opened + the sub-toolbar, with the one that has been selected on the sub-toolbar. +
+ */ + void functionSelected( [in] string aToolbarRes, [in] string aCommand ); + +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XTransientDocumentsDocumentContentFactory.idl b/offapi/com/sun/star/frame/XTransientDocumentsDocumentContentFactory.idl new file mode 100644 index 0000000000..602dea1805 --- /dev/null +++ b/offapi/com/sun/star/frame/XTransientDocumentsDocumentContentFactory.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 . + */ + + +module com { module sun { module star { module frame { + +/** specifies a factory for + com::sun::star::ucb::TransientDocumentsDocumentContents. + + @version 1.0 + @see com::sun::star::document::OfficeDocument + @see com::sun::star::ucb::TransientDocumentsDocumentContent + + @since OOo 2.0 +*/ +interface XTransientDocumentsDocumentContentFactory : com::sun::star::uno::XInterface +{ + /** creates a + com::sun::star::ucb::TransientDocumentsDocumentContent + based on a given com::sun::star::document::OfficeDocument. + + @param Model + the document model for that a + com::sun::star::ucb::TransientDocumentsDocumentContent + is requested. The model must be an implementation of service + com::sun::star::document::OfficeDocument. + + @returns + a document content based on the given document model. The content must + be an implementation of service + com::sun::star::ucb::TransientDocumentsDocumentContent. + + @throws com::sun::star::lang::IllegalArgumentException + if the document model cannot be associated with content for any reason. + */ + com::sun::star::ucb::XContent createDocumentContent( + [in] com::sun::star::frame::XModel Model ) + raises ( com::sun::star::lang::IllegalArgumentException ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XTransientDocumentsDocumentContentIdentifierFactory.idl b/offapi/com/sun/star/frame/XTransientDocumentsDocumentContentIdentifierFactory.idl new file mode 100644 index 0000000000..bf6da9ce03 --- /dev/null +++ b/offapi/com/sun/star/frame/XTransientDocumentsDocumentContentIdentifierFactory.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/. + * + */ + + +module com { module sun { module star { module frame { + +/** a factory for identifiers of + com::sun::star::ucb::TransientDocumentsDocumentContents. + + @see com::sun::star::document::OfficeDocument + @see com::sun::star::ucb::XContentIdentifier + + @since LibreOffice 6.3 +*/ +interface XTransientDocumentsDocumentContentIdentifierFactory + : com::sun::star::uno::XInterface +{ + /** creates a com::sun::star::ucb::XContentIdentifier + based on a given com::sun::star::document::OfficeDocument. + + @param Model + the document model for which a + com::sun::star::ucb::XContentIdentifier + is requested. The model must be an implementation of service + com::sun::star::document::OfficeDocument. + + @returns + a content identifier based on the given document model. + + @throws com::sun::star::lang::IllegalArgumentException + if the document model cannot be associated with content for any reason. + */ + com::sun::star::ucb::XContentIdentifier + createDocumentContentIdentifier( + [in] com::sun::star::frame::XModel Model ) + raises ( com::sun::star::lang::IllegalArgumentException ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XUIControllerFactory.idl b/offapi/com/sun/star/frame/XUIControllerFactory.idl new file mode 100644 index 0000000000..302b4e4205 --- /dev/null +++ b/offapi/com/sun/star/frame/XUIControllerFactory.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 . + */ + +module com { module sun { module star { module frame { + +/** a factory to create User Interface controllers. + ++ A user interface controller can be registered for a command URL. A certain user + interface controller will be created when a user interface element contains a + registered command URL. + + @see PopupMenuControllerFactory + @see StatusbarControllerFactory + @see ToolbarControllerFactory +
+ + @since LibreOffice 4.1 + */ +interface XUIControllerFactory +{ + /** this interface provides functions to create new instances of a registered UI controller. + ++ Use com::sun::star::lang::XMultiComponentFactory::createInstanceWithArgumentsAndContext() to create + a new UI controller instance. Use the CommandURL as the service specifier. + + This call supports the following arguments provided as com::sun::star::beans::PropertyValue: +
+ A user interface controller can be registered for a command URL. A certain user + interface controller will be created when a user interface element contains a + registered command URL. + + @see PopupMenuControllerFactory +
+ + @since OOo 2.0 + */ + +published interface XUIControllerRegistration : com::sun::star::uno::XInterface +{ + /** function to check if an user interface controller is registered + for a command URL and optional module. + + @returns + true if a controller was registered for the combination of command URL + and model name. + + @param aCommandURL + a command URL which specifies an action. + + @param aModelName + an optional name of an OpenOffice model service. This value can remain empty if + no model service name was specified. + */ + boolean hasController( [in] string aCommandURL, [in] string aModelName ); + + /** function to create an association between a user interface controller implementation + and a command URL and optional module. + + @param aCommandURL + a command URL which specifies an action which should be associated with a user + interface controller. + + @param aModelName + an optional name of an OpenOffice model service. This value can remain empty if + no model service name was specified. + + @param aControllerImplementationName + a UNO implementation name that can be used to create a user interface controller + with the OpenOffice service manager. + */ + void registerController( [in] string aCommandURL, [in] string aModelName, [in] string aControllerImplementationName ); + + /** function to remove a previously defined association between a user interface controller + implementation and a command URL and optional module. + + @param aCommandURL + a command URL which specifies an action which should be associated with a user + interface controller. + + @param aModelName + an optional name of an OpenOffice model service. This value can remain empty if + no model service name was specified. + */ + void deregisterController( [in] string aCommandURL, [in] string aModelName ); +}; + +}; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XUntitledNumbers.idl b/offapi/com/sun/star/frame/XUntitledNumbers.idl new file mode 100644 index 0000000000..4d16c2053b --- /dev/null +++ b/offapi/com/sun/star/frame/XUntitledNumbers.idl @@ -0,0 +1,88 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module frame { + +/** knows all currently used and all free numbers for using with untitled + but counted objects. + */ +interface XUntitledNumbers : com::sun::star::uno::XInterface +{ + /** callee has to lease a number before he can use it within in its own title. + + Such number must be freed after using e.g. while the object was closed or + gets another title (e.g. by saving a document to a real location on disc). + + @param xComponent + the component which has to be registered for the leased number. + + @return the new number for these object or 0 if no further numbers are available. + + @throws [IllegalArgumentException] + if an invalid object reference was provided to this method. + */ + long leaseNumber ( [in] com::sun::star::uno::XInterface xComponent ) + raises (com::sun::star::lang::IllegalArgumentException); + + /** has to be used to mark those numbers as "free for using". + + If the registered component does not use such leased number any longer + it has to be released so it can be used for new components. + + Note: calling this method with an unknown (but normally valid number) + has to be ignored. No exceptions - no errors. + + @param nNumber + specify number for release. + + @throws [IllegalArgumentException] + if the given number is the special value 0. + */ + void releaseNumber ( [in] long nNumber ) + raises (com::sun::star::lang::IllegalArgumentException); + + /** does the same then releaseNumber () but it searches the corresponding + number for the specified component and deregister it. + + @param xComponent + the component for deregistration. + + @throws [IllegalArgumentException] + if an invalid object reference was provided to this method. + */ + void releaseNumberForComponent ( [in] com::sun::star::uno::XInterface xComponent ) + raises (com::sun::star::lang::IllegalArgumentException); + + /** returns the localized string value to be used for untitled objects in + combination with the leased number. + + Note: Such string already contains leading spaces/tabs etc. ! + The only thing which an outside code has todo then ... adding a leased number + to the string. + + @return the localized string for untitled components. + */ + string getUntitledPrefix (); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XUrlList.idl b/offapi/com/sun/star/frame/XUrlList.idl new file mode 100644 index 0000000000..773c6ad9e8 --- /dev/null +++ b/offapi/com/sun/star/frame/XUrlList.idl @@ -0,0 +1,35 @@ +/* -*- 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 . + */ + + + +module com { module sun { module star { module frame { + +/** @deprecated +*/ +published interface XUrlList: com::sun::star::uno::XInterface +{ + /** - */ + [attribute] sequenceFor example, this can be used to select a font.
+ + @since OOo 2.0 + */ +struct FontHeight +{ + + /** specifies the current height of the font. + */ + float Height; + + + /** specifies the height of the font in the measure of the + destination. + */ + short Prop; + + + /** specifies the width of the font in the measure of the + destination. + */ + float Diff; +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/status/ItemState.idl b/offapi/com/sun/star/frame/status/ItemState.idl new file mode 100644 index 0000000000..9d47d088b1 --- /dev/null +++ b/offapi/com/sun/star/frame/status/ItemState.idl @@ -0,0 +1,77 @@ +/* -*- 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 . + */ + + + +module com { module sun { module star { module frame { module status { + + +/** these constants describe a state of an ItemStatus. + + @see ItemStatus + + @since OOo 2.0 + */ +constants ItemState +{ + /** specifies an unknown state. + */ + const short UNKNOWN = 0; + + /** specifies that the property is currently disabled. + */ + const short DISABLED = 1; + + /** specifies that the property is currently read-only. + * + * Deprecated: There is no equivalent in SfxItemState + * anymore due to not being used, so remove for simplification + * reasons and to prepare rework of Item/ItemSet/ItemPool stuff. + * + * There are only three usages of com::sun::star::frame::status::ItemState + * in the code which all set the internal SfxItem to SfxVoidItem when + * triggered, which is equivalent to state SfxItemState::DISABLED (see e.g. + * SfxItemSet::GetItemState), so READ_ONLY gets not used in internal + * handling, even when eventually existing UNO API usages hand it over the + * office. + */ + const short READ_ONLY = 2; + + /** specifies that the property is currently in a don't care state. + ++ This is normally used if a selection provides more than one state + for a property at the same time. +
+ */ + const short DONT_CARE = 16; + + /** specifies that the property is currently in a default state. + */ + const short DEFAULT_VALUE = 32; + + /** specifies that the property is currently in a set state. + */ + const short SET = 64; +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/status/ItemStatus.idl b/offapi/com/sun/star/frame/status/ItemStatus.idl new file mode 100644 index 0000000000..88cbc5b976 --- /dev/null +++ b/offapi/com/sun/star/frame/status/ItemStatus.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 . + */ + + +module com { module sun { module star { module frame { module status { + + +/** describes a state of a property. + + @since OOo 2.0 + */ +struct ItemStatus +{ + + /** numerical value which describes the current state of an item. + + @see ItemState + */ + short State; + + + /** optional data which can be used by an implementation to send additional + information. The content is dependent on the specific implementation. + */ + any aStateData; +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/status/LeftRightMargin.idl b/offapi/com/sun/star/frame/status/LeftRightMargin.idl new file mode 100644 index 0000000000..fa05f2f300 --- /dev/null +++ b/offapi/com/sun/star/frame/status/LeftRightMargin.idl @@ -0,0 +1,44 @@ +/* -*- 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 . + */ + + + +module com { module sun { module star { module frame { module status { + + +/** specifies a left and right margin. + + @since OOo 2.0 + */ +struct LeftRightMargin +{ + /** specifies a left side margin in 1/100th mm. + */ + long Left; + + + /** specifies a right side margin in 1/100th mm. + */ + long Right; +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/status/LeftRightMarginScale.idl b/offapi/com/sun/star/frame/status/LeftRightMarginScale.idl new file mode 100644 index 0000000000..07d2abcf8b --- /dev/null +++ b/offapi/com/sun/star/frame/status/LeftRightMarginScale.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 . + */ + + + +module com { module sun { module star { module frame { module status { + + +/** specifies a left and right margin. + + @since LibreOffice 5.3 + */ +struct LeftRightMarginScale +{ + /** specifies a left text margin in 1/100th mm. + */ + long TextLeft; + + + /** specifies a left margin in 1/100th mm. + */ + long Left; + + + /** specifies a right margin in 1/100th mm. + */ + long Right; + + + /** specifies a first line indent relative to TextLeft in 1/100th mm. + */ + long FirstLine; + + + /** specifies a scale value for the left margin in percent. + */ + long ScaleLeft; + + + /** specifies a scale value for the right margin in percent. + */ + long ScaleRight; + + + /** specifies a scale value for the first line margin in percent. + */ + long ScaleFirstLine; + + + /** specifies if the automatic calculation of the first line indent occurs. + */ + boolean AutoFirstLine; +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/status/Template.idl b/offapi/com/sun/star/frame/status/Template.idl new file mode 100644 index 0000000000..dfee1152ad --- /dev/null +++ b/offapi/com/sun/star/frame/status/Template.idl @@ -0,0 +1,52 @@ +/* -*- 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 . + */ + + + +module com { module sun { module star { module frame { module status { + + +/** contains an association between a style name and a value. + + @since OOo 2.0 + */ +struct Template +{ + + /** specifies a style name. + */ + string StyleName; + + + /** specifies a value that is bound to the style name. + */ + long Value; + + + /** specifies an identifier name in English (only for standard style). + + @since LibreOffice 7.2 + */ + string StyleNameIdentifier; +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/status/UpperLowerMargin.idl b/offapi/com/sun/star/frame/status/UpperLowerMargin.idl new file mode 100644 index 0000000000..6e251596e3 --- /dev/null +++ b/offapi/com/sun/star/frame/status/UpperLowerMargin.idl @@ -0,0 +1,44 @@ +/* -*- 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 . + */ + + + +module com { module sun { module star { module frame { module status { + + +/** specifies an upper and lower margin. + + @since OOo 2.0 + */ +struct UpperLowerMargin +{ + /** specifies a upper margin in 1/100th mm. + */ + long Upper; + + + /** specifies a lower margin in 1/100th mm. + */ + long Lower; +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/status/UpperLowerMarginScale.idl b/offapi/com/sun/star/frame/status/UpperLowerMarginScale.idl new file mode 100644 index 0000000000..b92c360ed2 --- /dev/null +++ b/offapi/com/sun/star/frame/status/UpperLowerMarginScale.idl @@ -0,0 +1,54 @@ +/* -*- 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 . + */ + + + +module com { module sun { module star { module frame { module status { + + +/** specifies an upper and lower margin. + + @since OOo 2.0 + */ +struct UpperLowerMarginScale +{ + /** specifies a upper margin in 1/100th mm. + */ + long Upper; + + + /** specifies a lower margin in 1/100th mm. + */ + long Lower; + + + /** specifies a scale value for the upper margin. + */ + short ScaleUpper; + + + /** specifies a scale value for the lower margin. + */ + short ScaleLower; +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/status/Verb.idl b/offapi/com/sun/star/frame/status/Verb.idl new file mode 100644 index 0000000000..2c89c2f34f --- /dev/null +++ b/offapi/com/sun/star/frame/status/Verb.idl @@ -0,0 +1,56 @@ +/* -*- 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 . + */ + + + +module com { module sun { module star { module frame { module status { + + +/** describes a command that can be send to an OLE object + +For example, this can be used to select a font.
+ + @since OOo 2.0 + */ +struct Verb +{ + + /** specifies the Id of the command. + */ + long VerbId; + + + /** specifies the name of the command. The name is localized. + */ + string VerbName; + + + /** specifies if the command should be visible in a menu. + */ + boolean VerbIsOnMenu; + + /** specifies if the command is available for a constant object. + */ + boolean VerbIsConst; +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/status/Visibility.idl b/offapi/com/sun/star/frame/status/Visibility.idl new file mode 100644 index 0000000000..6b554c712b --- /dev/null +++ b/offapi/com/sun/star/frame/status/Visibility.idl @@ -0,0 +1,39 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module frame { module status { + + +/** describes the visibility state of a property. + + @since OOo 2.0 + */ +struct Visibility +{ + + /** `TRUE` if the property is visible otherwise `FALSE`. + */ + boolean bVisible; +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/theAutoRecovery.idl b/offapi/com/sun/star/frame/theAutoRecovery.idl new file mode 100644 index 0000000000..38b9c1e066 --- /dev/null +++ b/offapi/com/sun/star/frame/theAutoRecovery.idl @@ -0,0 +1,22 @@ +/* -*- 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/. + */ + +module com { module sun { module star { module frame { + +/** + Prior to LibreOffice 4.3, this singleton was only available as a + (single-instance) AutoRecovery service. + + @since LibreOffice 4.3 + */ +singleton theAutoRecovery : XDispatch; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/theDesktop.idl b/offapi/com/sun/star/frame/theDesktop.idl new file mode 100644 index 0000000000..46c05c85e0 --- /dev/null +++ b/offapi/com/sun/star/frame/theDesktop.idl @@ -0,0 +1,41 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module frame { + +/** is the environment for components which can instantiate within frames + ++ A desktop environment contains tasks with one or more frames + in which components can be loaded. The term "task" or naming a frame as a + "task frame" is not in any way related to any additional implemented + interfaces, it's just because these frames use task windows. +
+ + Prior to LibreOffice 4.3, this singleton was only available as a + (single-instance) Desktop service. + + @since LibreOffice 4.3 + */ +published singleton theDesktop : XDesktop2; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/theGlobalEventBroadcaster.idl b/offapi/com/sun/star/frame/theGlobalEventBroadcaster.idl new file mode 100644 index 0000000000..8a9a132f38 --- /dev/null +++ b/offapi/com/sun/star/frame/theGlobalEventBroadcaster.idl @@ -0,0 +1,39 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module frame { + +/** + This singleton offers the document event functionality that can be found at + any com::sun::star::document::OfficeDocument, but it does it for all + existing documents. + + So it is a single place where a listener can be registered for all events in + all documents. + + Prior to LibreOffice 4.3, this singleton was only available as a + (single-instance) GlobalEventBroadcaster service. + + @since LibreOffice 4.3 +*/ +singleton theGlobalEventBroadcaster: XGlobalEventBroadcaster; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/thePopupMenuControllerFactory.idl b/offapi/com/sun/star/frame/thePopupMenuControllerFactory.idl new file mode 100644 index 0000000000..c68239b7c2 --- /dev/null +++ b/offapi/com/sun/star/frame/thePopupMenuControllerFactory.idl @@ -0,0 +1,39 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module frame { + +/** specifies a factory that creates instances of registered popup menu controller. + ++ A pop-up menu controller can be registered for a command URL and a model service name. + A menu bar or context menu will automatically create a pop-up menu controller if + it contains a registered command URL. +
+ + Prior to LibreOffice 4.3, this singleton was only available as a + (single-instance) PopupMenuControllerFactory service. + + @since LibreOffice 4.3 +*/ +singleton thePopupMenuControllerFactory : XUIControllerFactory; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/theStatusbarControllerFactory.idl b/offapi/com/sun/star/frame/theStatusbarControllerFactory.idl new file mode 100644 index 0000000000..5e469e573a --- /dev/null +++ b/offapi/com/sun/star/frame/theStatusbarControllerFactory.idl @@ -0,0 +1,40 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module frame { + +/** specifies a factory that creates instances of registered status bar + controller. + ++ A status bar controller can be registered for a command URL and a model + service name. A status bar will automatically create a status bar controller + if it contains a registered command URL. +
+ + Prior to LibreOffice 4.3, this singleton was only available as a + (single-instance) StatusbarControllerFactory service. + + @since LibreOffice 4.3 +*/ +singleton theStatusbarControllerFactory : XUIControllerFactory; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/theToolbarControllerFactory.idl b/offapi/com/sun/star/frame/theToolbarControllerFactory.idl new file mode 100644 index 0000000000..003952abcb --- /dev/null +++ b/offapi/com/sun/star/frame/theToolbarControllerFactory.idl @@ -0,0 +1,38 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module frame { + +/** specifies a factory that creates instances of registered toolbar controller. + ++ A toolbar controller can be registered for a command URL and a model service name. +
+ + Prior to LibreOffice 4.3, this singleton was only available as a + (single-instance) ToolbarControllerFactory service. + + @since LibreOffice 4.3 +*/ + +singleton theToolbarControllerFactory : XUIControllerFactory; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/theUICommandDescription.idl b/offapi/com/sun/star/frame/theUICommandDescription.idl new file mode 100644 index 0000000000..4fd1cb8f27 --- /dev/null +++ b/offapi/com/sun/star/frame/theUICommandDescription.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 . + */ + + +module com { module sun { module star { module frame { + + +/** a singleton which provides information about user interface commands of modules. + ++ OpenOffice.org has an amount of commands that can be used by user interface + elements. This singleton provides access to the user interface commands that + are part of OpenOffice.org modules, like Writer or Calc. +
+ + Provides access to user interface commands of the installed modules. + ++ To access the user interface command description of a module, a unique module specifier + must be provided to com::sun::star::container::XNameAccess::getByName() function. + The module specifier can be retrieved from the com::sun::star::frame::ModuleManager + service. The interface provides references to com::sun:star::ui::ModuleUICommandDescription. +
+ + @see com::sun::star::frame::ModuleManager + + Prior to LibreOffice 4.3, this singleton was only available as a + (single-instance) UICommandDescription service. + + @since LibreOffice 4.3 + +*/ +singleton theUICommandDescription : com::sun::star::container::XNameAccess; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/gallery/GalleryItem.idl b/offapi/com/sun/star/gallery/GalleryItem.idl new file mode 100644 index 0000000000..8ddf861fc1 --- /dev/null +++ b/offapi/com/sun/star/gallery/GalleryItem.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 . + */ + + +module com { module sun { module star { module gallery { + + +/** service to get access to the properties of a single Gallery item + */ +service GalleryItem +{ + interface ::com::sun::star::gallery::XGalleryItem; + + interface ::com::sun::star::beans::XPropertySet; + + /** The type of the Gallery item + + @see GalleryItemType + */ + [readonly, property] byte GalleryItemType; + + /** the URL of the Gallery item + +The interpretation of the URL depends on the type + of the Gallery item. In case of graphic and media items, + the URL is a "real" URL, in case of drawings it is a private + URL
+ */ + [readonly, property] string URL; + + /** the title of the Gallery item + */ + [property] string Title; + + /** the thumbnail of the Gallery item + +The thumbnail may be either a pixel or a vector graphic
+ */ + [readonly, property] com::sun::star::graphic::XGraphic Thumbnail; + + /** the graphic content of the Gallery item + +This is an optional property and may not available for every item
+ */ + [optional, readonly, property ] ::com::sun::star::graphic::XGraphic Graphic; + + /** the drawing content of the Gallery item + +This is an optional property and may not available for every item
+ */ + [optional, readonly, property ] ::com::sun::star::lang::XComponent Drawing; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/gallery/GalleryItemType.idl b/offapi/com/sun/star/gallery/GalleryItemType.idl new file mode 100644 index 0000000000..f68f0af090 --- /dev/null +++ b/offapi/com/sun/star/gallery/GalleryItemType.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 . + */ + +module com { module sun { module star { module gallery { + +/** Constants that describe the type of graphic +*/ +constants GalleryItemType +{ + /** Item is empty + */ + const byte EMPTY = 0; + + /** Item represents a graphic + */ + const byte GRAPHIC = 1; + + /** Item represents a media file + */ + const byte MEDIA = 2; + + /** Item represents a drawing + */ + const byte DRAWING = 3; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/gallery/GalleryTheme.idl b/offapi/com/sun/star/gallery/GalleryTheme.idl new file mode 100644 index 0000000000..33f9e67b75 --- /dev/null +++ b/offapi/com/sun/star/gallery/GalleryTheme.idl @@ -0,0 +1,39 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module gallery { + + +/** provides access to a container of Gallery items and makes it + possible for you to manipulate them. + + @see XGalleryTheme + */ +service GalleryTheme +{ + /** lets you access and create Gallery items + */ + interface com::sun::star::gallery::XGalleryTheme; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/gallery/GalleryThemeProvider.idl b/offapi/com/sun/star/gallery/GalleryThemeProvider.idl new file mode 100644 index 0000000000..be976b5e13 --- /dev/null +++ b/offapi/com/sun/star/gallery/GalleryThemeProvider.idl @@ -0,0 +1,52 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module gallery { + + +/** provides access to a container of GalleryThemes + and makes it possible for you to manipulate them. + + @see XGalleryThemeProvider + */ +service GalleryThemeProvider +{ + /** lets you access and create GalleryThemes + */ + interface com::sun::star::gallery::XGalleryThemeProvider; + + /** allows initializing the provider +You do not need to call the initialize method directly, instead you may use the createInstanceWithArguments + method of your com::sun::star::lang::XMultiServiceFactory.
+ +You specify a parameter by passing one (or more) + com::sun::star::beans::PropertyValue + object(s) to the initialize method, where the Name field contains a string describing which aspect + you want to affect, and the Value field containing a value.
+ +Currently, there are no public properties available
+ */ + interface com::sun::star::lang::XInitialization; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/gallery/XGalleryItem.idl b/offapi/com/sun/star/gallery/XGalleryItem.idl new file mode 100644 index 0000000000..f567882d37 --- /dev/null +++ b/offapi/com/sun/star/gallery/XGalleryItem.idl @@ -0,0 +1,41 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module gallery { + + +/** provides access to a single item of a Gallery theme. + */ +interface XGalleryItem : com::sun::star::uno::XInterface +{ + /** retrieves the type of the Gallery item + + @returns + The type of the Gallery item + + @see GalleryItemType + */ + byte getType(); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/gallery/XGalleryTheme.idl b/offapi/com/sun/star/gallery/XGalleryTheme.idl new file mode 100644 index 0000000000..0e4e61655c --- /dev/null +++ b/offapi/com/sun/star/gallery/XGalleryTheme.idl @@ -0,0 +1,139 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module gallery { + + +/** provides access to the items of a Gallery themes. It also allows + inserting and removing of single items. + +This interface extends the interface + com::sun::star::container::XIndexAccess which provides + access to existing Gallery items collection.
+ + @see com::sun::star::container::XIndexAccess + @see com::sun::star::sheet::DataPilotTable + */ +interface XGalleryTheme : com::sun::star::container::XIndexAccess +{ + /** retrieves the name of the Gallery theme + + @returns + The name of the Gallery theme + */ + string getName(); + + /** updates the theme + +This method iterates over each item of the Gallery theme + and updates it accordingly. Main purpose is to automatically + regenerate the thumbnails and to remove invalid items, that is items + who have got a URL that has become invalid. This method also + optimizes underlying data structures.
+ */ + void update(); + + /** inserts an item + + @param URL + The URL of a graphic or media object, that should + be added to the collection + + @param Index + The zero based index of the position where to insert + the new object inside the collection. If the index is larger than + or equal to the number of already inserted items, the + item is inserted at the end of the collection. If the index + is smaller than 0, the item is inserted at the beginning of + the collection. + + @returns + The zero based position at which the object was inserted. + If the object could not be inserted, -1 is returned. + + @see XGalleryItem + @see com::sun::star::lang::WrappedTargetException + */ + long insertURLByIndex( [in] string URL, [in] long Index ) + raises ( com::sun::star::lang::WrappedTargetException ); + /** inserts an item + + @param Graphic + The com::sun::star::graphic::XGraphic object + that should be added to the collection + + @param Index + The zero based index of the position where to insert + the new object inside the collection. If the index is larger than + or equal to the number of already inserted items, the + item is inserted at the end of the collection. If the index + is smaller than 0, the item is inserted at the beginning of + the collection. + + @returns + The zero based position at which the object was inserted. + If the object could not be inserted, -1 is returned. + + @see com::sun::star::graphic::XGraphic + @see XGalleryItem + @see com::sun::star::lang::WrappedTargetException + */ + long insertGraphicByIndex( [in] com::sun::star::graphic::XGraphic Graphic, [in] long Index ) + raises ( com::sun::star::lang::WrappedTargetException ); + + /** inserts an item + + @param Drawing + A drawing model that should be added to the collection + + @param Index + The zero based index of the position where to insert + the new object inside the collection. If the index is larger than + or equal to the number of already inserted items, the + item is inserted at the end of the collection. If the index + is smaller than 0, the item is inserted at the beginning of + the collection. + + @returns + The zero based position at which the object was inserted. + If the object could not be inserted, -1 is returned. + + @see XGalleryItem + @see com::sun::star::lang::WrappedTargetException + */ + long insertDrawingByIndex( [in] com::sun::star::lang::XComponent Drawing, [in] long Index ) + raises ( com::sun::star::lang::WrappedTargetException ); + + /** deletes an item from the collection + + @param Index + The position of the item to be removed. The + position is zero based. + + @see com::sun::star::container::NoSuchElementException + */ + void removeByIndex( [in] long Index ) + raises ( com::sun::star::lang::IndexOutOfBoundsException ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/gallery/XGalleryThemeProvider.idl b/offapi/com/sun/star/gallery/XGalleryThemeProvider.idl new file mode 100644 index 0000000000..c95fdb5d3e --- /dev/null +++ b/offapi/com/sun/star/gallery/XGalleryThemeProvider.idl @@ -0,0 +1,66 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module gallery { + + +/** provides access to the Gallery themes. It also allows inserting and + removing of Gallery themes by name. + +This interface extends the interface + com::sun::star::container::XNameAccess which provides + access to existing Gallery themes collection.
+ + @see com::sun::star::container::XNameAccess + */ +interface XGalleryThemeProvider : com::sun::star::container::XNameAccess +{ + /** creates a new Gallery theme and adds it to the collection. + + @param ThemeName + The name of the Gallery theme to be added to the collection. + The name must be unique. + + @returns XGalleryTheme + The created theme interface + + @see com::sun::star::container::ElementExistException + */ + XGalleryTheme insertNewByName( [in] string ThemeName ) + raises ( com::sun::star::container::ElementExistException ); + + + /** deletes a Gallery theme from the collection. + + @param ThemeName + The name of the Gallery theme to be removed. The + theme with the given name must exist. + + @see com::sun::star::container::NoSuchElementException + */ + void removeByName( [in] string ThemeName ) + raises ( com::sun::star::container::NoSuchElementException ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/geometry/AffineMatrix2D.idl b/offapi/com/sun/star/geometry/AffineMatrix2D.idl new file mode 100644 index 0000000000..54344561eb --- /dev/null +++ b/offapi/com/sun/star/geometry/AffineMatrix2D.idl @@ -0,0 +1,83 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module geometry { + +/** This structure defines a 2 by 3 affine matrix.+ + The matrix defined by this structure constitutes an affine mapping + of a point in 2D to another point in 2D. The last line of a + complete 3 by 3 matrix is omitted, since it is implicitly assumed + to be [0,0,1].
+
+ An affine mapping, as performed by this matrix, can be written out
+ as follows, where xs
and ys
are the source, and
+ xd
and yd
the corresponding result coordinates:
+
+
+ xd = m00*xs + m01*ys + m02;
+ yd = m10*xs + m11*ys + m12;
+
+ + Thus, in common matrix language, with M being the + AffineMatrix2D and vs=[xs,ys]^T, vd=[xd,yd]^T two 2D + vectors, the affine transformation is written as + vd=M*vs. Concatenation of transformations amounts to + multiplication of matrices, i.e. a translation, given by T, + followed by a rotation, given by R, is expressed as vd=R*(T*vs) in + the above notation. Since matrix multiplication is associative, + this can be shortened to vd=(R*T)*vs=M'*vs. Therefore, a set of + consecutive transformations can be accumulated into a single + AffineMatrix2D, by multiplying the current transformation with the + additional transformation from the left.
+ + Due to this transformational approach, all geometry data types are + points in abstract integer or real coordinate spaces, without any + physical dimensions attached to them. This physical measurement + units are typically only added when using these data types to + render something onto a physical output device, like a screen or a + printer, Then, the total transformation matrix and the device + resolution determine the actual measurement unit.
+ + @since OOo 2.0 + */ +struct AffineMatrix2D +{ + /// The top, left matrix entry. + double m00; + + /// The top, middle matrix entry. + double m01; + + /// The top, right matrix entry. + double m02; + + /// The bottom, left matrix entry. + double m10; + + /// The bottom, middle matrix entry. + double m11; + + /// The bottom, right matrix entry. + double m12; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/geometry/AffineMatrix3D.idl b/offapi/com/sun/star/geometry/AffineMatrix3D.idl new file mode 100644 index 0000000000..63287a84bc --- /dev/null +++ b/offapi/com/sun/star/geometry/AffineMatrix3D.idl @@ -0,0 +1,103 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module geometry { + +/** This structure defines a 3 by 4 affine matrix.
+ + The matrix defined by this structure constitutes an affine mapping + of a point in 3D to another point in 3D. The last line of a + complete 4 by 4 matrix is omitted, since it is implicitly assumed + to be [0,0,0,1].
+
+ An affine mapping, as performed by this matrix, can be written out
+ as follows, where xs, ys
and zs
are the source, and
+ xd, yd
and zd
the corresponding result coordinates:
+
+
+ xd = m00*xs + m01*ys + m02*zs + m03;
+ yd = m10*xs + m11*ys + m12*zs + m13;
+ zd = m20*xs + m21*ys + m22*zs + m23;
+
+ + Thus, in common matrix language, with M being the + AffineMatrix3D and vs=[xs,ys,zs]^T, vd=[xd,yd,zd]^T two 3D + vectors, the affine transformation is written as + vd=M*vs. Concatenation of transformations amounts to + multiplication of matrices, i.e. a translation, given by T, + followed by a rotation, given by R, is expressed as vd=R*(T*vs) in + the above notation. Since matrix multiplication is associative, + this can be shortened to vd=(R*T)*vs=M'*vs. Therefore, a set of + consecutive transformations can be accumulated into a single + AffineMatrix3D, by multiplying the current transformation with the + additional transformation from the left.
+ + Due to this transformational approach, all geometry data types are + points in abstract integer or real coordinate spaces, without any + physical dimensions attached to them. This physical measurement + units are typically only added when using these data types to + render something onto a physical output device. For 3D coordinates + there is also a projection from 3D to 2D device coordinates needed. + Only then the total transformation matrix (including projection to 2D) + and the device resolution determine the actual measurement unit in 3D.
+ + @since OOo 2.0 + */ +struct AffineMatrix3D +{ + /// The top, left matrix entry. + double m00; + + /// The top, left middle matrix entry. + double m01; + + /// The top, right middle matrix entry. + double m02; + + /// The top, right matrix entry. + double m03; + + /// The middle, left matrix entry. + double m10; + + /// The middle, middle left matrix entry. + double m11; + + /// The middle, middle right matrix entry. + double m12; + + /// The middle, right matrix entry. + double m13; + + /// The bottom, left matrix entry. + double m20; + + /// The bottom, middle left matrix entry. + double m21; + + /// The bottom, middle right matrix entry. + double m22; + + /// The bottom, right matrix entry. + double m23; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/geometry/EllipticalArc.idl b/offapi/com/sun/star/geometry/EllipticalArc.idl new file mode 100644 index 0000000000..f658bf4bfc --- /dev/null +++ b/offapi/com/sun/star/geometry/EllipticalArc.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 . + */ + +module com { module sun { module star { module geometry { + +/** This structure specifies an arbitrary elliptical arc.
+ + This structure contains all parameters necessary to specify + arbitrary elliptical arcs. The parameters are modeled closely + after the SVG specification.
+ + As with the parameters below, there are mostly four different + ellipses arcs (two different ellipses, on which four different + arcs connect start and end point) which satisfy the given set of + constrains. Thus, there are two flags indicating which one of those + ellipses should be taken.
+ + @since OOo 2.0 + */ +struct EllipticalArc +{ + /// Start point of the arc. + RealPoint2D StartPosition; + + + /// End point of the arc. + RealPoint2D EndPosition; + + + /// Main radius in x direction of the ellipse this arc is part of. + double RadiusX; + + + /// Main radius in y direction of the ellipse this arc is part of. + double RadiusY; + + + /** Rotation angle of the x axis of the ellipse relative to the x + axis of the reference coordinate system. + */ + double XAxisRotation; + + + /** If `TRUE`, and there's a choice, take the longer one of two arcs + connecting start and end point. + */ + boolean IsLargeArc; + + + /** If `TRUE`, and there's a choice, take the arc that goes + clock-wise from start to end point. + */ + boolean IsClockwiseSweep; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/geometry/IntegerBezierSegment2D.idl b/offapi/com/sun/star/geometry/IntegerBezierSegment2D.idl new file mode 100644 index 0000000000..7e7a23a3de --- /dev/null +++ b/offapi/com/sun/star/geometry/IntegerBezierSegment2D.idl @@ -0,0 +1,57 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module geometry { + +/** This structure contains the relevant data for a cubic Bezier + curve.
+ + The data is stored integer-valued. The last point of the segment + is taken from the first point of the following segment, and thus + not included herein. That is, when forming a polygon out of cubic + Bezier segments, each two consecutive IntegerBezierSegment2Ds + define the actual curve, with the very last segment providing only + the end point of the last curve, and the remaining members + ignored.
+ + @see com::sun::star::rendering::XBezierPolyPolygon2D + @since OOo 2.0 + */ +struct IntegerBezierSegment2D +{ + /// The x coordinate of the start point. + long Px; + /// The y coordinate of the start point. + long Py; + + /// The x coordinate of the first control point. + long C1x; + /// The y coordinate of the first control point. + long C1y; + + /// The x coordinate of the second control point. + long C2x; + /// The y coordinate of the second control point. + long C2y; + +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/geometry/IntegerPoint2D.idl b/offapi/com/sun/star/geometry/IntegerPoint2D.idl new file mode 100644 index 0000000000..ac00deffa0 --- /dev/null +++ b/offapi/com/sun/star/geometry/IntegerPoint2D.idl @@ -0,0 +1,41 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module geometry { + +/** This structure defines a two-dimensional point + + This structure contains x and y integer-valued coordinates of a + two-dimensional point. + + @since OOo 2.0 + */ +struct IntegerPoint2D +{ + /// The x coordinate of the point. + long X; + + + /// The x coordinate of the point. + long Y; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/geometry/IntegerRectangle2D.idl b/offapi/com/sun/star/geometry/IntegerRectangle2D.idl new file mode 100644 index 0000000000..f48e76d719 --- /dev/null +++ b/offapi/com/sun/star/geometry/IntegerRectangle2D.idl @@ -0,0 +1,66 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module geometry { + +/* Removed, because XCanvas is private API until further notice. + + The values are stored as integers. Please note that the + com.sun.star.rendering.XCanvas defines the + screen representation of rectangles in such a way that the lower + and the rightmost line of the rectangle are not drawn on + screen. Thus, if for two rectangles R1 and R2, R1.x2 equals R2.x1, + the screen representation of these rectangles will not overlap, + but being exactly adjacent. That also means, that an + IntegerRectangle2D with X1 equal X2 or Y1 equal Y2 can be + considered empty.
+*/ + +/** This structure contains the necessary information for a + two-dimensional rectangle.
+ + @since OOo 2.0 + */ +struct IntegerRectangle2D +{ + /// X coordinate of upper left corner. + long X1; + + + /// Y coordinate of upper left corner. + long Y1; + + + /** X coordinate of lower right corner.
+ + Must be greater than X1 for non-empty rectangles.
+ */ + long X2; + + + /** Y coordinate of lower right corner.
+ + Must be greater than y1 for non-empty rectangles.
+ */ + long Y2; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/geometry/IntegerSize2D.idl b/offapi/com/sun/star/geometry/IntegerSize2D.idl new file mode 100644 index 0000000000..6b5c148e2e --- /dev/null +++ b/offapi/com/sun/star/geometry/IntegerSize2D.idl @@ -0,0 +1,40 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module geometry { + +/** This structure contains data representing a two-dimensional size.
+ + The data is stored integer-valued.
+ + @since OOo 2.0 + */ +struct IntegerSize2D +{ + /// Amount of space occupied in the x direction. + long Width; + + + /// Amount of space occupied in the y direction. + long Height; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/geometry/Matrix2D.idl b/offapi/com/sun/star/geometry/Matrix2D.idl new file mode 100644 index 0000000000..b98e89b687 --- /dev/null +++ b/offapi/com/sun/star/geometry/Matrix2D.idl @@ -0,0 +1,80 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module geometry { + +/** This structure defines a 2 by 2 matrix.
+ + This constitutes a linear mapping of a point in 2D to another + point in 2D.
+ + The matrix defined by this structure constitutes a linear + mapping of a point in 2D to another point in 2D. In contrast to + the com.sun.star.geometry.AffineMatrix2D, this + matrix does not include any translational components.
+
+ A linear mapping, as performed by this matrix, can be written out
+ as follows, where xs
and ys
are the source, and
+ xd
and yd
the corresponding result coordinates:
+
+
+ xd = m00*xs + m01*ys;
+ yd = m10*xs + m11*ys;
+
+ + Thus, in common matrix language, with M being the + Matrix2D and vs=[xs,ys]^T, vd=[xd,yd]^T two 2D + vectors, the linear mapping is written as + vd=M*vs. Concatenation of transformations amounts to + multiplication of matrices, i.e. a scaling, given by S, + followed by a rotation, given by R, is expressed as vd=R*(S*vs) in + the above notation. Since matrix multiplication is associative, + this can be shortened to vd=(R*S)*vs=M'*vs. Therefore, a set of + consecutive transformations can be accumulated into a single + Matrix2D, by multiplying the current transformation with the + additional transformation from the left.
+ + Due to this transformational approach, all geometry data types are + points in abstract integer or real coordinate spaces, without any + physical dimensions attached to them. This physical measurement + units are typically only added when using these data types to + render something onto a physical output device, like a screen or a + printer. Then, the total transformation matrix and the device + resolution determine the actual measurement unit.
+ + @since OOo 2.0 + */ +struct Matrix2D +{ + /// The top, left matrix entry. + double m00; + + /// The top, right matrix entry. + double m01; + + /// The bottom, left matrix entry. + double m10; + + /// The bottom, right matrix entry. + double m11; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/geometry/RealBezierSegment2D.idl b/offapi/com/sun/star/geometry/RealBezierSegment2D.idl new file mode 100644 index 0000000000..c61c72a679 --- /dev/null +++ b/offapi/com/sun/star/geometry/RealBezierSegment2D.idl @@ -0,0 +1,57 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module geometry { + +/** This structure contains the relevant data for a cubic Bezier + curve.
+ + The data is stored real-valued. The last point of the segment is + taken from the first point of the following segment, and thus not + included herein. That is, when forming a polygon out of cubic + Bezier segments, each two consecutive RealBezierSegment2D + define the actual curve, with the very last segment providing only + the end point of the last curve, and the remaining members + ignored.
+ + @see com::sun::star::rendering::XBezierPolyPolygon2D + @since OOo 2.0 + */ +struct RealBezierSegment2D +{ + /// The x coordinate of the start point. + double Px; + /// The y coordinate of the start point. + double Py; + + /// The x coordinate of the first control point. + double C1x; + /// The y coordinate of the first control point. + double C1y; + + /// The x coordinate of the second control point. + double C2x; + /// The y coordinate of the second control point. + double C2y; + +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/geometry/RealPoint2D.idl b/offapi/com/sun/star/geometry/RealPoint2D.idl new file mode 100644 index 0000000000..b130822edf --- /dev/null +++ b/offapi/com/sun/star/geometry/RealPoint2D.idl @@ -0,0 +1,41 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module geometry { + +/** This structure defines a two-dimensional point + + This structure contains x and y real-valued coordinates of a + two-dimensional point. + + @since OOo 2.0 + */ +struct RealPoint2D +{ + /// The x coordinate of the point. + double X; + + + /// The x coordinate of the point. + double Y; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/geometry/RealRectangle2D.idl b/offapi/com/sun/star/geometry/RealRectangle2D.idl new file mode 100644 index 0000000000..f60037f009 --- /dev/null +++ b/offapi/com/sun/star/geometry/RealRectangle2D.idl @@ -0,0 +1,66 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module geometry { + +/* Removed, because XCanvas is private API until further notice. + + The values are stored as reals. Please note that the + com.sun.star.rendering.XCanvas defines the + screen representation of rectangles in such a way that the lower + and the rightmost line of the rectangle are not drawn on + screen. Thus, if for two rectangles R1 and R2, R1.x2 equals R2.x1, + the screen representation of these rectangles will not overlap, + but being exactly adjacent. That also means, that an + IntegerRectangle2D with X1 equal X2 or Y1 equal Y2 can be + considered empty.
+*/ + +/** This structure contains the necessary information for a + two-dimensional rectangle.
+ + @since OOo 2.0 + */ +struct RealRectangle2D +{ + /// X coordinate of upper left corner . + double X1; + + + /// Y coordinate of upper left corner. + double Y1; + + + /** X coordinate of lower right corner.
+ + Must be greater than x1 for non-empty rectangles.
. + */ + double X2; + + + /** Y coordinate of lower right corner.
+ + Must be greater than y1 for non-empty rectangles.
+ */ + double Y2; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/geometry/RealRectangle3D.idl b/offapi/com/sun/star/geometry/RealRectangle3D.idl new file mode 100644 index 0000000000..4e553e094c --- /dev/null +++ b/offapi/com/sun/star/geometry/RealRectangle3D.idl @@ -0,0 +1,64 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module geometry { + +/** This structure contains the necessary information for a + three-dimensional cube.
+ + @since OOo 2.0 + */ +struct RealRectangle3D +{ + /// minimum X coordinate. + double X1; + + + /// minimum Y coordinate. + double Y1; + + + /// minimum Z coordinate. + double Z1; + + + /** maximum X coordinate.
+ + Must be greater than X1 for non-empty cubes.
. + */ + double X2; + + + /** maximum Y coordinate.
+ + Must be greater than Y1 for non-empty cubes.
+ */ + double Y2; + + + /** maximum Z coordinate.
+ + Must be greater than Z1 for non-empty cubes.
+ */ + double Z2; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/geometry/RealSize2D.idl b/offapi/com/sun/star/geometry/RealSize2D.idl new file mode 100644 index 0000000000..fa96d0839a --- /dev/null +++ b/offapi/com/sun/star/geometry/RealSize2D.idl @@ -0,0 +1,40 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module geometry { + +/** This structure contains data representing a two-dimensional size.
+ + The data is stored real-valued.
+ + @since OOo 2.0 + */ +struct RealSize2D +{ + /// Amount of space occupied in the x direction. + double Width; + + + /// Amount of space occupied in the y direction. + double Height; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/geometry/XMapping2D.idl b/offapi/com/sun/star/geometry/XMapping2D.idl new file mode 100644 index 0000000000..b161543f65 --- /dev/null +++ b/offapi/com/sun/star/geometry/XMapping2D.idl @@ -0,0 +1,54 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module geometry { + +/** Interface defining an arbitrary bijective mapping from R^2 to R^2.
+ + This interface provides methods to define an arbitrary bijective + mapping from R^2 to R^2, i.e. from the two-dimensional space of + real numbers onto itself, as is representable by the + double floating point type. The mapping must be + bijective, i.e. map a pair of real numbers to exactly one other + pair of real numbers and vice versa, to facilitate a working + inverse. Bijectiveness also implies completeness, i.e. for every + pair of real numbers there must be another pair that is mapped + upon them.
+ + @since OOo 2.0 + */ +interface XMapping2D : ::com::sun::star::uno::XInterface +{ + /** Forward 2D mapping function + */ + RealPoint2D map( [in] RealPoint2D aPoint ); + + + /** Inverse 2D mapping function.
+
+ The following invariant must hold:
+ map(mapInverse(p))=p
. This effectively rules out
+ non-bijective mappings.
+ */ + RealPoint2D mapInverse( [in] RealPoint2D aPoint ); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/graphic/EmfTools.idl b/offapi/com/sun/star/graphic/EmfTools.idl new file mode 100644 index 0000000000..41891c8d80 --- /dev/null +++ b/offapi/com/sun/star/graphic/EmfTools.idl @@ -0,0 +1,34 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module graphic +{ + +/** Service that describes the necessary interfaces and properties + to handle emf files. + Parses a WMF/EMF/EMF+ file to a sequence of B2DPrimitives for internal usage + + @since LibreOffice 6.0 + */ + +service EmfTools : XEmfParser; + +} ; } ; } ; } ; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/graphic/Graphic.idl b/offapi/com/sun/star/graphic/Graphic.idl new file mode 100644 index 0000000000..ce1555779f --- /dev/null +++ b/offapi/com/sun/star/graphic/Graphic.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 . + */ + +module com { module sun { module star { module graphic +{ + +/** This service acts as a container for graphics + +
The main interface that has to be implemented for this service + is the XGraphic interface, which itself exposes only + a few methods. Beside this, a Graphic service + incorporates the GraphicDescriptor to give + access to the attributes of the graphic. + + @see XGraphic + @see XGraphicTransformer + @see GraphicDescriptor +*/ +published service Graphic +{ + interface ::com::sun::star::graphic::XGraphic; + + /** + [optional] interface ::com::sun::star::graphic::XGraphicTransformer; + */ + + service ::com::sun::star::graphic::GraphicDescriptor; +}; + +} ; } ; } ; } ; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/graphic/GraphicColorMode.idl b/offapi/com/sun/star/graphic/GraphicColorMode.idl new file mode 100644 index 0000000000..b4a6cabac0 --- /dev/null +++ b/offapi/com/sun/star/graphic/GraphicColorMode.idl @@ -0,0 +1,43 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module graphic { + + +/** describes different color modes which can be specified when requesting a graphic. + */ +constants GraphicColorMode +{ + /** describes normal graphic colors, no particular color transformation is applied + to the graphics. + */ + const long NORMAL = 0; + + /** used when requesting graphics which are suitable for a high-contrast + environment. + */ + const long HIGH_CONTRAST = 1; +}; + + +}; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/graphic/GraphicDescriptor.idl b/offapi/com/sun/star/graphic/GraphicDescriptor.idl new file mode 100644 index 0000000000..a3cfdbe3b4 --- /dev/null +++ b/offapi/com/sun/star/graphic/GraphicDescriptor.idl @@ -0,0 +1,148 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module graphic +{ + +/** This service describes all graphic properties that are available + via the com::sun::star::beans::XPropertySet interface + + @see XPropertySet +*/ +published service GraphicDescriptor +{ + /** The property interface by which the properties of all + supported services are exchanged + */ + interface ::com::sun::star::beans::XPropertySet; + + /** The type of the graphic + + @see GraphicType + */ + [property] byte GraphicType; + + /** The MimeType of the loaded graphic + +
The mime can be the original mime type of the graphic + source the graphic container was constructed from or it + can be the internal mime type image/x-vclgraphic, in which + case the original mime type is not available anymore
+ +Currently, the following mime types are supported for + loaded graphics:
+This property may not be available in case of + vector graphics or if the pixel size can not be + determined correctly for some formats without loading + the whole graphic
+ */ + [optional, property] ::com::sun::star::awt::Size SizePixel; + + /** The Size of the graphic in 100th mm. + +This property may not be available in case of + pixel graphics or if the logical size can not be + determined correctly for some formats without loading + the whole graphic
+ */ + [optional, property] ::com::sun::star::awt::Size Size100thMM; + + /** The number of bits per pixel used for the pixel graphic + +This property is not available for vector + graphics and may not be available for some kinds + of pixel graphics
+ */ + [optional, property] byte BitsPerPixel; + + /** Indicates that it is a transparent graphic + +This property is always `TRUE` for vector graphics. + The status of this flag is not always clear if the + graphic was not loaded at all, e.g. in case of just + querying for the GraphicDescriptor.
+ */ + [optional, property] boolean Transparent; + + /** Indicates that it is a pixel graphic with an alpha channel + +The status of this flag is not always clear if the + graphic was not loaded at all, e.g. in case of just + querying for the GraphicDescriptor
+ */ + [optional, property] boolean Alpha; + + /** Indicates that it is a graphic that consists of several + frames that can be played as an animation + +The status of this flag is not always clear if the + graphic was not loaded at all, e.g. in case of just + querying for the GraphicDescriptor
+ */ + [optional, property] boolean Animated; + + /** Indicates that the graphic is an external linked graphic + + @since LibreOffice 6.1 + */ + [optional, property] boolean Linked; + + /** The URL of the location from where the graphic was loaded from + + @since LibreOffice 6.1 + */ + [optional, property] string OriginURL; +}; + +} ; } ; } ; } ; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/graphic/GraphicMapper.idl b/offapi/com/sun/star/graphic/GraphicMapper.idl new file mode 100644 index 0000000000..05075298f0 --- /dev/null +++ b/offapi/com/sun/star/graphic/GraphicMapper.idl @@ -0,0 +1,23 @@ +/* -*- 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/. + * + */ + +module com { module sun { module star { module graphic +{ + +/** implementation of the XGraphicMapper interface + + @see XGraphicMapper + @since LibreOffice 7.1 +*/ +service GraphicMapper : XGraphicMapper; + +} ; } ; } ; } ; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/graphic/GraphicObject.idl b/offapi/com/sun/star/graphic/GraphicObject.idl new file mode 100644 index 0000000000..c1f3b61442 --- /dev/null +++ b/offapi/com/sun/star/graphic/GraphicObject.idl @@ -0,0 +1,39 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module graphic +{ +/** TheGraphicObject
service can be used to create XGraphicObject instances.
+
+ @see GraphicObject
+ @see GraphicProvider
+ @see MediaProperties
+*/
+
+service GraphicObject : XGraphicObject
+{
+ /** Creates a GraphicObject
+ */
+ create();
+
+};
+
+} ; } ; } ; } ;
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/graphic/GraphicProvider.idl b/offapi/com/sun/star/graphic/GraphicProvider.idl
new file mode 100644
index 0000000000..01961f89bd
--- /dev/null
+++ b/offapi/com/sun/star/graphic/GraphicProvider.idl
@@ -0,0 +1,37 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module graphic
+{
+
+/** Central service of the Graphic API that gives access to graphics
+ of any kind
+
+ This service allows to load graphics from and to store graphics + to any location. The one and only interface that has to be implemented + is the XGraphicProvider interface, that exposes the necessary + methods for loading and storing the graphic contents and descriptors
+ + @see XGraphicProvider +*/ +published service GraphicProvider : XGraphicProvider; + +} ; } ; } ; } ; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/graphic/GraphicRasterizer.idl b/offapi/com/sun/star/graphic/GraphicRasterizer.idl new file mode 100644 index 0000000000..a9146d06a0 --- /dev/null +++ b/offapi/com/sun/star/graphic/GraphicRasterizer.idl @@ -0,0 +1,39 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module graphic +{ + +/** Service that describes the necessary interfaces and properties + to convert arbitrary graphic data to a XGraphic + interface containing a pixel graphic, that can be rendered the usual + ways. + */ + +service GraphicRasterizer +{ + /** Interface to initiate the rasterizing process + */ + interface ::com::sun::star::graphic::XGraphicRasterizer; + +}; + +} ; } ; } ; } ; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/graphic/GraphicRendererVCL.idl b/offapi/com/sun/star/graphic/GraphicRendererVCL.idl new file mode 100644 index 0000000000..e9a45c965e --- /dev/null +++ b/offapi/com/sun/star/graphic/GraphicRendererVCL.idl @@ -0,0 +1,64 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module graphic +{ + +/** Service that describes the necessary interfaces and properties + to render a graphic container of XGraphic type + +To render a XGraphic container, just create an + instance of this service, set the appropriate properties and use + the XGraphicRenderer interface to initiate the rendering + process itself
+ */ +service GraphicRendererVCL +{ + /** Interface to initiate the rendering process + */ + interface ::com::sun::star::graphic::XGraphicRenderer; + + /** The property interface by which the properties of all + supported services are exchanged + */ + interface ::com::sun::star::beans::XPropertySet; + + /** Holds the device onto which the XGraphic + container should be rendered + +In case of using VCL Devices, this property should + hold a com::sun::star::awt::XDevice + interface
+ */ + [property] any Device; + + /** Specifies the destination rectangle, into which the graphic + content is to be rendered onto the device + */ + [property] ::com::sun::star::awt::Rectangle DestinationRect; + + + /** Additional properties for rendering, unspecified at the moment + */ + [optional, property] any RenderData; +}; + +} ; } ; } ; } ; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/graphic/GraphicType.idl b/offapi/com/sun/star/graphic/GraphicType.idl new file mode 100644 index 0000000000..b2d0c05f0d --- /dev/null +++ b/offapi/com/sun/star/graphic/GraphicType.idl @@ -0,0 +1,42 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module graphic { + +/** Constants that describe the type of graphic +*/ +published constants GraphicType +{ + /** Graphic is empty + */ + const byte EMPTY = 0; + + /** Graphic is represented through single pixels + */ + const byte PIXEL = 1; + + /** Graphic is represented through vectors + */ + const byte VECTOR = 2; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/graphic/MediaProperties.idl b/offapi/com/sun/star/graphic/MediaProperties.idl new file mode 100644 index 0000000000..ac1d64b96f --- /dev/null +++ b/offapi/com/sun/star/graphic/MediaProperties.idl @@ -0,0 +1,108 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module graphic +{ + +/** This service describes the properties that are used + when using the XGraphicProvider interface methods +*/ +published service MediaProperties +{ + /** Property that describes the location of the source or target + of the graphic as URL. + +A URL can be used instead of the + #InputStream or #OutputStream + property
+ +In addition to the normal protocols like file:// or http:// + you can use private URLs as follows to get access to graphics + lying inside the graphicrepository system within an Office context: +
private:graphicrepository/<path_in_repository>
+ Note: As of LibreOffice 6.1 GraphicObject scheme URLs are not supported anymore. + For example: +
A #InputStream can be used instead of the + #URL property
+ + @see com::sun::star::io::XInputStream + */ + [optional, property ] ::com::sun::star::io::XInputStream InputStream; + + /** This property is only used for storing graphics + +A #OutputStream can be used instead of the + #URL property
+ + @see com::sun::star::io::XStream + */ + [optional, property ] ::com::sun::star::io::XStream OutputStream; + + /** This property is only used for storing graphics and describes the + format into which the graphic is to be converted + +At the moment, the following mime types are supported for storing + graphics:
+ +The interface itself can be retrieved by using the appropriate + methods of XGraphicProvider interface. + XGraphicProvider also offers a method to store + the graphic content at a specific location
+ +To render the graphic content onto a specific device, you + have to create a XGraphicRenderer interface and pass + this interface appropriately
+ + @see XGraphicProvider + @see XGraphicRenderer + */ +published interface XGraphic : ::com::sun::star::uno::XInterface +{ + /** Get the type of the contained graphic + + @returns + The type of the contained graphic + + @see GraphicType + */ + byte getType(); +}; + +} ; } ; } ; } ; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/graphic/XGraphicMapper.idl b/offapi/com/sun/star/graphic/XGraphicMapper.idl new file mode 100644 index 0000000000..3de68e5bcf --- /dev/null +++ b/offapi/com/sun/star/graphic/XGraphicMapper.idl @@ -0,0 +1,28 @@ +/* -*- 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/. + */ + +module com { module sun { module star { module graphic +{ + +/** This interface allows mapping of XGraphics for a certain string key + + @since LibreOffice 7.1 + */ +interface XGraphicMapper +{ + /** Find if we have the XGraphic for the certain key */ + com::sun::star::graphic::XGraphic findGraphic([in] string Id); + + /** Insert a new entry to map an id/key to the XGraphic */ + void putGraphic([in] string Id, [in] com::sun::star::graphic::XGraphic Graphic); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/graphic/XGraphicObject.idl b/offapi/com/sun/star/graphic/XGraphicObject.idl new file mode 100644 index 0000000000..15bbe748f3 --- /dev/null +++ b/offapi/com/sun/star/graphic/XGraphicObject.idl @@ -0,0 +1,40 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module graphic +{ +interface XGraphic; +/**XGraphicObject
objects represent in-memory image and graphic
+ objects.
+
+ @see XGraphicObject
+ @see GraphicProvider
+ @see MediaProperties
+*/
+
+interface XGraphicObject : ::com::sun::star::uno::XInterface
+{
+ /** is the associated image/graphic for this object.
+ */
+ [attribute] XGraphic Graphic;
+};
+
+} ; } ; } ; } ;
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/graphic/XGraphicProvider.idl b/offapi/com/sun/star/graphic/XGraphicProvider.idl
new file mode 100644
index 0000000000..b9777996c5
--- /dev/null
+++ b/offapi/com/sun/star/graphic/XGraphicProvider.idl
@@ -0,0 +1,99 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module graphic
+{
+
+/** This interface acts as the main interface to handle graphic
+ content. It is used to load graphics, store graphics and
+ to get information about unloaded graphics
+ */
+published interface XGraphicProvider : ::com::sun::star::uno::XInterface
+{
+ /** Calling this method returns a
+ com::sun::star::beans::XPropertySet
+ interface that gives access to the properties of the
+ unloaded graphic
+
+ In most cases, this method will be used to query the + mime type of the graphic and, in the case of pixel graphics, + the resulting size after loading
+ + @param MediaProperties + A sequence of property values to describe the location + of the graphic, for which the attributes should be returned + + @returns + A com::sun::star::beans::XPropertySet interface + to get access to the different graphic properties + + @see MediaProperties + @see GraphicDescriptor + @see com::sun::star::beans::PropertyValues + */ + ::com::sun::star::beans::XPropertySet queryGraphicDescriptor( [in] ::com::sun::star::beans::PropertyValues MediaProperties ) + raises( ::com::sun::star::io::IOException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::lang::WrappedTargetException ); + + + + /** Calling this method returns a XGraphic interface + that holds the graphic content after loading the graphic + + @param MediaProperties + A sequence of property values to describe the location + of the graphic from which the graphic is to be loaded + + @returns + The XGraphic interface + + @see MediaProperties + @see XGraphic + @see com::sun::star::beans::PropertyValues + */ + XGraphic queryGraphic( [in] ::com::sun::star::beans::PropertyValues MediaProperties ) + raises( ::com::sun::star::io::IOException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::lang::WrappedTargetException ); + + /** Store the graphic content, represented through the XGraphic + interface at the specified location + + @param Graphic + The graphic that should be stored + + @param MediaProperties + A sequence of property values to describe the destination + location of the graphic + + @see XGraphic + @see MediaProperties + @see com::sun::star::beans::PropertyValues + */ + void storeGraphic( [in] ::com::sun::star::graphic::XGraphic Graphic, + [in] ::com::sun::star::beans::PropertyValues MediaProperties ) + raises( ::com::sun::star::io::IOException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::lang::WrappedTargetException ); +}; + +} ; } ; } ; } ; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/graphic/XGraphicProvider2.idl b/offapi/com/sun/star/graphic/XGraphicProvider2.idl new file mode 100644 index 0000000000..a71ba306d5 --- /dev/null +++ b/offapi/com/sun/star/graphic/XGraphicProvider2.idl @@ -0,0 +1,40 @@ +/* -*- 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/. + */ + +module com { module sun { module star { module graphic +{ + +/** This interface allows operations on multiple graphics with one method + call. + */ +interface XGraphicProvider2 : XGraphicProvider +{ + /** Calling this method returns XGraphic interfaces + that hold loaded graphics. + + @param MediaPropertiesSeq + A sequence of sequence of property values to describe the location + of the graphics. + + @returns + The XGraphic interfaces + + @see XGraphicProvider::queryGraphic + + @since LibreOffice 6.0 + */ + sequence< XGraphic > queryGraphics([in] sequence< com::sun::star::beans::PropertyValues> MediaPropertiesSeq) + raises( com::sun::star::io::IOException, + com::sun::star::lang::IllegalArgumentException, + com::sun::star::lang::WrappedTargetException ); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/graphic/XGraphicRasterizer.idl b/offapi/com/sun/star/graphic/XGraphicRasterizer.idl new file mode 100644 index 0000000000..2436c9a4c4 --- /dev/null +++ b/offapi/com/sun/star/graphic/XGraphicRasterizer.idl @@ -0,0 +1,129 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module graphic +{ + +/** This interfaces exposes the initialize and a rasterize method to + rasterize a given data stream to a pixel graphic + */ +interface XGraphicRasterizer : ::com::sun::star::uno::XInterface +{ + /** Initializing the rasterizer + +This method could also be used to determine, if + the provided data is able to be rasterized by the + implementation. The implementation should take care of + this feature as well as setting the default image size in + pixel within the given output parameter.
+ + @param DataStream + The input stream of data that should be rasterized + + @param DPI_X + The horizontal resolution of the callers device in pixel per inch. This + value is needed to calculate the correct dimensions of the graphic to be + rasterized. If a value ofThe XGraphic container will contain a pixel + type graphic after a successful rasterization process
+ +In case of any fault during the rasterization process, + the XGraphic container will be empty afterwards and + the method will return false
+ + @param Width + The width in pixel of the graphic to be rasterized. + This parameter is used without taking other transformation + values into account. + + @param Height + The height in pixel of the graphic to be rasterized. + This parameter is used without taking other transformation + values into account. + + @param RotateAngle + The rotation angle of the graphic to be rasterized. + This parameter is used without taking other transformation + values into account. The rotation is applied after scaling + and shearing the original image. + + @param ShearAngle_X + The horizontal shear angle of the graphic to be rasterized. + This parameter is used without taking other transformation + values into account. The shearing is applied after scaling + and before rotation of the image. + + @param ShearAngle_Y + The vertical shear angle of the graphic to be rasterized. + This parameter is used without taking other transformation + values into account. The shearing is applied after scaling + and before rotation of the image. + + @param RasterizeProperties + Additional properties for special needs (undefined by now) + + @returns com::sun::star::graphic::XGraphic + An interface to a graphic container that holds the rasterized pixel data + + @see com::sun::star::beans::PropertyValues + @see com::sun::star::graphic::XGraphic + */ + com::sun::star::graphic::XGraphic rasterize( [in] unsigned long Width, + [in] unsigned long Height, + [in] double RotateAngle, + [in] double ShearAngle_X, + [in] double ShearAngle_Y, + [in] com::sun::star::beans::PropertyValues RasterizeProperties ); +}; + +} ; } ; } ; } ; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/graphic/XGraphicRenderer.idl b/offapi/com/sun/star/graphic/XGraphicRenderer.idl new file mode 100644 index 0000000000..c63ef4b4f9 --- /dev/null +++ b/offapi/com/sun/star/graphic/XGraphicRenderer.idl @@ -0,0 +1,40 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module graphic +{ + +/** This interfaces exposes just one method to render + a XGraphic container + */ +interface XGraphicRenderer : ::com::sun::star::uno::XInterface +{ + /** Renders the XGraphic container + + @param Graphic + The graphic container to be rendered + + @see XGraphic + */ + void render( [in] ::com::sun::star::graphic::XGraphic Graphic ); +}; + +} ; } ; } ; } ; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/graphic/XGraphicTransformer.idl b/offapi/com/sun/star/graphic/XGraphicTransformer.idl new file mode 100644 index 0000000000..e54664e618 --- /dev/null +++ b/offapi/com/sun/star/graphic/XGraphicTransformer.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 . + */ + +module com { module sun { module star { module graphic +{ + +/** This interface is allowing to transform a XGraphic + +To transform a XGraphic, just the corresponding + method has to be used, a new XGraphic instance will be returned +
+*/ +interface XGraphicTransformer : ::com::sun::star::uno::XInterface +{ + /** transforms a Graphic + + @returns + The transformed graphic + */ + com::sun::star::graphic::XGraphic colorChange( [ in ] com::sun::star::graphic::XGraphic In, + [ in ] long ColorFrom, [ in ] byte tolerance, [ in ] long ColorTo, [ in ] byte AlphaTo ) + raises( ::com::sun::star::lang::IllegalArgumentException ); + + /** applies Duotone effect + + @returns + The modified graphic + */ + com::sun::star::graphic::XGraphic applyDuotone( [ in ] com::sun::star::graphic::XGraphic In, + [ in ] long ColorOne, [ in ] long ColorTwo ) + raises( ::com::sun::star::lang::IllegalArgumentException ); + + /** changes brightness/contrast + + @param In + The input Graphic. + @param brightness + The brightness that shall be applied. + @param contrast + The contrast that shall be applied. + @param mso whether to use MSOffice brightness/contrast formula + @returns + The modified graphic + */ + com::sun::star::graphic::XGraphic applyBrightnessContrast( [ in ] com::sun::star::graphic::XGraphic In, + [ in ] long brightness, [ in ] long contrast, [ in ] boolean mso ) + raises( ::com::sun::star::lang::IllegalArgumentException ); +}; + +} ; } ; } ; } ; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/graphic/XPdfDecomposer.idl b/offapi/com/sun/star/graphic/XPdfDecomposer.idl new file mode 100644 index 0000000000..e907b96fd6 --- /dev/null +++ b/offapi/com/sun/star/graphic/XPdfDecomposer.idl @@ -0,0 +1,38 @@ +/* -*- 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/. + */ + +module com { module sun { module star { module graphic { + +interface XPrimitive2D; + +/** XPdfDecomposer interface + + This renders a PDF data into a bitmap and returns it as a primitive. + + @since LibreOffice 7.0 + */ +interface XPdfDecomposer : ::com::sun::star::uno::XInterface +{ + /** Retrieve decomposed list - in this case a bitmap with the rendered PDF. + + @param xDataContainer + The PDF data in a data container + + @param xDecompositionParameters + Parameters for decomposition. Parameters include: + + sal_Int32 PageIndex - which page to use + */ + sequenceIt is used in word break iterator and text conversion. +
+ + @see XBreakIterator + @see XTextConversion + */ +published struct Boundary +{ + /// Start position of a word, inclusive + long startPos ; + + /// End position of a word, exclusive + long endPos; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/i18n/BreakIterator.idl b/offapi/com/sun/star/i18n/BreakIterator.idl new file mode 100644 index 0000000000..701e87e884 --- /dev/null +++ b/offapi/com/sun/star/i18n/BreakIterator.idl @@ -0,0 +1,35 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module i18n { + + +/** contains the base routines for iteration in Unicode string. Iterates over + characters, words, sentences and line breaks. + +It also contains a BreakIterator service for Asian languages. +
+*/ +published service BreakIterator : com::sun::star::i18n::XBreakIterator; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/i18n/BreakType.idl b/offapi/com/sun/star/i18n/BreakType.idl new file mode 100644 index 0000000000..f44506bf59 --- /dev/null +++ b/offapi/com/sun/star/i18n/BreakType.idl @@ -0,0 +1,43 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module i18n { + + +/** + Constants to specify the type of a line break, used with + LineBreakResults::breakType(). + */ + +published constants BreakType +{ + /// Line break is a word break. + const short WORDBOUNDARY = 1; + + /// Line break is a result of hyphenation. + const short HYPHENATION = 2; + + /// Line break - hanging punctuation recognized. + const short HANGINGPUNCTUATION = 3; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/i18n/CTLScriptType.idl b/offapi/com/sun/star/i18n/CTLScriptType.idl new file mode 100644 index 0000000000..f4eb3f4ba8 --- /dev/null +++ b/offapi/com/sun/star/i18n/CTLScriptType.idl @@ -0,0 +1,54 @@ +/* -*- 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 . + */ + + + +module com { module sun { module star { module i18n { + + +/** CTL script type constants for layout engine, returned by + XScriptTypeDetector::getCTLScriptType() + + @since OOo 1.1.2 + @deprecated since LibreOffice 7.6 +*/ + +published constants CTLScriptType +{ + /// For CTL scripts OOo currently does not support or could not handle + const short CTL_UNKNOWN = 0; + + /// For Hebrew script + const short CTL_HEBREW = 1; + + /// For Arabic script + const short CTL_ARABIC = 2; + + /// For Thai script + const short CTL_THAI = 3; + + /// For Indic script (including Devanagari, Tamil, Telugu and Gujarati script) + const short CTL_INDIC = 4; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/i18n/Calendar.idl b/offapi/com/sun/star/i18n/Calendar.idl new file mode 100644 index 0000000000..87cace6169 --- /dev/null +++ b/offapi/com/sun/star/i18n/Calendar.idl @@ -0,0 +1,52 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module i18n { + + +/** + A calendar as returned in a sequence by + XLocaleData::getAllCalendars(). + + @see XLocaleData + for links to DTD of XML locale data files. + */ + +published struct Calendar +{ + /// the days of the week, see also CalendarItem. + sequence< CalendarItem > Days; + /// the months of the year, see also CalendarItem. + sequence< CalendarItem > Months; + /// the possible eras, see also CalendarItem. + sequence< CalendarItem > Eras; + /// the ID of the day with which the week begins. + string StartOfWeek; + /// how many days must reside in the first week of a year. + short MinimumNumberOfDaysForFirstWeek; + /// if this is the default calendar for a given locale. + boolean Default; + /// the name of the calendar, for example, Gregorian. + string Name; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/i18n/Calendar2.idl b/offapi/com/sun/star/i18n/Calendar2.idl new file mode 100644 index 0000000000..e11bbd4973 --- /dev/null +++ b/offapi/com/sun/star/i18n/Calendar2.idl @@ -0,0 +1,71 @@ +/* -*- 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/. + */ + + +module com { module sun { module star { module i18n { + + +/** + Calendar items as returned in a sequence by + XLocaleData3::getAllCalendars2(). + +Similar to + ::com::sun::star::i18n::Calendar this provides + additional members with a sequence of possessive (genitive case) and + partitive case month names for locales that use them, for example + Slavic locales. If a locale does not provide the possessive form in + #GenitiveMonths, the names are identical to the + nominative case nouns in Calendar::Months. If a + locale does not provide the partitive case in + #PartitiveMonths, the names are identical to + #GenitiveMonths.
+ +The sequences are of type + com::sun::star::i18n::CalendarItem2 instead of + com::sun::star::i18n::CalendarItem, with the + additional NarrowName member. + + @see XLocaleData + for links to DTD of XML locale data files. + + @since LibreOffice 3.5 + */ + +published struct Calendar2 +{ + /// The days of the week. + sequence< CalendarItem2 > Days; + + /// The months of the year. + sequence< CalendarItem2 > Months; + + /// The months of the year in possessive genitive case. + sequence< CalendarItem2 > GenitiveMonths; + + /// The months of the year in partitive case. + sequence< CalendarItem2 > PartitiveMonths; + + /// The possible eras. + sequence< CalendarItem2 > Eras; + + /// The ID of the day with which the week begins. + string StartOfWeek; + + /// How many days must reside in the first week of a year. + short MinimumNumberOfDaysForFirstWeek; + + /// If this is the default calendar for a given locale. + boolean Default; + + /// The name of the calendar, for example, Gregorian. + string Name; +}; + +}; }; }; }; + diff --git a/offapi/com/sun/star/i18n/CalendarDisplayCode.idl b/offapi/com/sun/star/i18n/CalendarDisplayCode.idl new file mode 100644 index 0000000000..12efec62ef --- /dev/null +++ b/offapi/com/sun/star/i18n/CalendarDisplayCode.idl @@ -0,0 +1,117 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module i18n { + + + +/** + Constants to use with XExtendedCalendar::getDisplayString(). + +
The examples given are for an English Gregorian calendar, note + that other calendars or locales may return completely different + strings, for example not a four digit year but a CJK name instead. +
+ + @since OOo 1.1.2 + */ +published constants CalendarDisplayCode +{ + /// Day of month, one or two digits, no leading zero. + const long SHORT_DAY = 1; + /// Day of month, two digits, with leading zero. + const long LONG_DAY = 2; + /// Day of week, abbreviated name. + const long SHORT_DAY_NAME = 3; + /// Day of week, full name. + const long LONG_DAY_NAME = 4; + + /// Month of year, one or two digits, no leading zero. + const long SHORT_MONTH = 5; + /// Month of year, with leading zero. + const long LONG_MONTH = 6; + /// Abbreviated month name. + const long SHORT_MONTH_NAME = 7; + /// Full month name. + const long LONG_MONTH_NAME = 8; + + /// Year, two digits. + const long SHORT_YEAR = 9; + /// Year, four digits. + const long LONG_YEAR = 10; + /// Abbreviated era name, for example, BC or AD. + const long SHORT_ERA = 11; + /// Full era name, for example, "Before Christ" or "Anno Dominus". + const long LONG_ERA = 12; + /// Combined short year and era, order depends on locale/calendar. + const long SHORT_YEAR_AND_ERA = 13; + /// Combined full year and era, order depends on locale/calendar. + const long LONG_YEAR_AND_ERA = 14; + + /// Short quarter, for example, "Q1" + const long SHORT_QUARTER = 15; + /// Long quarter, for example, "1st quarter" + const long LONG_QUARTER = 16; + + /** Abbreviated possessive genitive case month name. + @since LibreOffice 3.5 + */ + const long SHORT_GENITIVE_MONTH_NAME = 17; + + /** Full possessive genitive case month name. + @since LibreOffice 3.5 + */ + const long LONG_GENITIVE_MONTH_NAME = 18; + + /** Narrow possessive genitive case month name. + @since LibreOffice 3.5 + */ + const long NARROW_GENITIVE_MONTH_NAME = 19; + + /** Abbreviated partitive case month name. + @since LibreOffice 3.5 + */ + const long SHORT_PARTITIVE_MONTH_NAME = 20; + + /** Full partitive case month name. + @since LibreOffice 3.5 + */ + const long LONG_PARTITIVE_MONTH_NAME = 21; + + /** Narrow partitive case month name. + @since LibreOffice 3.5 + */ + const long NARROW_PARTITIVE_MONTH_NAME = 22; + + /** Day of week, narrow name. + @since LibreOffice 3.5 + */ + const long NARROW_DAY_NAME = 23; + + /** Narrow month name. + @since LibreOffice 3.5 + */ + const long NARROW_MONTH_NAME = 24; + +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/i18n/CalendarDisplayIndex.idl b/offapi/com/sun/star/i18n/CalendarDisplayIndex.idl new file mode 100644 index 0000000000..b23ea8b250 --- /dev/null +++ b/offapi/com/sun/star/i18n/CalendarDisplayIndex.idl @@ -0,0 +1,54 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module i18n { + + + +/** + Values to be passed to XCalendar::getDisplayName(). + */ +published constants CalendarDisplayIndex +{ + /// name of an AM/PM value + const short AM_PM = 0; + /// name of a day of week + const short DAY = 1; + /// name of a month + const short MONTH = 2; + /// name of a year (if used for a specific calendar) + const short YEAR = 3; + /// name of an era, like BC/AD + const short ERA = 4; + + /** name of a possessive genitive case month + @since LibreOffice 3.5 + */ + const short GENITIVE_MONTH = 5; + + /** name of a partitive case month + @since LibreOffice 3.5 + */ + const short PARTITIVE_MONTH = 6; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/i18n/CalendarFieldIndex.idl b/offapi/com/sun/star/i18n/CalendarFieldIndex.idl new file mode 100644 index 0000000000..aca944ccbb --- /dev/null +++ b/offapi/com/sun/star/i18n/CalendarFieldIndex.idl @@ -0,0 +1,123 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module i18n { + + + +/** + Field indices to be passed to various XCalendar methods. + +Field is writable only if marked both Get/Set.
+ +ZONE_OFFSET and DST_OFFSET cooperate such that both values are added, + for example, ZoneOffset=1*60 and DstOffset=1*60 results in a time + difference of GMT+2. The calculation in minutes is + GMT = LocalTime - ZoneOffset - DstOffset
+ +With introduction of ZONE_OFFSET_SECOND_MILLIS and + DST_OFFSET_SECOND_MILLIS the exact calculation in milliseconds is + GMT = LocalTime + - (ZoneOffset*60000 + ZoneOffsetMillis * sign(ZoneOffset)) + - (DstOffset*60000 + DstOffsetMillis * sign(DstOffset)) +
+ */ +published constants CalendarFieldIndex +{ + /// Get AmPmValue. + const short AM_PM = 0; + /// Get/Set day of month [1-31]. + const short DAY_OF_MONTH = 1; + /// Get day of week [0-6]. + const short DAY_OF_WEEK = 2; + /// Get day of year. + const short DAY_OF_YEAR = 3; + /** Get daylight saving time offset in minutes, e.g. [0*60..1*60] +
The DST offset value depends on the actual date set at the + calendar and is determined according to the timezone rules of + the locale used with the calendar.
+Note that there is a bug in OpenOffice.org 1.0 / StarOffice 6.0 + that prevents interpreting this value correctly.
*/ + const short DST_OFFSET = 4; + /// Get/Set hour [0-23]. + const short HOUR = 5; + /// Get/Set minute [0-59]. + const short MINUTE = 6; + /// Get/Set second [0-59]. + const short SECOND = 7; + /// Get/Set milliseconds [0-999]. + const short MILLISECOND = 8; + /// Get week of month. + const short WEEK_OF_MONTH = 9; + /// Get week of year. + const short WEEK_OF_YEAR = 10; + /// Get/Set year. + const short YEAR = 11; + /** Get/Set month [0-...]. +Note that the maximum value is not necessarily 11 for + December but depends on the calendar used instead.
*/ + const short MONTH = 12; + /// Get/Set era, for example, 0:= Before Christ, 1:= After Christ. + const short ERA = 13; + /// Get/Set time zone offset in minutes, e.g. [-14*60..14*60] + const short ZONE_OFFSET = 14; + + /// Total number of fields for < OOo 3.1 + const short FIELD_COUNT = 15; + + /** Get/Set additional offset in milliseconds that adds to + the value of ZONE_OFFSET. This may be necessary to correctly + interpret historical timezone data that consists of fractions of + minutes, e.g. seconds. 1 minute == 60000 milliseconds. + + @attention Though the field's type is signed 16-bit, the field + value is treated as unsigned 16-bit to allow for values up to + 60000 and expresses an absolute value that inherits its sign + from the parent ZONE_OFFSET field. + + @since OOo 3.1 + */ + const short ZONE_OFFSET_SECOND_MILLIS = 15; + + /** Get additional offset in milliseconds that adds to + the value of DST_OFFSET. This may be necessary to correctly + interpret historical timezone data that consists of fractions of + minutes, e.g. seconds. 1 minute == 60000 milliseconds. + + @attention Though the field's type is signed 16-bit, the field + value is treated as unsigned 16-bit to allow for values up to + 60000 and expresses an absolute value that inherits its sign + from the parent DST_OFFSET field. + + @since OOo 3.1 + */ + const short DST_OFFSET_SECOND_MILLIS = 16; + + /** Total number of fields as of OOo 3.1 + + @since OOo 3.1 + */ + const short FIELD_COUNT2 = 17; + +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/i18n/CalendarItem.idl b/offapi/com/sun/star/i18n/CalendarItem.idl new file mode 100644 index 0000000000..07f133d3d4 --- /dev/null +++ b/offapi/com/sun/star/i18n/CalendarItem.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 . + */ + + +module com { module sun { module star { module i18n { + + + +/** + One entry in a calendar, for example, a day of week or a month or an + era. + +A sequence of CalendarItems is contained in + Calendar::Days, Calendar::Months, + Calendar::Eras
+ */ + +published struct CalendarItem +{ + /** A unique ID for an entry of this type, usually the lower case + abbreviated English name, for example, "sun" for Sunday. */ + string ID; + /// The abbreviated name, for example, "Sun". + string AbbrevName; + /// The full name, for example, "Sunday". + string FullName; }; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/i18n/CalendarItem2.idl b/offapi/com/sun/star/i18n/CalendarItem2.idl new file mode 100644 index 0000000000..2672332361 --- /dev/null +++ b/offapi/com/sun/star/i18n/CalendarItem2.idl @@ -0,0 +1,35 @@ +/* -*- 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/. + */ + + +module com { module sun { module star { module i18n { + + + +/** + One entry in a calendar, for example, a day of week or a month or an + era. + +Derived from com::sun::star::i18n::CalendarItem + this provides an additional member for narrow names.
+ + @since LibreOffice 3.5 + */ + +published struct CalendarItem2 : com::sun::star::i18n::CalendarItem +{ + /** The narrow name, for example, "S" for Sunday or + "J" for January. + */ + string NarrowName; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/i18n/ChapterCollator.idl b/offapi/com/sun/star/i18n/ChapterCollator.idl new file mode 100644 index 0000000000..09abc8d091 --- /dev/null +++ b/offapi/com/sun/star/i18n/ChapterCollator.idl @@ -0,0 +1,29 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module i18n { + + +/// Specific collator to sort chapter numbering. +published service ChapterCollator : com::sun::star::i18n::XCollator; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/i18n/CharType.idl b/offapi/com/sun/star/i18n/CharType.idl new file mode 100644 index 0000000000..0b6fdcadaa --- /dev/null +++ b/offapi/com/sun/star/i18n/CharType.idl @@ -0,0 +1,72 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module i18n { + + +/** + Constants to specify the character type that starts a character block. + Character type is Unicode type defined in UnicodeType + +Used with XBreakIterator::beginOfCharBlock(), + XBreakIterator::endOfCharBlock(), + XBreakIterator::nextCharBlock(), + XBreakIterator::previousCharBlock()
+ */ +published constants CharType +{ + /// all alpha characters allowed + const short ANY_CHAR = 0; + + const short UPPERCASE_LETTER = 1; + const short LOWERCASE_LETTER = 2; + const short TITLECASE_LETTER = 3; + const short MODIFIER_LETTER = 4; + const short OTHER_LETTER = 5; + const short NON_SPACING_MARK = 6; + const short ENCLOSING_MARK = 7; + const short COMBINING_SPACING_MARK = 8; + const short DECIMAL_DIGIT_NUMBER = 9; + const short LETTER_NUMBER = 10; + const short OTHER_NUMBER = 11; + const short SPACE_SEPARATOR = 12; + const short LINE_SEPARATOR = 13; + const short PARAGRAPH_SEPARATOR = 14; + const short CONTROL = 15; + const short FORMAT = 16; + const short PRIVATE_USE = 17; + const short SURROGATE = 18; + const short DASH_PUNCTUATION = 19; + const short START_PUNCTUATION = 20; + const short END_PUNCTUATION = 21; + const short CONNECTOR_PUNCTUATION = 22; + const short OTHER_PUNCTUATION = 23; + const short MATH_SYMBOL = 24; + const short CURRENCY_SYMBOL = 25; + const short MODIFIER_SYMBOL = 26; + const short OTHER_SYMBOL = 27; + const short INITIAL_PUNCTUATION = 28; + const short FINAL_PUNCTUATION = 29; + const short GENERAL_TYPES_COUNT = 30; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/i18n/CharacterClassification.idl b/offapi/com/sun/star/i18n/CharacterClassification.idl new file mode 100644 index 0000000000..68163d9917 --- /dev/null +++ b/offapi/com/sun/star/i18n/CharacterClassification.idl @@ -0,0 +1,33 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module i18n { + + +/** + Character classification, such as upper, lower, alpha, digit, et al. + +Provides also a generic parser functionality.
+ */ +published service CharacterClassification : com::sun::star::i18n::XCharacterClassification; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/i18n/CharacterIteratorMode.idl b/offapi/com/sun/star/i18n/CharacterIteratorMode.idl new file mode 100644 index 0000000000..3e0efca991 --- /dev/null +++ b/offapi/com/sun/star/i18n/CharacterIteratorMode.idl @@ -0,0 +1,44 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module i18n { + + +/** Constants to specify the type of character iteration. + +Used with XBreakIterator::nextCharacters() and + XBreakIterator::previousCharacters()
+ */ +published constants CharacterIteratorMode +{ + /// skip characters + const short SKIPCHARACTER = 0; + + /// skip cells + const short SKIPCELL = 1; + + /// skip control characters + const short SKIPCONTROLCHARACTER = 2; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/i18n/Collator.idl b/offapi/com/sun/star/i18n/Collator.idl new file mode 100644 index 0000000000..0c9605339e --- /dev/null +++ b/offapi/com/sun/star/i18n/Collator.idl @@ -0,0 +1,32 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module i18n { + + +/** + Access collation algorithms of different locales. + */ + +published service Collator : com::sun::star::i18n::XCollator; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/i18n/CollatorOptions.idl b/offapi/com/sun/star/i18n/CollatorOptions.idl new file mode 100644 index 0000000000..33306d492a --- /dev/null +++ b/offapi/com/sun/star/i18n/CollatorOptions.idl @@ -0,0 +1,40 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module i18n { + + +/** Options to be used with XCollator methods. + */ +published constants CollatorOptions +{ + /// Ignore case. + const short CollatorOptions_IGNORE_CASE = 1; + /// Ignore Kana. + const short CollatorOptions_IGNORE_KANA = 2; + /// Ignore width. + const short CollatorOptions_IGNORE_WIDTH = 4; + /// Ignore case and accent. + const short CollatorOptions_IGNORE_CASE_ACCENT = 8; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/i18n/Currency.idl b/offapi/com/sun/star/i18n/Currency.idl new file mode 100644 index 0000000000..9905620d1a --- /dev/null +++ b/offapi/com/sun/star/i18n/Currency.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 . + */ + + +module com { module sun { module star { module i18n { + + +/** + Symbols, names, and attributes of a specific currency, returned in a + sequence by XLocaleData::getAllCurrencies(). + + @see XLocaleData + for links to DTD of XML locale data files. + */ + +published struct Currency +{ + /** ISO 4217 currency code identifier, for example, EUR or + USD. */ + string ID; + + /** Currency symbol, for example, $. */ + string Symbol; + + /** Currency abbreviation used by banks and in money exchange, for + example, EUR or USD. This usually should be + identical to the ISO 4217 currency code also used in the + #ID, but doesn't necessarily have to be. */ + string BankSymbol; + + /** Name of the currency, for example, Euro or US + Dollar. Should be the localized name. */ + string Name; + + /** If this currency is the default currency for a given locale. */ + boolean Default; + + /** If this currency is the one used in compatible number format codes with + FormatElement::formatIndex() values in the range 12..17. + Those format codes are used to generate some old style currency format + codes for compatibility with StarOffice5 and StarOffice4. + + @see com::sun::star::i18n::NumberFormatIndex + */ + boolean UsedInCompatibleFormatCodes; + + /** The number of decimal places, for example, 2 for US Dollar + or 0 for Italian Lira. */ + short DecimalPlaces; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/i18n/Currency2.idl b/offapi/com/sun/star/i18n/Currency2.idl new file mode 100644 index 0000000000..7f0f7bfb22 --- /dev/null +++ b/offapi/com/sun/star/i18n/Currency2.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 . + */ + + +module com { module sun { module star { module i18n { + + +/** + Symbols, names, and attributes of a specific currency, returned in a + sequence by XLocaleData2::getAllCurrencies2(). + +It is derived from + ::com::sun::star::i18n::Currency and provides an + additional flag for currency entries that are available only for legacy + reasons in context of loaded documents that use them, but otherwise + should not be offered to the user to be selectable. + + @see XLocaleData + for links to DTD of XML locale data files. + */ + +published struct Currency2 : com::sun::star::i18n::Currency +{ + /** If set, the currency and/or its symbol is only to be used in + legacy context. + + @since OOo 2.0.3 + */ + boolean LegacyOnly; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/i18n/DirectionProperty.idl b/offapi/com/sun/star/i18n/DirectionProperty.idl new file mode 100644 index 0000000000..c66a2896ee --- /dev/null +++ b/offapi/com/sun/star/i18n/DirectionProperty.idl @@ -0,0 +1,54 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module i18n { + + +/** + Direction properties returned by + XCharacterClassification::getCharacterDirection(). + */ + +published enum DirectionProperty +{ + LEFT_TO_RIGHT = 0, + RIGHT_TO_LEFT = 1, + EUROPEAN_NUMBER = 2, + EUROPEAN_NUMBER_SEPARATOR = 3, + EUROPEAN_NUMBER_TERMINATOR = 4, + ARABIC_NUMBER = 5, + COMMON_NUMBER_SEPARATOR = 6, + BLOCK_SEPARATOR = 7, + SEGMENT_SEPARATOR = 8, + WHITE_SPACE_NEUTRAL = 9, + OTHER_NEUTRAL = 10, + LEFT_TO_RIGHT_EMBEDDING = 11, + LEFT_TO_RIGHT_OVERRIDE = 12, + RIGHT_TO_LEFT_ARABIC = 13, + RIGHT_TO_LEFT_EMBEDDING = 14, + RIGHT_TO_LEFT_OVERRIDE = 15, + POP_DIRECTIONAL_FORMAT = 16, + DIR_NON_SPACING_MARK = 17, + BOUNDARY_NEUTRAL = 18 +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/i18n/ForbiddenCharacters.idl b/offapi/com/sun/star/i18n/ForbiddenCharacters.idl new file mode 100644 index 0000000000..1ebb63eacf --- /dev/null +++ b/offapi/com/sun/star/i18n/ForbiddenCharacters.idl @@ -0,0 +1,44 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module i18n { + + +/** + Locale (mostly CJK) dependent characters that are forbidden at the + start or end of a line. + +
Returned by + XLocaleData::getForbiddenCharacters() and used with + XForbiddenCharacters methods. + */ + +published struct ForbiddenCharacters +{ + /// Characters forbidden at the start of a line + string beginLine; + + /// Characters forbidden at the end of a line. + string endLine; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/i18n/FormatElement.idl b/offapi/com/sun/star/i18n/FormatElement.idl new file mode 100644 index 0000000000..fbeded9114 --- /dev/null +++ b/offapi/com/sun/star/i18n/FormatElement.idl @@ -0,0 +1,64 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module i18n { + + +/** + One number format code and its attributes, returned in a sequence by + XLocaleData::getAllFormats(). + +
Contains raw data defined in the XML locale data files.
+ + @see XLocaleData + for links to DTD of XML locale data files. + */ + +published struct FormatElement +{ + /** The format code, for example, "YYYY-MM-DD". */ + string formatCode; + + /** A name or description that is displayed in the number formatter + dialog. */ + string formatName; + + /** A unique (within one locale) identifier. */ + string formatKey; + + /** Type may be one of "short", "medium", "long". */ + string formatType; + + /** Usage category, for example, "DATE" or "FIXED_NUMBER", + corresponding with KNumberFormatUsage values. */ + string formatUsage; + + /** The index used by the number formatter, predefined values + corresponding with NumberFormatIndex values. */ + short formatIndex; + + /** If a format code is the default code of a formatType + group. */ + boolean isDefault; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/i18n/Implementation.idl b/offapi/com/sun/star/i18n/Implementation.idl new file mode 100644 index 0000000000..3ca21826af --- /dev/null +++ b/offapi/com/sun/star/i18n/Implementation.idl @@ -0,0 +1,42 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module i18n { + + +/** + Implementation name details returned in a sequence by + XLocaleData::getCollatorImplementations(). + + @see XLocaleData + for links to DTD of XML locale data files. + */ + +published struct Implementation +{ + /// The implementation name. + string unoID; + /// If this is the default implementation. + boolean isDefault; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/i18n/IndexEntrySupplier.idl b/offapi/com/sun/star/i18n/IndexEntrySupplier.idl new file mode 100644 index 0000000000..ce6170800a --- /dev/null +++ b/offapi/com/sun/star/i18n/IndexEntrySupplier.idl @@ -0,0 +1,29 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module i18n { + + +/// Supplier for creating index entries in a "table of alphabetical index" +published service IndexEntrySupplier : XExtendedIndexEntrySupplier; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/i18n/InputSequenceCheckMode.idl b/offapi/com/sun/star/i18n/InputSequenceCheckMode.idl new file mode 100644 index 0000000000..8057e37900 --- /dev/null +++ b/offapi/com/sun/star/i18n/InputSequenceCheckMode.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 . + */ + + + +module com { module sun { module star { module i18n { + + +/** Input check mode constants to use with + XInputSequenceChecker::checkInputSequence() + + @since OOo 1.1.2 +*/ + +published constants InputSequenceCheckMode +{ + /// Pass through mode (no checking) + const short PASSTHROUGH = 0; + + /// Basic checking mode + const short BASIC = 1; + + /// Strict checking mode + const short STRICT = 2; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/i18n/InputSequenceChecker.idl b/offapi/com/sun/star/i18n/InputSequenceChecker.idl new file mode 100644 index 0000000000..e6bfb94642 --- /dev/null +++ b/offapi/com/sun/star/i18n/InputSequenceChecker.idl @@ -0,0 +1,32 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module i18n { + + +/** Check input sequence of CTL languages like Thai or Hindi. + + @since OOo 1.1.2 +*/ +published service InputSequenceChecker : XExtendedInputSequenceChecker; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/i18n/KCharacterType.idl b/offapi/com/sun/star/i18n/KCharacterType.idl new file mode 100644 index 0000000000..539d941c68 --- /dev/null +++ b/offapi/com/sun/star/i18n/KCharacterType.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 . + */ + + +module com { module sun { module star { module i18n { + + +/** + Constants to identify the character type. + +Returned by + XCharacterClassification::getCharacterType() and + XCharacterClassification::getStringType()
+ */ + +published constants KCharacterType +{ + /// digit + const long DIGIT = 0x00000001; + + /// upper case alpha letter + const long UPPER = 0x00000002; + + /// lower case alpha letter + const long LOWER = 0x00000004; + + /// title case alpha letter + const long TITLE_CASE = 0x00000008; + + /// any alpha, ALPHA = UPPER | LOWER | TITLE_CASE + const long ALPHA = 0x0000000E; + + /// control character + const long CONTROL = 0x00000010; + + /// printable character + const long PRINTABLE = 0x00000020; + + /// base form + const long BASE_FORM = 0x00000040; + + /** any UnicodeType::..._LETTER. + Note that a LETTER must not necessarily be ALPHA */ + const long LETTER = 0x00000080; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/i18n/KNumberFormatType.idl b/offapi/com/sun/star/i18n/KNumberFormatType.idl new file mode 100644 index 0000000000..2d3d626832 --- /dev/null +++ b/offapi/com/sun/star/i18n/KNumberFormatType.idl @@ -0,0 +1,41 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module i18n { + + +/** + Attribute of number format, classifies the length of the formatted + display string. + */ + +published constants KNumberFormatType +{ + /// Short display string + const short SHORT = 1; + /// Medium length display string + const short MEDIUM = 2; + /// Long display string + const short LONG = 3; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/i18n/KNumberFormatUsage.idl b/offapi/com/sun/star/i18n/KNumberFormatUsage.idl new file mode 100644 index 0000000000..707ded4c9a --- /dev/null +++ b/offapi/com/sun/star/i18n/KNumberFormatUsage.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 . + */ + + +module com { module sun { module star { module i18n { + + +/** + Category of number format code. + */ + +published constants KNumberFormatUsage +{ + /// Date format, for example, "YYYY-MM-DD". + const short DATE = 1; + /// Time format, for example, "HH:MM:SS". + const short TIME = 2; + /// Mixed date/time format, for example, "YYYY-MM-DD HH:MM:SS". + const short DATE_TIME = 3; + /// Numeric format, for example, "#,##0.00". + const short FIXED_NUMBER = 4; + /// Fractional format, for example, "# ??/??". + const short FRACTION_NUMBER = 5; + /// Percent format, for example, "0.00%". + const short PERCENT_NUMBER = 6; + /// Scientific format, for example, "0.00E+00". + const short SCIENTIFIC_NUMBER = 7; + /// Currency format, for example, "#,##0.00 [$EUR]" + const short CURRENCY = 8; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/i18n/KParseTokens.idl b/offapi/com/sun/star/i18n/KParseTokens.idl new file mode 100644 index 0000000000..f06b9861d6 --- /dev/null +++ b/offapi/com/sun/star/i18n/KParseTokens.idl @@ -0,0 +1,187 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module i18n { + + +/** + These constants specify the characters a name or identifier token to + be parsed can have. + +They are passed to + XCharacterClassification::parseAnyToken() and + XCharacterClassification::parsePredefinedToken(). + They are also set in the ParseResult::StartFlags + and ParseResult::ContFlags.
+ */ + +published constants KParseTokens +{ + /// ASCII A-Z upper alpha + const long ASC_UPALPHA = 0x00000001; + + /// ASCII a-z lower alpha + const long ASC_LOALPHA = 0x00000002; + + /// ASCII 0-9 digit + const long ASC_DIGIT = 0x00000004; + + /// ASCII '_' underscore + const long ASC_UNDERSCORE = 0x00000008; + + /// ASCII '$' dollar + const long ASC_DOLLAR = 0x00000010; + + /// ASCII '.' dot/point + const long ASC_DOT = 0x00000020; + + /// ASCII ':' colon + const long ASC_COLON = 0x00000040; + + /// Special value to allow control characters (0x00 < char < 0x20) + const long ASC_CONTROL = 0x00000200; + + /** Special value to allow anything below 128 except control + characters. Not set in + ParseResult. */ + const long ASC_ANY_BUT_CONTROL = 0x00000400; + + /** Additional flag set in ParseResult::StartFlags + or ParseResult::ContFlags. Set if none of the + above ASC_... (except ASC_ANY_...) single values match an ASCII + character parsed. */ + const long ASC_OTHER = 0x00000800; + + /// Unicode (above 127) upper case letter + const long UNI_UPALPHA = 0x00001000; + + /// Unicode (above 127) lower case letter + const long UNI_LOALPHA = 0x00002000; + + /// Unicode (above 127) decimal digit number + const long UNI_DIGIT = 0x00004000; + + /// Unicode (above 127) title case letter + const long UNI_TITLE_ALPHA = 0x00008000; + + /// Unicode (above 127) modifier letter + const long UNI_MODIFIER_LETTER = 0x00010000; + + /// Unicode (above 127) other letter + const long UNI_OTHER_LETTER = 0x00020000; + + /// Unicode (above 127) letter number + const long UNI_LETTER_NUMBER = 0x00040000; + + /// Unicode (above 127) other number + const long UNI_OTHER_NUMBER = 0x00080000; + + /** If this bit is set in nContCharFlags parameters, the + locale's group separator characters in numbers are accepted and + ignored/skipped. Else a group separator in a number ends the + current token. A leading group separator is never accepted. If + an accepted group separator was encountered in a number + (ParseResult::TokenType is KParseType::ASC_NUMBER or + KParseType::UNI_NUMBER) this bit is also set in + ParseResult::ContFlags. + +NOTE: absence of this bit in + nContCharFlags changes the default behaviour that in + prior releases accepted numbers with group separators but lead + to unexpected results when parsing formula expressions where the + user entered a (wrong) separator that happened to be the group + separator instead of an intended decimal separator. Usually + inline numbers in a formula expression do not contain group + separators. + + @since LibreOffice 6.2 + */ + const long GROUP_SEPARATOR_IN_NUMBER = 0x08000000; + + /** If this bit is set in nContCharFlags parameters and a + string enclosed in double quotes is parsed and two consecutive + double quotes are encountered, the string is ended. If this bit + is not set, the two double quotes are parsed as one escaped + double quote and string parsing continues. The bit is ignored in + nStartCharFlags parameters. + +
Example:
+ "abc""def" --> bit not set => abc"def
+ "abc""def" --> bit set => abc
Set by + XCharacterClassification::parseAnyToken() and + XCharacterClassification::parsePredefinedToken() in + ParseResult::TokenType.
+ */ + +published constants KParseType +{ + /// One single character like ! # ; : $ et al. + const long ONE_SINGLE_CHAR = 0x00000001; + + // For human .idl readers: <, >, <>, =, <=, >= + /// A Boolean operator like <, >, <>, =, <=, >= + const long BOOLEAN = 0x00000002; + + /// A name matching the conditions passed. + const long IDENTNAME = 0x00000004; + + + // Hint for human .idl readers: do not get confused about the double + // quotation marks, they are needed for the unoidl compiler which otherwise + // gets confused about the single quotation marks. + /** "A single-quoted name matching the conditions passed ( 'na\'me' )." + "Dequoted name in ParseResult::DequotedNameOrString ( na'me )." */ + const long SINGLE_QUOTE_NAME = 0x00000008; + + /** A double-quoted string ( "str\"i""ng" ). Dequoted string in + ParseResult::DequotedNameOrString ( str"i"ng ). */ + const long DOUBLE_QUOTE_STRING = 0x00000010; + + /** A number where all digits are ASCII characters. + Numerical value in ParseResult::Value. */ + const long ASC_NUMBER = 0x00000020; + + /** A number where at least some digits are Unicode (and maybe + ASCII) characters. Numerical value inKParseType + ParseResult::Value. */ + const long UNI_NUMBER = 0x00000040; + + /** Set (ored) if SINGLE_QUOTE_NAME or DOUBLE_QUOTE_STRING has no + closing quote. */ + const long MISSING_QUOTE = 0x40000000; + + + // useful combinations + + /// Any ASCII or Unicode number + const long ANY_NUMBER = ASC_NUMBER | UNI_NUMBER; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/i18n/LanguageCountryInfo.idl b/offapi/com/sun/star/i18n/LanguageCountryInfo.idl new file mode 100644 index 0000000000..2226b2d0dc --- /dev/null +++ b/offapi/com/sun/star/i18n/LanguageCountryInfo.idl @@ -0,0 +1,49 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module i18n { + + +/** + The language and country identifiers and descriptive names of the + loaded locale data returned by + XLocaleData::getLanguageCountryInfo(). + + @see XLocaleData + for links to DTD of XML locale data files. + */ + +published struct LanguageCountryInfo +{ + /// ISO-639 language code, for example, "en" or "de" + string Language; + /// Descriptive language name, for example, "English" or "German" + string LanguageDefaultName; + /// ISO-3166 country code, for example, "US" or "DE" + string Country; + /// Descriptive country name, for example, "United States" or "Germany" + string CountryDefaultName; + /// A variant name + string Variant; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/i18n/LineBreakHyphenationOptions.idl b/offapi/com/sun/star/i18n/LineBreakHyphenationOptions.idl new file mode 100644 index 0000000000..8d65b8214f --- /dev/null +++ b/offapi/com/sun/star/i18n/LineBreakHyphenationOptions.idl @@ -0,0 +1,42 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module i18n { + + +/** Hyphenation options passed in calls to XBreakIterator::getLineBreak(). + */ +published struct LineBreakHyphenationOptions +{ + /// Reference to the specific hyphenator - can be zero. + ::com::sun::star::linguistic2::XHyphenator rHyphenator; + + /** Sequence of property values to be used by the hyphenator - can be + empty if the default values (from the property set) should be used. */ + ::com::sun::star::beans::PropertyValues aHyphenationOptions; + + /** The first character not fitting to the current line, + considering an additional "-" for hyphenation */ + long hyphenIndex; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/i18n/LineBreakResults.idl b/offapi/com/sun/star/i18n/LineBreakResults.idl new file mode 100644 index 0000000000..1bee8d5fb6 --- /dev/null +++ b/offapi/com/sun/star/i18n/LineBreakResults.idl @@ -0,0 +1,40 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module i18n { + + +/** Results of method XBreakIterator::getLineBreak(). + */ +published struct LineBreakResults +{ + /// Type of line break, see BreakType. + short breakType; + + /// Position of the calculated line break. + long breakIndex; + + /// Return value of the hyphenator. + ::com::sun::star::linguistic2::XHyphenatedWord rHyphenatedWord; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/i18n/LineBreakUserOptions.idl b/offapi/com/sun/star/i18n/LineBreakUserOptions.idl new file mode 100644 index 0000000000..43a6416faf --- /dev/null +++ b/offapi/com/sun/star/i18n/LineBreakUserOptions.idl @@ -0,0 +1,49 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module i18n { + + +/** Line break options passed in calls to XBreakIterator::getLineBreak(). + */ +published struct LineBreakUserOptions +{ + /// Characters not allowed at the beginning of a line. + string forbiddenBeginCharacters; + + /// Characters not allowed at the end of a line. + string forbiddenEndCharacters; + + /// If the forbidden characters rules are to be applied or not. + boolean applyForbiddenRules; + + /** If punctuation characters are allowed at the end of the line if + outside of the margins, resulting in a line not being wrapped if only + the punctuation would wrap. */ + boolean allowPunctuationOutsideMargin; + + /// Allow English hyphenation. + boolean allowHyphenateEnglish; + +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/i18n/LocaleCalendar.idl b/offapi/com/sun/star/i18n/LocaleCalendar.idl new file mode 100644 index 0000000000..1d05bd1f1b --- /dev/null +++ b/offapi/com/sun/star/i18n/LocaleCalendar.idl @@ -0,0 +1,29 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module i18n { + + +/// Access a locale specific calendar. +published service LocaleCalendar : XCalendar3; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/i18n/LocaleCalendar2.idl b/offapi/com/sun/star/i18n/LocaleCalendar2.idl new file mode 100644 index 0000000000..05877c97b2 --- /dev/null +++ b/offapi/com/sun/star/i18n/LocaleCalendar2.idl @@ -0,0 +1,20 @@ +/* -*- 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/. + */ + +module com { module sun { module star { module i18n { + +/** Access a locale specific calendar. + + @since LibreOffice 5.0 + */ +service LocaleCalendar2 : XCalendar4; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/i18n/LocaleData.idl b/offapi/com/sun/star/i18n/LocaleData.idl new file mode 100644 index 0000000000..364934ad08 --- /dev/null +++ b/offapi/com/sun/star/i18n/LocaleData.idl @@ -0,0 +1,29 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module i18n { + + +/// Access locale specific data. +published service LocaleData : com::sun::star::i18n::XLocaleData4; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/i18n/LocaleData2.idl b/offapi/com/sun/star/i18n/LocaleData2.idl new file mode 100644 index 0000000000..2497194096 --- /dev/null +++ b/offapi/com/sun/star/i18n/LocaleData2.idl @@ -0,0 +1,22 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */ +/* + * 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/. + */ + +module com { module sun { module star { module i18n { + +/** Access locale specific data. + + Supersedes service com::sun::star::i18n::LocaleData + + @since LibreOffice 6.0 + */ +service LocaleData2 : XLocaleData5; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ diff --git a/offapi/com/sun/star/i18n/LocaleDataItem.idl b/offapi/com/sun/star/i18n/LocaleDataItem.idl new file mode 100644 index 0000000000..4aaae7511c --- /dev/null +++ b/offapi/com/sun/star/i18n/LocaleDataItem.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 . + */ + + +module com { module sun { module star { module i18n { + + +/** + Locale specific data, for example, separators, quotation marks. + + @see XLocaleData + for links to DTD of XML locale data files. + */ + +published struct LocaleDataItem +{ + /// internal ID string, not unique, not meaningful to the outer world + string unoID; + /// date separator, for example, "/" or "." or "-" + string dateSeparator; + /// group and thousand separator, for example, "," or "." + string thousandSeparator; + /// decimal separator, for example, "." or "," + string decimalSeparator; + /// time separator, for example, ":" + string timeSeparator; + /// time 100th seconds separator, for example, "," + string time100SecSeparator; + /// list separator, for example, ";" + string listSeparator; + /// single quotation mark start + string quotationStart; + /// single quotation mark end + string quotationEnd; + /// double quotation mark start + string doubleQuotationStart; + /// double quotation mark end + string doubleQuotationEnd; + /// time AM symbol, for example, "AM" or "am" + string timeAM; + /// time PM symbol, for example, "PM" or "pm" + string timePM; + /// measurement system, "metric" or "us" + string measurementSystem; + /// long date day of week separator, for example, ", " + string LongDateDayOfWeekSeparator; + /// long date day separator, for example, ", " + string LongDateDaySeparator; + /// long date month separator, for example, " " + string LongDateMonthSeparator; + /// long date year separator, for example, " " + string LongDateYearSeparator; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/i18n/LocaleDataItem2.idl b/offapi/com/sun/star/i18n/LocaleDataItem2.idl new file mode 100644 index 0000000000..0c4e31878f --- /dev/null +++ b/offapi/com/sun/star/i18n/LocaleDataItem2.idl @@ -0,0 +1,33 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */ +/* + * 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/. + */ + +module com { module sun { module star { module i18n { + +/** + Locale specific data, derived from LocaleDataItem adding an + alternative input decimal separator. + + @since LibreOffice 6.0 + */ + +struct LocaleDataItem2 : LocaleDataItem +{ + /** Alternative input decimal separator, for example, "." if + the regular locale dependent separator usually is not present on + keyboards used with that locale. + +This separator is optional, an empty string denotes no + alternative decimal separator shall be used. + */ + string decimalSeparatorAlternative; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ diff --git a/offapi/com/sun/star/i18n/LocaleItem.idl b/offapi/com/sun/star/i18n/LocaleItem.idl new file mode 100644 index 0000000000..2f8592021f --- /dev/null +++ b/offapi/com/sun/star/i18n/LocaleItem.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 . + */ + + +module com { module sun { module star { module i18n { + + +/** + @deprecated internal + Constant values identifying specific locale data items. + +
These are not used with the API but with an OOo internal wrapper class + that caches the contents of an instance of LocaleDataItem and + uses these values to access it's members for faster access.
+ +Whenever locale data items were added these values and the wrapper + class would have to be adjusted to give the application an easier access. +
+ */ + +published constants LocaleItem +{ + /// @see ::com::sun::star::i18n::LocaleDataItem::dateSeparator + const short DATE_SEPARATOR = 0; + /// @see com::sun::star::i18n::LocaleDataItem::thousandSeparator + const short THOUSAND_SEPARATOR = 1; + /// @see com::sun::star::i18n::LocaleDataItem::decimalSeparator + const short DECIMAL_SEPARATOR = 2; + /// @see com::sun::star::i18n::LocaleDataItem::timeSeparator + const short TIME_SEPARATOR = 3; + /// @see com::sun::star::i18n::LocaleDataItem::time100SecSeparator + const short TIME_100SEC_SEPARATOR = 4; + /// @see com::sun::star::i18n::LocaleDataItem::listSeparator + const short LIST_SEPARATOR = 5; + /// @see com::sun::star::i18n::LocaleDataItem::quotationStart + const short SINGLE_QUOTATION_START = 6; + /// @see com::sun::star::i18n::LocaleDataItem::quotationEnd + const short SINGLE_QUOTATION_END = 7; + /// @see com::sun::star::i18n::LocaleDataItem::doubleQuotationStart + const short DOUBLE_QUOTATION_START = 8; + /// @see com::sun::star::i18n::LocaleDataItem::doubleQuotationEnd + const short DOUBLE_QUOTATION_END = 9; + /// @see com::sun::star::i18n::LocaleDataItem::timeAM + const short MEASUREMENT_SYSTEM = 10; + /// @see com::sun::star::i18n::LocaleDataItem::timePM + const short TIME_AM = 11; + /// @see com::sun::star::i18n::LocaleDataItem::measurementSystem + const short TIME_PM = 12; + /// @see com::sun::star::i18n::LocaleDataItem::LongDateDayOfWeekSeparator + const short LONG_DATE_DAY_OF_WEEK_SEPARATOR = 13; + /// @see com::sun::star::i18n::LocaleDataItem::LongDateDaySeparator + const short LONG_DATE_DAY_SEPARATOR = 14; + /// @see com::sun::star::i18n::LocaleDataItem::LongDateMonthSeparator + const short LONG_DATE_MONTH_SEPARATOR = 15; + /// @see com::sun::star::i18n::LocaleDataItem::LongDateYearSeparator + const short LONG_DATE_YEAR_SEPARATOR = 16; + + /// count of items available + const short COUNT = 17; + + /// @see com::sun::star::i18n::LocaleDataItem2::decimalSeparatorAlternative + const short DECIMAL_SEPARATOR_ALTERNATIVE = 17; + + /// count of items available + const short COUNT2 = 18; + + //! New values may be appended here if locale data provides them. + //! Do not forget to introduce a new COUNTx value. +}; + + + +}; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/i18n/Months.idl b/offapi/com/sun/star/i18n/Months.idl new file mode 100644 index 0000000000..6f371272b5 --- /dev/null +++ b/offapi/com/sun/star/i18n/Months.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 . + */ + + +module com { module sun { module star { module i18n { + + +/** + Constants for month names used in calls to XCalendar::getDisplayName(). + */ + +published constants Months +{ + /// January + const short JANUARY = 0; + /// February + const short FEBURARY = 1; + /// March + const short MARCH = 2; + /// April + const short APRIL = 3; + /// May + const short MAY = 4; + /// June + const short JUNE = 5; + /// July + const short JULY = 6; + /// August + const short AUGUST = 7; + /// September + const short SEPTEMBER = 8; + /// October + const short OCTOBER = 9; + /// November + const short NOVEMBER = 10; + /// December + const short DECEMBER = 11; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/i18n/MultipleCharsOutputException.idl b/offapi/com/sun/star/i18n/MultipleCharsOutputException.idl new file mode 100644 index 0000000000..a4f2d55c61 --- /dev/null +++ b/offapi/com/sun/star/i18n/MultipleCharsOutputException.idl @@ -0,0 +1,39 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module i18n { + + +/** Indicates transliteration generated multiple characters output but + only single character return value was requested. + +Used by + XExtendedTransliteration::transliterateChar2Char() +
+ + @since OOo 1.1.2 + */ +published exception MultipleCharsOutputException : ::com::sun::star::uno::Exception +{ +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/i18n/NativeNumberMode.idl b/offapi/com/sun/star/i18n/NativeNumberMode.idl new file mode 100644 index 0000000000..81ae3baa6e --- /dev/null +++ b/offapi/com/sun/star/i18n/NativeNumberMode.idl @@ -0,0 +1,156 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module i18n { + + +/** + Constants to use with + XExtendedCalendar::getDisplayString() and the + XNativeNumberSupplier methods. + +The constants have different meanings if used with different + locales. However, NATNUM1 always tries to convert to + a string matching the native number mode of the corresponding + locale.
+ +Where available, the corresponding Microsoft Excel (tm) DBNum + number format code modifier is listed.
+ +Modifiers supported by XExtendedCalendar::getDisplayString() are + marked with CAL: for the specific language and the corresponding + DBNum modifier and the NatNum values used for Y/M/D are listed
+ + @since OOo 1.1.2 + */ + +published constants NativeNumberMode +{ + /** Transliteration to ASCII Arabic digits. + Try to convert any native number string to ASCII. + If already ASCII it remains ASCII. + */ + const short NATNUM0 = 0; + + /** Transliteration inUsed with + XNativeNumberSupplier::convertToXmlAttributes() and + XNativeNumberSupplier::convertFromXmlAttributes() +
+ + @since OOo 1.1.2 + */ + +published struct NativeNumberXmlAttributes +{ + /// The locale of the native number representation + ::com::sun::star::lang::Locale Locale; + + /// The number "1" expressed as a native number string. + string Format; + + /** The type of the number string, for example, "short" or "medium" + or "long". */ + string Style; + +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/i18n/NativeNumberXmlAttributes2.idl b/offapi/com/sun/star/i18n/NativeNumberXmlAttributes2.idl new file mode 100644 index 0000000000..fb67d109c3 --- /dev/null +++ b/offapi/com/sun/star/i18n/NativeNumberXmlAttributes2.idl @@ -0,0 +1,52 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module i18n { + + +/** + Attributes describing a native number mode for a specific locale, + stored in XML file format. + +Used later with + XNativeNumberSupplier2::convertToXmlAttributes() and + XNativeNumberSupplier2::convertFromXmlAttributes() +
+ + @since LibreOffice 6.1 + + @internal + + ATTENTION: This struct is marked internal and does not + have the published flag, which means it is subject to + change without notice and should not be used outside the LibreOffice core. + */ + +struct NativeNumberXmlAttributes2 : com::sun::star::i18n::NativeNumberXmlAttributes +{ + /** The format of the number string, for example, "cardinal", + "ordinal" or "ordinal-number". */ + string Spellout; + +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/i18n/NumberFormatCode.idl b/offapi/com/sun/star/i18n/NumberFormatCode.idl new file mode 100644 index 0000000000..6cf6edb02f --- /dev/null +++ b/offapi/com/sun/star/i18n/NumberFormatCode.idl @@ -0,0 +1,49 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module i18n { + + +/** + Number format code information returned by various + XNumberFormatCode methods. + */ + +published struct NumberFormatCode +{ + /// One of KNumberFormatType values. + short Type; + /// One of KNumberFormatUsage values. + short Usage; + /// Format code, for example, "YYYY-MM-DD". + string Code; + /// Descriptive name of the format for this locale. + string DefaultName; + /// Message identifier to be used if the name of the format is localized. + string NameID; + /// Index of the code as defined in NumberFormatIndex. + short Index; + /// If this format is the default format of the Usage group. + boolean Default; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/i18n/NumberFormatIndex.idl b/offapi/com/sun/star/i18n/NumberFormatIndex.idl new file mode 100644 index 0000000000..93e39cc8af --- /dev/null +++ b/offapi/com/sun/star/i18n/NumberFormatIndex.idl @@ -0,0 +1,271 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module i18n { + + +//! Do NOT insert any new values! +//! Locale data number format creation must match these values! +//! Number formatter internals must match these values! + +/** + Number format indices to be passed as the index argument to + XNumberFormatCode::getFormatCode() + or + ::com::sun::star::util::XNumberFormatTypes::getFormatIndex(). + + Each locale can support up to about 5000 arbitrary format
+ codes. But for backward compatibility reasons, each locale
+ MUST support some predefined format codes. These predefined
+ format codes are accessed through indices as the following, and
+ the locale data format code definitions in
+ i18npool/source/localedata/data/\*.xml MUST have matching
+ entries in the form
+
+ <FormatElement formatindex="0">
+
+ (see also FormatElement::formatIndex()).
+
+ The index values are also used to define the enum
+ NfIndexTableOffset
in file svtools/inc/zforlist.hxx
Note: This index has nothing to do with the index key + used internally by the number formatter.
Date formats may have a comment of DIN/EN/ISO, meaning +
Some names of date format constants indicate a special + behavior of those formats in StarOffice 5.2 or older. Those are: + +
Used with XBreakIterator::beginOfScript(), + XBreakIterator::endOfScript(), + XBreakIterator::nextScript(), + XBreakIterator::previousScript()
+ */ +published constants ScriptType +{ + /// Latin characters (English, ...) + const short LATIN = 1; + + /// Asian characters (Japanese, ...) + const short ASIAN = 2; + + /// Complex characters (Arabic, ...) + const short COMPLEX = 3; + + /// undefined characters (punctuation, ...) + const short WEAK = 4; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/i18n/TextConversion.idl b/offapi/com/sun/star/i18n/TextConversion.idl new file mode 100644 index 0000000000..a6c16139f2 --- /dev/null +++ b/offapi/com/sun/star/i18n/TextConversion.idl @@ -0,0 +1,34 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module i18n { + +/** offers generic text conversion. + +This is an abstract service which does not make sense to be instantiated. + + @since OOo 1.1.2 +*/ +published service TextConversion : XExtendedTextConversion; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/i18n/TextConversionOption.idl b/offapi/com/sun/star/i18n/TextConversionOption.idl new file mode 100644 index 0000000000..35b694b7b9 --- /dev/null +++ b/offapi/com/sun/star/i18n/TextConversionOption.idl @@ -0,0 +1,56 @@ +/* -*- 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 . + */ + + + +module com { module sun { module star { module i18n { + + +/** Text conversion options to be used with XTextConversion. + +
These text conversion options are usually selected by end users. + The options can be combined and may be related to + TextConversionType.
+ + @since OOo 1.1.2 +*/ + +published constants TextConversionOption +{ + /// No option + const long NONE = 0; + + /// Character by character conversion + const long CHARACTER_BY_CHARACTER = 1; // (1 << 0) + + /// Ignore post-positional word for Hangul to Hanja conversion + const long IGNORE_POST_POSITIONAL_WORD = 2; // (1 << 1) + + /** Use Taiwan, HongKong SAR, and Macao SAR character variants for + Simplified to Traditional Chinese conversion + + @since OOo 2.0 + */ + const long USE_CHARACTER_VARIANTS = 2; // (1 << 1) +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/i18n/TextConversionResult.idl b/offapi/com/sun/star/i18n/TextConversionResult.idl new file mode 100644 index 0000000000..bddffe3b4a --- /dev/null +++ b/offapi/com/sun/star/i18n/TextConversionResult.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 . + */ + + + + + +module com { module sun { module star { module i18n { + + +/** Text conversion result to be used with XTextConversion. + + @since OOo 1.1.2 +*/ + +published struct TextConversionResult +{ + /** The boundary of the first convertible word in the given text. + +If there is no convertible word found in the text, startPos + and endPos for Boundary equal 0. + */ + ::com::sun::star::i18n::Boundary Boundary; + + /** A list of replacement candidates for the first convertible word + found in the given text. + */ + sequence < string > Candidates; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/i18n/TextConversionType.idl b/offapi/com/sun/star/i18n/TextConversionType.idl new file mode 100644 index 0000000000..991d48e8f4 --- /dev/null +++ b/offapi/com/sun/star/i18n/TextConversionType.idl @@ -0,0 +1,49 @@ +/* -*- 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 . + */ + + + +module com { module sun { module star { module i18n { + + +/** These constants specify the conversion type to be used with + XTextConversion. + + @since OOo 1.1.2 +*/ + +published constants TextConversionType +{ + /// Conversion from Hanja to Hangul + const short TO_HANGUL = 1; + + /// Conversion from Hangul to Hanja + const short TO_HANJA = 2; + + /// Conversion from Traditional to Simplified Chinese + const short TO_SCHINESE = 3; + + /// Conversion from Simplified to Traditional Chinese + const short TO_TCHINESE = 4; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/i18n/Transliteration.idl b/offapi/com/sun/star/i18n/Transliteration.idl new file mode 100644 index 0000000000..19746dabcc --- /dev/null +++ b/offapi/com/sun/star/i18n/Transliteration.idl @@ -0,0 +1,29 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module i18n { + + +/// Transliteration of characters, such as case folding +published service Transliteration : XExtendedTransliteration; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/i18n/TransliterationModules.idl b/offapi/com/sun/star/i18n/TransliterationModules.idl new file mode 100644 index 0000000000..f76b85be61 --- /dev/null +++ b/offapi/com/sun/star/i18n/TransliterationModules.idl @@ -0,0 +1,109 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module i18n { + + +/** Old transliteration module enumeration. + +
Use with XTransliteration::loadModule() and + com::sun::star::util::SearchOptions::transliterateFlags()
+ +Note that values >=0x100 are logically or'ed with other values!
+ */ + +published enum TransliterationModules +{ + /// Transliterate a string from upper case to lower case + UPPERCASE_LOWERCASE = 1, + /// Transliterate a string from lower case to upper case + LOWERCASE_UPPERCASE = 2, + /// Transliterate a string from half width character to full width character + HALFWIDTH_FULLWIDTH = 3, + /// Transliterate a string from full width character to half width character + FULLWIDTH_HALFWIDTH = 4, + /// Transliterate a Japanese string from Katakana to Hiragana + KATAKANA_HIRAGANA = 5, + /// Transliterate a Japanese string from Hiragana to Katakana + HIRAGANA_KATAKANA = 6, + /// Transliterate an ASCII number string to Simplified Chinese lower case number string in spellout format + NumToTextLower_zh_CN = 7, + /// Transliterate an ASCII number string to Simplified Chinese upper case number string in spellout format + NumToTextUpper_zh_CN = 8, + /// Transliterate an ASCII number string to Traditional Chinese lower case number string in spellout format + NumToTextLower_zh_TW = 9, + /// Transliterate an ASCII number string to Traditional Chinese upper case number string in spellout format + NumToTextUpper_zh_TW = 10, + /// Transliterate an ASCII number string to formal Korean Hangul number string in spellout format + NumToTextFormalHangul_ko = 11, + /// Transliterate an ASCII number string to formal Korean Hanja lower case number string in spellout format + NumToTextFormalLower_ko = 12, + /// Transliterate an ASCII number string to formal Korean Hanja upper case number string in spellout format + NumToTextFormalUpper_ko = 13, + NON_IGNORE_MASK = 0x000000ff, + IGNORE_MASK = -0x100, + /// Ignore case when comparing strings by transliteration service + IGNORE_CASE = 0x00000100, + /// Ignore Hiragana and Katakana when comparing strings by transliteration service + IGNORE_KANA = 0x00000200, // ja_JP + /// Ignore full width and half width character when comparing strings by transliteration service + IGNORE_WIDTH = 0x00000400, // ja_JP + /// Ignore Japanese traditional Kanji character in Japanese fuzzy search + IgnoreTraditionalKanji_ja_JP = 0x00001000, + /// Ignore Japanese traditional Katakana and Hiragana character in Japanese fuzzy search + IgnoreTraditionalKana_ja_JP = 0x00002000, + /// Ignore dash or minus sign in Japanese fuzzy search + IgnoreMinusSign_ja_JP = 0x00004000, + /// Ignore Hiragana and Katakana iteration mark in Japanese fuzzy search + IgnoreIterationMark_ja_JP = 0x00008000, + /// Ignore separator punctuations in Japanese fuzzy search + IgnoreSeparator_ja_JP = 0x00010000, + /// Ignore Katakana and Hiragana Zi/Zi and Zu/Zu in Japanese fuzzy search + IgnoreZiZu_ja_JP = 0x00020000, + /// Ignore Katakana and Hiragana Ba/Gua and Ha/Fa in Japanese fuzzy search + IgnoreBaFa_ja_JP = 0x00040000, + /// Ignore Katakana and Hiragana Tsui/Tea/Ti and Dyi/Ji in Japanese fuzzy search + IgnoreTiJi_ja_JP = 0x00080000, + /// Ignore Katakana and Hiragana Hyu/Fyu and Byu/Gyu in Japanese fuzzy search + IgnoreHyuByu_ja_JP = 0x00100000, + /// Ignore Katakana and Hiragana Se/Sye and Ze/Je in Japanese fuzzy search + IgnoreSeZe_ja_JP = 0x00200000, + /// Ignore Katakana YA/A which follows the character in either I or E row in Japanese fuzzy search + IgnoreIandEfollowedByYa_ja_JP = 0x00400000, + /// Ignore Katakana KI/KU which follows the character in SA column in Japanese fuzzy search + IgnoreKiKuFollowedBySa_ja_JP = 0x00800000, + /// Ignore Japanese normal and small sized character in Japanese fuzzy search + IgnoreSize_ja_JP = 0x01000000, + /// Ignore Japanese prolonged sound mark in Japanese fuzzy search + IgnoreProlongedSoundMark_ja_JP = 0x02000000, + /// Ignore middle dot in Japanese fuzzy search + IgnoreMiddleDot_ja_JP = 0x04000000, + /// Ignore white space characters, include space, TAB, return, etc. in Japanese fuzzy search + IgnoreSpace_ja_JP = 0x08000000, + /// transliterate Japanese small sized character to normal sized character + SmallToLarge_ja_JP = 0x10000000, + /// transliterate Japanese normal sized character to small sized character + LargeToSmall_ja_JP = 0x20000000, + END_OF_MODULE = 0 +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/i18n/TransliterationModulesExtra.idl b/offapi/com/sun/star/i18n/TransliterationModulesExtra.idl new file mode 100644 index 0000000000..c7764c729d --- /dev/null +++ b/offapi/com/sun/star/i18n/TransliterationModulesExtra.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 . + */ + + +module com { module sun { module star { module i18n { + + +/** Extra transliteration module enumeration to use with + XTransliteration::loadModule() + + The values used in this group need to be different from the ones in + TransliterationModules and TransliterationModulesNew! + */ + + +// using a constant group instead of enum leaves room for additional values later on... +constants TransliterationModulesExtra +{ + /** The first character of the sentence is put in upper case + */ + const short SENTENCE_CASE = 200; + + + /** The first character of the word is put in upper case. + * This one is part + */ + const short TITLE_CASE = 201; + + + /** All characters of the word are to change their case from small letters + * to capital letters and vice versa. + */ + const short TOGGLE_CASE = 202; + + /** Ignore diacritics. Despite the _CTL name suffix this is not only + about CTL/Arabic diacritic characters, though these are handled + as well, but the transliteration decomposes and removes any + diacritic from characters. + + Because we cannot extend the TransliterationModules enum we use + TransliterationModulesExtra and it will act the same way. + */ + const long IGNORE_DIACRITICS_CTL = 0x40000000; + + /** Ignore Kashida mark. */ + const long IGNORE_KASHIDA_CTL = 0x00000800; + + const long END_OF_MODULE = 0; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/i18n/TransliterationModulesNew.idl b/offapi/com/sun/star/i18n/TransliterationModulesNew.idl new file mode 100644 index 0000000000..536fcd8ad2 --- /dev/null +++ b/offapi/com/sun/star/i18n/TransliterationModulesNew.idl @@ -0,0 +1,162 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module i18n { + + +/** New transliteration module enumeration to use with + XTransliteration::loadModuleNew() + */ + +published enum TransliterationModulesNew +{ + /// Transliterate a string from upper case to lower case + UPPERCASE_LOWERCASE = 1, + /// Transliterate a string from lower case to upper case + LOWERCASE_UPPERCASE = 2, + /// Transliterate a string from half width character to full width character + HALFWIDTH_FULLWIDTH = 3, + /// Transliterate a string from full width character to half width character + FULLWIDTH_HALFWIDTH = 4, + /// Transliterate a Japanese string from Katakana to Hiragana + KATAKANA_HIRAGANA = 5, + /// Transliterate a Japanese string from Hiragana to Katakana + HIRAGANA_KATAKANA = 6, + /// Ignore case when comparing strings by transliteration service + IGNORE_CASE = 7, + /// Ignore Hiragana and Katakana when comparing strings by transliteration service + IGNORE_KANA = 8, // ja_JP + /// Ignore full width and half width characters when comparing strings by transliteration service + IGNORE_WIDTH = 9, // ja_JP + /// Ignore Japanese traditional Kanji characters in Japanese fuzzy search + IgnoreTraditionalKanji_ja_JP = 10, + /// Ignore Japanese traditional Katakana and Hiragana characters in Japanese fuzzy search + IgnoreTraditionalKana_ja_JP = 11, + /// Ignore dash or minus sign in Japanese fuzzy search + IgnoreMinusSign_ja_JP = 12, + /// Ignore Hiragana and Katakana iteration mark in Japanese fuzzy search + IgnoreIterationMark_ja_JP = 13, + /// Ignore separator punctuations in Japanese fuzzy search + IgnoreSeparator_ja_JP = 14, + /// Ignore Katakana and Hiragana Zi/Zi and Zu/Zu in Japanese fuzzy search + IgnoreZiZu_ja_JP = 15, + /// Ignore Katakana and Hiragana Ba/Gua and Ha/Fa in Japanese fuzzy search + IgnoreBaFa_ja_JP = 16, + /// Ignore Katakana and Hiragana Tsui/Tea/Ti and Dyi/Ji in Japanese fuzzy search + IgnoreTiJi_ja_JP = 17, + /// Ignore Katakana and Hiragana Hyu/Fyu and Byu/Gyu in Japanese fuzzy search + IgnoreHyuByu_ja_JP = 18, + /// Ignore Katakana and Hiragana Se/Sye and Ze/Je in Japanese fuzzy search + IgnoreSeZe_ja_JP = 19, + /// Ignore Katakana YA/A following the character in either I or E row in Japanese fuzzy search + IgnoreIandEfollowedByYa_ja_JP = 20, + /// Ignore Katakana KI/KU following the character in SA column in Japanese fuzzy search + IgnoreKiKuFollowedBySa_ja_JP = 21, + /// Ignore Japanese normal and small sized character in Japanese fuzzy search + IgnoreSize_ja_JP = 22, + /// Ignore Japanese prolonged sound mark in Japanese fuzzy search + IgnoreProlongedSoundMark_ja_JP = 23, + /// Ignore middle dot in Japanese fuzzy search + IgnoreMiddleDot_ja_JP = 24, + /// Ignore white space characters, include space, TAB, return, etc. in Japanese fuzzy search + IgnoreSpace_ja_JP = 25, + /// transliterate Japanese small sized character to normal sized character + SmallToLarge_ja_JP = 26, + /// transliterate Japanese normal sized character to small sized character + LargeToSmall_ja_JP = 27, + /// Transliterate an ASCII number string to Simplified Chinese lower case number string in spellout format + NumToTextLower_zh_CN = 28, + /// Transliterate an ASCII number string to Simplified Chinese upper case number string in spellout format + NumToTextUpper_zh_CN = 29, + /// Transliterate an ASCII number string to Traditional Chinese lower case number string in spellout format + NumToTextLower_zh_TW = 30, + /// Transliterate an ASCII number string to Traditional Chinese upper case number string in spellout format + NumToTextUpper_zh_TW = 31, + /// Transliterate an ASCII number string to formal Korean Hangul number string in spellout format + NumToTextFormalHangul_ko = 32, + /// Transliterate an ASCII number string to formal Korean Hanja lower case number string in spellout format + NumToTextFormalLower_ko = 33, + /// Transliterate an ASCII number string to formal Korean Hanja upper case number string in spellout format + NumToTextFormalUpper_ko = 34, + /// Transliterate an ASCII number string to informal Korean Hangul number string in spellout format + NumToTextInformalHangul_ko = 35, + /// Transliterate an ASCII number string to informal Korean Hanja lower case number string in spellout format + NumToTextInformalLower_ko = 36, + /// Transliterate an ASCII number string to informal Korean Hanja upper case number string in spellout format + NumToTextInformalUpper_ko = 37, + /// Transliterate an ASCII number string to Simplified Chinese lower case number string + NumToCharLower_zh_CN = 38, + /// Transliterate an ASCII number string to Simplified Chinese upper case number string + NumToCharUpper_zh_CN = 39, + /// Transliterate an ASCII number string to Traditional Chinese lower case number string + NumToCharLower_zh_TW = 40, + /// Transliterate an ASCII number string to Traditional Chinese upper case number string + NumToCharUpper_zh_TW = 41, + /// Transliterate an ASCII number string to Korean Hangul number string + NumToCharHangul_ko = 42, + /// Transliterate an ASCII number string to Korean Hanja lower case number string + NumToCharLower_ko = 43, + /// Transliterate an ASCII number string to Korean Hanja upper case number string + NumToCharUpper_ko = 44, + /// Transliterate a half width number string to full width number string + NumToCharFullwidth = 45, + /// Transliterate an ASCII number string to Japanese Kanji number string + NumToCharKanjiShort_ja_JP = 46, + /// Transliterate a Simplified Chinese lower case number string (spellout) to ASCII number string + TextToNumLower_zh_CN = 47, + /// Transliterate a Simplified Chinese upper case number string (spellout) to ASCII number string + TextToNumUpper_zh_CN = 48, + /// Transliterate a Traditional Chinese lower case number string (spellout) to ASCII number string + TextToNumLower_zh_TW = 49, + /// Transliterate a Traditional Chinese upper case number string (spellout) to ASCII number string + TextToNumUpper_zh_TW = 50, + /// Transliterate a Korean formal Hangul number string (spellout) to ASCII number string + TextToNumFormalHangul_ko = 51, + /// Transliterate a Korean formal Hanja lower case number string (spellout) to ASCII number string + TextToNumFormalLower_ko = 52, + /// Transliterate a Korean formal Hanja upper case number string (spellout) to ASCII number string + TextToNumFormalUpper_ko = 53, + /// Transliterate a Korean informal Hangul number string (spellout) to ASCII number string + TextToNumInformalHangul_ko = 54, + /// Transliterate a Korean informal Hanja lower case number string (spellout) to ASCII number string + TextToNumInformalLower_ko = 55, + /// Transliterate a Korean informal Hanja upper case number string (spellout) to ASCII number string + TextToNumInformalUpper_ko = 56, + // 2 Spaces for Japanese TextToNum + /// Transliterate a Simplified Chinese lower case number string to ASCII number string + CharToNumLower_zh_CN = 59, + /// Transliterate a Simplified Chinese upper case number string to ASCII number string + CharToNumUpper_zh_CN = 60, + /// Transliterate a Traditional Chinese lower case number string to ASCII number string + CharToNumLower_zh_TW = 61, + /// Transliterate a Traditional Chinese upper case number string to ASCII number string + CharToNumUpper_zh_TW = 62, + /// Transliterate a Korean Hangul number string to ASCII number string + CharToNumHangul_ko = 63, + /// Transliterate a Korean Hanja lower case number string to ASCII number string + CharToNumLower_ko = 64, + /// Transliterate a Korean Hanja upper case number string to ASCII number string + CharToNumUpper_ko = 65, + END_OF_MODULE = 0 +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/i18n/TransliterationType.idl b/offapi/com/sun/star/i18n/TransliterationType.idl new file mode 100644 index 0000000000..f560cc4b13 --- /dev/null +++ b/offapi/com/sun/star/i18n/TransliterationType.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 . + */ + + +module com { module sun { module star { module i18n { + + +/** + Bitmask transliteration types used with + XTransliteration::getType() and + XTransliteration::getAvailableModules() methods. + + Non-IGNORE type modules provide
+ XTransliteration::transliterate().
+ IGNORE type modules provide
+ XTransliteration::equals() and
+ XTransliteration::transliterateRange().
used with XCalendar::getFirstDayOfWeek(), + XCalendar::setFirstDayOfWeek() and + XCalendar::getDisplayName()
+ */ +published constants Weekdays +{ + /// Sunday + const short SUNDAY = 0; + /// Monday + const short MONDAY = 1; + /// Tuesday + const short TUESDAY = 2; + /// Wednesday + const short WEDNESDAY = 3; + /// Thursday + const short THURSDAY = 4; + /// Friday + const short FRIDAY = 5; + /// Saturday + const short SATURDAY = 6; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/i18n/WordType.idl b/offapi/com/sun/star/i18n/WordType.idl new file mode 100644 index 0000000000..9391c28196 --- /dev/null +++ b/offapi/com/sun/star/i18n/WordType.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 . + */ + + +module com { module sun { module star { module i18n { + + +/** Constants to specify the type of words. + +Used with XBreakIterator::nextWord(), + XBreakIterator::previousWord(), + XBreakIterator::getWordBoundary(), + XBreakIterator::getWordType(), + XBreakIterator::isBeginWord(), + XBreakIterator::isEndWord()
+*/ +published constants WordType +{ + /** Any "words" - words in the meaning of same character types, + collection of alphanumeric characters, or collection of + non-alphanumeric characters. + */ + const short ANY_WORD = 0; + + /** Any "words" - words in the meaning of same character types, + collection of alphanumeric characters, or collection of + non-alphanumeric characters except blanks. + */ + const short ANYWORD_IGNOREWHITESPACES= 1; + + /** "words" - in the meaning of a collection of alphanumeric + characters and some punctuations, like dot for abbreviation. + */ + const short DICTIONARY_WORD = 2; + + /** The mode for counting words, it will combine punctuations and + spaces as word trail. + */ + const short WORD_COUNT = 3; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/i18n/XBreakIterator.idl b/offapi/com/sun/star/i18n/XBreakIterator.idl new file mode 100644 index 0000000000..d1ba74a990 --- /dev/null +++ b/offapi/com/sun/star/i18n/XBreakIterator.idl @@ -0,0 +1,477 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module i18n { + + +/** + contains the base routines for iteration in Unicode string. Iterates over + characters, words, sentences and line breaks. + +Assumption: StartPos is inclusive and EndPos is exclusive.
+ */ + +published interface XBreakIterator: com::sun::star::uno::XInterface +{ + /** Traverses specified number of characters/cells in Text from + nStartPos forwards. + CharacterIteratorMode can be cell based or + character based. A cell is made of more than one character. + + @param aText + The input text. + + @param nStartPos + The start index in aText. + + @param aLocale + The locale of the character preceding nStartPos. + + @param nCharacterIteratorMode + A constant from CharacterIteratorMode + + @param nCount + Number of characters to traverse, it should not be less than 0. + If you want to traverse in the opposite direction use + XBreakIterator::previousCharacters() instead. + + @param nDone + Out parameter to receive the number of cells/Unicode characters + traversed. + */ + long nextCharacters( [in] string aText, [in] long nStartPos, + [in] ::com::sun::star::lang::Locale aLocale, + [in] short nCharacterIteratorMode, + [in] long nCount, [out] long nDone ); + + /** Traverses specified number of characters/cells in Text from + nStartPos backwards. + CharacterIteratorMode can be cell based or + character based. A cell is made of more than one character. + + @param aText + The input text. + + @param nStartPos + The start index in aText. + + @param aLocale + The locale of the character preceding nStartPos. + + @param nCharacterIteratorMode + A constant from CharacterIteratorMode + + @param nCount + Number of characters to traverse, it should not be less than 0. + If you want to traverse in the opposite direction use + XBreakIterator::nextCharacters() instead. + + @param nDone + Out parameter to receive the number of cells/Unicode characters + traversed. + + */ + long previousCharacters( [in] string aText, [in] long nStartPos, + [in] ::com::sun::star::lang::Locale aLocale, + [in] short nCharacterIteratorMode, + [in] long nCount, [out] long nDone ); + + /** Traverses one word in Text from nStartPos forwards. + + @param aText + The input text. + + @param nStartPos + The start index in aText. + + @param aLocale + The locale of the character preceding nStartPos. + + @param nWordType + One of WordType, specifies the type of + traveling. + + @returns + The Boundary of the found word. Normally used for + CTRL-Right. + */ + Boundary nextWord( [in] string aText, [in] long nStartPos, + [in] ::com::sun::star::lang::Locale aLocale, + [in] short nWordType); + + /** Traverses one word in Text from nStartPos backwards. + + @param aText + The input text. + + @param nStartPos + The start index in aText. + + @param aLocale + The locale of the character preceding nStartPos. + +If the previous character is a space character and + nWordType indicates spaces should be skipped, and + if the first non-space character is an Asian character, + then, since Asian word break needs language specific + wordbreak dictionaries, the method will return -1 in + Boundary::endPos() and the position after the + Asian character (i.e. the space character) in + Boundary::startPos(). The caller then has to + call this method again with a correct aLocale + referring to the Asian character, which is then the previous + character of the space character where nStartPos + points to.
+ +Note that the OpenOffice.org 1.0 / StarOffice 6.0 + / StarSuite 6.0 i18n framework doesn't behave like this and + mixed Western/CJK text may lead to wrong word iteration. + This is fixed in later versions.
+ + @param nWordType + One of WordType, specifies the type of + traveling. + + @returns + The Boundary of the found word. Normally used for + CTRL-Left. + */ + Boundary previousWord( [in] string aText, [in] long nStartPos, + [in] ::com::sun::star::lang::Locale aLocale, + [in] short nWordType); + + /** Identifies StartPos and EndPos of current word. + +If nPos is the boundary of a word, it is StartPos + of one word and EndPos of previous word. In this situation, the + outcome of the algorithm can be indeterminate. In this situation + the bPreferForward flag is used. If bPreferForward == + `FALSE`, nPos is considered to be the end of the word + and we look backwards for beginning of word, otherwise + nPos is considered to be the start of the next word and + we look forwards for the end of the word.
+ + @param aText + The input text. + + @param nPos + The start index in aText. + + @param aLocale + The locale of the character preceding nStartPos. + + @param nWordType + One of WordType. + + @param bPreferForward + If `TRUE`, nPos should be considered the start of the next + word and search proceeds forwards. + If `FALSE`, nPos should be considered the end of the + current word, and search proceeds backwards. + + @returns + The Boundary of the current word. + */ + Boundary getWordBoundary( [in] string aText, [in] long nPos, + [in] ::com::sun::star::lang::Locale aLocale, + [in] short nWordType, + [in] boolean bPreferForward ); + + /** @deprecated + Get the WordType of the word that starts at + position nPos. + +This method is mis-defined, since WordType + is not an attribute of a word, but a way to break words, + like excluding or including tail spaces for spell checker + or cursor traveling. It returns 0 always. +
+ */ + short getWordType( [in] string aText, [in] long nPos, + [in] ::com::sun::star::lang::Locale aLocale); + + /** If a word starts at position nPos. + +It is possible that both of this method + and following method isEndWord all return + `TRUE`, since StartPos of a word is inclusive + while EndPos of a word is exclusive. +
+ + */ + boolean isBeginWord( [in] string aText, [in] long nPos, + [in] ::com::sun::star::lang::Locale aLocale, + [in] short nWordType); + + /** If a word ends at position nPos. + */ + boolean isEndWord( [in] string aText, [in] long nPos, + [in] ::com::sun::star::lang::Locale aLocale, + [in] short nWordType); + + /** Traverses in Text from nStartPos to the start of a + sentence. + + @param aText + The input text. + + @param nStartPos + The start index in aText. + + @param aLocale + The locale of the character preceding nStartPos. + + @returns + The position where the sentence starts. + */ + long beginOfSentence( [in] string aText, [in] long nStartPos, + [in] ::com::sun::star::lang::Locale aLocale ); + + /** Traverses in Text from nStartPos to the end of a + sentence. + + @param aText + The input text. + + @param nStartPos + The start index in aText. + + @param aLocale + The locale of the character preceding nStartPos. + + @returns + The position where the sentence ends. + */ + long endOfSentence( [in] string aText, [in] long nStartPos, + [in] ::com::sun::star::lang::Locale aLocale ); + + /** Calculate the line break position in the Text from the specified + nStartPos. + + @param aText + The input text. + + @param nStartPos + The start index in aText. + + @param aLocale + The locale of the character preceding nStartPos. + + @param nMinBreakPos + Defines a minimum break position for hyphenated line break. + When the position for hyphenated line break is less than + nMinBreakPos, break position in + LineBreakResults is set to -1. + + @param aHyphOptions + Defines if the hyphenator is to be used. + + @param aUserOptions + Defines how to handle hanging punctuations and forbidden + characters at the start/end of a line. + + @returns + The LineBreakResults contain the break + position of the line, BreakType and + com::sun::star::linguistic2::XHyphenatedWord + */ + LineBreakResults getLineBreak( [in] string aText, [in] long nStartPos, + [in] ::com::sun::star::lang::Locale aLocale, + [in] long nMinBreakPos, + [in] LineBreakHyphenationOptions aHyphOptions, + [in] LineBreakUserOptions aUserOptions ); + + /** Traverses in Text from nStartPos to the beginning of + the specified script type. + + @param aText + The input text. + + @param nStartPos + The start index in aText. + + @param nScriptType + One of ScriptType. + + @returns + The position where the script type starts. + */ + long beginOfScript( [in] string aText, [in] long nStartPos, + [in] short nScriptType ); + + /** Traverses in Text from nStartPos to the end of the + specified script type. + + @param aText + The input text. + + @param nStartPos + The start index in aText. + + @param nScriptType + One of ScriptType. + + @returns + The position where the script type ends. + */ + long endOfScript( [in] string aText, [in] long nStartPos, + [in] short nScriptType ); + + /** Traverses in Text from nStartPos to the next start of + the specified script type. + + @param aText + The input text. + + @param nStartPos + The start index in aText. + + @param nScriptType + One of ScriptType. + + @returns + The position where the next script type starts. + */ + long nextScript( [in] string aText, [in] long nStartPos, + [in] short nScriptType ); + + /** Traverses in Text from nStartPos to the previous start + of the specified script type. + + @param aText + The input text. + + @param nStartPos + The start index in aText. + + @param nScriptType + One of ScriptType. + + @returns + The position where the previous script type starts. + */ + long previousScript( [in] string aText, [in] long nStartPos, + [in] short nScriptType ); + + /** Get the script type of the character at position nPos. + + @param aText + The input text. + + @param nPos + The index in aText. + + @returns + One of ScriptType. + */ + short getScriptType( [in] string aText, [in] long nPos); + + /** Traverses in Text from nStartPos to the beginning of + the specified character type. + + @param aText + The input text. + + @param nStartPos + The start index in aText. + + @param aLocale + The locale of the character preceding nStartPos. + + @param nCharType + One of CharType + + @returns + The position where the character type starts + */ + long beginOfCharBlock( [in] string aText, [in] long nStartPos, + [in] ::com::sun::star::lang::Locale aLocale, + [in] short nCharType ); + + /** Traverses in Text from nStartPos to the end of the + specified character type. + + @param aText + The input text. + + @param nStartPos + The start index in aText. + + @param aLocale + The locale of the character preceding nStartPos. + + @param nCharType + One of CharType + + @returns + The position where the character type ends. + */ + long endOfCharBlock( [in] string aText, [in] long nStartPos, + [in] ::com::sun::star::lang::Locale aLocale, + [in] short nCharType ); + + /** Traverses in Text from nStartPos to the next start of + the specified character type. + + @param aText + The input text. + + @param nStartPos + The start index in aText. + + @param aLocale + The locale of the character preceding nStartPos. + + @param nCharType + One of CharType + + @returns + The position where the next character type starts. + */ + long nextCharBlock( [in] string aText, [in] long nStartPos, + [in] ::com::sun::star::lang::Locale aLocale, + [in] short nCharType ); + + /** Traverses in Text from nStartPos to the previous start + of the specified character type. + + @param aText + The input text. + + @param nStartPos + The start index in aText. + + @param aLocale + The locale of the character preceding nStartPos. + + @param nCharType + One of CharType + + @returns + The position where the previous character type starts. + */ + long previousCharBlock ( [in] string aText, [in] long nStartPos, + [in] ::com::sun::star::lang::Locale aLocale, + [in] short nCharType ); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/i18n/XCalendar.idl b/offapi/com/sun/star/i18n/XCalendar.idl new file mode 100644 index 0000000000..fde85dade6 --- /dev/null +++ b/offapi/com/sun/star/i18n/XCalendar.idl @@ -0,0 +1,202 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module i18n { + + +/** + Access to locale specific calendar systems. + */ + +published interface XCalendar : com::sun::star::uno::XInterface +{ + /// Load the default calendar for the given locale. + void loadDefaultCalendar( [in] ::com::sun::star::lang::Locale rLocale ); + + /// Load a specific calendar for the given locale. + void loadCalendar( [in] string uniqueID, + [in] ::com::sun::star::lang::Locale rLocale ); + + /// Get the currently loaded Calendar. + Calendar getLoadedCalendar(); + + /// Returns all available calendars for the given locale. + sequence< string > getAllCalendars( [in] ::com::sun::star::lang::Locale rLocale ); + + /** Returns the ID string of the loaded calendar, for example, + "Gregorian" + */ + string getUniqueID(); + + /** + Set the UTC date/time as an offset to the start of the calendar + at 1-Jan-1970 00:00. The integer part represents the number of + days passed since start date. The fractional part represents + fractions of a day, thus 0.5 means 12 hours. + */ + void setDateTime( [in] double nTimeInDays ); + + /** + Get the UTC date/time as an offset to the start of the calendar + at 1-Jan-1970 00:00. The integer part represents the number of + days passed since start date. The fractional part represents + fractions of a day, thus 0.5 means 12 hours. + */ + double getDateTime(); + + /** + Set the value of a field. + + @param nCalendarFieldIndex + One of CalendarFieldIndex values. + + @param nValue + A value of the allowed range for the field index. + */ + void setValue( [in] short nCalendarFieldIndex, [in] short nValue ); + + /** + Get the value of a field. + + @param nCalendarFieldIndex + One of CalendarFieldIndex values. + */ + short getValue( [in] short nCalendarFieldIndex ); + + /** + Verify if the date fields set by a combination of + XCalendar::setValue() calls is valid. It has a + side-effect because it will internally calculate the final value + for the date fields + */ + boolean isValid(); + + /** + Add an amount to a field. + + @param nCalendarFieldIndex + One of CalendarFieldIndex values. + + @param nAmount + The amount to add. + */ + void addValue( [in] short nCalendarFieldIndex, [in] long nAmount ); + + /** returns the first day of a week, one of Weekdays + values. + */ + short getFirstDayOfWeek(); + + /** Set the first day of a week, one of Weekdays + values. + */ + void setFirstDayOfWeek( [in] short nDay ); + + /** Set how many days of a week must reside in the first week of a + year. + */ + void setMinimumNumberOfDaysForFirstWeek( [in] short nDays ); + + /** returns how many days of a week must reside in the first week of + a year. + */ + short getMinimumNumberOfDaysForFirstWeek(); + + /// returns the number of months in a year, e.g. 12 + short getNumberOfMonthsInYear(); + + /// returns the number of days in a week, e.g. 7 + short getNumberOfDaysInWeek(); + + /** returns a sequence of CalendarItem describing the + month names. + */ + sequence< CalendarItem > getMonths(); + + /** returns a sequence of CalendarItem describing the + day names. + */ + sequence< CalendarItem > getDays(); + + /** + Returns a string (name to display) matching the given parameters. + + @param nCalendarDisplayIndex + One of CalendarDisplayIndex values + + @param nIdx + A value matching the nCalendarDisplayIndex type: +The value should be obtained by a previous call to + XCalendar::getValue() with an appropriate + CalendarFieldIndex argument.
+ + @param nNameType + A value indicating whether to return the abbreviated or the + full name, or the narrow name for some + CalendarDisplayIndex values. +This parameter is not used if the + nCalendarDisplayIndex argument equals + CalendarDisplayIndex::AM_PM
+ */ + + string getDisplayName( [in] short nCalendarDisplayIndex, + [in] short nIdx, + [in] short nNameType ); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/i18n/XCalendar3.idl b/offapi/com/sun/star/i18n/XCalendar3.idl new file mode 100644 index 0000000000..d046152170 --- /dev/null +++ b/offapi/com/sun/star/i18n/XCalendar3.idl @@ -0,0 +1,56 @@ +/* -*- 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/. + */ + + +module com { module sun { module star { module i18n { + + + +/** + This interface provides access to locale specific calendar + systems. + +It is derived from + ::com::sun::star::i18n::XExtendedCalendar and + provides additional methods to obtain Calendar2 items + that include the possessive genitive case month names and sequences + of CalendarItem2 items...
+ + @since LibreOffice 3.5 + */ +published interface XCalendar3 : com::sun::star::i18n::XExtendedCalendar +{ + /// Get the currently loaded Calendar2. + Calendar2 getLoadedCalendar2(); + + /** returns a sequence of CalendarItem2 describing the + day names. + */ + sequence< CalendarItem2 > getDays2(); + + /** returns a sequence of CalendarItem2 describing the + month names. + */ + sequence< CalendarItem2 > getMonths2(); + + /** returns a sequence of CalendarItem2 describing the + genitive case month names. + */ + sequence< CalendarItem2 > getGenitiveMonths2(); + + /** returns a sequence of CalendarItem2 describing the + partitive case month names. + */ + sequence< CalendarItem2 > getPartitiveMonths2(); + +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/i18n/XCalendar4.idl b/offapi/com/sun/star/i18n/XCalendar4.idl new file mode 100644 index 0000000000..a062b4e587 --- /dev/null +++ b/offapi/com/sun/star/i18n/XCalendar4.idl @@ -0,0 +1,85 @@ +/* -*- 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/. + */ + + +module com { module sun { module star { module i18n { + + + +/** This interface provides access to locale specific calendar + systems. + +It is derived from ::com::sun::star::i18n::XCalendar3 and + provides additional methods to set and get the local time.
+ + @since LibreOffice 5.0 + */ +interface XCalendar4 : com::sun::star::i18n::XCalendar3 +{ + /** Set the local date/time as an offset to the start of the + calendar at 1-Jan-1970 00:00. The integer part represents the + number of days passed since start date. The fractional part + represents fractions of a day, thus 0.5 means 12 hours. + + The actual timezone and daylight saving time offsets effective + at the given date and time are considered and subtracted before + setting the UTC time at the calendar. + */ + void setLocalDateTime( [in] double TimeInDays ); + + /** Get the local date/time as an offset to the start of the + calendar at 1-Jan-1970 00:00. The integer part represents the + number of days passed since start date. The fractional part + represents fractions of a day, thus 0.5 means 12 hours. + + The actual timezone and daylight saving time offsets effective + at the given date and time are considered and added to the UTC + time at the calendar. + */ + double getLocalDateTime(); + + /** Load the default calendar for the given locale with a given time zone. + + @param rLocale + the locale for the calendar + @param TimeZone + If empty, the system's time zone is used. + Else specified as "Region/City" name like "Europe/Berlin", + or a custom time zone ID such as "UTC" or "GMT-8:00". + + @since LibreOffice 6.3 + */ + void loadDefaultCalendarTZ( [in] ::com::sun::star::lang::Locale rLocale, [in] string TimeZone ); + + /** Load a specific calendar for the given locale with a given time zone. + + @param uniqueID + the uniqueID for the calendar. + As of 2019-09-25, we can specify ROC, dangi, buddhist, gengou, + gregorian, hanja, hanja_yoil, hijri, jewish. + If the calendar for the specified uniqueID is not found, + gregorian is used. + @param rLocale + the locale for the calendar + @param TimeZone + If empty, the system's time zone is used. + Else specified as "Region/City" name like "Europe/Berlin", + or a custom time zone ID such as "UTC" or "GMT-8:00". + + @since LibreOffice 6.3 + */ + void loadCalendarTZ( [in] string uniqueID, + [in] ::com::sun::star::lang::Locale rLocale, + [in] string TimeZone ); + +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/i18n/XCharacterClassification.idl b/offapi/com/sun/star/i18n/XCharacterClassification.idl new file mode 100644 index 0000000000..2d8da610f4 --- /dev/null +++ b/offapi/com/sun/star/i18n/XCharacterClassification.idl @@ -0,0 +1,275 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module i18n { + + +/* + +Possible tokens to be parsed with parse...Token(): + +UPASCALPHA=[A-Z] +LOASCALPHA=[a-z] +ASCALPHA=1*(UPASCALPHA|LOASCALPHA) +ASCDIGIT=[0-9] +ASC_UNDERSCORE='_' +ASC_SPACE=' ' +ASC_HT='\0x9' +ASC_VT='\0xb' +ASC_WS=ASC_SPACE|ASC_HT|ASC_VT +ASC_DBL_QUOTE=\"; +ASC_QUOTE=\' +UPASC_IDENTIFIER=UPASCALPHA *(UPASCALPHA|ASCDIGIT|ASC_UNDERSCORE) + +ALPHA,DIGIT are the tokens which return true for isAlpha and isDigit +ALNUM=ALPHA|DIGIT +CHAR=anycharacter +WS=isWhiteSpace() +SIGN='+'|'-' +DECSEP=A name or identifier must match the + KParseTokens criteria passed in + nStartCharFlags and nContCharFlags and may + additionally contain characters of + aUserDefinedCharactersStart and/or + aUserDefinedCharactersCont.
+ + + @returns + A filled ParseResult structure. If no + unambiguous token could be parsed, + ParseResult::TokenType will be set to + 0 (zero), other fields will contain the values parsed + so far. + +If a token may represent either a numeric value or a + name according to the passed Start/Cont-Flags/Chars, both + KParseType::ASC_NUM (or + KParseType::UNI_NUM) and + KParseType::IDENTNAME are set in + ParseResult::TokenType. + + @param aText + Text to be parsed. + + @param nPos + Position where parsing starts. + + @param aLocale + The locale, for example, for decimal and group separator or + character type determination. + + @param nStartCharFlags + A set of KParseTokens constants determining the + allowed characters a name or identifier may start with. + + @param aUserDefinedCharactersStart + A set of additionally allowed characters a name or + identifier may start with. + + @param nContCharFlags + A set of KParseTokens constants determining the + allowed characters a name or identifier may continue with. + + @param aUserDefinedCharactersCont + A set of additionally allowed characters a name or + identifier may continue with. + + @code{.cpp} + using namespace ::com::sun::star::i18n; + // First character of an identifier may be any alphabetic or underscore. + sal_Int32 nStartFlags = KParseTokens::ANY_ALPHA | KParseTokens::ASC_UNDERSCORE; + // Continuing characters may be any alphanumeric or underscore or dot. + sal_Int32 nContFlags = KParseTokens::ANY_ALNUM | KParseTokens::ASC_UNDERSCORE | KParseTokens::ASC_DOT; + // No further characters assumed to be contained in an identifier + OUString aEmptyString; + // Parse any token. + ParseResult rRes = xCC->parseAnyToken( aText, nPos, aLocale, + nStartFlags, aEmptyString, nContFlags, aEmptyString ); + // Get parsed token. + if ( rRes.TokenType & (KParseType::ASC_NUMBER | KParseType::UNI_NUMBER) ) + fValue = rRes.Value; + if ( rRes.TokenType & KParseType::IDENTNAME ) + aName = aText.copy( nPos, rRes.EndPos - nPos ); + else if ( rRes.TokenType & KParseType::SINGLE_QUOTE_NAME ) + aName = rRes.DequotedNameOrString; + else if ( rRes.TokenType & KParseType::DOUBLE_QUOTE_STRING ) + aString = rRes.DequotedNameOrString; + else if ( rRes.TokenType & KParseType::BOOLEAN ) + aSymbol = aText.copy( nPos, rRes.EndPos - nPos ); + else if ( rRes.TokenType & KParseType::ONE_SINGLE_CHAR ) + aSymbol = aText.copy( nPos, rRes.EndPos - nPos ); + @endcode + */ + + ParseResult parseAnyToken( + [in] string aText, + [in] long nPos, + [in] com::sun::star::lang::Locale aLocale, + [in] long nStartCharFlags, + [in] string aUserDefinedCharactersStart, + [in] long nContCharFlags, + [in] string aUserDefinedCharactersCont + ); + + /** + Parse a string for a token of type nTokenType starting + at position nPos. + +
Other parameters are the same as in + parseAnyToken(). If the actual token does not + match the passed nTokenType a + ParseResult::TokenType set to 0 (zero) + is returned.
+ + @param nTokenType + One or more of the KParseType constants. + + @param aText + See #parseAnyToken + @param nPos + See #parseAnyToken + @param aLocale + See #parseAnyToken + @param nStartCharFlags + See #parseAnyToken + @param aUserDefinedCharactersStart + See #parseAnyToken + @param nContCharFlags + See #parseAnyToken + @param aUserDefinedCharactersCont + See #parseAnyToken + + @code{.cpp} + // Determine if a given name is a valid name (not quoted) and contains + // only allowed characters. + using namespace ::com::sun::star::i18n; + // First character of an identifier may be any alphanumeric or underscore. + sal_Int32 nStartFlags = KParseTokens::ANY_ALNUM | KParseTokens::ASC_UNDERSCORE; + // No further characters assumed to be contained in an identifier start. + OUString aEmptyString; + // Continuing characters may be any alphanumeric or underscore. + sal_Int32 nContFlags = nStartFlags; + // Additionally, continuing characters may contain a blank. + OUString aContChars( " " ); + // Parse predefined (must be an IDENTNAME) token. + ParseResult rRes = xCC->parsePredefinedToken( KParseType::IDENTNAME, rName, 0, aLocale, + nStartFlags, aEmptyString, nContFlags, aContChars ); + // Test if it is an identifier name and if it only is one + // and no more else is following it. + bValid = (rRes.TokenType & KParseType::IDENTNAME) && rRes.EndPos == rName.Len(); + @endcode + */ + + ParseResult parsePredefinedToken( + [in] long nTokenType, + [in] string aText, + [in] long nPos, + [in] com::sun::star::lang::Locale aLocale, + [in] long nStartCharFlags, + [in] string aUserDefinedCharactersStart, + [in] long nContCharFlags, + [in] string aUserDefinedCharactersCont + ); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/i18n/XCollator.idl b/offapi/com/sun/star/i18n/XCollator.idl new file mode 100644 index 0000000000..10ed3f3df2 --- /dev/null +++ b/offapi/com/sun/star/i18n/XCollator.idl @@ -0,0 +1,150 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module i18n { + +/** provides locale-sensitive collation algorithms for string comparison. + +*/ +published interface XCollator: com::sun::star::uno::XInterface +{ + /** Compare 2 substrings in specific locale and algorithm. + + @param aStr1 + First string. + + @param nOff1 + Offset (from 0) of the first string. + + @param nLen1 + Length (from offset) of the first substring. + + @param aStr2 + Second string + + @param nOff2 + Offset (from 0) of the second string. + + @param nLen2 + Length (from offset) of the second substring. + + @returns + 1 if the first string is greater than the second stringIt is derived from + ::com::sun::star::i18n::XCalendar and provides + additional functionality to display parts of the date currently + set at the calendar.
+ + @since OOo 1.1.2 + */ +published interface XExtendedCalendar : ::com::sun::star::i18n::XCalendar +{ + /** + Returns a string (number or name to display) matching the + given code constant. + +Note that the string returned depends completely on the + locale's calendar. It is not predictable if the string will be + numeric or a name, or if in case it returns a numeric string + how many digits that will have. For example, a short year + display string will normally be two digits with a Gregorian + calendar, but with a Jewish calendar it will have three + digits.
+ + @param nCalendarDisplayCode + One of CalendarDisplayCode + + @param nNativeNumberMode + One of NativeNumberMode.It is derived from + ::com::sun::star::i18n::XIndexEntrySupplier and + provides following additional functionalities.
+Note that loadAlgorithm should be called before calling + this function.
+ + @param aIndexEntry + Index entry + + @param aPhoneticEntry + Phonetic entry + + @param aLocale + Language attribute for index and phonetic entry.Note that loadAlgorithm should be called before calling + this function.
+ + @param aIndexEntry1 + @param aIndexEntry2 + Index entries to be compared + + @param aPhoneticEntry1 + @param aPhoneticEntry2 + Phonetic entries to be compared + + @param aLocale1 + @param aLocale2 + Language attribute for index and phonetic entry.It is derived from + ::com::sun::star::i18n::XInputSequenceChecker and + provides additional functionality to correct input sequence.
+ + @since OOo 2.0.1 + */ +published interface XExtendedInputSequenceChecker : ::com::sun::star::i18n::XInputSequenceChecker +{ + /** @returns + Next nPos, or length of aText if nothing is corrected. + + @param aText + Text to be checked and corrected. + + @param nPos + Index in aText where checking starts. + + @param cInputChar + The input character. Or at least, a UTF16 code unit thereof. + It looks like this interface was not designed with non-BMP + characters in mind. Not sure if that is a problem. + + @param nInputCheckMode + One of InputSequenceCheckMode constants. + */ + long correctInputSequence( [inout] string aText, [in] long nPos, + [in] char cInputChar, [in] short nInputCheckMode ); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/i18n/XExtendedTextConversion.idl b/offapi/com/sun/star/i18n/XExtendedTextConversion.idl new file mode 100644 index 0000000000..3eaa6a6dd8 --- /dev/null +++ b/offapi/com/sun/star/i18n/XExtendedTextConversion.idl @@ -0,0 +1,78 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module i18n { + + + +/** + This interface provides Text Conversion service. + +It is derived from + ::com::sun::star::i18n::XTextConversion and provides + a new conversion function containing position map (offset) between original + and converted string.
+ + @since OOo 2.0 + */ +published interface XExtendedTextConversion : ::com::sun::star::i18n::XTextConversion +{ + /** + The functionality of this method is same as + ::com::sun::star::i18n::XTextConversion::getConversion(), + except an additional output parameter rOffset. + + @param aText + See ::com::sun::star::i18n::XTextConversion::getConversion() + @param nStartPos + See ::com::sun::star::i18n::XTextConversion::getConversion() + @param nLength + See ::com::sun::star::i18n::XTextConversion::getConversion() + @param aLocale + See ::com::sun::star::i18n::XTextConversion::getConversion() + @param nTextConversionType + See ::com::sun::star::i18n::XTextConversion::getConversion() + @param nTextConversionOptions + See ::com::sun::star::i18n::XTextConversion::getConversion() + + @param rOffset + To find the grapheme of input string corresponding to the + grapheme of output string, rOffset provides the offset array + whose index is the offset of output string, the element + containing the position within the input string. + When the graphemes of input and output strings are simple + one to one mapping, to improve the performance, returned + rOffset will be a zero length array. + */ + string getConversionWithOffset( + [in] string aText, + [in] long nStartPos, + [in] long nLength, + [in] ::com::sun::star::lang::Locale aLocale, + [in] short nTextConversionType, + [in] long nTextConversionOptions, + [out] sequenceIt is derived from + ::com::sun::star::i18n::XTransliteration and provides + additional functionality for character to character and + string to string without offset parameter transliteration. These + should be used for performance reason if their full-blown + counterparts aren't needed.
+ + @since OOo 1.1.2 + */ +published interface XExtendedTransliteration : ::com::sun::star::i18n::XTransliteration +{ + /** Transliterate a substring. The functionality is the same as + ::com::sun::star::i18n::XTransliteration::transliterate() + but omits the offset parameter to improve performance. + + @param aStr + The input string. + + @param nStartPos + Start position within aStr from where transliteration starts. + + @param nCount + Number of code points to be transliterated. + + */ + string transliterateString2String( [in] string aStr, + [in] long nStartPos, [in] long nCount ); + + + /** Transliterate a character to a string. + + @param cChar + The input character. + */ + string transliterateChar2String( [in] char cChar ); + + /** Transliterate a character to a character. + +If the output contains multiple characters, for example when + transliterating German sharp "s" (the one that looks like a + Greek Beta) to upper case "SS", MultipleCharsOutputException + will be thrown, the caller must catch the exception and then + call + XTransliteration::transliterateChar2String() to + obtain the correct result.
+ + @param cChar + The input character. + */ + char transliterateChar2Char( [in] char cChar ) + raises( MultipleCharsOutputException ); + +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/i18n/XForbiddenCharacters.idl b/offapi/com/sun/star/i18n/XForbiddenCharacters.idl new file mode 100644 index 0000000000..8eec0ffea2 --- /dev/null +++ b/offapi/com/sun/star/i18n/XForbiddenCharacters.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 . + */ + + + +module com { module sun { module star { module i18n { + + +/** + provides access to forbidden character settings in a document. + +In some languages, particular characters are not allowed to be + placed at the beginning or at the end of a text line.
+ */ + +published interface XForbiddenCharacters : com::sun::star::uno::XInterface +{ + /** returns the forbidden characters for a given locale. + */ + ForbiddenCharacters getForbiddenCharacters( + [in] com::sun::star::lang::Locale aLocale ) + raises( com::sun::star::container::NoSuchElementException ); + + /** determines if forbidden characters are set for a given locale. + */ + boolean hasForbiddenCharacters( + [in] com::sun::star::lang::Locale aLocale ); + + /** sets the forbidden characters for a given Locale. + */ + void setForbiddenCharacters( + [in] com::sun::star::lang::Locale aLocale, + [in] ForbiddenCharacters aForbiddenCharacters ); + + /** removes the setting of forbidden characters for a given locale. + */ + void removeForbiddenCharacters( + [in] com::sun::star::lang::Locale aLocale ); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/i18n/XIndexEntrySupplier.idl b/offapi/com/sun/star/i18n/XIndexEntrySupplier.idl new file mode 100644 index 0000000000..47d1d62963 --- /dev/null +++ b/offapi/com/sun/star/i18n/XIndexEntrySupplier.idl @@ -0,0 +1,57 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module i18n { + + +/** + supplies information on index entries to generate a "table of + alphabetical index" for a given locale. +*/ + +published interface XIndexEntrySupplier : com::sun::star::uno::XInterface +{ + /** + returns the capital index key for sorting a table of indexes, to + a given index entry, to a given com::sun::star::lang::Locale and to a + given sort algorithm. + +For example, in English locale it returns "K" for + "keyboard" + */ + string getIndexCharacter( [in] string aIndexEntry, [in] + com::sun::star::lang::Locale aLocale, [in] string aSortAlgorithm ); + + /** + returns the page number word of an index entry, where one page + or more pages are combined to one page number entry, for a given + com::sun::star::lang::Locale. + +
For example, in English locale it returns
+ "p." for bMorePages == `FALSE`
+ "pp." for bMorePages == `TRUE`
For XML locale data files definitions see + the DTD file.
+ */ + +published interface XLocaleData: com::sun::star::uno::XInterface +{ + /** returns the LC_INFO locale information. + */ + LanguageCountryInfo getLanguageCountryInfo( + [in] com::sun::star::lang::Locale aLocale ); + + /** returns LC_CTYPE separators and markers. + */ + LocaleDataItem getLocaleItem( + [in] com::sun::star::lang::Locale aLocale ); + + /** returns all LC_CALENDAR calendars for a locale. + */ + sequenceDerived from + ::com::sun::star::i18n::XLocaleData and provides + an additional method to return a sequence of all + ::com::sun::star::i18n::Currency2 elements + available for that locale. + + @since OOo 2.0.3 + */ + +published interface XLocaleData2 : com::sun::star::i18n::XLocaleData +{ + /** returns all LC_CURRENCY currencies for a locale. + */ + sequence< Currency2 > getAllCurrencies2( + [in] com::sun::star::lang::Locale aLocale ); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/i18n/XLocaleData3.idl b/offapi/com/sun/star/i18n/XLocaleData3.idl new file mode 100644 index 0000000000..4fe5424bcb --- /dev/null +++ b/offapi/com/sun/star/i18n/XLocaleData3.idl @@ -0,0 +1,34 @@ +/* -*- 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/. + */ + + +module com { module sun { module star { module i18n { + + +/** + Access locale specific data. + +
Derived from ::com::sun::star::i18n::XLocaleData2 this provides an + additional method to return a sequence of all + ::com::sun::star::i18n::Calendar2 elements available for that locale. + + @since LibreOffice 3.5 + */ + +published interface XLocaleData3 : com::sun::star::i18n::XLocaleData2 +{ + /** returns all LC_CALENDAR calendars for a locale. + */ + sequence< Calendar2 > getAllCalendars2( + [in] com::sun::star::lang::Locale aLocale ); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/i18n/XLocaleData4.idl b/offapi/com/sun/star/i18n/XLocaleData4.idl new file mode 100644 index 0000000000..0fae862360 --- /dev/null +++ b/offapi/com/sun/star/i18n/XLocaleData4.idl @@ -0,0 +1,37 @@ +/* -*- 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/. + */ + + +module com { module sun { module star { module i18n { + + +/** + Access locale specific data. + +
Derived from ::com::sun::star::i18n::XLocaleData3 + this provides an additional method to return a sequence of date + acceptance patterns for a locale. + + @since LibreOffice 3.6 + */ + +published interface XLocaleData4 : com::sun::star::i18n::XLocaleData3 +{ + /** returns a sequence of date acceptance patterns for a locale + +
Patterns with input combinations that are accepted as + incomplete date input, such as M/D or D.M. + */ + sequence< string > getDateAcceptancePatterns( + [in] com::sun::star::lang::Locale aLocale ); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/i18n/XLocaleData5.idl b/offapi/com/sun/star/i18n/XLocaleData5.idl new file mode 100644 index 0000000000..4b1d86b17d --- /dev/null +++ b/offapi/com/sun/star/i18n/XLocaleData5.idl @@ -0,0 +1,34 @@ +/* -*- 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/. + */ + + +module com { module sun { module star { module i18n { + + +/** + Access locale specific data. + +
Derived from ::com::sun::star::i18n::XLocaleData4 + this provides an additional method to return an instance of + com::sun::star::i18n::LocaleDataItem2 + + @since LibreOffice 6.0 + */ + +interface XLocaleData5 : com::sun::star::i18n::XLocaleData4 +{ + /** returns an instance of com::sun::star::i18n::LocaleDataItem2 for + a Locale. + */ + com::sun::star::i18n::LocaleDataItem2 getLocaleItem2( [in] com::sun::star::lang::Locale Locale ); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ diff --git a/offapi/com/sun/star/i18n/XNativeNumberSupplier.idl b/offapi/com/sun/star/i18n/XNativeNumberSupplier.idl new file mode 100644 index 0000000000..d5f549ce03 --- /dev/null +++ b/offapi/com/sun/star/i18n/XNativeNumberSupplier.idl @@ -0,0 +1,82 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module i18n { + + +/** Methods to convert between strings of ASCII Arabic digits and native + numeral strings. + + @since OOo 1.1.2 + */ + +published interface XNativeNumberSupplier : ::com::sun::star::uno::XInterface +{ + /** Returns native number string for given number string. + + @param aNumberString + The input string. + + @param nNativeNumberMode + One of NativeNumberMode values. + + @param aLocale + The locale. + */ + string getNativeNumberString( [in] string aNumberString, + [in] ::com::sun::star::lang::Locale aLocale, + [in] short nNativeNumberMode ); + + /** Check if the NatNum is valid for the given locale. + + @param nNativeNumberMode + One of NativeNumberMode values. + + @param aLocale + The locale. + */ + boolean isValidNatNum( [in] ::com::sun::star::lang::Locale aLocale, + [in] short nNativeNumberMode ); + + /** Convert a specific NatNum/Locale combination to attributes used + in the XML file format. + + @param nNativeNumberMode + One of NativeNumberMode values. + + @param aLocale + The locale. + */ + NativeNumberXmlAttributes convertToXmlAttributes( + [in] ::com::sun::star::lang::Locale aLocale, + [in] short nNativeNumberMode ); + + /** Convert XML attributes to a NatNum value. + + @returns + One of NativeNumberMode + */ + short convertFromXmlAttributes( [in] NativeNumberXmlAttributes aAttr ); + +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/i18n/XNativeNumberSupplier2.idl b/offapi/com/sun/star/i18n/XNativeNumberSupplier2.idl new file mode 100644 index 0000000000..8d1659cb1b --- /dev/null +++ b/offapi/com/sun/star/i18n/XNativeNumberSupplier2.idl @@ -0,0 +1,62 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module i18n { + + +/** Methods to convert between strings of ASCII Arabic digits and native + numeral strings, using NatNum params. + + @since LibreOffice 6.1 + + @internal + + ATTENTION: This interface is marked internal and does not + have the published flag, which means it is subject to + change without notice and should not be used outside the LibreOffice core. + */ + +interface XNativeNumberSupplier2 : ::com::sun::star::i18n::XNativeNumberSupplier +{ + /** Returns native number string for given number string, using NatNum params. + + @param NumberString + The input string. + + @param NativeNumberMode + One of NativeNumberMode values. + + @param Locale + The locale. + + @param NativeNumberParameters + The NatNum params (like "ordinal-digits" in [NatNum12 ordinal-digits]). + */ + string getNativeNumberStringParams( + [in] string NumberString, + [in] ::com::sun::star::lang::Locale Locale, + [in] short NativeNumberMode, + [in] string NativeNumberParameters ); + +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/i18n/XNumberFormatCode.idl b/offapi/com/sun/star/i18n/XNumberFormatCode.idl new file mode 100644 index 0000000000..047875d1ee --- /dev/null +++ b/offapi/com/sun/star/i18n/XNumberFormatCode.idl @@ -0,0 +1,86 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module i18n { + + +/** + Access number format codes defined in locale data. + */ + +published interface XNumberFormatCode : com::sun::star::uno::XInterface +{ + /** + returns the default number format code of a specific category + (usage group) for a given locale and format length type. + + @param nFormatType + one of the constants listed in KNumberFormatType + + @param nFormatUsage + one of KNumberFormatUsage values + + @param rLocale + The locale for which the format code is requested. + */ + NumberFormatCode getDefault( [in] short nFormatType, + [in] short nFormatUsage, + [in] com::sun::star::lang::Locale rLocale ); + + /** + returns the number format pointed to by nFormatIndex for + a given locale. + + @param nFormatIndex + one of NumberFormatIndex values + + @param rLocale + The locale for which the format code is requested. + */ + NumberFormatCode getFormatCode( [in] short nFormatIndex, + [in] com::sun::star::lang::Locale rLocale ); + + /** + returns all format codes for a given nFormatUsage and locale. + + @param nFormatUsage + one of KNumberFormatUsage values + + @param rLocale + The locale for which the format codes are requested. + */ + sequence< NumberFormatCode > getAllFormatCode( + [in] short nFormatUsage, + [in] com::sun::star::lang::Locale rLocale ); + + /** + returns all format codes for a given locale. + + @param rLocale + The locale for which the format codes are requested. + */ + sequence< NumberFormatCode > getAllFormatCodes( + [in] com::sun::star::lang::Locale rLocale ); + +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/i18n/XOrdinalSuffix.idl b/offapi/com/sun/star/i18n/XOrdinalSuffix.idl new file mode 100644 index 0000000000..fdd61a907c --- /dev/null +++ b/offapi/com/sun/star/i18n/XOrdinalSuffix.idl @@ -0,0 +1,54 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module i18n { + + +/** provides access to locale specific ordinal suffix systems. + + @since OOo 2.2 + + @internal + + ATTENTION: This interface is marked internal and does not + have the published flag, which means it is subject to + change without notice and should not be used outside the OOo core. + */ + +interface XOrdinalSuffix : com::sun::star::uno::XInterface +{ + /** Returns all the possible ordinal suffixes for the number. + + This method will provide "st", "nd", "rd", + "th" for an English locale, depending on the provided number. + In some locales like French, Italian or Spanish it ca return several + suffixes for one number. + + Examples: for the number '1', the values will be st in + English, but er and re in French. All these values + may depend on the underlying version of ICU. + + */ + sequence< string > getOrdinalSuffix( [in] long nNumber, [in] com::sun::star::lang::Locale aLocale ); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/i18n/XScriptTypeDetector.idl b/offapi/com/sun/star/i18n/XScriptTypeDetector.idl new file mode 100644 index 0000000000..083e4f39ab --- /dev/null +++ b/offapi/com/sun/star/i18n/XScriptTypeDetector.idl @@ -0,0 +1,72 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module i18n { + + +/** + contains the help routines for layouting complex text + +
Assumption - StartPos is inclusive and EndPos is exclusive.
+ +The nScriptDirection parameters are of type + ScriptDirection
+ + @since OOo 1.1.2 +*/ + +published interface XScriptTypeDetector : ::com::sun::star::uno::XInterface +{ + + /** @returns the position where the specified Script Direction starts. + */ + long beginOfScriptDirection( [in] string aText, [in] long nPos, + [in] short nScriptDirection ); + + /** @returns the position where the specified Script Direction ends. + */ + long endOfScriptDirection( [in] string aText, [in] long nPos, + [in] short nScriptDirection ); + + /** @returns the Script Direction of the current position. + */ + short getScriptDirection ([in] string aText, [in] long nPos, + [in] short nDefaultScriptDirection ); + + /** @returns the position where the specified CTL Script Type starts. + @deprecated since LibreOffice 7.6 + */ + long beginOfCTLScriptType( [in] string aText, [in] long nPos); + + /** @returns the position where the specified CTL Script Type ends. + @deprecated since LibreOffice 7.6 + */ + long endOfCTLScriptType( [in] string aText, [in] long nPos); + + /** @returns the CTL script type of the current position.Transliteration is a character to character conversion but it is + not always a one to one mapping between characters. Transliteration + modules are primarily used by collation, and search and replace + modules to perform approximate search. It can also be used to format + the numbers in different numbering systems.
+ +In order to select transliteration modules for different + purposes, they are classified with attributes of + TransliterationType.
+ +For Western languages there would be three transliteration + modules available to compare two mixed case strings: upper to lower, + lower to upper, and ignore case.
+ +A typical calling sequence of transliteration is +
Each transliteration module is registered under a different
+ service name. The convention for the service name is
+ com.sun.star.i18n.Transliteration.l10n.{implName}. The
+ {implName} is a unique name used to identify a module. The
+ implName is used to get a localized name for the transliteration
+ module. The implName is used in locale data to list the
+ available transliteration modules for the locale. There are some
+ transliteration modules that are always available. The names of
+ those modules are listed as enum
+ TransliterationModules names. For modules not
+ listed there it is possible to load them directly by their
+ implName.
+
+ @param aImplName
+ The module's {implName} under which it is registered with
+ com.sun.star.i18n.Transliteration.l10n.{implName}.
+ @param aLocale
+ The locale for which the module is requested.
+ */
+ void loadModuleByImplName( [in] string aImplName,
+ [in] ::com::sun::star::lang::Locale aLocale );
+
+ /** Load a sequence of instances of transliteration modules.
+ Output of one module is fed as input to the next module in
+ the sequence. The object created by this call has
+ TransliterationType CASCADE and IGNORE types.
+
+ @param aImplNameList
+ Only IGNORE type modules can be specified.
+ @param aLocale
+ The locale for which the modules are requested.
+ */
+ void loadModulesByImplNames( [in] sequence This method can be called if the object has
+ TransliterationType IGNORE attribute. Returns the number of matched code points in any case, even if
+ strings are not equal, for example: This method is intended for getting corresponding ranges and
+ can be called if the object has TransliterationType
+ IGNORE attribute. For example: generic CASE_IGNORE transliterateRange( "a", "i" )
+ returns {"A","I","a","i"}, transliterateRange( "a", "a" )
+ returns {"A","A","a","a"}. Use this transliteration to create regular expressions like
+ [a-i] --> [A-Ia-i].
+
+ @see com::sun::star::document::Events
+ */
+ interface com::sun::star::document::XEventsSupplier;
+
+ /** This is the URL for this object */
+ [property] string URL;
+
+ /** This is an optional description text for the link. */
+ [property] string Description;
+
+ /** This is the target frame */
+ [property] string Target;
+
+ /** Optionally, objects could be named. */
+ [property] string Name;
+
+ /** If an object is not active, it is ignored when
+ the user clicks on the ImageMap.
+ */
+ [property] boolean IsActive;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/image/ImageMapPolygonObject.idl b/offapi/com/sun/star/image/ImageMapPolygonObject.idl
new file mode 100644
index 0000000000..02b4a42c1e
--- /dev/null
+++ b/offapi/com/sun/star/image/ImageMapPolygonObject.idl
@@ -0,0 +1,42 @@
+/* -*- 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 .
+ */
+
+
+ module com { module sun { module star { module image {
+
+
+/** this service describes a polygon-shaped region inside
+ a HTML image map.
+ @see ImageMap
+ @see ImageMapObject
+*/
+published service ImageMapPolygonObject
+{
+ /** The basic service for all image map objects. */
+ service ImageMapObject;
+
+ /** This sequence of points outlines the click area of
+ this image map object. */
+ [property] com::sun::star::drawing::PointSequence Polygon;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/image/ImageMapRectangleObject.idl b/offapi/com/sun/star/image/ImageMapRectangleObject.idl
new file mode 100644
index 0000000000..a18bec0e7b
--- /dev/null
+++ b/offapi/com/sun/star/image/ImageMapRectangleObject.idl
@@ -0,0 +1,41 @@
+/* -*- 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 .
+ */
+
+
+ module com { module sun { module star { module image {
+
+
+/** this service describes a rectangular-shaped region inside
+ a HTML image map.
+ @see ImageMap
+ @see ImageMapObject
+*/
+published service ImageMapRectangleObject
+{
+ /** The basic service for all image map objects. */
+ service ImageMapObject;
+
+ /** This is the boundary of this rectangle object */
+ [property] com::sun::star::awt::Rectangle Boundary;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/inspection/DefaultHelpProvider.idl b/offapi/com/sun/star/inspection/DefaultHelpProvider.idl
new file mode 100644
index 0000000000..b88e7e1278
--- /dev/null
+++ b/offapi/com/sun/star/inspection/DefaultHelpProvider.idl
@@ -0,0 +1,52 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module inspection {
+
+interface XObjectInspectorUI;
+
+
+/** implements a component which can default-fill the help section of an
+ ObjectInspector.
+
+ The component registers a XPropertyControlObserver at an
+ XObjectInspectoryUI interface. Whenever it then is notified
+ of a XPropertyControl getting the focus, it will try to deduce
+ the extended help text of this control's window, and set this help text at the
+ object inspector's help section. The property handler implemented by this service will do an introspection
+ on the provided components, and expose the properties obtained via
+ XIntrospectionAccess::getProperties. The handler will automatically determine the best type of property control
+ to represent a certain property, depending on the property type. This includes,
+ for example, list box controls to represent enumeration properties. In this case, the obtained value is passed to the caller of
+ XPropertyHandler::onInteractivePropertySelection(), which is
+ responsible for forwarding this value to the inspected component. This is usually used when this selection involves non-modal user interface. If no image for the primary button is specified, but a primary button is present,
+ the three dots will be displayed on the button. In OpenOffice.org, UI elements sometimes require a so-called UniqueID, which can be
+ used to uniquely (within the whole application) identify this UI element. For instance,
+ automating the OpenOffice.org UI via a dedicated separate application ("TestTool") requires
+ such IDs. If a primary button exists for a property's UI representation (#HasPrimaryButton),
+ it gets the ID specified herein. This URL will be used to obtain an actual com::sun::star::graphic::XGraphic
+ object from a com::sun::star::graphic::GraphicProvider. The property will be ignored if #HasPrimaryButton is `FALSE`. If you need to specify a graphic which does not have a URL, but is available as
+ com::sun::star::graphic::XGraphic only, then you must leave
+ The property will be ignored if #HasPrimaryButton is `FALSE`, or
+ if #PrimaryButtonImageURL is a non-empty string. A secondary button subordinated to the primary button. If no primary button exists
+ (#HasPrimaryButton), this member is ignored. If a secondary button exists for a property's UI representation (#HasSecondaryButton),
+ it gets the ID specified herein. This URL will be used to obtain an actual com::sun::star::graphic::XGraphic
+ object from a com::sun::star::graphic::GraphicProvider. The property will be ignored if #HasSecondaryButton is `FALSE`. If you need to specify a graphic which does not have a URL, but is available as
+ com::sun::star::graphic::XGraphic only, then you must leave
+ The property will be ignored if #HasSecondaryButton is `FALSE`, or
+ if #SecondaryButtonImageURL is a non-empty string. If a given property semantically depends on another one, the indent level
+ can be used to visually represent this fact. For this, the dependent property's
+ indent level would be one larger than the indent level of the other property. Normally, XPropertyHandlers will set this to An ObjectInspector can visually group properties which semantically belong
+ together (for instance using tab pages). The decision which properties actually belong together
+ is made using this #Category attribute. For your implementation of XPropertyHandler, it's recommended that you document the programmatic
+ names used for property categories. This way, your handler might be re-used in
+ different contexts, where only the XObjectInspectorModel needs to provide consistent
+ UI names for the categories. The controller can be plugged into a com::sun::star::frame::XFrame, and will
+ provide a visual component for inspecting and modifying component properties. The basic idea is that one facet of the inspected component is represented by a single line
+ of controls: A label, an input control, and optionally one or two buttons which, when pressed,
+ trigger additional user interaction (e.g. a more sophisticated dialog to enter a property value). Additionally, property lines can be grouped into different categories. A usual implementation
+ of such categories would be tab pages, but other implementations are possible, too. Even more, the inspector can optionally display a help section at the bottom of its
+ window, which can display arbitrary (context-sensitive) help texts. An ObjectInspector needs one or more property handlers which describe
+ the facets of an inspected component - without such handlers, the inspector window will simply
+ stay empty. The property handlers, as well as more information about the layout of the inspector,
+ are provided by an inspector model, which has to be implemented by the user of the inspector.
+ equals( "a", 0, 1, nMatch1, "aaa", 0, 3, nMatch2 )
+ returns `FALSE` and nMatch:=1 and nMatch2:=1
+ equals( "aab", 0, 3, nMatch1, "aaa", 0, 3, nMatch2 )
+ returns `FALSE` and nMatch:=2 and nMatch2:=2
+ `FALSE` else.
+ */
+
+ boolean equals( [in] string aStr1, [in] long nPos1, [in] long nCount1,
+ [out] long rMatch1,
+ [in] string aStr2, [in] long nPos2, [in] long nCount2,
+ [out] long rMatch2 );
+
+ /** Transliterate one set of characters to another.
+
+
+ 0 if the first substring is equal to the second substring
+ -1 if the first substring is less than the second substring
+ */
+ long compareSubstring( [in] string aStr1, [in] long nOff1, [in] long nLen1,
+ [in] string aStr2, [in] long nOff2, [in] long nLen2 );
+
+ /** Compare 2 strings as per this transliteration. It translates both
+ strings before comparing them.
+
+ @returns
+ 1 if the first string is greater than the second string
+ 0 if the first string is equal to the second string
+ -1 if the first string is less than the second string
+ */
+ long compareString( [in] string aStr1, [in] string aStr2 );
+
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/i18n/reservedWords.idl b/offapi/com/sun/star/i18n/reservedWords.idl
new file mode 100644
index 0000000000..01187d6349
--- /dev/null
+++ b/offapi/com/sun/star/i18n/reservedWords.idl
@@ -0,0 +1,67 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module i18n {
+
+
+/**
+ Offsets into the sequence of strings returned by
+ XLocaleData::getReservedWord().
+
+ @see XLocaleData
+ for links to DTD of XML locale data files.
+ */
+
+published constants reservedWords
+{
+ /// "true"
+ const short TRUE_WORD = 0;
+ /// "false"
+ const short FALSE_WORD = 1;
+ /// "1st quarter"
+ const short QUARTER1_WORD = 2;
+ /// "2nd quarter"
+ const short QUARTER2_WORD = 3;
+ /// "3rd quarter"
+ const short QUARTER3_WORD = 4;
+ /// "4th quarter"
+ const short QUARTER4_WORD = 5;
+ /// "above"
+ const short ABOVE_WORD = 6;
+ /// "below"
+ const short BELOW_WORD = 7;
+ /// "Q1"
+ const short QUARTER1_ABBREVIATION = 8;
+ /// "Q2"
+ const short QUARTER2_ABBREVIATION = 9;
+ /// "Q3"
+ const short QUARTER3_ABBREVIATION = 10;
+ /// "Q4"
+ const short QUARTER4_ABBREVIATION = 11;
+
+ //! Yes, this must be the count of known reserved words and one more than
+ //! the maximum number used above!
+ /// Count of known reserved words.
+ const short COUNT = 12;
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/image/ImageMap.idl b/offapi/com/sun/star/image/ImageMap.idl
new file mode 100644
index 0000000000..3feed8017f
--- /dev/null
+++ b/offapi/com/sun/star/image/ImageMap.idl
@@ -0,0 +1,43 @@
+/* -*- 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 .
+ */
+
+
+ module com { module sun { module star { module image {
+
+
+/** This service specifies a HTML image map.
+ */
+published service ImageMap
+{
+ /** an ImageMap can, optionally, have a name. */
+ interface ::com::sun::star::container::XNamed;
+
+ /** this container interface gives access to
+ the objects inside this image map.
+ @see ImageMapRectangleObject
+ @see ImageMapCircleObject
+ @see ImageMapPolygonObject
+ */
+ interface ::com::sun::star::container::XIndexContainer;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/image/ImageMapCircleObject.idl b/offapi/com/sun/star/image/ImageMapCircleObject.idl
new file mode 100644
index 0000000000..2e8f743c5e
--- /dev/null
+++ b/offapi/com/sun/star/image/ImageMapCircleObject.idl
@@ -0,0 +1,44 @@
+/* -*- 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 .
+ */
+
+
+ module com { module sun { module star { module image {
+
+
+/** this service describes a circular-shaped region inside
+ a HTML image map.
+ @see ImageMap
+ @see ImageMapObject
+*/
+published service ImageMapCircleObject
+{
+ /** The basic service for all image map objects. */
+ service ImageMapObject;
+
+ /** This is the center point of the circle in pixels */
+ [property] com::sun::star::awt::Point Center;
+
+ /** This is the radius of the circle in pixels */
+ [property] long Radius;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/image/ImageMapObject.idl b/offapi/com/sun/star/image/ImageMapObject.idl
new file mode 100644
index 0000000000..8ee67c45a8
--- /dev/null
+++ b/offapi/com/sun/star/image/ImageMapObject.idl
@@ -0,0 +1,63 @@
+/* -*- 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 .
+ */
+
+
+ module com { module sun { module star { module image {
+
+
+/** this is a base service for objects inside an image map.
+ @see ImageMap
+ @see ImageMapRectangleObject
+ @see ImageMapCircleObject
+ @see ImageMapPolygonObject
+*/
+published service ImageMapObject
+{
+ /** Interface to access the properties of this service. */
+ interface ::com::sun::star::beans::XPropertySet;
+
+ /** This interface gives access to the events bound to
+ this ImageMapObject.
+
+ @see XPropertyHandler::describePropertyLine
+ @see PropertyLineElement
+
+ @since OOo 2.0.3
+*/
+struct LineDescriptor
+{
+ /** denotes the human-readable display name used to present a property to the user
+ */
+ string DisplayName;
+
+ /** denotes the control which should be used to represent the property at the UI.
+
+ @see XPropertyControlFactory
+ */
+ XPropertyControl Control;
+
+ /** specifies the URL to the help topic to be associated with the property
+ */
+ string HelpURL;
+
+ /** determines whether a button exists which can be used for a more complex, interactive
+ property value input.
+
+ PrimaryButtonImageURL
empty, and use the #PrimaryButtonImage property.
+
+ @see PrimaryButtonImage
+ */
+ string PrimaryButtonImageURL;
+
+ /** describes a graphics to display at the primary button, if any.
+
+ SecondaryButtonImageURL
empty, and use the #SecondaryButtonImage property.
+
+ @see SecondaryButtonImage
+ */
+ string SecondaryButtonImageURL;
+
+ /** describes a graphics to display at the secondary button, if any.
+
+ 0
when describing
+ the UI for a normal property.
+ */
+ short IndentLevel;
+
+ /** describes the category into which the property should be sorted by the ObjectInspector.
+
+
+ Note that "property" here is a generic term - any aspect of a component can be considered a property,
+ as long as some property handler is able to describe this aspect in a property-like way.
Since property handlers might have the need to raise UI, they will be created with a context
+ value named "DialogParentWindow", which contains an XWindow which should be used as parent of
+ any windows to raise.
+ If the com::sun::star::uno::XComponentContext in which the ObjectInspector
+ was created already contains such a value, it is not overwritten. Only if it doesn't, the inspector
+ will add an own value - which contains the inspector's main window - to the context when creating
+ handlers.
This service simplifies usage of an ObjectInspector.
+ +The XObjectInspectorModel implemented by this service will not provide any property + categories, nor apply any particular order to the properties provided by its handler(s).
+ + @see ObjectInspector + @see XObjectInspectorModel + @see XObjectInspectorModel::describeCategories + @see XObjectInspectorModel::getPropertyOrderIndex + + @since OOo 2.0.3 +*/ +service ObjectInspectorModel : XObjectInspectorModel +{ + /** creates a default ObjectInspectorModel, whose one and only handler factory + creates a GenericPropertyHandler. + */ + createDefault(); + + /** creates a default ObjectInspectorModel, using an externally provided sequence of property handler + factories. + + @param handlerFactories + a sequence of handler factories, as to be provided in the XObjectInspectorModel::HandlerFactories + method. + @throws ::com::sun::star::lang::IllegalArgumentException + if the given sequence is empty. + + @see XObjectInspectorModel::HandlerFactories + */ + createWithHandlerFactories( [in] sequence< any > handlerFactories ) + raises ( ::com::sun::star::lang::IllegalArgumentException ); + + /** creates a default ObjectInspectorModel, using an externally provided sequence of property handler + factories, and describing an ObjectInspector which has a help section. + + @param handlerFactories + a sequence of handler factories, as to be provided in the XObjectInspectorModel::HandlerFactories + method. + + @param minHelpTextLines + denotes the minimum number of lines of text to be reserved for the help + section. + + @param maxHelpTextLines + denotes the maximum number of lines of text to be reserved for the help + section. + + @throws ::com::sun::star::lang::IllegalArgumentException + if handlerFactories is empty. + + @throws ::com::sun::star::lang::IllegalArgumentException + if minHelpTextLines or maxHelpTextLines are negative, + or if minHelpTextLines is greater than maxHelpTextLines. + + @see XObjectInspectorModel::HandlerFactories + @see XObjectInspectorModel::HasHelpSection + @see XObjectInspectorModel::MinHelpTextLines + @see XObjectInspectorModel::MaxHelpTextLines + + @since OOo 2.2 + */ + createWithHandlerFactoriesAndHelpSection( + [in] sequence< any > handlerFactories, + [in] long minHelpTextLines, + [in] long maxHelpTextLines + ) + raises ( ::com::sun::star::lang::IllegalArgumentException ); +}; + + +}; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/inspection/PropertyCategoryDescriptor.idl b/offapi/com/sun/star/inspection/PropertyCategoryDescriptor.idl new file mode 100644 index 0000000000..dca6bade08 --- /dev/null +++ b/offapi/com/sun/star/inspection/PropertyCategoryDescriptor.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 . + */ + +module com { module sun { module star { module inspection { + +/** describes a category of properties + @see ObjectInspector + @see XObjectInspectorModel::describeCategory + @see LineDescriptor::Category + + @since OOo 2.0.3 +*/ +struct PropertyCategoryDescriptor +{ + /** contains the programmatic name of the category. + +This programmatic name is used internally: XPropertyHandler::describePropertyLine() + sets a programmatic category name at LineDescriptor::Category, + and an object inspector uses this to find the proper PropertyCategoryDescriptor.
+ */ + string ProgrammaticName; + + /** provides a human-readable name (which can be presented at the UI) for a category. + */ + string UIName; + + /** provides a help URL to be associated with a category + */ + string HelpURL; +}; + + +}; }; }; }; + + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/inspection/PropertyControlType.idl b/offapi/com/sun/star/inspection/PropertyControlType.idl new file mode 100644 index 0000000000..3f075407d8 --- /dev/null +++ b/offapi/com/sun/star/inspection/PropertyControlType.idl @@ -0,0 +1,139 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module inspection { + +/** describes pre-defined possible control types to be used to display and enter + property values within an ObjectInspector. + +The type of a control determines its visual appearance, its behavior, and - important + for property handlers using a control - the expected type when reading and writing the + control's value.
+ + @see XPropertyControl + @see XPropertyControlFactory + @see XPropertyControl::ValueType + + @since OOo 2.0.3 +*/ +constants PropertyControlType +{ + /** denotes a control which allows the user to choose from a list of + possible property values + +Controls of type #ListBox exchange their values as string
.
Additionally, those controls support the XStringListControl interface.
+ */ + const short ListBox = 1; + + /** denotes a control which allows the user to choose from a list of + possible property values, combined with the possibility to enter a new + property value. + +Controls of type #ComboBox exchange their values as string
.
Additionally, those controls support the XStringListControl interface.
+ */ + const short ComboBox = 2; + + /** denotes a control which allows the user to enter property values consisting of a single line of text + +Controls of type #TextField exchange their values as string
.
Controls of type #MultiLineTextField exchange their values as string
.
Controls of type #CharacterField exchange their values as short
,
+ being a single UTF-16 character.
Controls of type #StringListField exchange their values as
+ sequence< string >
.
Controls of type #ColorListBox usually exchange their values as + com::sun::star::util::Color.
+ +Additionally, those controls support the XStringListControl interface. If you use
+ this interface to add additional entries to the list box, which have no color associated with it,
+ then you can also exchange values as string
. That is, if you write a string into
+ XPropertyControl::Value, and if this string has previously been added to the list
+ using the XStringListControl interface, this string is selected. Vice versa, if the user
+ selects one of those non-color strings in the list, then reading XPropertyControl::Value
+ will retrieve you this string.
Controls of type #NumericField exchange their values as double
.
Additionally, those controls support the XNumericControl interface.
+ */ + const short NumericField = 8; + + /** denotes a control which allows the user to enter a date value + +Controls of type #DateField exchange their values as com::sun::star::util::Date.
+ */ + const short DateField = 9; + + /** denotes a control which allows the user to enter a time value + +Controls of type #TimeField exchange their values as com::sun::star::util::Time.
+ */ + const short TimeField = 10; + + /** denotes a control which allows the user to enter a combined date/time value + +Controls of type #DateTimeField exchange their values as com::sun::star::util::DateTime.
+ */ + const short DateTimeField = 11; + + /** denotes a control which displays a string in a hyperlink-like appearance + +Controls of type #HyperlinkField exchange their values as string
.
Additionally, those controls support the XHyperlinkControl interface.
+ */ + const short HyperlinkField = 12; + + /** denotes a non-standard property control, which is usually provided by an XPropertyHandler + */ + const short Unknown = 13; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/inspection/PropertyLineElement.idl b/offapi/com/sun/star/inspection/PropertyLineElement.idl new file mode 100644 index 0000000000..bba2b54e2e --- /dev/null +++ b/offapi/com/sun/star/inspection/PropertyLineElement.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 . + */ + +module com { module sun { module star { module inspection { + +/** describes elements of a single line in an object inspector, used to represent a + single property + + @see XPropertyHandler::describePropertyLine + @see LineDescriptor + + @since OOo 2.0.3 +*/ +constants PropertyLineElement +{ + /// specifies the input control in a group of controls related to a single property + const short InputControl = 0x01; + /// specifies the primary button (if present) in a group of controls related to a single property + const short PrimaryButton = 0x02; + /// specifies the secondary button (if present) in a group of controls related to a single property + const short SecondaryButton = 0x04; + + /// specifies all elements + const short All = 0xFF; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/inspection/StringRepresentation.idl b/offapi/com/sun/star/inspection/StringRepresentation.idl new file mode 100644 index 0000000000..8fea970841 --- /dev/null +++ b/offapi/com/sun/star/inspection/StringRepresentation.idl @@ -0,0 +1,30 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module inspection { + +service StringRepresentation : XStringRepresentation +{ + create([in]com::sun::star::script::XTypeConverter TypeConverter)raises( com::sun::star::lang::IllegalArgumentException ); + createConstant([in]com::sun::star::script::XTypeConverter TypeConverter,[in] string Constant,[in] sequenceHyperlink controls exchange their value (XPropertyControl::Value) as strings.
+ + @since OOo 2.0.3 +*/ +interface XHyperlinkControl : XPropertyControl +{ + /** adds a listener which will be notified when the user clicked the hyperlink text in the control + @param listener + the listener to notify of hyperlink clicks + */ + void addActionListener( [in] com::sun::star::awt::XActionListener listener ); + + /** removes a listener which was previously added via addActionListener() + @param listener + the listener to revoke + */ + void removeActionListener( [in] com::sun::star::awt::XActionListener listener ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/inspection/XNumericControl.idl b/offapi/com/sun/star/inspection/XNumericControl.idl new file mode 100644 index 0000000000..76e893f193 --- /dev/null +++ b/offapi/com/sun/star/inspection/XNumericControl.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 . + */ + +module com { module sun { module star { module inspection { + +/** defines the interface for an XPropertyControl which supports + displaying and entering numerical values. + + @since OOo 2.0.3 +*/ +interface XNumericControl : XPropertyControl +{ + /** describes the number of decimal digits to use for the value + */ + [attribute] short DecimalDigits; + + /** describes the minimum value which is allowed to be entered in the control + */ + [attribute] com::sun::star::beans::OptionalOnly a certain set of com::sun::star::util::MeasureUnit values is + supported. In particular, every value which denotes a fraction of another + unit (like 100th millimeters) cannot be used as DisplayUnit.
+ + @throws com::sun::star::lang::IllegalArgumentException + if the caller attempts to set an unsupported com::sun::star::util::MeasureUnit + */ + [attribute] short DisplayUnit + { + set raises (com::sun::star::lang::IllegalArgumentException); + }; + + /** describes a com::sun::star::util::MeasureUnit to be + applied for transferring values. + +The core measurement unit for a property value might differ from the unit which + is used by the control to display it. For instance, your property value might require + that your values denote 100th millimeters, but to the user, you want to present the + value as, say, inches. In this case, a numeric control can automatically handle the + value conversion for you, if you give it a ValueUnit different from the DisplayUnit.
+ + @see XPropertyControl::Value + */ + [attribute] short ValueUnit; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/inspection/XObjectInspector.idl b/offapi/com/sun/star/inspection/XObjectInspector.idl new file mode 100644 index 0000000000..5bd7e42f71 --- /dev/null +++ b/offapi/com/sun/star/inspection/XObjectInspector.idl @@ -0,0 +1,108 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module inspection { + +interface XObjectInspectorModel; +interface XObjectInspectorUI; + +/** describes the main interface of an ObjectInspector. + + @see ObjectInspector + + @since OOo 2.0.3 +*/ +interface XObjectInspector +{ + /** allows to plug the inspector into a com::sun::star::frame::XFrame + +The com::sun::star::frame::XController::setModel() method + accepts only XObjectInspectorModels, and will return `FALSE` if the + to-be-attached model is not `NULL`, but does not support this interface.
+ +If you do not want to support a full-blown com::sun::star::frame::XModel, + use the #InspectorModel attribute instead.
+ +The com::sun::star::frame::XController::getViewData() and + com::sun::star::frame::XController::restoreViewData() exchange + string values, which describes as much of the current view state as possible.
+ */ + interface com::sun::star::frame::XController; + + /** allows to intercept functionality + +This interface is inherited from the com::sun::star::frame::Controller + service, currently, there is no functionality to intercept at an XObjectInspector.
+ */ + interface com::sun::star::frame::XDispatchProvider; + + /** provides access to the current model of the inspector + +The model is mainly responsible for providing the property handlers. Additionally, + it can provide user interface names and help URLs for property categories.
+ +Note that there are two ways of setting or retrieving the current model: You can either + use com::sun::star::frame::XModel::setModel(), or, if you do not want + or need to implement the full-blown com::sun::star::frame::XModel interface, + you can use this property directly. Both approaches are semantically equivalent.
+ +If a new model is set at the inspector, the complete UI will be rebuilt to reflect + the change, using the new property handlers provided by the new model.
+ */ + [attribute] XObjectInspectorModel InspectorModel; + + /** provides access to the user interface of the object inspector. + +This interface can be used to access and manipulate various aspects of + the user interface. For instance, you can enable and disable certain + property controls (or parts thereof), or register observers for all property + controls.
+ + @since OOo 2.2 + */ + [attribute, readonly] XObjectInspectorUI InspectorUI; + + /** inspects a new collection of one or more objects. + +If the sequence is empty, the UI of the ObjectInspector will be + cleared.
+ +If the sequence contains more than one object, the XObjectInspector + will create a complete set of property handlers (as indicated by + XObjectInspectorModel::HandlerFactories) for every of + the objects, and compose their output.
+ + @throws com::sun::star::util::VetoException + if the inspector cannot switch to another object set. This typically happens if + one of the active XPropertyHandler's raised a non-modal user interface, + and vetoed suspension of this UI. + + @see XPropertyHandler::isComposable + @see XPropertyHandler::onInteractivePropertySelection + @see XPropertyHandler::suspend + */ + void inspect( [in] sequence< com::sun::star::uno::XInterface > Objects ) + raises (com::sun::star::util::VetoException); +}; + + +}; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/inspection/XObjectInspectorModel.idl b/offapi/com/sun/star/inspection/XObjectInspectorModel.idl new file mode 100644 index 0000000000..a30c49f7f6 --- /dev/null +++ b/offapi/com/sun/star/inspection/XObjectInspectorModel.idl @@ -0,0 +1,170 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module inspection { + +interface XPropertyHandler; + +/** describes the model of an ObjectInspector + + @see ObjectInspector + + @since OOo 2.0.3 +*/ +interface XObjectInspectorModel +{ + /** describes a set of factories for creating XPropertyHandlers + +Every element of the sequence must contain information to create a + XPropertyHandler instance. Two ways are currently supported: +
This attribute is usually only evaluated by the ObjectInspector instance + which the model is currently bound to.
+ +The order of factories is important: If two property handlers declare themselves responsible
+ for the same property, the one whose factory is listed last wins. Also,
+ if a handler B
wants to supersede a property of another handler A
,
+ A
's factory must precede the factory of B
.
Properties can be sorted into different categories, described by the LineDescriptor::Category
+ attribute, which is filled in XPropertyHandler::describePropertyLine()
+ method of your property handler.
+ Those names provided by the handlers are programmatic names. All other information
+ about categories is part of the PropertyCategoryDescriptor, and
+ describeCategories() assembles information about all categories which
+ all property handlers provided by the model use.
In the user interface of an ObjectInspector, single properties are represented by + single lines, and those lines are displayed successively. To determine an order of + the property lines, the inspector model can associate an "order index" with each property. + The ObjectInspector will then sort the property lines in a way that they + have the same relative ordering as the "order indexes" of their properties.
+ +Note that the concrete value the model returns for a given property does not
+ matter. All what matters is that if you want a certain property Foo
+ to be displayed after another property Bar
, then the order index
+ of Foo
should be greater than the order index of Bar
.
+
+
If for two different properties the same order index is returned, the
+ ObjectInspector will assume the order in which those properties
+ were provided by the respective property handler
+ (XPropertyHandler::getSupportedProperties()).
+ If two such properties originate from different handlers, they will be ordered according
+ to the order of the handlers, as provided in the #HandlerFactories attribute.
The object inspector displays lines of property/values, optionally grouped
+ into categories, as described by the property handlers.
+ Additionally, the inspector can optionally display a section dedicated to help
+ texts. Clients could use this section to display context-sensitive help, for
+ instance short texts explaining the currently selected property.
This property is ignored by the ObjectInspector if + #HasHelpSection is `FALSE`.
+ +The layout of the ObjectInspector is undefined if + #MinHelpTextLines is larger than + #MaxHelpTextLines.
+ + @since OOo 2.2 + */ + [attribute, readonly] long MinHelpTextLines; + + /** denotes the maximum number of lines of text to be reserved for the help + section. + +This property is ignored by the ObjectInspector if + #HasHelpSection is `FALSE`.
+ +The layout of the ObjectInspector is undefined if + #MaxHelpTextLines is smaller than + #MinHelpTextLines.
+ + @since OOo 2.2 + */ + [attribute, readonly] long MaxHelpTextLines; + + /** determines whether the object inspector's UI should be read-only. + +In this case, the user is able to browse through all properties, but cannot + change any of them.
+ +In a read-only object inspector, the property controls are readonly or + disabled themselves, and the primary and secondary buttons of a property line + are both disabled.
+ + @see XPropertyControl + @see LineDescriptor + */ + [attribute, bound] boolean IsReadOnly; +}; + + +}; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/inspection/XObjectInspectorUI.idl b/offapi/com/sun/star/inspection/XObjectInspectorUI.idl new file mode 100644 index 0000000000..a7bea10135 --- /dev/null +++ b/offapi/com/sun/star/inspection/XObjectInspectorUI.idl @@ -0,0 +1,160 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module inspection { + +interface XPropertyControlObserver; + +/** grants access to certain aspects of the user interface of an object + inspector + +This interface is used as callback for XPropertyHandlers.
+ +As a consequence, methods operating on the UI for a property, and taking the name of this property,
+ are tolerant against properties which do not exist. For instance, if a property handler tries to
+ disable the UI for property Foo
, but another handler has superseded this property, then
+ the ObjectInspector will not have any UI for it. In this case, the call to
+ enablePropertyUI( "Foo" )
will simply be ignored.
This is usually used by an XPropertyHandler if it handles properties, + where one does only make sense if another one has a certain value.
+ + @param PropertyName + denotes the name of the property whose UI is to be enabled or disabled. + @param Enable + `TRUE` if and only if the UI should be disabled, `FALSE` otherwise. + */ + void enablePropertyUI( [in] string PropertyName, [in] boolean Enable ); + + /** enables or disables the single elements which can be part of the UI representation of a property + +Note that the complete UI for the property must be enabled in order for these settings to + be evaluated. That is, enablePropertyUIElements() does not have any effect if + somebody previously disabled the complete UI for this property with enablePropertyUI().
+ + @param PropertyName + the name of the property whose user interface elements are to be enabled or disabled + + @param Elements + a combination of PropertyLineElement flags specifying which elements are to be + enabled or disabled.This method might be used by an XPropertyHandler if it wants to change the type + of control (see PropertyControlType) used to display a certain property.
+ +The object inspector will then call describePropertyLine again, and update its UI accordingly.
+ +Note that the property whose UI should be rebuilt must not necessarily be (though usually is) + in the responsibility of the handler which calls this method. The object inspector will look up the + handler with the responsibility for PropertyName and call its + XPropertyHandler::describePropertyLine()
+ + @param PropertyName + the name of the property whose UI is to be completely rebuilt. + */ + void rebuildPropertyUI( [in] string PropertyName ); + + /** shows the UI for a given property + + @param PropertyName + the name of the property whose UI is to be shown + */ + void showPropertyUI( [in] string PropertyName ); + + /** hides the UI for a given property + + @param PropertyName + the name of the property whose UI is to be hidden + */ + void hidePropertyUI( [in] string PropertyName ); + + /** shows or hides all properties belonging to a given category + @see LineDescriptor::Category + @see XObjectInspectorModel::describeCategories + */ + void showCategory( [in] string Category, [in] boolean Show ); + + /** retrieves the control currently used to display a given property + + @param PropertyName + the name of the property whose control should be retrieved + + @return + the XPropertyControl representing the given property, or `NULL` + if there is no such property control. + */ + XPropertyControl + getPropertyControl( [in] string PropertyName ); + + /** registers an observer for all property controls + +The given XPropertyControlObserver will be notified of all changes + in all property controls.
+ + @see revokeControlObserver + + @since OOo 2.2 + */ + void registerControlObserver( [in] XPropertyControlObserver Observer ); + + /** revokes a previously registered control observer + + @see registerControlObserver + + @since OOo 2.2 + */ + void revokeControlObserver( [in] XPropertyControlObserver Observer ); + + /** sets the text of the help section, if the object inspector contains + one. + + @throws NoSupportException + if the XObjectInspectorModel::HasHelpSection property + requires the help section to be unavailable. + + @since OOo 2.2 + */ + void setHelpSectionText( [in] string HelpText ) + raises ( ::com::sun::star::lang::NoSupportException ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/inspection/XPropertyControl.idl b/offapi/com/sun/star/inspection/XPropertyControl.idl new file mode 100644 index 0000000000..1519cc3f40 --- /dev/null +++ b/offapi/com/sun/star/inspection/XPropertyControl.idl @@ -0,0 +1,98 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module inspection { + +interface XPropertyControlContext; + +/** defines the interface for a single control in an ObjectInspector + + @since OOo 2.0.3 +*/ +interface XPropertyControl +{ + /** denotes the type of the control, as one of the PropertyControlType + constants + */ + [attribute, readonly] short ControlType; + + /** denotes the current content of the control. + +At every point in time, this value is either `VOID`, or of the type + described by #ValueType.
+ + @throws com::sun::star::beans::IllegalTypeException + if an attempt is made to set a value which is not `VOID` and whose + type does not equal #ValueType. + */ + [attribute] any Value + { + set raises ( com::sun::star::beans::IllegalTypeException ); + }; + + /** denotes the value type of the control. + + @see Value + */ + [attribute, readonly] type ValueType; + + /** specifies the context of the control within the ObjectInspector. + +The property control should actively notify its state changes to the context. + In particular, changes in the focus and the value of the control must be notified. + */ + [attribute] XPropertyControlContext ControlContext; + + /** determines whether the control content is currently modified + +
An XPropertyControl internally manages a flag indicating whether + its content is modified. This flag is reset to `FALSE` every time our + #ControlContext is notified of our current value. Also, the control + implementation must set this flag to `TRUE` if and only if the user changed the + control content.
+ + @see notifyModifiedValue + @see ControlContext + @see XPropertyControlContext::valueChanged + */ + boolean isModified(); + + /** notifies the context in which the control lives of the current control value, + if this value is currently modified + + @see isModified + @see ControlContext + @see XPropertyControlListener::valueChanged + */ + void notifyModifiedValue(); + + /** denotes the window which is the real UI representation of the property control. + +The ObjectInspector will automatically position and size this control + as needed, care for its Z-order, and so on.
+ +This Window must not be `NULL`, else the whole control is not usable.
+ */ + [attribute, readonly] com::sun::star::awt::XWindow ControlWindow; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/inspection/XPropertyControlContext.idl b/offapi/com/sun/star/inspection/XPropertyControlContext.idl new file mode 100644 index 0000000000..41f81e1a21 --- /dev/null +++ b/offapi/com/sun/star/inspection/XPropertyControlContext.idl @@ -0,0 +1,41 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module inspection { + +/** specifies the interface of the context of an XPropertyControl. + + @see XPropertyControl::ControlContext + + @since OOo 2.0.3 +*/ +interface XPropertyControlContext : XPropertyControlObserver +{ + /** instructs the XPropertyControlContext to active the next control + + @param CurrentControl + denotes the control which initiated the request. + */ + void activateNextControl( [in] XPropertyControl CurrentControl ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/inspection/XPropertyControlFactory.idl b/offapi/com/sun/star/inspection/XPropertyControlFactory.idl new file mode 100644 index 0000000000..ad5c87eb66 --- /dev/null +++ b/offapi/com/sun/star/inspection/XPropertyControlFactory.idl @@ -0,0 +1,62 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module inspection { + +interface XPropertyControl; + +/** a factory for XPropertyControls + + @since OOo 2.0.3 +*/ +interface XPropertyControlFactory +{ + /** creates a XPropertyControl + +A XPropertyControlFactory can create any of the control types denoted by + the PropertyControlType constants.
+ + @param ControlType + the type of the requested control + + @param CreateReadOnly + determines whether the newly created control should be readonly. + +If this argument is `TRUE`, this does not necessarily mean that the property cannot be + changed at all in the ObjectInspector. Instead, an XPropertyHandler + can still decide that there is a dedicated UI for entering the property value, + which is usually triggered by a LineDescriptor::PrimaryButton.
+ +Note that this parameter might be ignored if the XObjectInspectorModel::IsReadOnly + attribute is `TRUE`, in which case all created property controls must be readonly.
+ + @returns + a control of the given type. + + @throws com::sun::star::lang::IllegalArgumentException + if the given ControlType is not a value PropertyControlType + */ + XPropertyControl createPropertyControl( [in] short ControlType, [in] boolean CreateReadOnly ) + raises ( com::sun::star::lang::IllegalArgumentException ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/inspection/XPropertyControlObserver.idl b/offapi/com/sun/star/inspection/XPropertyControlObserver.idl new file mode 100644 index 0000000000..5f5eb2cbc4 --- /dev/null +++ b/offapi/com/sun/star/inspection/XPropertyControlObserver.idl @@ -0,0 +1,56 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module inspection { + +interface XPropertyControl; + + +/** specifies an interface for components to observer certain aspects + of an XPropertyControl. + + @since OOo 2.2 +*/ +interface XPropertyControlObserver +{ + /** notifies the observer that a certain XPropertyControl's UI + representation gained the focus. + + @param Control + denotes the control whose UI representation gained the focus + */ + void focusGained( [in] XPropertyControl Control ); + + /** notifies the observer that a certain XPropertyControl's value + changed. + + @param Control + denotes the control whose value changed. + + @see XPropertyControl::Value + */ + void valueChanged( [in] XPropertyControl Control ); +}; + + +}; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/inspection/XPropertyHandler.idl b/offapi/com/sun/star/inspection/XPropertyHandler.idl new file mode 100644 index 0000000000..6aa6a7b46d --- /dev/null +++ b/offapi/com/sun/star/inspection/XPropertyHandler.idl @@ -0,0 +1,433 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module inspection { + +interface XObjectInspectorUI; +interface XPropertyControlFactory; + +/** is the basic interface for object inspection. + +The ObjectInspector itself does not know anything about the object + it is inspecting, all information is obtained via XPropertyHandlers. + Also, property handlers are responsible for describing the user interface which should + be used to interact with the user, with respect to a given aspect of the inspected + component.
+ + @see ObjectInspector + @see LineDescriptor + + @since OOo 2.0.3 +*/ +interface XPropertyHandler +{ + /** used for controlling resources acquired by the handler + +com::sun::star::lang::XComponent::dispose() is invoked when the property handler is not + needed by the object inspector anymore. Handler implementations should clean up any + resources here.
+ */ + interface com::sun::star::lang::XComponent; + + /** binds the property handler to a new component + @param Component + the component to inspect. Must not be `NULL` + @throws com::sun::star::lang::NullPointerException + if the component is `NULL` + */ + void inspect( [in] com::sun::star::uno::XInterface Component ) + raises( com::sun::star::lang::NullPointerException ); + + /** retrieves the current value of a property + @param PropertyName + the name of the property whose value is to be retrieved + @throws com::sun::star::beans::UnknownPropertyException + if the given property is not supported by the property handler + */ + any + getPropertyValue( [in] string PropertyName ) + raises (::com::sun::star::beans::UnknownPropertyException); + + /** sets the value of a property + + @param PropertyName + the name of the property whose value is to be set + @param Value + the property value to set + @throws com::sun::star::beans::UnknownPropertyException + if the given property is not supported by the property handler + */ + void + setPropertyValue( [in] string PropertyName, [in] any Value ) + raises (::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::beans::PropertyVetoException); + + /** returns the state of a property + + @param PropertyName + the name of the property whose state is to be retrieved + @throws com::sun::star::beans::UnknownPropertyException + if the given property is not supported by the property handler + */ + com::sun::star::beans::PropertyState + getPropertyState( [in] string PropertyName ) + raises (::com::sun::star::beans::UnknownPropertyException); + + /** describes the UI to be used to represent the property + @param PropertyName + the name of the property whose user interface is to be described + implementation + @param ControlFactory + a factory for creating XPropertyControl instances. Must not be `NULL`. + @return + the descriptor of the property line. + @throws com::sun::star::beans::UnknownPropertyException + if the given property is not supported by this handler + @throws com::sun::star::lang::NullPointerException + if ControlFactory is `NULL`. + @see PropertyControlType + @see LineDescriptor + */ + LineDescriptor + describePropertyLine( + [in] string PropertyName, + [in] XPropertyControlFactory ControlFactory + ) + raises (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::NullPointerException); + + /** converts a given control-compatible value to a property value + +In describePropertyLine(), a property handler declared which type of control + should be used to display the value of a certain property. To allow to use the same control + type for different properties, and in particular, for properties of different type, + conversions between controls values and property values are needed.
+ +This method converts a control value into a property value, which subsequently can be used + in conjunction with setPropertyValue().
+ + @param PropertyName + The name of the conversion's target property. + @param ControlValue + The to-be-converted control value. This value has been obtained from an XPropertyControl, + using its XPropertyControl::Value attribute. + + @throws com::sun::star::beans::UnknownPropertyException + if the given property is not supported by the property handler + + @see convertToControlValue + @see describePropertyLine + @see XPropertyControl + @see getPropertyValue + */ + any + convertToPropertyValue( + [in] string PropertyName, + [in] any ControlValue + ) + raises (::com::sun::star::beans::UnknownPropertyException); + + /** converts a given property value to a control-compatible value + +In describePropertyLine(), a property handler declared which type of control + should be used to display the value of a certain property. To allow to use the same control + type for different properties, and in particular, for properties of different type, + conversions between controls values and property values are needed.
+ +This method converts a property value, which has previously been obtained using + getPropertyValue(), into a control-compatible value, which can be used + with XPropertyControl's XPropertyControl::Value attribute.
+ +A usual application of this method are list boxes: There is a generic list box implementation, + which is able to display a simple list of strings. Usually, every string represents one + possible property value. To translate between those property values and the displayed strings, + convertToControlValue() and convertToPropertyValue() are used.
+ +The method is not invoked if the control's value type (XPropertyControl::ValueType + equals the property's value type.
+ + @param PropertyName + The name of the property whose value is to be converted. + @param PropertyValue + The to-be-converted property value. + @param ControlValueType + The target type of the conversion. This type is determined by the control which + is used to display the property, which in turn is determined by the handler itself + in describePropertyLine().An XPropertyHandler implementation might decide to ignore this call. + However, in this case property value changes made by third party components are not + reflected in the object inspector.
+ +If a handler implementation supports property change listeners, it must be able to cope + with a call to addPropertyChangeListener() even if currently no component is + being inspected. In this case, the listener must become active as soon as a new introspection + is set in the next inspect() call.
+ + @param Listener + the listener to notify about property changes + @throws com::sun::star::lang::NullPointerException + if the listener is `NULL` + @see removePropertyChangeListener + */ + void + addPropertyChangeListener( [in] com::sun::star::beans::XPropertyChangeListener Listener ) + raises ( com::sun::star::lang::NullPointerException ); + + /** revokes a listener for notification about property value changes + @see addPropertyChangeListener + */ + void + removePropertyChangeListener( [in] com::sun::star::beans::XPropertyChangeListener Listener ); + + /** returns the properties which the handler can handle + +A handler is allowed to return an empty sequence here, indicating that for + the given introspection, no properties handling can be provided. This might happen + when a fixed set of property handlers is used for a variety of components to inspect, + where not all handlers can really cope with all components.
+ +In the case of returning an empty sequence here, the property handler is ignored + by all further processing in the object inspector.
+ */ + sequence< com::sun::star::beans::Property > + getSupportedProperties(); + + /** returns the properties which are to be superseded by this handler + +Besides defining an own set of properties (see getSupportedProperties()), + a property handler can also declare that foreign properties (which it is + not responsible for) are superseded by its own properties.
+ +This is usually used if your handler is used with another, more generic one, which + should continue to be responsible for all properties, except a few which your + handler handles more elegantly.
+ +In such a case, simply return those properties here.
+ +There is a precedence in the property handlers used by an ObjectInspector, + which also is important for the superseded properties. This precedence is implied by the + precedence of factories to create the property handlers, as denoted in the + XObjectInspectorModel::HandlerFactories attribute.
+ +With this in mind, property handlers can only supersede properties which are supported + by a handler preceding them, but not properties of handlers succeeding them.
+ +For instance, imaging an XObjectInspectorModel which provides three
+ factories, for handler A
, B
, and C
- in this order.
+ Now if A
supports the property Foo
, C
supports
+ Bar
, and B
supersedes both Foo
and Bar
,
+ them the result is Bar
is still present. This is because B
precedes
+ C
, so it cannot, by definition, supersede properties which are supported by
+ C
.
If getSupportedProperties() returned an empty sequence, this method will + not be called.
+ + @see XObjectInspectorModel::HandlerFactories + */ + sequence< string > + getSupersededProperties( ); + + /** retrieve the actuating properties which this handler is interested in + +In general, properties can be declared as "actuating", that is, when their value + changes, the UI for other properties needs to be updated (e.g. enabled or disabled).
+ +With this method, a handler can declare that it feels responsible for some/all + of the depending properties of certain actuating properties.
+ +Whenever the value of an actuating property changes, all handlers which expressed + their interest in this particular actuating properties are called with their + actuatingPropertyChanged() method.
+ +If getSupportedProperties() returned an empty sequence, this method will + not be called
+ */ + sequence< string > + getActuatingProperties( ); + + /** determines whether a given property, which the handler is responsible for, is composable. + +An object inspector can inspect multiple components at once, displaying the intersection + of their properties. For this, all components are examined for their properties, and all properties + which exist for all components, and are declared to be composable by their respective handler, + are displayed in the inspector UI.
+ + @param PropertyName + the name of the property whose composability is to be determined + @throws com::sun::star::beans::UnknownPropertyException + if the given property is not supported by the property handler + */ + boolean isComposable( [in] string PropertyName ) + raises (::com::sun::star::beans::UnknownPropertyException); + + /** called when a browse button belonging to a property UI representation has been clicked + +Property handlers can raise a dedicated UI for entering or somehow changing a property value. + Usually, this will be a modal dialog, but it can also be a non-modal user interface component.
+ +Availability of this feature is indicated by the LineDescriptor::HasPrimaryButton + and LineDescriptor::HasSecondaryButton members of a LineDescriptor, + which the XPropertyHandler fills in its describePropertyLine() method.
+ +When this method is called, the property handler should raise the UI needed to enter the + property value, and return the result of this (see InteractiveSelectionResult).
+ +It is recommended that property handlers do not directly set the property value which has + been obtained from the user, but store it in the output-parameter Data, and return + InteractiveSelectionResult::ObtainedValue.
+ +If a handler sets the new property value directly, and returns + InteractiveSelectionResult::ObtainedValue, this implies that the property + cannot properly be handled in case the object inspector is inspecting an intersection of + multiple components, since in this case onInteractivePropertySelection() + will be called at one handler only, however the new property would have to be forwarded to + all handlers.
+ +If a property is not composable, directly setting the new property value does not yield any problem, + as long as property listeners are properly notified of the change.
+ + @param PropertyName + The name of the property whose browse button has been clicked + + @param Primary + `TRUE` if and only if the primary button has been clicked, `FALSE` otherwise + + @param outData + If the method returns InteractiveSelectionResult::ObtainedValue, + then outData contains the value which has been interactively obtained + from the user, and which still needs to be set at the inspected component. + + @param InspectorUI + provides access to the object inspector UI. Implementations should use this if + the property selection requires non-modal user input. In those cases, + onInteractivePropertySelection() should return InteractiveSelectionResult::Pending, + and the UI for (at least) the property whose input is still pending should be disabled. + + @return + the result of the interactive property value selection. + + @throws com::sun::star::beans::UnknownPropertyException + if the given property is not supported by the property handler + @throws com::sun::star::lang::NullPointerException + if InspectorUI is `NULL` + + @see describePropertyLine + @see addPropertyChangeListener + @see isComposable + */ + ::com::sun::star::inspection::InteractiveSelectionResult + onInteractivePropertySelection( + [in] string PropertyName, + [in] boolean Primary, + [out] any outData, + [in] XObjectInspectorUI InspectorUI + ) + raises (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::NullPointerException); + + /** updates the UI of dependent properties when the value of a certain actuating property changed + +This method is called whenever a property value changes, limited to those properties + whose changes the handler expressed interest in (see getActuatingProperties()).
+ + @param ActuatingPropertyName + the id of the actuating property. + @param NewValue + the new value of the property + @param OldValue + the old value of the property + @param InspectorUI + a callback for updating the object inspector UI + @param FirstTimeInit + If `TRUE`, the method is called for the first-time update of the respective property, that + is, when the property browser is just initializing with the properties of the introspected + object.A XPropertyHandler is used by a XObjectInspector instance, + which implements the XController interface. By definition, a XObjectInspector always forwards + all suspend requests (com::sun::star::frame::XController::suspend()) to + all its handlers.
+ +The usual use case for this method are non-modal user interface components used + for property value input. Such a component might have been opened during + onInteractivePropertySelection(). If a property handler receives a + suspend() call, it should forward the suspension request to the UI + component, and veto suspension of the XObjectInspector as appropriate.
+ +If suspension is not to be vetoed, then all non-modal UI components opened + by the handler should have been closed when it returns from the suspend() call.
+ + @param Suspend + Whether the handler is to be suspended `TRUE` or reactivated (`FALSE`). The + latter happens if a handler was successfully suspended, but an external instance + vetoed the whole suspension process. + + @return + `TRUE` if the handler does allow suspension, `FALSE` if it vetoes it. + */ + boolean suspend( [in] boolean Suspend ); +}; + + +}; }; }; }; + + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/inspection/XStringListControl.idl b/offapi/com/sun/star/inspection/XStringListControl.idl new file mode 100644 index 0000000000..7da9719cfc --- /dev/null +++ b/offapi/com/sun/star/inspection/XStringListControl.idl @@ -0,0 +1,54 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module inspection { + +/** defines the interface for an XPropertyControl which, additionally + to the basic behavior, supports a list of strings interpreted as possible + property values. + +A control which would canonically implement this interface is a list box control: + The string list defined by XStringListControl would in the control be + represented as drop-down list containing all the strings.
+ + @since OOo 2.0.3 +*/ +interface XStringListControl : XPropertyControl +{ + /** clears the whole list + */ + void clearList(); + + /** prepends a new entry to the beginning of the list + */ + void prependListEntry( [in] string NewEntry ); + + /** appends a new entry to the end of the list + */ + void appendListEntry( [in] string NewEntry ); + + /** gets all list entries + */ + sequence< string > getListEntries(); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/inspection/XStringRepresentation.idl b/offapi/com/sun/star/inspection/XStringRepresentation.idl new file mode 100644 index 0000000000..3c6611fcd3 --- /dev/null +++ b/offapi/com/sun/star/inspection/XStringRepresentation.idl @@ -0,0 +1,52 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module inspection { + +/** handles string representations of property values. + @see +*/ +interface XStringRepresentation +{ + /** converts a into a string. + @param PropertyValue + The to-be-converted property value. + @return + The converted string representation of the property value. + @see XPropertyHandler::convertToControlValue() + */ + string convertToControlValue([in]any PropertyValue) raises( com::sun::star::uno::Exception ); + + /** converts a string into an any with the type defined by the target type. + @param ControlValue + The to-be-converted control value. + @param ControlValueType + The target type of the conversion. + @see XPropertyHandler::convertToPropertyValue() + */ + any convertToPropertyValue( + [in]string ControlValue, + [in]type ControlValueType + ) raises( com::sun::star::uno::Exception ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/ldap/LdapConnectionException.idl b/offapi/com/sun/star/ldap/LdapConnectionException.idl new file mode 100644 index 0000000000..6f05c25512 --- /dev/null +++ b/offapi/com/sun/star/ldap/LdapConnectionException.idl @@ -0,0 +1,34 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module ldap { + +/** + Indicates failure to connect to an LDAP server, usually because + of wrong parameters (host/port) or down server. + + @since OOo 1.1.2 + */ +published exception LdapConnectionException : ::com::sun::star::uno::Exception +{ +} ; + +} ; } ; } ; } ; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/ldap/LdapGenericException.idl b/offapi/com/sun/star/ldap/LdapGenericException.idl new file mode 100644 index 0000000000..39962d3a70 --- /dev/null +++ b/offapi/com/sun/star/ldap/LdapGenericException.idl @@ -0,0 +1,40 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module ldap { + +/** + Generic exception occurring during access to an LDAP server. + The actual LDAP error code is provided for more refined + error management. + + @since OOo 1.1.2 + */ +published exception LdapGenericException : ::com::sun::star::uno::Exception +{ + /** + LDAP error code, see LDAP SDK documentation for complete + list of possible values and their meaning. + */ + long ErrorCode ; +} ; + +} ; } ; } ; } ; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/linguistic2/ConversionDictionary.idl b/offapi/com/sun/star/linguistic2/ConversionDictionary.idl new file mode 100644 index 0000000000..56d9ec7732 --- /dev/null +++ b/offapi/com/sun/star/linguistic2/ConversionDictionary.idl @@ -0,0 +1,56 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module linguistic2 { + +/** represents a dictionary used in a conversion dictionary list. + +Specific implementations may put some restrictions for + the dictionary or it's entries. + Namely usually the order for the string pairs within a single entry + will be defined.
+ + @see com::sun::star::linguistic2::ConversionDictionaryList + @see com::sun::star::linguistic2::HangulHanjaConversionDictionary + @see com::sun::star::linguistic2::XConversionDictionary + @see com::sun::star::linguistic2::XConversionPropertyType + + @since OOo 1.1.2 +*/ +published service ConversionDictionary +{ + /** to access the conversion dictionary functionality. + */ + interface com::sun::star::linguistic2::XConversionDictionary; + + /** to flush (save) the dictionary content to file + */ + [optional] interface com::sun::star::util::XFlushable; + + /** + @since OOo 2.0 + */ + [optional] interface com::sun::star::linguistic2::XConversionPropertyType; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/linguistic2/ConversionDictionaryList.idl b/offapi/com/sun/star/linguistic2/ConversionDictionaryList.idl new file mode 100644 index 0000000000..a113a0f492 --- /dev/null +++ b/offapi/com/sun/star/linguistic2/ConversionDictionaryList.idl @@ -0,0 +1,45 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module linguistic2 { + +/** represents a list of available conversion dictionaries. + +There will be only one list that may hold different types of + conversion dictionaries. That is e.g. it may hold dictionaries + for Korean Hangul/Hanja conversion along with ones for + Chinese traditional/simplified conversion or conversion between + different Indic script types.
+ +The list will be used by the text conversion service to + check for user supplied text conversions.
+ + @see com::sun::star::linguistic2::ConversionDictionary + @see com::sun::star::linguistic2::HangulHanjaConversionDictionary + @see com::sun::star::i18n::TextConversion + + @since OOo 1.1.2 +*/ +published service ConversionDictionaryList : XConversionDictionaryList; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/linguistic2/ConversionDictionaryType.idl b/offapi/com/sun/star/linguistic2/ConversionDictionaryType.idl new file mode 100644 index 0000000000..0cdb7e8636 --- /dev/null +++ b/offapi/com/sun/star/linguistic2/ConversionDictionaryType.idl @@ -0,0 +1,43 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module linguistic2 { + +/** specifies the conversion dictionary type to be used with XConversionDictionary. + + @since OOo 1.1.2 +*/ +constants ConversionDictionaryType +{ + /** Dictionary type for the conversion between Hangul and Hanja + */ + const short HANGUL_HANJA = 1; + + /** Dictionary type for the conversion between Simplified and Traditional Chinese + + @since OOo 2.0 + */ + const short SCHINESE_TCHINESE = 2; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/linguistic2/ConversionDirection.idl b/offapi/com/sun/star/linguistic2/ConversionDirection.idl new file mode 100644 index 0000000000..ae7cbc142f --- /dev/null +++ b/offapi/com/sun/star/linguistic2/ConversionDirection.idl @@ -0,0 +1,44 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module linguistic2 { + +/** Conversion direction to be used with XConversionDictionary + when looking for conversions. + + @since OOo 1.1.2 +*/ +published enum ConversionDirection +{ + /** the text to be looked for should match the left part of a + dictionary entry. + */ + FROM_LEFT, + + /** the text to be looked for should match the right part of a + dictionary entry. + */ + FROM_RIGHT +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/linguistic2/ConversionPropertyType.idl b/offapi/com/sun/star/linguistic2/ConversionPropertyType.idl new file mode 100644 index 0000000000..02eef5051c --- /dev/null +++ b/offapi/com/sun/star/linguistic2/ConversionPropertyType.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 . + */ + + +module com { module sun { module star { module linguistic2 { + +/** specifies the property type of an entry in a conversion dictionary. + + @see com::sun::star::linguistic2::XConversionDictionary + @see com::sun::star::linguistic2::XConversionPropertyType + + @since OOo 2.0 +*/ +constants ConversionPropertyType +{ + /** There is no property type defined or available + */ + const short NOT_DEFINED = 0; + + /** Any word that does not fit into any of the other properties + */ + const short OTHER = 1; + + /** A word or term that is transliterated or used from a non-Chinese language + */ + const short FOREIGN = 2; + + /** The first name (given name) of a person + */ + const short FIRST_NAME = 3; + + /** The last name (family name) of a person + */ + const short LAST_NAME = 4; + + /** The academic or social title of a person + */ + const short TITLE = 5; + + /** The status of a situation + */ + const short STATUS = 6; + + /** The name of a location or place + */ + const short PLACE_NAME = 7; + + /** The description of a business + */ + const short BUSINESS = 8; + + /** An adjective + */ + const short ADJECTIVE = 9; + + /** A term that is used to literally describe a circumstance + */ + const short IDIOM = 10; + + /** An abbreviation + */ + const short ABBREVIATION = 11; + + /** A numeric word + */ + const short NUMERICAL = 12; + + /** A noun + */ + const short NOUN = 13; + + /** A verb + */ + const short VERB = 14; + + /** The name of a product or a company + */ + const short BRAND_NAME = 15; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/linguistic2/Dictionary.idl b/offapi/com/sun/star/linguistic2/Dictionary.idl new file mode 100644 index 0000000000..e8eff90489 --- /dev/null +++ b/offapi/com/sun/star/linguistic2/Dictionary.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 . + */ + + +module com { module sun { module star { module linguistic2 { + +/** represents a dictionary used for spell checking and hyphenation. + + + @see com::sun::star::linguistic2::DictionaryList + @see com::sun::star::linguistic2::XSearchableDictionaryList + + @since OOo 3.0.1 +*/ +service Dictionary +{ + /** to access the dictionary functionality. + */ + interface com::sun::star::linguistic2::XDictionary; + + /** provide search for similar words functionality. + */ + [optional] interface com::sun::star::linguistic2::XSearchableDictionary; + + /** to save the dictionary content to file + +storeAsURL and storeToURL are empty implementations since the dictionaries are expected + to be found in specific locations
+ */ + [optional] interface com::sun::star::frame::XStorable; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/linguistic2/DictionaryEvent.idl b/offapi/com/sun/star/linguistic2/DictionaryEvent.idl new file mode 100644 index 0000000000..8b7da6b7c1 --- /dev/null +++ b/offapi/com/sun/star/linguistic2/DictionaryEvent.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 . + */ + + + +module com { module sun { module star { module linguistic2 { + +/** represents a dictionary event. + +This type of event is used by a dictionary to inform + its listeners about changes in its properties or its entry list. + It consists of an event type and may supply an affected + dictionary entry.
+ + @see com::sun::star::linguistic2::XDictionary + @see com::sun::star::linguistic2::XDictionaryEventListener + @see com::sun::star::lang::EventObject +*/ +published struct DictionaryEvent : com::sun::star::lang::EventObject +{ + /** is the type of event. + +This must be the value of a single flag. No combinations are + allowed.
+ + @see com::sun::star::linguistic2::DictionaryEventFlags + */ + short nEvent; + + /** is the affected dictionary entry (if any). + +It must be set if an entry was + added or deleted, otherwise it should be empty.
+ + @see com::sun::star::linguistic2::XDictionaryEntry + */ + com::sun::star::linguistic2::XDictionaryEntry xDictionaryEntry; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/linguistic2/DictionaryEventFlags.idl b/offapi/com/sun/star/linguistic2/DictionaryEventFlags.idl new file mode 100644 index 0000000000..8e3d78c007 --- /dev/null +++ b/offapi/com/sun/star/linguistic2/DictionaryEventFlags.idl @@ -0,0 +1,66 @@ +/* -*- 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 . + */ + + + +module com { module sun { module star { module linguistic2 { + +/** flags used for the event type in dictionary events. + +These flags represent the type of events that a dictionary + may broadcast.
+ + @see com::sun::star::linguistic2::DictionaryEvent +*/ +published constants DictionaryEventFlags +{ + /** indicates that at least one entry has been added. + */ + const short ADD_ENTRY = 1; + + /** indicates that at least one entry has been deleted. + */ + const short DEL_ENTRY = 2; + + /** the dictionary's name has changed. + */ + const short CHG_NAME = 4; + + /** the dictionary's language has changed. + */ + const short CHG_LANGUAGE = 8; + + /** all entries have been removed. + */ + const short ENTRIES_CLEARED = 16; + + /** used when the dictionary was activated. + */ + const short ACTIVATE_DIC = 32; + + /** used when the dictionary was deactivated. + */ + const short DEACTIVATE_DIC = 64; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/linguistic2/DictionaryList.idl b/offapi/com/sun/star/linguistic2/DictionaryList.idl new file mode 100644 index 0000000000..5a92c5f3d9 --- /dev/null +++ b/offapi/com/sun/star/linguistic2/DictionaryList.idl @@ -0,0 +1,37 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module linguistic2 { + +/** is the list of personal dictionaries. + +The active dictionaries of this list will be used for + spell checking and hyphenation.
+ + @see com::sun::star::linguistic2::XDictionary + @see com::sun::star::linguistic2::XDictionaryList + @see com::sun::star::linguistic2::XSearchableDictionaryList +*/ +published service DictionaryList : XSearchableDictionaryList; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/linguistic2/DictionaryListEvent.idl b/offapi/com/sun/star/linguistic2/DictionaryListEvent.idl new file mode 100644 index 0000000000..3c807cedd7 --- /dev/null +++ b/offapi/com/sun/star/linguistic2/DictionaryListEvent.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 . + */ + + + +module com { module sun { module star { module linguistic2 { + +/** structure representing a dictionary-list event. + +This structure is used by the dictionary-list to inform + its listeners about certain events. + Since the dictionary-list is able to collect several single + events before broadcasting them to its listeners the + integer argument may be a combination (logical or) of several + event types. + If more specific information about the events is requested by a + listener, a sequence of all dictionary-list events since the + last broadcasting will be supplied. Otherwise, that list will + be empty.
+ + @see com::sun::star::linguistic2::DictionaryList + @see com::sun::star::linguistic2::XDictionaryListEventListener + @see com::sun::star::lang::EventObject +*/ +published struct DictionaryListEvent : com::sun::star::lang::EventObject +{ + /** the combined type of the accumulated events. + +The value can be the combination of multiple + com::sun::star::linguistic2::DictionaryListEventFlags + by applying the logical OR to them.
+ + @see com::sun::star::linguistic2::DictionaryListEventFlags + + */ + short nCondensedEvent; + + /** list of accumulated dictionary events. + +It will be empty if all + com::sun::star::linguistic2::XDictionaryListEventListener + are satisfied with the condensed representation of the + com::sun::star::linguistic2::DictionaryListEvent::nCondensedEvent().
+ + @see com::sun::star::linguistic2::DictionaryEvent + */ + sequence< com::sun::star::linguistic2::DictionaryEvent > aDictionaryEvents; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/linguistic2/DictionaryListEventFlags.idl b/offapi/com/sun/star/linguistic2/DictionaryListEventFlags.idl new file mode 100644 index 0000000000..6030249d41 --- /dev/null +++ b/offapi/com/sun/star/linguistic2/DictionaryListEventFlags.idl @@ -0,0 +1,81 @@ +/* -*- 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 . + */ + + + +module com { module sun { module star { module linguistic2 { + +/** constants representing a single dictionary-list event. + +These flags define the possible types for a + dictionary-list event.
+ + @see com::sun::star::linguistic2::DictionaryListEvent + @see com::sun::star::linguistic2::XDictionaryListEventListener + @see com::sun::star::linguistic2::XDictionaryList +*/ +published constants DictionaryListEventFlags +{ + /** A positive entry was added to a dictionary from the + dictionary list. + */ + const short ADD_POS_ENTRY = 1; + + /** A positive entry was deleted from a dictionary of the + dictionary-list or a dictionary with positive entries + was cleared. + */ + const short DEL_POS_ENTRY = 2; + + /** A negative entry was added to a dictionary from the + dictionary-list. + */ + const short ADD_NEG_ENTRY = 4; + + /** A negative entry was deleted from a dictionary of the + dictionary-list or a dictionary with negative entries + was cleared. + */ + const short DEL_NEG_ENTRY = 8; + + /** A dictionary with positive entries was activated or + has changed its language. + */ + const short ACTIVATE_POS_DIC = 16; + + /** A dictionary with positive entries was deactivated or + has changed its language. + */ + const short DEACTIVATE_POS_DIC = 32; + + /** A dictionary with negative entries was activated or + has changed its language. + */ + const short ACTIVATE_NEG_DIC = 64; + + /** A dictionary with negative entries was deactivated or + has changed its language. + */ + const short DEACTIVATE_NEG_DIC = 128; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/linguistic2/DictionaryType.idl b/offapi/com/sun/star/linguistic2/DictionaryType.idl new file mode 100644 index 0000000000..2fc037c42c --- /dev/null +++ b/offapi/com/sun/star/linguistic2/DictionaryType.idl @@ -0,0 +1,55 @@ +/* -*- 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 . + */ + + + +module com { module sun { module star { module linguistic2 { + +/** describes the type of a personal dictionary. + +This defines the type of a dictionary. + It may be positive or negative. A positive dictionary may hold + only positive entries (words defined to be correct for spell + checking) and a negative one only negative entries (words defined + to be reported as incorrect by the spell checker).
+ + @see com::sun::star::linguistic2::XDictionary + @see com::sun::star::linguistic2::XDictionaryEntry +*/ +published enum DictionaryType +{ + /** all entries in the dictionary are positive. + */ + POSITIVE, + + /** all entries in the dictionary are negative. + */ + NEGATIVE, + + /** +@deprecated + */ + MIXED + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/linguistic2/HangulHanjaConversionDictionary.idl b/offapi/com/sun/star/linguistic2/HangulHanjaConversionDictionary.idl new file mode 100644 index 0000000000..f447a4a4b2 --- /dev/null +++ b/offapi/com/sun/star/linguistic2/HangulHanjaConversionDictionary.idl @@ -0,0 +1,45 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module linguistic2 { + +/** represents a dictionary for Hangul/Hanja text conversion. + +A dictionary implementing this service will be used for + Hangul/Hanja conversion. Therefore the locale of the + dictionary has to be Korean, and the conversion type + com::sun::star::linguistic2::ConversionDictionaryType::HANGUL_HANJA.
+ +Also for a pair (entry) to be added the + left part has to be in Hangul and the right in Hanja, + and the number of characters for the left part has to be the + same as for the right part.
+ + @since OOo 1.1.2 +*/ +published service HangulHanjaConversionDictionary +{ + service com::sun::star::linguistic2::ConversionDictionary; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/linguistic2/Hyphenator.idl b/offapi/com/sun/star/linguistic2/Hyphenator.idl new file mode 100644 index 0000000000..943ed22cb7 --- /dev/null +++ b/offapi/com/sun/star/linguistic2/Hyphenator.idl @@ -0,0 +1,40 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module linguistic2 { + + published interface XHyphenator; + published interface XLinguServiceEventBroadcaster; + +/** offers hyphenation functionality. +*/ +published service Hyphenator +{ + interface com::sun::star::linguistic2::XHyphenator; + interface com::sun::star::linguistic2::XLinguServiceEventBroadcaster; + interface com::sun::star::lang::XInitialization; + interface com::sun::star::lang::XComponent; + interface com::sun::star::lang::XServiceDisplayName; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/linguistic2/LanguageGuessing.idl b/offapi/com/sun/star/linguistic2/LanguageGuessing.idl new file mode 100644 index 0000000000..e34ce58b9e --- /dev/null +++ b/offapi/com/sun/star/linguistic2/LanguageGuessing.idl @@ -0,0 +1,30 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module linguistic2 { + + service LanguageGuessing:XLanguageGuessing; +// service LanguageGuessing{ +// interface XLanguageGuessing; +// interface XLanguageGuesserConfig; +// }; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/linguistic2/LinguProperties.idl b/offapi/com/sun/star/linguistic2/LinguProperties.idl new file mode 100644 index 0000000000..5049bf5a01 --- /dev/null +++ b/offapi/com/sun/star/linguistic2/LinguProperties.idl @@ -0,0 +1,30 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module linguistic2 { + +/** the set of linguistic relevant properties. +*/ +published service LinguProperties : XLinguProperties; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/linguistic2/LinguServiceEvent.idl b/offapi/com/sun/star/linguistic2/LinguServiceEvent.idl new file mode 100644 index 0000000000..8a57758cbc --- /dev/null +++ b/offapi/com/sun/star/linguistic2/LinguServiceEvent.idl @@ -0,0 +1,52 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module linguistic2 { + +/** represents a linguistic service event. + +This type of event may be broadcast by a spell checker or + hyphenator service implementation to inform its listeners (clients) + that the results of previous function calls may be different now. + It is possible to suggest that hyphenation should be done again + and/or the spelling of previously incorrect or correct words + should be checked again.
+ + @see com::sun::star::linguistic2::XLinguServiceEventBroadcaster + @see com::sun::star::linguistic2::XLinguServiceEventListener + @see com::sun::star::linguistic2::SpellChecker + @see com::sun::star::linguistic2::Hyphenator + @see com::sun::star::lang::EventObject +*/ +published struct LinguServiceEvent : com::sun::star::lang::EventObject +{ + /** The type of event. + +The value may be combined via logical OR from those values + defined in com::sun::star::linguistic2::LinguServiceEventFlags
+ */ + short nEvent; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/linguistic2/LinguServiceEventFlags.idl b/offapi/com/sun/star/linguistic2/LinguServiceEventFlags.idl new file mode 100644 index 0000000000..d72069d275 --- /dev/null +++ b/offapi/com/sun/star/linguistic2/LinguServiceEventFlags.idl @@ -0,0 +1,55 @@ +/* -*- 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 . + */ + + + +module com { module sun { module star { module linguistic2 { + +/** to be used in lingu-service events. + +These values define the flags which may be logically combined + to build the event type of a + com::sun::star::linguistic2::LinguServiceEvent
+*/ +published constants LinguServiceEventFlags +{ + /** The spelling of previously correct words should be checked again. + */ + const short SPELL_CORRECT_WORDS_AGAIN = 1; + + /** The spelling of previously misspelled words should be checked again. + */ + const short SPELL_WRONG_WORDS_AGAIN = 2; + + /** The hyphenation of words may have changed. + */ + const short HYPHENATE_AGAIN = 4; + + /** Request new proofreading of the document + + @since OOo 3.0.1 + */ + const short PROOFREAD_AGAIN = 8; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/linguistic2/LinguServiceManager.idl b/offapi/com/sun/star/linguistic2/LinguServiceManager.idl new file mode 100644 index 0000000000..0f5369cba0 --- /dev/null +++ b/offapi/com/sun/star/linguistic2/LinguServiceManager.idl @@ -0,0 +1,30 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module linguistic2 { + +/** offers linguistic functionality. Is to be used to access spell checker, + hyphenator and thesaurus. +*/ +published service LinguServiceManager : XLinguServiceManager2; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/linguistic2/NumberText.idl b/offapi/com/sun/star/linguistic2/NumberText.idl new file mode 100644 index 0000000000..398d271b4d --- /dev/null +++ b/offapi/com/sun/star/linguistic2/NumberText.idl @@ -0,0 +1,39 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module linguistic2 { + +/** provides converter to spell out numbers and money amounts + +An implementation of this service will receive text and has to spell + out as cardinal, ordinal, ordinal indicator or money amounts.
+ +An implementation of this service is not limited to number to number + conversion at all. It might also support other linguistic functions of + a given language, for example, spelling out years, gender and formal + variants or complex affixation of number names, or article selection.
+ + @since LibreOffice 6.1 + */ + + service NumberText:XNumberText; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/linguistic2/Proofreader.idl b/offapi/com/sun/star/linguistic2/Proofreader.idl new file mode 100644 index 0000000000..151881c29b --- /dev/null +++ b/offapi/com/sun/star/linguistic2/Proofreader.idl @@ -0,0 +1,49 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module linguistic2 { + interface XProofreader; }; +}; }; }; + + +module com { module sun { module star { module linguistic2 { + + +/** provides a proofreader (often known as grammar checker) for text + +An implementation of this service will receive text and has to identify + the sentence end and report all errors found.
+ +An implementation of this service is not limited to grammar checking at all. + It might also check style, used terms etc. Basically it can check every + aspect of a single sentence. Since the text provided is always the complete + paragraph it can also choose to analyze the context of the sentence currently + required to be checked. However error reports need to be limited to the + current sentence.
+ + @since OOo 3.0.1 + */ + +service Proofreader : XProofreader {}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/linguistic2/ProofreadingIterator.idl b/offapi/com/sun/star/linguistic2/ProofreadingIterator.idl new file mode 100644 index 0000000000..c6cbf2dd9b --- /dev/null +++ b/offapi/com/sun/star/linguistic2/ProofreadingIterator.idl @@ -0,0 +1,43 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module linguistic2 { + interface XProofreadingIterator; }; +}; }; }; + + +module com { module sun { module star { module linguistic2 { + + +/** provides a proofreading iterator + +An implementation of this service acts as a mediator between documents + and proofreaders (often called just grammar checkers). It is responsible to + process requests for proofreading text portions.
+ + @since OOo 3.0.1 + */ + +service ProofreadingIterator : XProofreadingIterator; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/linguistic2/ProofreadingResult.idl b/offapi/com/sun/star/linguistic2/ProofreadingResult.idl new file mode 100644 index 0000000000..a9d500e0c4 --- /dev/null +++ b/offapi/com/sun/star/linguistic2/ProofreadingResult.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 . + */ + + +module com { module sun { module star { module linguistic2 { + +// forward declaration +interface XProofreader; + +/** holds the results from proofreading a sentence. + + @since OOo 3.0.1 +*/ +struct ProofreadingResult +{ + // the document ID + string aDocumentIdentifier; + + // the paragraph that was checked + com::sun::star::text::XFlatParagraph xFlatParagraph; + + // text that was checked (the paragraphs content may have changed meanwhile!) + string aText; + + // language used for checking + com::sun::star::lang::Locale aLocale; + + // the start of sentence position passed to the proofreader + long nStartOfSentencePosition; + + // the end of sentence position found by the proofreader + // That is the index following the character terminating the sentence. + long nBehindEndOfSentencePosition; + + // the start of the next sentence to be checked. + // Basically obtained by skipping all white spaces after the end of sentence position. + long nStartOfNextSentencePosition; + + // the list of errors + sequence< com::sun::star::linguistic2::SingleProofreadingError > aErrors; + + // a list of properties + sequence< com::sun::star::beans::PropertyValue > aProperties; + + // reference to the specific proofreader implementation that reported the error + com::sun::star::linguistic2::XProofreader xProofreader; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/linguistic2/SingleProofreadingError.idl b/offapi/com/sun/star/linguistic2/SingleProofreadingError.idl new file mode 100644 index 0000000000..1c60a64545 --- /dev/null +++ b/offapi/com/sun/star/linguistic2/SingleProofreadingError.idl @@ -0,0 +1,64 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module linguistic2 { + +/** holds a single error found by the proofreader. + + @since OOo 3.0.1 +*/ +struct SingleProofreadingError +{ + // start index of the error text + // indicating the text to be replaced if suggestions are applied + long nErrorStart; + + // the length of the error text + // indicating the text to be replaced if suggestions are applied + long nErrorLength; + + // as in com.sun.star.text.TextMarkupType + long nErrorType; + + // the id of the rule that this error is violating + string aRuleIdentifier; + + // short error description text (usually to be displayed in context menu) + string aShortComment; + + // full error description text (usually to be displayed in dialog) + string aFullComment; + + // a list of correction suggestions + // Usually empty if only automatic checking was done. + sequence< string > aSuggestions; + + // a list of properties + //A value of this type is part of the + com::sun::star::linguistic2::XSpellAlternatives + interface which is the return type for an unsuccessful + spelling attempt.
+ + @see com::sun::star::linguistic2::XSpellChecker +*/ +published constants SpellFailure +{ + /** The word is a negative one, that is, it should not be used. + */ + const short IS_NEGATIVE_WORD = 2; + + /** The capitalization of the word is wrong. + */ + const short CAPTION_ERROR = 3; + + /** The spelling of the word is wrong (or at least not known to be correct). + */ + const short SPELLING_ERROR = 4; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/linguistic2/Thesaurus.idl b/offapi/com/sun/star/linguistic2/Thesaurus.idl new file mode 100644 index 0000000000..f11a9e5a17 --- /dev/null +++ b/offapi/com/sun/star/linguistic2/Thesaurus.idl @@ -0,0 +1,38 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module linguistic2 { + +published interface XThesaurus; + +/** offers thesaurus functionality. +*/ +published service Thesaurus +{ + interface com::sun::star::linguistic2::XThesaurus; + interface com::sun::star::lang::XInitialization; + interface com::sun::star::lang::XComponent; + interface com::sun::star::lang::XServiceDisplayName; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/linguistic2/XAvailableLocales.idl b/offapi/com/sun/star/linguistic2/XAvailableLocales.idl new file mode 100644 index 0000000000..99154978dc --- /dev/null +++ b/offapi/com/sun/star/linguistic2/XAvailableLocales.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 . + */ + + + + +module com { module sun { module star { module linguistic2 { + +/** retrieves the list of available languages. +*/ +published interface XAvailableLocales : com::sun::star::uno::XInterface +{ + /** retrieve the list of supported languages (Locales). + + @see com::sun::star::linguistic2::XSupportedLocales + + @param aServiceName + the name of the service to get the list of available Locales for. + @return + the list of locales supported by the whole of all registered + implementations of that service. The sequence will be empty + if there is no such language or the service is not known. + */ + sequence< com::sun::star::lang::Locale > getAvailableLocales( + [in] string aServiceName ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/linguistic2/XConversionDictionary.idl b/offapi/com/sun/star/linguistic2/XConversionDictionary.idl new file mode 100644 index 0000000000..280b0b358b --- /dev/null +++ b/offapi/com/sun/star/linguistic2/XConversionDictionary.idl @@ -0,0 +1,190 @@ +/* -*- 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 . + */ + + + + +module com { module sun { module star { module linguistic2 { + +/** Allows the user to access a conversion dictionary. + +The dictionary consists of entries (pairs) of the form + ( aLeftText, aRightText ). + Those pairs can be added and removed. Also it can be looked + for all entries where the left text or the right text matches + a given text. Thus it can be used for conversions in both + directions.
+ +Restrictions to what has to be the left and right text are usually + given by specific services implementing this interface.
+ + @see com::sun::star::linguistic2::ConversionDictionary + @see com::sun::star::linguistic2::HangulHanjaConversionDictionary + + @since OOo 1.1.2 +*/ +published interface XConversionDictionary : com::sun::star::uno::XInterface +{ + /** + @returns + the name of the dictionary. + */ + string getName(); + + /** + @returns + the language supported by the dictionary. + + @see com::sun::star::lang::Locale + */ + com::sun::star::lang::Locale getLocale(); + + /** + @returns + the conversion type supported by the dictionary. + + @see com::sun::star::linguistic2::ConversionDictionaryType + */ + short getConversionType(); + + /** specifies whether the dictionary should be used or not . + + @param bActivate + `TRUE` if the dictionary should be used, `FALSE` otherwise. + + */ + void setActive( [in] boolean bActivate ); + + /** + @returns + `TRUE` if the dictionary is active, `FALSE` otherwise. + */ + boolean isActive(); + + /** removes all entries from the dictionary. + */ + void clear(); + + /** searches for entries or conversions that match the given text. + +The exact string to be looked for is the substring from the + aText parameter that starts at position nStartPos and has the + length nLength.
+ + @returns + the list of conversions found for the supplied text. + If no nothing was found, it is empty. + + @param aText + the text where the substring to be looked for will be taken from. + Depending on the conversion direction parameter it specifies + either the left text or the right text to look for. + @param nStartPos + the starting pos of the substring to be looked for. + @param nLength + the length of the substring to be looked for. + + @param eDirection + specifies the direction of the conversion to look for. + It is one of + com::sun::star::linguistic2::ConversionDirection. + + @param nTextConversionOptions + Combination of com::sun::star::i18n::TextConversionOption + values. + + @throws com::sun::star::lang::IllegalArgumentException + if the locale is not supported by the dictionary or if + nTextConversionOptions is invalid for the given locale. + */ + sequence< string > getConversions( + [in] string aText, + [in] long nStartPos, + [in] long nLength, + [in] com::sun::star::linguistic2::ConversionDirection eDirection, + [in] long nTextConversionOptions ) + raises( com::sun::star::lang::IllegalArgumentException ); + + /** is used to add a conversion pair to the dictionary. + + @param aLeftText + the left text of the pair to be added. + + @param aRightText + the right text of the pair to be added. + + @throws com::sun::star::lang::IllegalArgumentException + if the arguments are invalid. + For example if the specifications defined by the service + implementing this object are not met. + + @throws com::sun::star::container::ElementExistException + if such an entry already exists. + */ + void addEntry( + [in] string aLeftText, + [in] string aRightText ) + raises( com::sun::star::lang::IllegalArgumentException, + com::sun::star::container::ElementExistException); + + /** removes a conversion pair from the dictionary. + + @param aLeftText + the left text of the pair to be removed. + + @param aRightText + the right text of the pair to be removed. + + @throws com::sun::star::container::NoSuchElementException + if there is no such entry. + */ + void removeEntry( + [in] string aLeftText, + [in] string aRightText ) + raises( com::sun::star::container::NoSuchElementException ); + + /** returns the maximum number of characters used as left or right text + in entries. + + @param eDirection + specifies if the left text or the right text of entries will + be used. + + @see com::sun::star::linguistic2::ConversionDirection + */ + short getMaxCharCount( + [in] com::sun::star::linguistic2::ConversionDirection eDirection ); + + /** + @returns + a list of all left or right parts of the dictionaries entries. + @param eDirection + specifies if all left or all right parts of the entries + should be returned. + */ + + sequence< string > getConversionEntries( + [in] com::sun::star::linguistic2::ConversionDirection eDirection ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/linguistic2/XConversionDictionaryList.idl b/offapi/com/sun/star/linguistic2/XConversionDictionaryList.idl new file mode 100644 index 0000000000..2dae872cec --- /dev/null +++ b/offapi/com/sun/star/linguistic2/XConversionDictionaryList.idl @@ -0,0 +1,177 @@ +/* -*- 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 . + */ + + + + +module com { module sun { module star { module linguistic2 { + +/** is used to manage and maintain a list of conversion dictionaries. + +The dictionaries added to the list may or may not support the + com::sun::star::util::XFlushable interface. + If they do those dictionaries have to be flushed upon termination + of the dictionary list.
+ + @since OOo 1.1.2 +*/ +published interface XConversionDictionaryList : com::sun::star::uno::XInterface +{ + /** + @returns + the name container interface to the dictionaries in the list. + +The interface can be used to add, remove or retrieve dictionaries + from the list by specifying the name of the dictionary, and + (in case of inserting) the interface to the dictionary as second + parameter.
+ +A dictionary to be added must support the + com::sun::star::linguistic2::XConversionDictionary + interface. + The dictionary to be added needs not necessarily be created by + this service.
+ +The com::sun::star::container::XNameReplace::replaceByName + function is implemented empty since renaming of dictionaries + is not allowed.
+ */ + com::sun::star::container::XNameContainer getDictionaryContainer(); + + /** creates a new dictionary and adds it to the dictionary list. + +The dictionary will be empty and active.
+ + @returns + an empty dictionary with the given name, locale and + conversion type. + `NULL` on failure. + + @param aName + is the name of the dictionary (should be unique). + + @param aLocale + defines the language of the dictionary. + + @param nConversionDictionaryType + One of com::sun::star::linguistic2::ConversionDictionaryType values. + + @throws NoSupportException + when nConversionDictionaryType is not known by the implementation. + + @throws ElementExistException + when a dictionary with the specified name already exists. + */ + com::sun::star::linguistic2::XConversionDictionary addNewDictionary( + [in] string aName, + [in] com::sun::star::lang::Locale aLocale, + [in] short nConversionDictionaryType ) + raises( com::sun::star::lang::NoSupportException, + com::sun::star::container::ElementExistException ); + + /** searches for entries that match the given text. + +All active dictionaries with matching locales and conversion + type will be searched + for entries matching the given text.
+ +The exact string to be looked for is the substring from the + aText parameter that starts at position nStartPos and has the + length nLength.
+ + @returns + the list of entries found. If no entry was found, + it is empty. + + @param aText + the text where the substring to be looked for will be taken from. + @param nStartPos + the starting pos of the substring to be looked for. + @param nLength + the length of the substring to be looked for. + + + @param aLocale + Locale the conversion is referred to. + + @param nConversionDictionaryType + specifies the type of conversion the dictionary + can be used for. It is one of + com::sun::star::linguistic2::ConversionDictionaryType. + + @param eDirection + specifies the direction of the conversion to look for. + It is one of + com::sun::star::linguistic2::ConversionDirection. + + @param nTextConversionOptions + Combination of com::sun::star::i18n::TextConversionOption + values. + + @throws com::sun::star::lang::IllegalArgumentException + if the nTextConversionOptions parameter is invalid for + the given locale. + + @throws NoSupportException + when nConversionDictionaryType is not known by the implementation, + or when the locale is not supported (i.e. there are no dictionaries + for that locale available). + */ + sequence< string > queryConversions( + [in] string aText, + [in] long nStartPos, + [in] long nLength, + [in] com::sun::star::lang::Locale aLocale, + [in] short nConversionDictionaryType, + [in] com::sun::star::linguistic2::ConversionDirection eDirection, + [in] long nTextConversionOptions ) + raises( com::sun::star::lang::IllegalArgumentException, + com::sun::star::lang::NoSupportException ); + + /** returns the maximum number of characters used as left or right text + in entries. + +All active dictionaries of the specified locale and type + will be looked up to get the result.
+The parameter eDirection specifies if only the left text or the + right text from entries should be considered.
+ + @param aLocale + Locale the conversion is referred to. + @param nConversionDictionaryType + specifies the type of conversion dictionaries to be looked up. + It is one of + com::sun::star::linguistic2::ConversionDictionaryType. + @param eDirection + specifies if the left text or the right text of entries will + be used. + + @see com::sun::star::linguistic2::ConversionDirection + */ + short queryMaxCharCount( + [in] com::sun::star::lang::Locale aLocale, + [in] short nConversionDictionaryType, + [in] com::sun::star::linguistic2::ConversionDirection eDirection ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/linguistic2/XConversionPropertyType.idl b/offapi/com/sun/star/linguistic2/XConversionPropertyType.idl new file mode 100644 index 0000000000..879d644a3a --- /dev/null +++ b/offapi/com/sun/star/linguistic2/XConversionPropertyType.idl @@ -0,0 +1,83 @@ +/* -*- 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 . + */ + + + + + + +module com { module sun { module star { module linguistic2 { + +/** allows set and retrieve the property type of an entry in a + conversion dictionary + +The property type must be one of + com::sun::star::linguistic2::ConversionPropertyType
+ + @see com::sun::star::linguistic2::XConversionDictionary + @see com::sun::star::linguistic2::ConversionPropertyType + + @since OOo 2.0 +*/ +published interface XConversionPropertyType : com::sun::star::uno::XInterface +{ + + /** sets the property type for the specified entry. + +The conversion entry is specified by the pair + ( aLeftText, aRightText ).
+ + @param aLeftText + the left text of the dictionary entry. + @param aRightText + the right text of the dictionary entry. + @param nPropertyType + the property type to be set for the entry + */ + void setPropertyType( + [in] string aLeftText, + [in] string aRightText, + [in] short nPropertyType ) + raises( com::sun::star::container::NoSuchElementException, + com::sun::star::lang::IllegalArgumentException ); + + /** returns the property type for the specified entry. + +The conversion entry is specified by the pair + ( aLeftText, aRightText ).
+ + @param aLeftText + the left text of the dictionary entry. + @param aRightText + the right text of the dictionary entry. + @returns + returns the property type for the entry with the specified + left text. + */ + short getPropertyType( + [in] string aLeftText, + [in] string aRightText ) + raises( com::sun::star::container::NoSuchElementException ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/linguistic2/XDictionary.idl b/offapi/com/sun/star/linguistic2/XDictionary.idl new file mode 100644 index 0000000000..a1a6ef171c --- /dev/null +++ b/offapi/com/sun/star/linguistic2/XDictionary.idl @@ -0,0 +1,226 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module linguistic2 { + +/** This interfaces enables the object to access personal dictionaries. + +Personal dictionaries are used to supply additional + information for spell checking and hyphenation (see + com::sun::star::linguistic2::XDictionaryEntry). + Only active dictionaries with an appropriate language are used + for that purpose. + The entries of an active, positive dictionary are words that are + required to be recognized as correct during the spell checking + process. Additionally, they will be used for hyphenation. + Entries of a negative dictionary are required to be recognized + as negative words, for example, words that should not be used, during + SPELLCHECK. An entry in a negative dictionary may supply a + proposal for a word to be used instead of the one being used.
+ + @see com::sun::star::linguistic2::XDictionaryEvent + @see com::sun::star::container::XNamed +*/ +published interface XDictionary : com::sun::star::container::XNamed +{ + /** returns the type of the dictionary. + + @returns + the type of the dictionary. + + @see com::sun::star::linguistic2::DictionaryType + */ + com::sun::star::linguistic2::DictionaryType getDictionaryType(); + + /** specifies whether the dictionary should be used or not . + + @param bActivate + `TRUE` if the dictionary should be used, `FALSE` otherwise. + + */ + void setActive( [in] boolean bActivate ); + + /** + @returns + `TRUE` if the dictionary is active, `FALSE` otherwise. + */ + boolean isActive(); + + /** + @returns + the number of entries in the dictionary. + */ + long getCount(); + + /** + @returns + the language of the dictionary. + + @see com::sun::star::lang::Locale + */ + com::sun::star::lang::Locale getLocale(); + + /** is used to set the language of the dictionary. + + @param aLocale + the new language of the dictionary. + + @see com::sun::star::lang::Locale + */ + void setLocale( [in] com::sun::star::lang::Locale aLocale ); + + /** searches for an entry that matches the given word. + + @returns + the reference to the entry found. If no entry was found, + it is NULL. + + @param aWord + the word to be looked for. + + @see com::sun::star::linguistic2::XDictionaryEntry + */ + com::sun::star::linguistic2::XDictionaryEntry getEntry( [in] string aWord ); + + /** is used to add an entry to the dictionary. + +If an entry already exists, the dictionary remains unchanged + and `FALSE` will be returned.
+ +In positive dictionaries only positive entries + can be made, and in negative ones only negative entries.
+ + @param xDicEntry + the entry to be added. + + @returns + `TRUE` if the entry was successfully added `FALSE` otherwise. + + @see com::sun::star::linguistic2::XDictionaryEntry + @see com::sun::star::linguistic2::DictionaryType + */ + boolean addEntry( + [in] com::sun::star::linguistic2::XDictionaryEntry xDicEntry ); + + /** is used to make an entry in the dictionary. + +If an entry already exists, the dictionary remains unchanged + and `FALSE` will be returned.
+ +In positive dictionaries only positive entries + can be made, and in negative ones only negative entries.
+ + @param aWord + the word to be added. + + @param bIsNegative + specifies whether the entry will be a negative one or not. + + @param aRplcText + in the case of a negative entry, this is the replacement text to + be used when replacing aWord. Otherwise, it is undefined. + + @returns + `TRUE` if the entry was successfully added, `FALSE` otherwise. + + @see com::sun::star::linguistic2::DictionaryType + */ + boolean add( + [in] string aWord, + [in] boolean bIsNegative, + [in] string aRplcText ); + + /** removes an entry from the dictionary. + + @param aWord + the word matching the entry to be removed. + + @returns + `TRUE` if the entry was successfully removed, `FALSE` + otherwise (especially if the entry was not found). + */ + boolean remove( [in] string aWord ); + + /** + @returns + `TRUE` if the dictionary is full and no further + entry can be made, `FALSE` otherwise. + */ + boolean isFull(); + + /** +This function should no longer be used since with the expansion of the + maximum number of allowed entries the result may become unreasonable large!
+ + @returns + a sequence with all the entries of the dictionary. + + @see com::sun::star::linguistic2::XDictionaryEntry + @see com::sun::star::linguistic2::XSearchableDictionary + @deprecated + */ + + sequenceOn dictionary events, each entry in the listener list will + be notified via a call to + com::sun::star::linguistic2::XDictionaryEventListener::processDictionaryEvent().
+ + @param xListener + the entry to be made, that is, the object that wants notifications. + + @returns + `TRUE` if the entry was successfully made, `FALSE` otherwise. + If com::sun::star::lang::XEventListener::disposing() was called before, + it will always fail. + + @see com::sun::star::linguistic2::XDictionary::removeDictionaryEventListener() + @see com::sun::star::linguistic2::XDictionaryEventListener + */ + boolean addDictionaryEventListener( + [in] com::sun::star::linguistic2::XDictionaryEventListener xListener ); + + /** removes an entry from the list of dictionary event listeners. + + @param xListener + the reference to the listening object to be removed. + + @returns + `TRUE` if the object to be removed was found and removed, + `FALSE` if the object was not found in the list. + + @see com::sun::star::linguistic2::XDictionary::addDictionaryEventListener() + @see com::sun::star::linguistic2::XDictionaryEventListener + */ + boolean removeDictionaryEventListener( + [in] com::sun::star::linguistic2::XDictionaryEventListener xListener ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/linguistic2/XDictionary1.idl b/offapi/com/sun/star/linguistic2/XDictionary1.idl new file mode 100644 index 0000000000..4ab635a19e --- /dev/null +++ b/offapi/com/sun/star/linguistic2/XDictionary1.idl @@ -0,0 +1,67 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module linguistic2 { + +/** + @deprecated +*/ +published interface XDictionary1 : com::sun::star::container::XNamed +{ + com::sun::star::linguistic2::DictionaryType getDictionaryType(); + + void setActive( [in] boolean bActivate ); + + boolean isActive(); + + short getCount(); + + short getLanguage(); + + void setLanguage( [in] short nLang ); + + com::sun::star::linguistic2::XDictionaryEntry getEntry( [in] string aWord ); + + boolean addEntry( [in] com::sun::star::linguistic2::XDictionaryEntry xDicEntry ); + + boolean add( + [in] string aWord, + [in] boolean bIsNegative, + [in] string aRplcText ); + + boolean remove( [in] string aWord ); + + boolean isFull(); + + sequenceA dictionary entry can supply a word and its hyphenation + and indicate if it is a negative word. + If it is a negative entry it may supply a replacement text to + be used instead of the entry word.
+ +Hyphenation positions are represented by an "=" in the word. + If the "=" is the last character of the word this means it should not + be hyphenated. If there is no "=" charter in the word, hyphenation + positions will be determined automatically (i.e., from the hyphenator + service alone).
+ +Entries whose words only differ in hyphenation are considered + to be equal. Also a "." at the end of the word will make no + difference.
+ + @see com::sun::star::linguistic2::XDictionary + @see com::sun::star::uno::XInterface +*/ +published interface XDictionaryEntry : com::sun::star::uno::XInterface +{ + /** + @returns + the word defining this entry. + */ + string getDictionaryWord(); + + /** + @returns + `TRUE` if the word (entry) is a negative one and should not be + used, `FALSE` otherwise. + */ + boolean isNegative(); + + /** is the suggested replacement text for negative words. + +It is undefined if the entry is not negative.
+ + @returns + the replacement text for a negative entry. + An empty string indicates that no replacement text is provided. + */ + string getReplacementText(); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/linguistic2/XDictionaryEventListener.idl b/offapi/com/sun/star/linguistic2/XDictionaryEventListener.idl new file mode 100644 index 0000000000..c5b43c2741 --- /dev/null +++ b/offapi/com/sun/star/linguistic2/XDictionaryEventListener.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 . + */ + + + +module com { module sun { module star { module linguistic2 { + +/** This interfaces allows the object to act according to dictionary events. + +The single method is used by a dictionary to notify its + listeners about + com::sun::star::linguistic2::DictionaryEvents.
+ + @see com::sun::star::linguistic2::XDictionary + @see com::sun::star::lang::XEventListener +*/ +published interface XDictionaryEventListener : com::sun::star::lang::XEventListener +{ + /** is used to get notification of dictionary events. + + @param aDicEvent + the event to be notified of. + + @see com::sun::star::lang::DictionaryEvent + */ + void processDictionaryEvent( + [in] com::sun::star::linguistic2::DictionaryEvent aDicEvent ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/linguistic2/XDictionaryList.idl b/offapi/com/sun/star/linguistic2/XDictionaryList.idl new file mode 100644 index 0000000000..3ca3f87e7d --- /dev/null +++ b/offapi/com/sun/star/linguistic2/XDictionaryList.idl @@ -0,0 +1,224 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module linguistic2 { + +/** is used to manage and maintain a list of dictionaries. + +A dictionary-list may be given to a spell checker or hyphenator + service implementation on their creation in order to supply a set + of dictionaries and additional information to be used for + those purposes.
+ + @see com::sun::star::linguistic2::XDictionary + @see com::sun::star::uno::XInterface +*/ +published interface XDictionaryList : com::sun::star::uno::XInterface +{ + /** + @returns + the number of dictionaries in the list. + */ + short getCount(); + + /** + @returns + a sequence with an entry for every dictionary + in the list. + + @see com::sun::star::linguistic2::XDictionary + */ + sequenceAdditionally, the dictionary-list will add itself to the list of dictionary + event listeners of that dictionary.
+ + @returns + `TRUE` if the dictionary was added successfully, + `FALSE` otherwise. + + @param xDictionary + the dictionary to be added. + + @see com::sun::star::linguistic2::XDictionary + */ + boolean addDictionary( + [in] com::sun::star::linguistic2::XDictionary xDictionary ); + + /** removes a single dictionary from the list. + +If the dictionary is still active, it will be deactivated + first. The dictionary-list will remove itself from the list of + dictionary event listeners of the dictionary.
+ + @returns + `TRUE` if the dictionary was removed successfully, `FALSE` + otherwise. + + @param xDictionary + dictionary to be removed from the list of dictionaries. + + @see com::sun::star::linguistic2::XDictionary + */ + boolean removeDictionary( + [in] com::sun::star::linguistic2::XDictionary xDictionary ); + + /** adds an entry to the list of dictionary-list event listeners. + +On dictionary-list events, each entry in the listener list will + be notified via a call to + com::sun::star::linguistic2::XDictionaryListEventListener::processDictionaryListEvent().
+ + @returns + `TRUE` if the entry was made, `FALSE` otherwise. + If com::sun::star::lang::XEventListener::disposing() + was called before, it will always fail. + + @param xListener + the object to be notified of dictionary-list events. + + @param bReceiveVerbose + `TRUE` if the listener requires more detailed event + notification than usual. + + @see com::sun::star::linguistic2::XDictionaryListEventListener + @see com::sun::star::linguistic2::XDictionaryListEvent + */ + boolean addDictionaryListEventListener( + [in] com::sun::star::linguistic2::XDictionaryListEventListener xListener, + [in] boolean bReceiveVerbose ); + + /** removes an entry from the list of dictionary-list event listeners. + + @returns + `TRUE` if the object to be removed was found and removed, + `FALSE` otherwise. + + @param xListener + the object to be removed from the listener list. + + @see com::sun::star::linguistic2::XDictionaryListEventListener + @see com::sun::star::linguistic2::XDictionaryListEvent + */ + boolean removeDictionaryListEventListener( + [in] com::sun::star::linguistic2::XDictionaryListEventListener xListener ); + + /** increases request level for event buffering by one. + +The request level for event buffering is an integer + counter that is initially set to 0. + As long as the request level is not 0, events will be buffered + until the next flushing of the buffer.
+ + @returns + the current request level for event buffering. + + @see com::sun::star::linguistic2::XDictionaryListEvent + @see com::sun::star::linguistic2::XDictionaryListEventListener + @see com::sun::star::linguistic2::XDictionaryList::endCollectEvents() + @see com::sun::star::linguistic2::XDictionaryList::flushEvents() + */ + short beginCollectEvents(); + + /** flushes the event buffer and decreases the request level for + event buffering by one. + +There should be one matching endCollectEvents call for every + beginCollectEvents call. Usually you will group these around + some code where you do not wish to get notified of every single + event.
+ + @returns + the current request level for event buffering. + + @see com::sun::star::linguistic2::XDictionaryListEvent + @see com::sun::star::linguistic2::XDictionaryListEventListener + @see com::sun::star::linguistic2::XDictionaryList::beginCollectEvents() + @see com::sun::star::linguistic2::XDictionaryList::flushEvents() + */ + short endCollectEvents(); + + /** notifies the listeners of all buffered events and then clears + that buffer. + + @returns + the current request level for event buffering. + + @see com::sun::star::linguistic2::XDictionaryListEvent + @see com::sun::star::linguistic2::XDictionaryListEventListener + @see com::sun::star::linguistic2::XDictionaryList::beginCollectEvents() + @see com::sun::star::linguistic2::XDictionaryList::endCollectEvents() + */ + short flushEvents(); + + /** creates a new dictionary. + + @returns + an empty dictionary with the given name, language and type. + `NULL` on failure. + + @param aName + is the name of the dictionary (should be unique). + + @param aLocale + defines the language of the dictionary. + Use an empty aLocale for dictionaries which may contain + entries of all languages. + + @param eDicType + specifies the type of the dictionary. + + @param aURL + is the URL of the location where the dictionary is persistent, + if the XStorable interface is supported. + It may be empty, which means the dictionary will not be persistent. + + @see com::sun::star::linguistic2::XDictionary + @see com::sun::star::lang::Locale + @see com::sun::star::linguistic2::DictionaryType + */ + com::sun::star::linguistic2::XDictionary createDictionary( + [in] string aName, + [in] com::sun::star::lang::Locale aLocale, + [in] com::sun::star::linguistic2::DictionaryType eDicType, + [in] string aURL ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/linguistic2/XDictionaryListEventListener.idl b/offapi/com/sun/star/linguistic2/XDictionaryListEventListener.idl new file mode 100644 index 0000000000..7dca3f58fe --- /dev/null +++ b/offapi/com/sun/star/linguistic2/XDictionaryListEventListener.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 . + */ + + + +module com { module sun { module star { module linguistic2 { + +/** This interfaces allows the object to act according to + dictionary-list events. + +This interface is the base class for all dictionary-list event + listeners. Its single function will be called by the broadcasting + dictionary-list in order to notify its registered listeners.
+ + @see com::sun::star::linguistic2::DictionaryListEvent + @see com::sun::star::linguistic2::XDictionaryList +*/ +published interface XDictionaryListEventListener : com::sun::star::lang::XEventListener +{ + /** is used to notify the object about dictionary-list events. + + @param aDicListEvent + the event to be notified of. + + @see com::sun::star::linguistic2::DictionaryListEvent + */ + void processDictionaryListEvent( + [in] com::sun::star::linguistic2::DictionaryListEvent aDicListEvent ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/linguistic2/XHyphenatedWord.idl b/offapi/com/sun/star/linguistic2/XHyphenatedWord.idl new file mode 100644 index 0000000000..ce3e4c95f9 --- /dev/null +++ b/offapi/com/sun/star/linguistic2/XHyphenatedWord.idl @@ -0,0 +1,89 @@ +/* -*- 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 . + */ + + + +module com { module sun { module star { module linguistic2 { + +/** gives information obtained by a successful hyphenation attempt. + +This interface is used as a return value for some of the hyphenator + functions.
+ + @see com::sun::star::linguistic2::XHyphenator +*/ +published interface XHyphenatedWord : com::sun::star::uno::XInterface +{ + /** + @returns + the word that was hyphenated. + */ + string getWord(); + + /** + @returns + the language of the hyphenated word. + + @see com::sun::star::lang::Locale + */ + com::sun::star::lang::Locale getLocale(); + + /** + @returns + the position where hyphenation was applied in the word. + +The value has to be in the range from 0 (after the first character) + to n-2 (before the last character) where n is the length of + the word.
+ */ + short getHyphenationPos(); + + /** + @returns + the hyphenated word as it should be written (without the hyphen + character). + */ + string getHyphenatedWord(); + + /** + @returns + the position of the hyphen in the hyphenated word. + +The value has to be in the range from 0 (after the first character) + to m-2 (before the last character) where m is the length of + the hyphenated word.
+ */ + short getHyphenPos(); + + /** is used to query if the hyphenation result is an alternative spelling. + +A hyphenation result is an alternative spelling if the hyphenated + word is different from the word that was hyphenated.
+ + @returns + `TRUE` if it is an alternative spelling, `FALSE` otherwise. + */ + boolean isAlternativeSpelling(); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/linguistic2/XHyphenator.idl b/offapi/com/sun/star/linguistic2/XHyphenator.idl new file mode 100644 index 0000000000..7880c77faa --- /dev/null +++ b/offapi/com/sun/star/linguistic2/XHyphenator.idl @@ -0,0 +1,169 @@ +/* -*- 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 . + */ + + + +module com { module sun { module star { module linguistic2 { + +/** provides functionality for hyphenation of single words. + +Its three main functionalities are to provide a suitable position for + breaking lines within a word, query about the existence of an alternative + spelling at a specific position of a word and provide a list of + possible hyphenation positions within a word.
+ +A hyphenation position for a word with n characters is represented + by a value in the range from 0 to n-2, indicating the position + of the character after which the hyphenation is done. That is, + it is after the first and before the last character.
+ +A valid hyphenation position is a hyphenation position that + fulfills all the restrictions implied by the properties + MinLeading, MinTrailing and MinWordLength.
+ + @see com::sun::star::linguistic2::LinguProperties + @see com::sun::star::linguistic2::XSupportedLocales +*/ +published interface XHyphenator : com::sun::star::linguistic2::XSupportedLocales +{ + /** tries to find a valid hyphenation position relative + to the beginning of a word. + +Note: Some languages, for example Arabic, are written from right + to left.
+ + @returns + the XHyphenatedWord for the last valid hyphenation position + that is less than or equal to nMaxLeading - 1. + If there is no such valid hyphenation position, `NULL` is returned. + + @param aWord + is the word to be hyphenated. + + @param aLocale + defines the language to be used. + +If the language is not supported, an IllegalArgumentException + exception is raised.
+ + @param nMaxLeading + specifies the maximum number of characters to remain + before the hyphen in the hyphenated word. + +It has to be greater than or equal to 0.
+ + @param aProperties + provides property values to be used for this function call only. + It is usually empty in order to use the default values supplied + with the property set. + + @see com::sun::star::linguistic2::XHyphenatedWord + @see com::sun::star::lang::Locale + */ + com::sun::star::linguistic2::XHyphenatedWord hyphenate( + [in] string aWord, + [in] com::sun::star::lang::Locale aLocale, + [in] short nMaxLeading, + [in] com::sun::star::beans::PropertyValues aProperties ) + raises( com::sun::star::lang::IllegalArgumentException ); + + /** checks whether hyphenation at a position in a word will result in + an alternative spelling or not. + +An alternative spelling position is a hyphen position where, + if hyphenation is done here, the writing of the word changes. + Example: "Bäcker" in German pre spelling-reform becomes + "Bäkker" if hyphenation is done after the "c".
+ +The hyphenation position does not need to be a valid one to be an + alternative spelling position.
+ + @returns + the information about the alternative spelling found at the + specified position. Otherwise, if no alternative spelling was + found, `NULL` is returned. + + @param aWord + is the original word to be looked at for having an alternative + spelling, if hyphenation is done at position nIndex. + + @param aLocale + specifies the language to be used. + +If the language is not supported, an IllegalArgumentException + exception is raised.
+ + @param nIndex + is the position in the word to be looked at. + +If the length of the word is n, the value of this + parameter has to be in the range from 0 to n-2.
+ + @param aProperties + provides property values to be used for this function call only. + It is usually empty in order to use the default values supplied + with the property set. + + @see com::sun::star::linguistic2::XHyphenatedWord + @see com::sun::star::lang::Locale + */ + com::sun::star::linguistic2::XHyphenatedWord queryAlternativeSpelling( + [in] string aWord, + [in] com::sun::star::lang::Locale aLocale, + [in] short nIndex, + [in] com::sun::star::beans::PropertyValues aProperties ) + raises( com::sun::star::lang::IllegalArgumentException ); + + /** returns information about all possible hyphenation positions of a word. + + @returns + a com::sun::star::linguistic2::XPossibleHyphens + for the given word and language if there are any hyphenation + positions. `NULL` otherwise. + + @param aWord + is the word for which information about the possible + hyphenation positions is to be retrieved. + + @param aLocale + defines the language of the word. + +If the language is not supported, an IllegalArgumentException + exception is raised.
+ + @param aProperties + provides property values to be used for this function call only. + It is usually empty in order to use the default values supplied + with the property set. + + @see com::sun::star::linguistic2::XPossibleHyphens + @see com::sun::star::lang::Locale + */ + com::sun::star::linguistic2::XPossibleHyphens createPossibleHyphens( + [in] string aWord, + [in] com::sun::star::lang::Locale aLocale, + [in] com::sun::star::beans::PropertyValues aProperties ) + raises( com::sun::star::lang::IllegalArgumentException ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/linguistic2/XLanguageGuessing.idl b/offapi/com/sun/star/linguistic2/XLanguageGuessing.idl new file mode 100644 index 0000000000..e42ff55b85 --- /dev/null +++ b/offapi/com/sun/star/linguistic2/XLanguageGuessing.idl @@ -0,0 +1,177 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module linguistic2 { + +/** This interface allows to guess the language of a text + +The current set of supported languages is: +
Please note that because statistical analysis is part + of the algorithm the likelihood to get the correct + result increases with the length of the sub-string. + A word is much less likely guessed correctly compared to + a sentence or even a whole paragraph.
+ +Also note that some languages are that "close" to each other + that it will be quite unlikely to find a difference in them, + e.g. English (UK), English (IE) and English (AUS) and + most likely English (US) as well. And thus the result may + be arbitrary.
+ + @returns + the locale for the language identified. + If no language could be identified the locale will be empty. + + @param aText + all the text including the part that should checked. + + @param nStartPos + specifies the starting index of the sub-string to be checked + The value must met 0 <= nStartPos < (length of text - 1). + + @param nLen + specifies the length of the sub-string to be checked. + The value must met 0 <= nLen <= (length of text). + + @see com::sun::star::lang::Locale + */ + com::sun::star::lang::Locale guessPrimaryLanguage( + [in] string aText, + [in] long nStartPos, + [in] long nLen ) + raises( com::sun::star::lang::IllegalArgumentException ); + + /** allows to explicitly discard some languages from the set of + languages possibly returned. + +By default all languages are enabled.
+ */ + void disableLanguages( + [in] sequence< com::sun::star::lang::Locale > aLanguages ) + raises( com::sun::star::lang::IllegalArgumentException ); + + /** allows to explicitly re-enable some languages that got previously + disabled. + +By default all languages are enabled.
+ */ + void enableLanguages( + [in] sequence< com::sun::star::lang::Locale > aLanguages ) + raises( com::sun::star::lang::IllegalArgumentException ); + + /** returns a list of all supported languages. + +This should be the same as the mathematical union of + all enabled and disabled languages.
+ */ + sequence< com::sun::star::lang::Locale > getAvailableLanguages(); + + /** returns the list of all enabled languages + */ + sequence< com::sun::star::lang::Locale > getEnabledLanguages(); + + /** returns the list of all disabled languages + */ + sequence< com::sun::star::lang::Locale > getDisabledLanguages(); + +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/linguistic2/XLinguProperties.idl b/offapi/com/sun/star/linguistic2/XLinguProperties.idl new file mode 100644 index 0000000000..74db660495 --- /dev/null +++ b/offapi/com/sun/star/linguistic2/XLinguProperties.idl @@ -0,0 +1,124 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module linguistic2 { + +/** + Interface for LinguProperties service. + + @since LibreOffice 4.1 +*/ +published interface XLinguProperties +{ + /** Gives access to the properties. + + Among those properties are: +This interface may be used by spell checker or hyphenator + implementations to allow clients to be registered and informed about + com::sun::star::linguistic2::LinguServiceEvents. +
+ +Note: The LinguServiceManager forwards the + com::sun::star::linguistic2::LinguServiceEvents + it receives (from spell checkers or hyphenators) to its own listeners. + Thus, there should be no need to register + as a listener for a specific implementation./P> + + @see com::sun::star::linguistic2::XLinguServiceManager + @see com::sun::star::linguistic2::XLinguServiceEventListener +*/ +published interface XLinguServiceEventBroadcaster : com::sun::star::uno::XInterface +{ + /** + @returns + `TRUE` if the listener was successfully added, + `FALSE` otherwise. + + @param xLstnr + the listener to be added. + */ + boolean addLinguServiceEventListener ( + [in] com::sun::star::linguistic2::XLinguServiceEventListener xLstnr ); + + /** + @returns + `TRUE` if the listener was successfully removed, + `FALSE` otherwise. + + @param xLstnr + the listener to be removed. + */ + boolean removeLinguServiceEventListener ( + [in] com::sun::star::linguistic2::XLinguServiceEventListener xLstnr ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/linguistic2/XLinguServiceEventListener.idl b/offapi/com/sun/star/linguistic2/XLinguServiceEventListener.idl new file mode 100644 index 0000000000..5dcf0f1e51 --- /dev/null +++ b/offapi/com/sun/star/linguistic2/XLinguServiceEventListener.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 . + */ + + + +module com { module sun { module star { module linguistic2 { + +/** is used to inform listeners about LinguServiceEvents. + +
The function of this interface is used by the + com::sun::star::linguistic2::XLinguServiceEventBroadcaster + to inform its listeners about the + com::sun::star::linguistic2::LinguServiceEvents. +
+ + @see com::sun::star::linguistic2::XLinguServiceManager +*/ +published interface XLinguServiceEventListener : com::sun::star::lang::XEventListener +{ + /** + @param aLngSvcEvent + the event the listener will be informed about. + */ + void processLinguServiceEvent( + [in] com::sun::star::linguistic2::LinguServiceEvent aLngSvcEvent ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/linguistic2/XLinguServiceManager.idl b/offapi/com/sun/star/linguistic2/XLinguServiceManager.idl new file mode 100644 index 0000000000..a89c55862b --- /dev/null +++ b/offapi/com/sun/star/linguistic2/XLinguServiceManager.idl @@ -0,0 +1,157 @@ +/* -*- 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 . + */ + + + +module com { module sun { module star { module linguistic2 { + +/** the basic interface to be used to access linguistic functionality. + +This interface is used to access spell checker, hyphenator, and + thesaurus functionality. + Additionally, it can query what implementations of those services are + available (for specific languages or in general). + It can select and query which of those implementations should + be used for a specific language.
+ ++ For spell checking and thesaurus, the order in the list defines the order + of creation/usage of those services. + That is, if the first spell checker implementation does not recognize + the given word as correct, the second service implementation for that + language is created and gets queried. If that one fails, the third one + gets created and queried and so on. + This chain stops if an implementation reports the word as correct or the + end of the list is reached, in which case the word is reported as incorrect. +
+ +For the thesaurus, the behavior is the same when no meaning was found. +
+ + @see com::sun::star::linguistic2::SpellChecker + @see com::sun::star::linguistic2::Hyphenator + @see com::sun::star::linguistic2::Thesaurus +*/ +published interface XLinguServiceManager : com::sun::star::uno::XInterface +{ + /** + @returns + the com::sun::star::linguistic2::XSpellChecker + interface to be used for spell checking. + */ + com::sun::star::linguistic2::XSpellChecker getSpellChecker(); + + /** + @returns + the com::sun::star::linguistic2::XHyphenator + interface to be used for hyphenation. + */ + com::sun::star::linguistic2::XHyphenator getHyphenator(); + + /** + @returns + the com::sun::star::linguistic2::XThesaurus + interface to be used for thesaurus functionality. + */ + com::sun::star::linguistic2::XThesaurus getThesaurus(); + + /** adds a listener to the list of event listeners. + +The listeners may support one or both of + com::sun::star::linguistic2::XDictionaryEventListener + and + com::sun::star::linguistic2::XLinguServiceEventListener + interfaces. +
+ + @returns + `TRUE` if the listener was successfully added, `FALSE` otherwise. + + @param xListener + the listener to be added. + */ + boolean addLinguServiceManagerListener( + [in] com::sun::star::lang::XEventListener xListener ); + + /** removes a listener from the list of event listeners. + + @returns + `TRUE` if the listener was successfully removed, `FALSE` otherwise. + + @param xListener + the listener to be removed. + */ + boolean removeLinguServiceManagerListener( + [in] com::sun::star::lang::XEventListener xListener ); + + /** + @returns + the list of implementation names of the available services. + + @param aServiceName + the name of the service requesting the list of available + implementations. + + @param aLocale + the language used to query the list of available implementations. + */ + sequence< string > getAvailableServices( + [in] string aServiceName, + [in] com::sun::star::lang::Locale aLocale ); + + /** sets the list of service implementations to be used for a + given service and language. + + @param aServiceName + the name of the service to set the list of implementations + to be used. + + @param aLocale + the language to set the list. + + @param aServiceImplNames + the name of the service to set the list. + */ + void setConfiguredServices( + [in] string aServiceName, + [in] com::sun::star::lang::Locale aLocale, + [in] sequence< string > aServiceImplNames ); + + /** queries the list of service implementations to be used for a + given service and language. + + @returns + the list of implementation names of the services to be used. + + @param aServiceName + the name of the service to get queried. + + @param aLocale + the language to get queried. + */ + sequence< string > getConfiguredServices( + [in] string aServiceName, + [in] com::sun::star::lang::Locale aLocale ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/linguistic2/XLinguServiceManager2.idl b/offapi/com/sun/star/linguistic2/XLinguServiceManager2.idl new file mode 100644 index 0000000000..bd85011403 --- /dev/null +++ b/offapi/com/sun/star/linguistic2/XLinguServiceManager2.idl @@ -0,0 +1,38 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module linguistic2 { + +/** + Provides a unified interface for the LinguServiceManager service to implement. + + @since LibreOffice 4.0 +*/ +published interface XLinguServiceManager2 +{ + interface com::sun::star::linguistic2::XLinguServiceManager; + interface com::sun::star::linguistic2::XAvailableLocales; + interface com::sun::star::lang::XComponent; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/linguistic2/XMeaning.idl b/offapi/com/sun/star/linguistic2/XMeaning.idl new file mode 100644 index 0000000000..fd43b1f6fb --- /dev/null +++ b/offapi/com/sun/star/linguistic2/XMeaning.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 . + */ + + + +module com { module sun { module star { module linguistic2 { + +/** one of the possible meanings for a word. + +Represents one of the possible meanings that may be returned from a + com::sun::star::linguistic2::XThesaurus::queryMeanings() + call and allows for retrieval of its synonyms. +
+ + @see com::sun::star::linguistic2::XThesaurus + */ +published interface XMeaning : com::sun::star::uno::XInterface +{ + /** + @returns + the meaning represented by this object. + */ + string getMeaning(); + + /** + @returns + a sequence of strings where each entry is a synonym of the + current objects meaning. + */ + sequenceThe current set of supported languages is: +
Please note that text argument can contain prefixes separated by space, + for example "ordinal" for ordinal numbers, "ordinal-number" for ordinal + indicators and ISO 4217 currency codes. + + Language modules list the supported prefixes by the input text "help".
+ + @returns + the result of the number name conversion. + + @param aText + all the text including the part that should converted. + + @param aLocale + the locale for the target language of the number name conversion. + + @see com::sun::star::lang::Locale + */ + string getNumberText( + [in] string aText, + [in] com::sun::star::lang::Locale aLocale ) + raises( com::sun::star::lang::IllegalArgumentException ); + + /** returns a list of all supported languages. + */ + sequence< com::sun::star::lang::Locale > getAvailableLanguages(); + +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/linguistic2/XPossibleHyphens.idl b/offapi/com/sun/star/linguistic2/XPossibleHyphens.idl new file mode 100644 index 0000000000..13820119ed --- /dev/null +++ b/offapi/com/sun/star/linguistic2/XPossibleHyphens.idl @@ -0,0 +1,77 @@ +/* -*- 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 . + */ + + + +module com { module sun { module star { module linguistic2 { + +/** Gives information about a word's possible hyphenation points. + +Example: In German pre-spelling-reform you may have the following: + getWord: Dampfschiffahrt + getPossibleHyphens: Dampf=schiff=fahrt + getOrigHyphensPositions: 4, 9 + That is "Dampfschiffahrt" can be hyphenated after the "pf" (4) and + between the double "ff" (9). And if you are going to hyphenate it at + position 9 you will get an additional "f" before the hyphen + character.
+ + @see com::sun::star::linguistic2::XHyphenator +*/ +published interface XPossibleHyphens : com::sun::star::uno::XInterface +{ + /** + @returns + the word for which the information of possible hyphenation + points was obtained. + */ + string getWord(); + + /** @returns + the language of the hyphenated word. + + @see com::sun::star::lang::Locale + */ + com::sun::star::lang::Locale getLocale(); + + /** + @returns + a string depicting the word with all hyphen positions + which are represented by "=" characters. + If there are any alternative spellings, the word will be altered + accordingly. + */ + string getPossibleHyphens(); + + /** + @returns + an ascending sequence of numbers where each number is an offset + within the original word which denotes a hyphenation + position corresponding to one of the hyphens in the + string returned by + com::sun::star::linguistic2::XPossibleHyphens::getPossibleHyphens(). + */ + sequenceFieldPositions | +sequence<long> | +indexes of fields in aText | +
FootnotePositions | +sequence<long> | +indexes of footnotes in aText | +
If the locale is empty the rule should be ignored for all languages.
+ */ + void ignoreRule( [in] string aRuleIdentifier, + [in] com::sun::star::lang::Locale aLocale ) + raises( com::sun::star::lang::IllegalArgumentException ); + + /** sets all rules back to their default settings. + */ + void resetIgnoreRules(); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/linguistic2/XProofreadingIterator.idl b/offapi/com/sun/star/linguistic2/XProofreadingIterator.idl new file mode 100644 index 0000000000..d27675c886 --- /dev/null +++ b/offapi/com/sun/star/linguistic2/XProofreadingIterator.idl @@ -0,0 +1,98 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module linguistic2 { + +/** API for the proofreading iterator that mediates between the document and the proofreader. + + @since OOo 3.0.1 +*/ +interface XProofreadingIterator: com::sun::star::uno::XInterface +{ + /** start proofreading and automatically process the whole text + + @param xDocument + the text document. + + @param xIteratorProvider + the flat paragraph iterator provider. + + @throws IllegalArgumentException + when any argument is wrong. + */ + void startProofreading( [in] com::sun::star::uno::XInterface xDocument, + [in] com::sun::star::text::XFlatParagraphIteratorProvider xIteratorProvider ) + raises( com::sun::star::lang::IllegalArgumentException ); + + /** start proofreading from a given position + + @param xDocument + the document. + + @param xFlatParagraph + the single flat paragraph to be checked. + + @param aText + the text of the paragraph to be checked. + + @param aLocale + currently unused parameter. + + @param nStartOfSentencePosition + the start position of the current sentence. + + @param nSuggestedBehindEndOfSentencePosition + currently unused parameter. + + @param nErrorPositionInParagraph + the given index. + + @throws IllegalArgumentException + when any argument is wrong. + */ + + ProofreadingResult checkSentenceAtPosition( [in] com::sun::star::uno::XInterface xDocument, + [in] com::sun::star::text::XFlatParagraph xFlatParagraph, + [in] string aText, + [in] com::sun::star::lang::Locale aLocale, + [in] long nStartOfSentencePosition, + [in] long nSuggestedBehindEndOfSentencePosition, + [in] long nErrorPositionInParagraph ) + raises( com::sun::star::lang::IllegalArgumentException ); + + /** clears the list of ignored rules for each proofreader + */ + void resetIgnoreRules(); + + /** checks if the given document is currently being checked + + @param xDocument + the document. + + @returns + if the document is currently being checked. + */ + boolean isProofreading( [in] com::sun::star::uno::XInterface xDocument ); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/linguistic2/XSearchableDictionary.idl b/offapi/com/sun/star/linguistic2/XSearchableDictionary.idl new file mode 100644 index 0000000000..a36fc1d857 --- /dev/null +++ b/offapi/com/sun/star/linguistic2/XSearchableDictionary.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 . + */ + + + +module com { module sun { module star { module linguistic2 { + +/** This interfaces allows to retrieve suggestions for spell checking from a dictionary. + +*/ +interface XSearchableDictionary : com::sun::star::linguistic2::XDictionary +{ + /** search for similar entries in the dictionary. + + @param aWord + the word to find similar written entries for. + + @returns + the list of similar entries found. + + @see com::sun::star::linguistic2::XDictionaryEntry + @see com::sun::star::linguistic2::XSearchableDictionaryList + @since OOo 3.0.1 + */ + sequence< com::sun::star::linguistic2::XDictionaryEntry > searchSimilarEntries( [in] string aWord ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/linguistic2/XSearchableDictionaryList.idl b/offapi/com/sun/star/linguistic2/XSearchableDictionaryList.idl new file mode 100644 index 0000000000..0f3de6a3d0 --- /dev/null +++ b/offapi/com/sun/star/linguistic2/XSearchableDictionaryList.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 . + */ + + + + +module com { module sun { module star { module linguistic2 { + +/** allows searching for an entry in all dictionaries of the dictionary-list. + +Only active dictionaries of a suitable language will be searched + for the entry. + The language is suitable if it is the same as the dictionary's language or + the dictionary may hold entries of all languages. +
+ + @see com::sun::star::linguistic2::XDictionaryList +*/ +published interface XSearchableDictionaryList : com::sun::star::linguistic2::XDictionaryList +{ + /** looks for an entry for a given word in the list of dictionaries. + + @returns + the dictionary entry that was found, `NULL` otherwise. + + @param aWord + the word (entry) to be looked for. + + @param aLocale + the language of the word to be looked for. + + @param bSearchPosDics + `TRUE` if only positive dictionaries should be searched. + `FALSE` if only negative dictionaries should be searched. + + @param bSpellEntry + `TRUE` if entries for purposes of spell checking are required. + `FALSE` if only entries for hyphenation purposes are required. +*/ + com::sun::star::linguistic2::XDictionaryEntry queryDictionaryEntry( + [in] string aWord , + [in] com::sun::star::lang::Locale aLocale, + [in] boolean bSearchPosDics, + [in] boolean bSpellEntry ); + +}; + + +}; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/linguistic2/XSetSpellAlternatives.idl b/offapi/com/sun/star/linguistic2/XSetSpellAlternatives.idl new file mode 100644 index 0000000000..5d464e6694 --- /dev/null +++ b/offapi/com/sun/star/linguistic2/XSetSpellAlternatives.idl @@ -0,0 +1,55 @@ +/* -*- 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 . + */ + + + +module com { module sun { module star { module linguistic2 { + +/** + allows to modify the suggestion list returned by a spell checker. + +
Basically this is needed to post-add further suggestions while keeping the + originally returned reference from the spell checker. + E.g. from the user dictionaries.
+ + @see com::sun::star::linguistic2::XSpellAlternatives +*/ +interface XSetSpellAlternatives : com::sun::star::uno::XInterface +{ + /** + set the list of suggestions to be returned. + + @since OOo 3.0.1 + */ + void setAlternatives( [in] sequence< string > aAlternatives ); + + /** + set the type of error found. + + @see com::sun::star::linguistic2::SpellFailure + @since OOo 3.0.1 + */ + void setFailureType( [in] short nFailureType ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/linguistic2/XSpellAlternatives.idl b/offapi/com/sun/star/linguistic2/XSpellAlternatives.idl new file mode 100644 index 0000000000..91199ff23c --- /dev/null +++ b/offapi/com/sun/star/linguistic2/XSpellAlternatives.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 . + */ + + +module com { module sun { module star { module linguistic2 { + +/** Gives access to the results of failed + spell checking attempts and may provide spelling alternatives. + +This is used by the + com::sun::star::linguistic2::XSpellChecker::spell() + function when the word was not found to be correct. + Suggestions for other words to be used may be provided along with + a failure-type that may specify why the word was not correct. +
+ + @see com::sun::star::linguistic2::SpellFailure +*/ +published interface XSpellAlternatives : com::sun::star::uno::XInterface +{ + /** + @returns + the word that was misspelled. + */ + string getWord(); + + /** + @returns + the Locale which specifies the language of the misspelled word. + */ + com::sun::star::lang::Locale getLocale(); + + /** + @returns + the type (reason) for spell checking to have failed verification. + + @see com::sun::star::linguistic2::SpellFailure + */ + short getFailureType(); + + /** + @returns + the number of suggested spelling alternatives available. + */ + short getAlternativesCount(); + + /** + @returns + the sequence of suggested spelling alternatives. + */ + sequenceIt is possible to simply check if a word, in a specified language, + is correct or additionally, if it was misspelled, some proposals + how it might be correctly written.
+ + @see com::sun::star::linguistic2::XSupportedLocales +*/ +published interface XSpellChecker : com::sun::star::linguistic2::XSupportedLocales +{ + /** checks if a word is spelled correctly in a given language. + + @returns + `TRUE` if the word is spelled correctly using + the specified language, `FALSE` otherwise. + + @param aWord + the word to be checked. + + @param aLocale + the Locale (language) to be used. + If the Locale is empty, the word is spelled correctly by + definition. + +If aLocale is not supported an + IllegalArgumentException exception is raised.
+ + @param aProperties + provides property values to be used for this function call only. + It is usually empty in order to use the default values supplied with + the property set. + + @see com::sun::star::lang::Locale + */ + boolean isValid( + [in] string aWord, + [in] com::sun::star::lang::Locale aLocale, + [in] com::sun::star::beans::PropertyValues aProperties ) + raises( com::sun::star::lang::IllegalArgumentException ); + + /** This method checks if a word is spelled correctly in a given + language. + + @returns + `NULL` if aWord is spelled correctly using + aLocale. Otherwise, an XSpellAlternatives + object with information about the reason of failure and, if available, + proposals for spelling alternatives will be returned. + + @param aWord + the word to be checked. + + @param aLocale + the language to be used. + +If the language is not supported an IllegalArgumentException exception is raised. + + @param aProperties + provides property values to be used for this function call only. + It is usually empty in order to use the default values supplied with + the property set. + exception is raised.
+ + @see com::sun::star::linguistic2::XSpellAlternatives + @see com::sun::star::lang::Locale + */ + com::sun::star::linguistic2::XSpellAlternatives spell( + [in] string aWord, + [in] com::sun::star::lang::Locale aLocale, + [in] com::sun::star::beans::PropertyValues aProperties ) + raises( com::sun::star::lang::IllegalArgumentException ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/linguistic2/XSpellChecker1.idl b/offapi/com/sun/star/linguistic2/XSpellChecker1.idl new file mode 100644 index 0000000000..b622625173 --- /dev/null +++ b/offapi/com/sun/star/linguistic2/XSpellChecker1.idl @@ -0,0 +1,44 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module linguistic2 { + +/** @deprecated +*/ +published interface XSpellChecker1 : com::sun::star::linguistic2::XSupportedLanguages +{ + boolean isValid( + [in] string aWord, + [in] short nLanguage, + [in] com::sun::star::beans::PropertyValues aProperties ) + raises( com::sun::star::lang::IllegalArgumentException ); + + com::sun::star::linguistic2::XSpellAlternatives spell( + [in] string aWord, + [in] short nLanguage, + [in] com::sun::star::beans::PropertyValues aProperties ) + raises( com::sun::star::lang::IllegalArgumentException ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/linguistic2/XSupportedLanguages.idl b/offapi/com/sun/star/linguistic2/XSupportedLanguages.idl new file mode 100644 index 0000000000..33775a8ccb --- /dev/null +++ b/offapi/com/sun/star/linguistic2/XSupportedLanguages.idl @@ -0,0 +1,37 @@ +/* -*- 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 . + */ + + + +module com { module sun { module star { module linguistic2 { + +/** @deprecated +*/ +published interface XSupportedLanguages : com::sun::star::uno::XInterface +{ + sequenceThis interface has to be implemented by + com::sun::star::linguistic2::SpellChecker, + com::sun::star::linguistic2::Hyphenator and + com::sun::star::linguistic2::Thesaurus + implementations in order to be queried for the languages they + can use. +
+ + @see com::sun::star::lang::Locale + @see com::sun::star::uno::XInterface +*/ +published interface XSupportedLocales : com::sun::star::uno::XInterface +{ + /** + @returns + the sequence of all supported languages. + */ + sequence+ The meaning of a word is in essence a descriptive text for that word. + Each meaning may have several synonyms where a synonym is a word + (or small text) with the same or similar meaning. +
+ + @see com::sun::star::linguistic2::XSupportedLocales +*/ +published interface XThesaurus : com::sun::star::linguistic2::XSupportedLocales +{ + /** + @returns + a list of meanings for the given word and language. + + @param aTerm + the word to query for its meanings. + + @param aLocale + specifies the language of the word. + +If the language is not supported, an + com::sun::star::lang::IllegalArgumentException + exception is raised.
+ + @param aProperties + provides property values to be used for this function call only. + It is usually empty in order to use the default values supplied with + the property set. + + @see com::sun::star::lang::Locale + @see com::sun::star::linguistic2::XMeaning + */ + sequence< com::sun::star::linguistic2::XMeaning > queryMeanings( + [in] string aTerm, + [in] com::sun::star::lang::Locale aLocale, + [in] com::sun::star::beans::PropertyValues aProperties ) + raises( com::sun::star::lang::IllegalArgumentException ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/logging/ConsoleHandler.idl b/offapi/com/sun/star/logging/ConsoleHandler.idl new file mode 100644 index 0000000000..d17e5fa98b --- /dev/null +++ b/offapi/com/sun/star/logging/ConsoleHandler.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 . + */ + + +module com { module sun { module star { module logging { + +interface XConsoleHandler; + + +/** specifies a component implementing a log handler whose output + channel is the processes console. + + @since OOo 2.3 + */ +service ConsoleHandler : XConsoleHandler +{ + /// creates aConsoleHandler
+ create();
+
+ /** creates an instance of the log handler, using generic settings
+
+ @param Settings
+ contains the initial settings for the log handler
+
+ The following settings are recognized and supported: +
Encoding
- denotes the initial value of the XLogHandler::EncodingFormatter
- denotes the initial value of the XLogHandler::FormatterLevel
- denotes the initial value of the XLogHandler::LevelThreshold
- denotes the initial value of the XConsoleHandler::ThresholdEvery log record, as passed to XCsvLogFormatter::format(), + will be formatted into a single row for a CSV file. + The sequence number, the thread ID, the time of the logged event, + the source class/method name will get logged alongside the message, if this + is not disabled. The Formatter also supports logging an arbitrary number of + user-defined columns. If the Formatter is configured to have more than one + (user-defined) column the data to log has to be preformatted with the + formatMultiColumn method.
+ + @since OOo 3.0 + */ +service CsvLogFormatter : XCsvLogFormatter +{ + /// creates a CsvLogFormatter instance + create(); +}; + + +}; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/logging/FileHandler.idl b/offapi/com/sun/star/logging/FileHandler.idl new file mode 100644 index 0000000000..6e158f22f3 --- /dev/null +++ b/offapi/com/sun/star/logging/FileHandler.idl @@ -0,0 +1,75 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module logging { + +interface XLogHandler; + + +/** specifies a component implementing a log handler whose output + channel is a file. + +The handler will use the Encoding
attribute of XLogHandler
+ to determine how to encode strings before actually writing them to the output
+ file.
$(userurl)
.
+ */
+ create( [in] string FileURL );
+
+ /** creates an instance of the log handler, using generic settings
+
+ @param Settings
+ contains the initial settings for the log handler
+
+ The following settings are recognized and supported: +
Encoding
- denotes the initial value of the XLogHandler::EncodingFormatter
- denotes the initial value of the XLogHandler::FormatterLevel
- denotes the initial value of the XLogHandler::LevelAdditionally, a setting name FileURL
is recognized. It must be of type
+ string, and denotes the file URL to which the handler's output should be directed.
At least the URL argument must be present in the settings.
+ + @throws ::com::sun::star::lang::IllegalArgumentException + if `Settings` contains settings whose value is of the wrong type. + */ + createWithSettings( [in] sequence< ::com::sun::star::beans::NamedValue > Settings ) + raises ( ::com::sun::star::lang::IllegalArgumentException ); +}; + + +}; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/logging/LogLevel.idl b/offapi/com/sun/star/logging/LogLevel.idl new file mode 100644 index 0000000000..0261da33f2 --- /dev/null +++ b/offapi/com/sun/star/logging/LogLevel.idl @@ -0,0 +1,72 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module logging { + + +/** specifies levels to distinguish between severities of logged events + + @see XLogger + + @since OOo 2.3 + */ +constants LogLevel +{ + /** specifies that no messages are to be logged at all + +This level can be set at an XLogger to completely prevent + logging. You will usually not use it with a concrete log event.
+ */ + const long OFF = 0x7FFFFFFF; + + /// denotes a serious failure to be logged + const long SEVERE = 1000; + + /// denotes a potential problem to be logged + const long WARNING = 900; + + /// denotes an informational message to be logged + const long INFO = 800; + + /// denotes a static configuration message to be logged + const long CONFIG = 700; + + /// denotes basic tracing information to be logged + const long FINE = 500; + + /// denotes more fine-grained tracing information to be logged + const long FINER = 400; + + /// denotes highly detailed tracing information to be logged + const long FINEST = 300; + + /** specifies that all messages should be logged + +This level can be set at an XLogger to enable logging + of absolutely all events. You will usually not use it with a concrete log event.
+ */ + const long ALL = -0x80000000; +}; + + +}; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/logging/LogRecord.idl b/offapi/com/sun/star/logging/LogRecord.idl new file mode 100644 index 0000000000..6f93346b47 --- /dev/null +++ b/offapi/com/sun/star/logging/LogRecord.idl @@ -0,0 +1,77 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module logging { + + +/** assembles the complete information about a to-be-logged event + + @see XLogger + + @since OOo 2.3 + */ +struct LogRecord +{ + /// specifies the name of the logger at which the record is logged + string LoggerName; + + /** specifies the name of the class, in which the record was logged. + + This name might be empty, in case the caller to one of the various +log
methods of XLogger did not specify it.
+ */
+ string SourceClassName;
+
+ /** specifies the name of the method, in which the record was logged.
+
+ This name might be empty, in case the caller to one of the various
+ log
methods of XLogger did not specify it.
+ */
+ string SourceMethodName;
+
+ /// specifies the to-be-logged message
+ string Message;
+
+ /// specifies the time at which the event was logged
+ ::com::sun::star::util::DateTime
+ LogTime;
+
+ /** specifies the number of the log event.
+
+ Subsequent events get assigned increasing sequence numbers by the XLogger
+ at which they're logged.
+ */
+ hyper SequenceNumber;
+
+ /// specifies the ID of the thread in which the event was logged
+ string ThreadID;
+
+ /** specifies the level of the log event
+
+ @see LogLevel
+ */
+ long Level;
+};
+
+
+}; }; }; };
+
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/logging/LoggerPool.idl b/offapi/com/sun/star/logging/LoggerPool.idl
new file mode 100644
index 0000000000..5489a3c498
--- /dev/null
+++ b/offapi/com/sun/star/logging/LoggerPool.idl
@@ -0,0 +1,36 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module logging {
+
+/** the global pool of named XLogger instances
+
+ The one and only LoggerPool
instance is available at a component context as value with the key
+ /singletons/com.sun.star.logging.LoggerPool
.
Every log record, as passed to XLogFormatter::format(), will + be formatted into a single text line, assembling the sequence number, the thread ID, + the time of the logged event, the source class/method name (if applicable), and the + log message.
+ + @since OOo 2.3 + */ +service PlainTextFormatter : XLogFormatter +{ + /// creates a PlainTextFormatter instance + create(); +}; + + +}; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/logging/SimpleTextFormatter.idl b/offapi/com/sun/star/logging/SimpleTextFormatter.idl new file mode 100644 index 0000000000..69388d3e63 --- /dev/null +++ b/offapi/com/sun/star/logging/SimpleTextFormatter.idl @@ -0,0 +1,44 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module logging { + +interface XLogFormatter; + + +/** specifies a service which formats log records as single line plain text + +Every log record, as passed to XLogFormatter::format(), will + be formatted into a single text line, with just the log message being output. + If the loglevel is WARNING, or SEVERE, the line will be prefixed accordingly.
+ + @since LibreOffice 6.2 + */ +service SimpleTextFormatter : XLogFormatter +{ + /// creates a SimpleTextFormatter instance + create(); +}; + + +}; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/logging/XConsoleHandler.idl b/offapi/com/sun/star/logging/XConsoleHandler.idl new file mode 100644 index 0000000000..ca89bff500 --- /dev/null +++ b/offapi/com/sun/star/logging/XConsoleHandler.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 . + */ + + +module com { module sun { module star { module logging { + + +/** implemented by a log handler whose output channel is the processes console. + +Note that a console handler will ignore its formatter's head and tail, since
+ it cannot decided whether they should be emitted on stdout
or stderr
.
Events with a level greater or equal to Threshold
will be
+ logged to stderr
, all others to stdout
.
The default value for this attribute is LogLevel::SEVERE.
+ */ + [attribute] long Threshold; +}; + + +}; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/logging/XCsvLogFormatter.idl b/offapi/com/sun/star/logging/XCsvLogFormatter.idl new file mode 100644 index 0000000000..b6957e1660 --- /dev/null +++ b/offapi/com/sun/star/logging/XCsvLogFormatter.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 . + */ + + + +module com { module sun { module star { module logging { + + +/** specifies the interface used for formatting log records for RFC4180 CSV + output + + @see XLogFormatter, XLogHandler + + @since OOo 3.0 +*/ +interface XCsvLogFormatter : XLogFormatter +{ + /** Defines if the EventNo should be logged */ + [attribute] boolean LogEventNo; + /** Defines if the ThreadId should be logged */ + [attribute] boolean LogThread; + /** Defines if the Timestamp should be logged */ + [attribute] boolean LogTimestamp; + /** Defines if the Source should be logged */ + [attribute] boolean LogSource; + /** Defines the names of the additional columns + this defaults to only one row titled "message". + if this is set to more than one column, the + messages need to be preformatted using +formatMultiColumn
*/
+ [attribute] sequence< string > Columnnames;
+ /** if the CsvLogFormatter is set to have more than one
+ column, any logged information has to be send through this
+ method before calling log(). E.g.:
+
+ XLoggerInstance.log(1000, XCsvLogFormatterInstance.formatMultiColumn(columnData))
+ */
+ string formatMultiColumn( [in] sequence< string > columnData);
+};
+
+
+}; }; }; };
+
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/logging/XLogFormatter.idl b/offapi/com/sun/star/logging/XLogFormatter.idl
new file mode 100644
index 0000000000..e9d56c3694
--- /dev/null
+++ b/offapi/com/sun/star/logging/XLogFormatter.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 .
+ */
+
+
+module com { module sun { module star { module logging {
+
+
+/** specifies the interface to be used for formatting log records
+
+ @see XLogHandler
+
+ @since OOo 2.3
+*/
+interface XLogFormatter
+{
+ /** returns the header string for the log
+
+ This can be used to generate a header string, which by the XLogHandler + is emitted to its output channel before actually logging any concrete + LogRecord.
+ +For instance, a formatter might produce table-like plain text output, + and could return a table-head string (potentially including line breaks) + here.
+ */ + string getHead(); + + /** formats the given log record for output + +A XLogHandler will call this method to format a given
+ log record. The resulting string will be emitted to the handler's output
+ channel, without processing it any further (except possibly encoding it with
+ the handler's Encoding
).
This can be used to generate a footer string, which by the XLogHandler + is emitted to its output channel before it is finally being closed.
+ */ + string getTail(); +}; + + +}; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/logging/XLogHandler.idl b/offapi/com/sun/star/logging/XLogHandler.idl new file mode 100644 index 0000000000..6e5f6c9d1e --- /dev/null +++ b/offapi/com/sun/star/logging/XLogHandler.idl @@ -0,0 +1,83 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module logging { + + +/** provides possibilities to send LogRecords to an arbitrary output + channel. + + @see XLogger + + @since OOo 2.3 + */ +interface XLogHandler +{ + /** allows life time control for the handler + +Disposing the handler effectively means closing the channel + to which the handler forwards the log records. + */ + interface ::com::sun::star::lang::XComponent; + + /** specifies MIME charset name for the encoding to be used by this handler + +
It depends on the concrete handler implementation whether or not this + parameter is needed.
+ + @see http://www.iana.org/assignments/character-sets + */ + [attribute] string Encoding; + + /** specifies the formatter to be used by this handler. + */ + [attribute] XLogFormatter Formatter; + + /** specifies the log level of this handler + +
Different handlers can have different log levels, which again might be + different from the log level of the XLogger for which the handlers + are used.
+ */ + [attribute] long Level; + + /** flushes all buffered output of the handler + +Log handlers are allowed to buffer their output. Upon flush
+ being called, they must flush all their buffers.
This interface is roughly designed after the + Java + Logging API. However, there are some differences, the major ones being: +
When an event is logged, the logger will create a LogRecord + for this event, and pass this record to all registered handlers. Single handlers + might or might not log those records at their own discretion, and depending on + additional restrictions such as filters specified at handler level.
+ +Note: The log level of the given handler (XLogHandler::Level) will + not be touched. In particular, it will not be set to the logger's log level. It's + the responsibility of the component which knits a logger with one or more + log handlers to ensure that all loggers have appropriate levels set.
+ + @param LogHandler + the handler to add to the list of handlers. The call is ignored if this + parameter is `NULL`. + */ + void addLogHandler( [in] XLogHandler LogHandler ); + + /** removes the given handler from the list of handlers. + + @param LogHandler + the handler to remove from the list of handlers. The call is ignored if this + parameter is `NULL`, or if the handler has not previously been added. + */ + void removeLogHandler( [in] XLogHandler LogHandler ); + + /** determines whether logger instance would produce any output for the given level. + +The method can be used to optimize performance as maybe complex parameter evaluation
+ in the log
calls can be omitted if isLoggable
evaluates to false.
Multiple attempts to retrieve a logger with the same name will return + the same instance.
+ +Newly created logger instances are initialized via configuration. See the configuration
+ module /org.openoffice.Office.Logging
for an explanation of the initialization
+ pattern.
Calling this method is equivalent to calling getNamedLogger( "org.openoffice.logging.DefaultLogger" )
.
isConnected
returns true.
+
+ @returns
+ the current connection context.
+
+ @throws com::sun::star::io::NotConnectedException
+ if no connection is currently established.
+
+ @see com::sun::star::mail::connectUser
+ @see com::sun::star::io::NotConnectedException
+ */
+ com::sun::star::uno::XCurrentContext getCurrentConnectionContext()
+ raises(com::sun::star::io::NotConnectedException);
+
+ /**
+ Connect to a mail service. Only one connection to a mail service
+ can be established at a time.
+
+ @param xConnectionContext
+ [in] an interface used to query for connection related information.
+ The context must contain the following values:
+ 0
or to its previous value.
+
+ @param bSet
+ sets the volume to 0
if `TRUE`, and switch
+ to the previous non-null value if `FALSE`
+ */
+ void setMute( [in] boolean bSet );
+
+ /** gets whether the volume is temporarily down to 0
+ or not.
+
+ @returns
+ `TRUE` if the volume is temporarily set to 0
,
+ `FALSE` otherwise.
+ */
+ boolean isMute();
+
+ /** gets the preferred window size
+
+ @returns
+ the com::sun::star::awt::Size
+ */
+ ::com::sun::star::awt::Size getPreferredPlayerWindowSize();
+
+ /** gets a new player window for this stream control
+
+ @param aArguments
+ arguments passed to the window during its creation.
+ */
+ XPlayerWindow createPlayerWindow( [in] sequence< any > aArguments );
+
+ /** gets a frame grabber for this stream.
+ */
+ XFrameGrabber createFrameGrabber();
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/media/XPlayerListener.idl b/offapi/com/sun/star/media/XPlayerListener.idl
new file mode 100644
index 0000000000..7851c5007e
--- /dev/null
+++ b/offapi/com/sun/star/media/XPlayerListener.idl
@@ -0,0 +1,31 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */
+/*
+ * 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/.
+ */
+
+module com { module sun { module star { module media {
+
+/** Interface to be implemented by a Player listener.
+
+ The XPlayerListener interface must be implemented by + the clients of the Player service which need to be informed about + events while the Player service is displayed.
+ + @since LibreOffice 7.4 +*/ + +interface XPlayerListener : com::sun::star::lang::XEventListener +{ + /** A client receives this event when the preferred player size of an XPlayer + is available to be queried. + */ + void preferredPlayerWindowSizeAvailable([in] com::sun::star::lang::EventObject e); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ diff --git a/offapi/com/sun/star/media/XPlayerNotifier.idl b/offapi/com/sun/star/media/XPlayerNotifier.idl new file mode 100644 index 0000000000..cfb9beb554 --- /dev/null +++ b/offapi/com/sun/star/media/XPlayerNotifier.idl @@ -0,0 +1,38 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */ +/* + * 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/. + */ + +module com { module sun { module star { module media { + +/** Interface to be implemented in order to support listener management. + @since LibreOffice 7.4 +*/ +interface XPlayerNotifier : com::sun::star::uno::XInterface +{ + /** Interface for clients to register as XPlayerListener + + @param xListener + The XPlayerListener interface of the listener that + wants to receive events. +Invalid interfaces or NULL values will be ignored.
+ */ + void addPlayerListener( [in] XPlayerListener xListener ); + + /** Interface for clients to unregister as XPlayerListener. + + @param xListener + The XPlayerListener interface of the listener that + wants to receive events. +Invalid interfaces or NULL values will be ignored.
+ */ + void removePlayerListener( [in] XPlayerListener xListener ); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ diff --git a/offapi/com/sun/star/media/XPlayerWindow.idl b/offapi/com/sun/star/media/XPlayerWindow.idl new file mode 100644 index 0000000000..cb7de3ce0d --- /dev/null +++ b/offapi/com/sun/star/media/XPlayerWindow.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 . + */ + +module com { module sun { module star { module media { + +/** interacts with the media player window + */ +interface XPlayerWindow : ::com::sun::star::awt::XWindow +{ + /** redraws the player window + */ + void update(); + + /** changes the zoom of the media played by the window. + */ + boolean setZoomLevel( [in] ZoomLevel ZoomLevel ); + + /** gets the current media ratio. + */ + ZoomLevel getZoomLevel(); + + /** changes the pointer for the player window. + + @param SystemPointerType + a ::com::sun::star::awt::SystemPointer + */ + void setPointerType( [in] long SystemPointerType ); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/media/ZoomLevel.idl b/offapi/com/sun/star/media/ZoomLevel.idl new file mode 100644 index 0000000000..55ecf03b9d --- /dev/null +++ b/offapi/com/sun/star/media/ZoomLevel.idl @@ -0,0 +1,76 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module media { + + +enum ZoomLevel +{ + /** specifies that the video window itself is not available at all, + e.g. in cases of pure audio playback + */ + NOT_AVAILABLE, + + + /** specifies that the video should be displayed with + its original size + */ + ORIGINAL, + + + /** specifies that the video should be zoomed to window size + */ + FIT_TO_WINDOW, + + + /** specifies that the video should be zoomed to window size + with using a fixed aspect ratio + */ + FIT_TO_WINDOW_FIXED_ASPECT, + + + /** specifies that the video should be displayed in fullscreen mode, + if available + */ + FULLSCREEN, + + + /** specifies that the video should be zoomed to a factor of 1:4 + */ + ZOOM_1_TO_4, + + + /** specifies that the video should be zoomed to a factor of 1:2 + */ + ZOOM_1_TO_2, + + + /** specifies that the video should be zoomed to a factor of 2:1 + */ + ZOOM_2_TO_1, + + + /** specifies that the video should be zoomed to a factor of 4:1 + */ + ZOOM_4_TO_1 +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/modules.idl b/offapi/com/sun/star/modules.idl new file mode 100644 index 0000000000..fe574d69f4 --- /dev/null +++ b/offapi/com/sun/star/modules.idl @@ -0,0 +1,446 @@ +/* -*- 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 . + */ + +/* note: this file contains documentation of the modules. + sub-modules of modules are documented here too so there aren't + lots of tiny documentation only files everywhere. +*/ + +module com { module sun { module star { + +/** UNO Accessibility API + +This modules contains the basic interfaces of the UAA (UNO + Accessibility API). Services that describe how these interfaces are + implemented can be found in other modules. The services in this module + describe only what every accessible object has to support.
+ +Making a class accessible starts by supporting the + ::com::sun::star::accessibility::XAccessible interface. + This interface's only method returns the actual accessibility object, an + instance of ::com::sun::star::accessibility::XAccessibleContext. + These two interfaces may be implemented by the same class in which case + a call to ::com::sun::star::accessibility::XAccessible getAccessible() + returns the same object that is + called. Alternatively the implementation of the + ::com::sun::star::accessibility::XAccessibleContext + interface can be done by another class. This makes it possible to put + all accessibility implementations into their own library which has only + to be loaded when necessary.
+ +Note that all other interfaces have to be implemented by the same + class that implements the + ::com::sun::star::accessibility::XAccessibleContext + interface. Note also that there is no way back from an accessibility + object to the object from which it has been obtained by means of the + UAA. If you need such a back-link you have to provide one on your + own.
+*/ +module accessibility {}; + +/// interfaces for SMIL animations. +module animations {}; + +/// security and authenticates interfaces +module auth {}; + +/// Java AWT-like user interface toolkit interface specifications for UNO. +module awt { + + /// grid control. + module grid {}; + + /// tab pages. + module tab {}; + + /// hierarchical (tree) control. + module tree {}; + +}; + +/// Charting diagram interfaces. +module chart {}; + +/** New implementation of Charting diagram interfaces. This module + contains only a rather small public API. In addition there is a + private API in the chart2 project. + */ +module chart2 { + + /// Chart data provider interfaces. + module data {}; +}; + +/// Access to the tree of configuration data. +module configuration { + + /// interfaces for configuration backends. + module backend { + /// XML files backend. + module xml {}; + }; + + /// deprecated bootstrapping mechanism. + module bootstrap {}; + +}; + +/// Common user interface elements +module cui {}; + +/// Clipboard and Drag&Drop interfaces. +module datatransfer { + + /// Clipboard specific interfaces. + module clipboard {}; + + /// Drag&Drop specific interfaces. + module dnd {}; + +}; + +/// interfaces for extension management. +module deployment { + + // this looks like it should not be documented + module test {}; + + /// interfaces for extension management dialogs. + module ui {}; + +}; + +/// Office document related interfaces. +module document {}; + +/// Drawing and shape specific interfaces. +module drawing { + + /// Draw/Impress user interface framework. + module framework {}; + +}; + +/// interfaces related to embedded objects, both native UNO and OLE. +module embed {}; + +/// Interfaces for managing forms and controls. +module form { + + /// form bindings. + module binding {}; + + /// form components (model part of the controls). + module component {}; + + /// form components (view part of the controls). + module control {}; + + /// various property handlers for forms. + module inspection {}; + + /// core components of forms. + module runtime {}; + + /// for submission of data from forms. + module submission {}; + + /// for validation of form data. + module validation {}; + +}; + +/// Interfaces for mathematical formulas. +module formula {}; + +/// Desktop environment framework interfaces. +module frame { + + /// various status properties. + module status {}; + +}; + +/// interfaces for galleries of images and media objects. +module gallery {}; + +/// Interfaces and data types to deal with basic geometric entities +module geometry {}; + +/// Interfaces for graphic handling +module graphic {}; + +/** Interface for internationalization. Regard this as an internal API, + subject to change. */ +module i18n {}; + +/// interfaces for HTML image maps. +module image {}; + +/// interfaces for inspecting UNO objects via property handlers. +module inspection {}; + +/// lightweight directory access protocol (LDAP) +module ldap {}; + +/// Spell checker, hyphenation and thesaurus interfaces. +module linguistic2 {}; + +/// logging of events. +module logging {}; + +/// Interfaces for Email connectivity +module mail {}; + +/// Media type interfaces +module media {}; + +/// Interfaces for Mozilla integration. +module mozilla {}; + +/// Office document content related interfaces. +module office {}; + +/// Package file format interfaces. +module packages { + + /// interfaces for reading and writing manifest.xml files in ODF packages. + module manifest {}; + + /// for direct access to ZIP packages. + module zip {}; + +}; + +/// Netscape-like plugin interfaces. +module plugin {}; + +/// Presentation specific interfaces. +module presentation { + + /// for text fields in presentation documents. + module textfield {}; + +}; + +/// Interfaces for QA and automated tests +module qa {}; + +/** RDF (Resource Description Framework) and metadata interfaces. + ++ This module provides interfaces for storing and accessing metadata + in Resource Description Framework + format. + The API consists of two main parts: the RDF data model and the ODF + document integration. +
+ ++ The RDF data model + describes graphs of statements. + The nodes in the graph are of type rdf::XNode, + which has several subtypes: rdf::XResource, + rdf::XBlankNode, + rdf::XURI and rdf::XLiteral. + Statements are then triples of nodes, and have type + rdf::Statement. +
+ ++ The main part of the RDF data model is the + rdf::XRepository, which consists of a set of graphs. + The repository allows for importing/exporting graphs from/to files, + as well as querying the contents of the repository. + The type of the graphs is rdf::XNamedGraph. +
+ ++ Documents that support metadata implement the interfaces + rdf::XRepositorySupplier and + rdf::XDocumentMetadataAccess. + Furthermore, all elements of ODF documents that may have metadata attached + implement the interface rdf::XMetadatable. +
+ + */ +module rdf {}; + +/// Interfaces and data structures for rendering +module rendering {}; + +/// interfaces for reports generated from data sources. +module report { + + /// property handlers for reports. + module inspection {}; + + /// report meta data. + module meta {}; + +}; + +/// Interfaces to access (UI) resource files. +module resource {}; + +/// Interfaces for scanner control. +module scanner {}; + +/// Scripting language bindings. +module script { + + /// manage available scripts in some sort of hierarchy. + module browse {}; + + /// interfaces for scripting providers. + module provider {}; + + /// VBA scripting. + module vba {}; + +}; + +/// Basic interfaces for database access. +module sdb { + + /// application UI. + module application {}; + + /// misc stuff. + module tools {}; + +}; + +/// Database component interfaces. +module sdbc {}; + +/// High-level database component interfaces. +module sdbcx {}; + +/// cryptographic interfaces. +module security {}; + +/// Setup specific interfaces +module setup {}; + +/// Spreadsheet specific interfaces. +module sheet {}; + +/// allows to put smart tags in document content. +module smarttags {}; + +/// Formatting and layout style and style sheet interfaces. +module style {}; + +/// Interfaces for import/export of Scalable Vector Format. +module svg {}; + +/// Host operating system integration interfaces. +module system {}; + +/// Table specific interfaces (for text and spreadsheet). +module table {}; + +/// Task management interfaces. +module task {}; + +/// Text specific interfaces. +module text { + + /// text field masters. + module fieldmaster {}; + + /// text fields. + module textfield { + + /// Document Properties text fields. + module docinfo {}; + + }; + +}; + +/// Universal Content Broker interfaces. +module ucb {}; + +/// Dialogs and other UI elements. +module ui { + + /// dialogs. + module dialogs {}; + +}; + +/// Miscellaneous interfaces for sorting, connecting objects etc. +module util {}; + +/// Document view specific interfaces (e.g. selection access and printing). +module view {}; + +/// interfaces for XForms (XML-based forms) implementation +module xforms {}; + +/// XML related interfaces. +module xml { + + /// XML encryption interfaces. + module crypto { + + /// XML encryption SAX interfaces. + module sax {}; + + }; + + /// Compressed SAX interfaces. + module csax {}; + + /// XML Document Object Model. + module dom { + + /// XML Document Object Model events. + module events {}; + + /// XML Document Object Model views. + module views {}; + + }; + + /// no idea what this does but it's all marked "internal". + module input {}; + + /// SAX interfaces. + module sax {}; + + /// something related to creating DOMs from SAX interfaces? + module wrapper {}; + + /// XPath interfaces. + module xpath {}; + + /// XSLT interfaces. + module xslt {}; + +}; + +/// W3C XML Schema-2 data type related interfaces. +module xsd {}; + +}; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/mozilla/MenuMultipleChange.idl b/offapi/com/sun/star/mozilla/MenuMultipleChange.idl new file mode 100644 index 0000000000..1c3cdc4bd8 --- /dev/null +++ b/offapi/com/sun/star/mozilla/MenuMultipleChange.idl @@ -0,0 +1,71 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module mozilla { + + +/** Explains properties of a menu item + */ +published struct MenuMultipleChange +{ + /** unique ID of this menu item + */ + short ID; + + /** unique ID of the group this menu item belongs to + */ + short GroupID; + + /** unique ID of the item directly above this menu item, used for fuzzy placement + */ + short PreItemID; + + /** text of the menu item + */ + string ItemText; + + /** true if visible + */ + boolean IsVisible; + + /** true if active, so clickable + */ + boolean IsActive; + + /** true if checkable, so there can be a checkmark + */ + boolean IsCheckable; + + /** true if there is a checkmark + */ + boolean IsChecked; + + /** sequence of bytes representing a possible image + */ + sequence+ In case stream is encrypted one and the key for the stream is not set, + an exception must be thrown. +
+ + @returns + the stream + + @throws ::com::sun::star::packages::WrongPasswordException + no key or a wrong one is set + + @throws ::com::sun::star::io::IOException + in case of io problems during retrieving + */ + ::com::sun::star::io::XInputStream getDataStream() + raises( ::com::sun::star::packages::WrongPasswordException, + ::com::sun::star::packages::zip::ZipException, + ::com::sun::star::io::IOException ); + + + /** Allows to get access to the data of the PackageStream as to raw stream. + In case stream is not encrypted an exception will be thrown. ++ The difference of raw stream is that it contains header for encrypted data, + so an encrypted stream can be copied from one PackageStream to + another one without decryption. +
+ + @returns + the raw representation of stream + + @throws ::com::sun::star::packages::NoEncryptionException + the PackageStream object is not encrypted + + @throws ::com::sun::star::io::IOException + in case of io problems during retrieving + */ + ::com::sun::star::io::XInputStream getRawStream() + raises( ::com::sun::star::packages::NoEncryptionException, + ::com::sun::star::io::IOException ); + + /** Allows to set a data stream for the PackageStream. ++ In case PackageStream is marked as encrypted the data stream will be encrypted on storing. +
+ + @param aStream + new data stream + + @throws ::com::sun::star::io::IOException + in case of io problems + */ + void setDataStream( [in] ::com::sun::star::io::XInputStream aStream ) + raises( ::com::sun::star::io::IOException ); + + /** Allows to set raw stream for the PackageStream. + The PackageStream object can not be marked as encrypted one, + an exception will be thrown in such case. + + @param aStream + the new raw representation of stream + + @throws ::com::sun::star::packages::EncryptionNotAllowedException + the PackageStream object is marked as encrypted + + @throws ::com::sun::star::packages::NoRawFormatException + the stream is not a correct raw representation of encrypted package stream + + @throws ::com::sun::star::io::IOException + in case of io problems during retrieving + */ + void setRawStream( [in] ::com::sun::star::io::XInputStream aStream ) + raises( ::com::sun::star::packages::EncryptionNotAllowedException, + ::com::sun::star::packages::NoRawFormatException, + ::com::sun::star::io::IOException ); + + /** Allows to get access to the raw data of the stream as it is stored in + the package. + + @returns + the plain raw stream as it is stored in the package + + @throws ::com::sun::star::packages::NoEncryptionException + the PackageStream object is not encrypted + + @throws ::com::sun::star::io::IOException + in case of io problems during retrieving + */ + ::com::sun::star::io::XInputStream getPlainRawStream() + raises( ::com::sun::star::io::IOException, + ::com::sun::star::packages::NoEncryptionException ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/packages/XPackageEncryption.idl b/offapi/com/sun/star/packages/XPackageEncryption.idl new file mode 100644 index 0000000000..1f324131d6 --- /dev/null +++ b/offapi/com/sun/star/packages/XPackageEncryption.idl @@ -0,0 +1,125 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module packages { + + +/** Allows to transparently plug-in crypto for PackageStreams. + + @since LibreOffice 7.0 + */ +interface XPackageEncryption: com::sun::star::uno::XInterface +{ + /** Read package crypto information + + @param rStreams + Substreams of the package (in the case of MS encryption, those + are OLE substorage streams). + + @returns + True if crypto info could be retrieved, and engine initialised. False otherwise. + */ + boolean readEncryptionInfo([in] sequence < com::sun::star::beans::NamedValue > rStreams); + + /** Set or refresh encryption key + + @param rPassword + Optional password to use for generating encryption key. + + @returns + True if key setup was successful. False otherwise. + */ + boolean generateEncryptionKey([in] string rPassword); + + /** Decrypt document content + + After crypto setup via readEncryptionInfo(), pipe package bits through + encryption engine. + + @param rxInputStream + Input data (encrypted) + + @param rxOutputStream + Output data (decrypted) + + @returns + True if decryption finished without error. False otherwise. + */ + boolean decrypt([in] com::sun::star::io::XInputStream rxInputStream, + [out] com::sun::star::io::XOutputStream rxOutputStream); + + /** Create key-value list of encryption meta data + + After generateEncryptionKey() succeeded in setting up crypto, + use this method to create requisite meta data. Depending on + underlying crypto, this can be a salt, init vector, or other + algorithm-specific information that needs to be stored + alongside an encrypted document + + @param rPassword + Same password as provided to generateEncryptionKey + + @returns + Sequence of opaque key-value pairs needed for decrypting this + setup. Can be passed back into other instances of this service + via setupEncryption() + */ + sequence+ The first stream with a name that fits to the pattern will be returned. + The pattern allows to use "*" wildcard symbol. If the name contains "*" + or "\" symbols itself they must guarded with backslash "\". + The slashes have no special meaning here so they can be replaced + by wildcards also. +
+ */ + ::com::sun::star::io::XInputStream getStreamByPattern( [in] string aPattern ) + raises( ::com::sun::star::container::NoSuchElementException, + ::com::sun::star::io::IOException, + ::com::sun::star::packages::WrongPasswordException, + ::com::sun::star::packages::zip::ZipException ); + +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/packages/zip/XZipFileAccess2.idl b/offapi/com/sun/star/packages/zip/XZipFileAccess2.idl new file mode 100644 index 0000000000..24cc8018b7 --- /dev/null +++ b/offapi/com/sun/star/packages/zip/XZipFileAccess2.idl @@ -0,0 +1,38 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module packages { module zip { + + +/** + Merged interface for ZipFileAccess service. + @since LibreOffice 4.1 + */ +interface XZipFileAccess2 +{ + interface XZipFileAccess; + interface com::sun::star::container::XNameAccess; + +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/packages/zip/ZipConstants.idl b/offapi/com/sun/star/packages/zip/ZipConstants.idl new file mode 100644 index 0000000000..bdb6d77832 --- /dev/null +++ b/offapi/com/sun/star/packages/zip/ZipConstants.idl @@ -0,0 +1,246 @@ +/* -*- 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 . + */ + + + + +module com { module sun { module star { module packages { module zip { + + +/** defines the constants used by the ZIP interfaces. + */ +published constants ZipConstants +{ + /** Compression method for the deflate algorithm (the only one currently + supported). + */ + const short DEFLATED = 8; + + /** Compression level for no compression. + */ + const short NO_COMPRESSION = 0; + + /** Compression level for fastest compression + */ + const short BEST_SPEED = 1; + + /** Compression level for best compression + */ + const short BEST_COMPRESSION = 9; + + /** Default compression level. + */ + const short DEFAULT_COMPRESSION = -1; + + /** Compression strategy best used for data consisting mostly of small + values with a somewhat random distribution. Forces more Huffman + coding and less string matching. + */ + const short FILTERED = 1; + + /** Compression strategy for Huffman coding only. + */ + const short HUFFMAN_ONLY = 2; + + /** Default compression strategy + */ + const short DEFAULT_STRATEGY = 0; + + /** entry is uncompressed + */ + const short STORED = 0; + + /** entry is uncompressed + */ + const short DEF_MEM_LEVEL = 8; + + /** Header Signature: "PK\003\004" + */ + const long LOCSIG = 0x04034b50; + + /** Header Signature: "PK\007\008" + */ + const long EXTSIG = 0x08074b50; + + /** Header Signature: "PK\001\002" + */ + const long CENSIG = 0x02014b50; + + /** Header Signature: "PK\005\006" + */ + const long ENDSIG = 0x06054b50; + + /** Header Signature: "PK\007\008" + */ + const long SPANSIG = 0x08074b50; + + /** LOC header size in bytes (including signatures) + */ + const short LOCHDR = 30; + + /** EXT header size in bytes (including signatures) + */ + const short EXTHDR = 16; + + /** CEN header size in bytes (including signatures) + */ + const short CENHDR = 46; + + /** END header size in bytes (including signatures) + */ + const short ENDHDR = 22; + + /// LOC LOC LOC + /** LOC header field "version needed to extract" offset + */ + const short LOCVER = 4; + + /** LOC header field "general purpose bit flags" offset + */ + const short LOCFLG = 6; + + /** LOC header field "compression method" offset + */ + const short LOCHOW = 8; + + /** LOC header field "modification time" offset + */ + const short LOCTIM = 10; + + /** LOC header field "CRC of uncompressed data" offset + */ + const short LOCCRC = 14; + + /** LOC header field "compressed data size" offset + */ + const short LOCSIZ = 18; + + /** LOC header field "uncompressed data size" offset + */ + const short LOCLEN = 22; + + /** LOC header field "filename length" offset + */ + const short LOCNAM = 26; + + /** LOC header field "extra field length" offset + */ + const short LOCEXT = 28; + + /** EXT header field "CRC of uncompressed data" offsets + */ + const short EXTCRC = 4; + + /** EXT header field "compressed size" offsets + */ + const short EXTSIZ = 8; + + /** EXT header field "uncompressed size" offsets + */ + const short EXTLEN = 12; + + /** CEN header field "version made by" offset + */ + const short CENVEM = 4; + + /** CEN header field "version needed to extract" offset + */ + const short CENVER = 6; + + /** CEN header field "general purpose bit flags" offset + */ + const short CENFLG = 8; + + /** CEN header field "compression method" offset + */ + const short CENHOW = 10; + + /** CEN header field "modification time" offset + */ + const short CENTIM = 12; + + /** CEN header field "modification time" offset + */ + const short CENDAT = 14; + + /** CEN header field "CRC of uncompressed data" offset + */ + const short CENCRC = 16; + + /** CEN header field "compressed size" offset + */ + const short CENSIZ = 20; + + /** CEN header field "uncompressed size" offset + */ + const short CENLEN = 24; + + /** CEN header field "length of filename" offset + */ + const short CENNAM = 28; + + /** CEN header field "length of extra field" offset + */ + const short CENEXT = 30; + + /** CEN header field "file comment length" offset + */ + const short CENCOM = 32; + + /** CEN header field "disk number start" offset + */ + const short CENDSK = 34; + + /** CEN header field "internal file attributes" offset + */ + const short CENATT = 36; + + /** CEN header field "external file attributes" offset + */ + const short CENATX = 38; + + /** CEN header field "offset of local header" offset + */ + const short CENOFF = 42; + + /** END header field "number of entries on this disk" offset + */ + const short ENDSUB = 8; + + /** END header field "total number of entries" offset + */ + const short ENDTOT = 10; + + /** END header field "central directory size" offset + */ + const short ENDSIZ = 12; + + /** END header field "central directory offset" offset + */ + const short ENDOFF = 16; + + /** END header field "size of zip file comment" offset + */ + const short ENDCOM = 20; + +}; + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/packages/zip/ZipEntry.idl b/offapi/com/sun/star/packages/zip/ZipEntry.idl new file mode 100644 index 0000000000..1bdd6b6190 --- /dev/null +++ b/offapi/com/sun/star/packages/zip/ZipEntry.idl @@ -0,0 +1,85 @@ +/* -*- 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 . + */ + + + +module com { module sun { module star { module packages { module zip { + + +/** used to represent a ZIP file entry + + +This interface is an IDL version of the Java interface + java.util.zip.ZipFile with some minor adaptations.
+ */ +published struct ZipEntry +{ + /** version needed to extract + */ + short nVersion; + + /** bit flags + */ + short nFlag; + + /** compression method + */ + short nMethod; + + /** modification time + */ + long nTime; + + /** CRC-32 of entry data + */ + long nCrc; + + /** uncompressed size of entry data + */ + long nCompressedSize; + + /** uncompressed size of entry data + */ + long nSize; + + /** offset of LOC header + */ + long nOffset; + + /** The number of the disk this entry is saved on + */ + short nDiskNumber; + + /** the entry name + */ + string sName; + + /** optional extra field data for entry + */ + sequenceThis interface is an IDL version of the Java interface + java.util.zip.ZipException with some minor adaptations.
+ */ +published exception ZipException: com::sun::star::uno::Exception +{ +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/packages/zip/ZipFileAccess.idl b/offapi/com/sun/star/packages/zip/ZipFileAccess.idl new file mode 100644 index 0000000000..0b51607743 --- /dev/null +++ b/offapi/com/sun/star/packages/zip/ZipFileAccess.idl @@ -0,0 +1,39 @@ +/* -*- 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 . + */ + + + +module com { module sun { module star { module packages { module zip { + + +/** allows to get reading access to non-encrypted entries inside zip file. + */ +service ZipFileAccess : XZipFileAccess2 +{ + createWithURL([in] string URL) + raises ( com::sun::star::io::IOException, + com::sun::star::ucb::ContentCreationException, + com::sun::star::ucb::InteractiveIOException, + com::sun::star::packages::zip::ZipException ); +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/packages/zip/ZipIOException.idl b/offapi/com/sun/star/packages/zip/ZipIOException.idl new file mode 100644 index 0000000000..200e481457 --- /dev/null +++ b/offapi/com/sun/star/packages/zip/ZipIOException.idl @@ -0,0 +1,38 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module packages { module zip { + + +/** used to indicate that a ZIP exception has occurred. + Usually can be thrown from XInputStream interface implementations. +This interface is an IDL version of the Java interface + java.util.zip.ZipException with some minor adaptations.
+ + @since OOo 1.1.2 + */ +published exception ZipIOException: com::sun::star::io::IOException +{ +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/presentation/AnimationEffect.idl b/offapi/com/sun/star/presentation/AnimationEffect.idl new file mode 100644 index 0000000000..2c010b234c --- /dev/null +++ b/offapi/com/sun/star/presentation/AnimationEffect.idl @@ -0,0 +1,370 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module presentation { + +/** specifies the animation effects for animating + text or objects. + */ +published enum AnimationEffect +{ + /** use no animation effects. + */ + NONE, + /** use the animation effect "Fade from Left". + */ + FADE_FROM_LEFT, + /** use the animation effect "Fade from Top". + */ + FADE_FROM_TOP, + /** use the animation effect "Fade from Right". + */ + FADE_FROM_RIGHT, + /** use the animation effect "Fade from Bottom". + */ + FADE_FROM_BOTTOM, + /** use the animation effect "Fade to Center". + */ + FADE_TO_CENTER, + /** use the animation effect "Fade from Center". + */ + FADE_FROM_CENTER, + /** use the animation effect "Move from Left". + */ + MOVE_FROM_LEFT, + /** use the animation effect "Move from Top". + */ + MOVE_FROM_TOP, + /** use the animation effect "Move from Right". + */ + MOVE_FROM_RIGHT, + /** use the animation effect "Move from Bottom". + */ + MOVE_FROM_BOTTOM, + /** use the animation effect "Vertical Stripes". + */ + VERTICAL_STRIPES, + /** use the animation effect "Horizontal Stripes". + */ + HORIZONTAL_STRIPES, + /** use the animation effect "Clockwise". + */ + CLOCKWISE, + /** use the animation effect "Counter Clockwise". + */ + COUNTERCLOCKWISE, + /** use the animation effect "Fade from Upper Left". + */ + FADE_FROM_UPPERLEFT, + /** use the animation effect "Fade from Upper Right". + */ + FADE_FROM_UPPERRIGHT, + /** use the animation effect "Fade from Lower Left". + */ + FADE_FROM_LOWERLEFT, + /** use the animation effect "Fade from Lower Right". + */ + FADE_FROM_LOWERRIGHT, + /** use the animation effect "Close Vertical". + */ + CLOSE_VERTICAL, + /** use the animation effect "Close Horizontal". + */ + CLOSE_HORIZONTAL, + /** use the animation effect "Open Vertical". + */ + OPEN_VERTICAL, + /** use the animation effect "Open Horizontal". + */ + OPEN_HORIZONTAL, + /** use the animation effect "Path". + */ + PATH, + /** use the animation effect "Move to Left". + */ + MOVE_TO_LEFT, + /** use the animation effect "Move to Top". + */ + MOVE_TO_TOP, + /** use the animation effect "Move to Right". + */ + MOVE_TO_RIGHT, + /** use the animation effect "Move to Bottom". + */ + MOVE_TO_BOTTOM, + /** use the animation effect "Spiral Inward Left". + */ + SPIRALIN_LEFT, + /** use the animation effect "Spiral Inward Right". + */ + SPIRALIN_RIGHT, + /** use the animation effect "Spiral Outward Left". + */ + SPIRALOUT_LEFT, + /** use the animation effect "Spiral Outward Right". + */ + SPIRALOUT_RIGHT, + /** use the animation effect "Spiral Inward Left". + */ + DISSOLVE, + /** use the animation effect "Wavy Line from Left". + */ + WAVYLINE_FROM_LEFT, + /** use the animation effect "Wavy Line from Top". + */ + WAVYLINE_FROM_TOP, + /** use the animation effect "Wavy Line from Right". + */ + WAVYLINE_FROM_RIGHT, + /** use the animation effect "Wavy Line from Button". + */ + WAVYLINE_FROM_BOTTOM, + /** use the animation effect "Random". + */ + RANDOM, + /** use the animation effect "Vertical Lines". + */ + VERTICAL_LINES, + /** use the animation effect "Horizontal Lines". + */ + HORIZONTAL_LINES, + /** use the animation effect "Wavy Line from Left". + */ + LASER_FROM_LEFT, + /** use the animation effect "Laser from Top". + */ + LASER_FROM_TOP, + /** use the animation effect "Laser from Right". + */ + LASER_FROM_RIGHT, + /** use the animation effect "Laser from Bottom". + */ + LASER_FROM_BOTTOM, + /** use the animation effect "Laser from Upper Left". + */ + LASER_FROM_UPPERLEFT, + /** use the animation effect "Laser from Upper Right". + */ + LASER_FROM_UPPERRIGHT, + /** use the animation effect "Laser from Lower Left". + */ + LASER_FROM_LOWERLEFT, + /** use the animation effect "Laser from Lower Right". + */ + LASER_FROM_LOWERRIGHT, + /** use the animation effect "Appear". + */ + APPEAR, + /** use the animation effect "Hide". + */ + HIDE, + /** use the animation effect "Move from Upper Left". + */ + MOVE_FROM_UPPERLEFT, + /** use the animation effect "Move from Upper Right". + */ + MOVE_FROM_UPPERRIGHT, + /** use the animation effect "Move from Lower Right". + */ + MOVE_FROM_LOWERRIGHT, + /** use the animation effect "Move from Lower Left". + */ + MOVE_FROM_LOWERLEFT, + /** use the animation effect "Move to Upper Left". + */ + MOVE_TO_UPPERLEFT, + /** use the animation effect "Move to Upper Right". + */ + MOVE_TO_UPPERRIGHT, + /** use the animation effect "Move to Lower Right". + */ + MOVE_TO_LOWERRIGHT, + /** use the animation effect "Move to Lower Left". + */ + MOVE_TO_LOWERLEFT, + /** use the animation effect "Move Short from Left". + */ + MOVE_SHORT_FROM_LEFT, + /** use the animation effect "Move Short from Upper Left". + */ + MOVE_SHORT_FROM_UPPERLEFT, + /** use the animation effect "Move Short from Top". + */ + MOVE_SHORT_FROM_TOP, + /** use the animation effect "Move Short from Upper Right". + */ + MOVE_SHORT_FROM_UPPERRIGHT, + /** use the animation effect "Move Short from Right". + */ + MOVE_SHORT_FROM_RIGHT, + /** use the animation effect "Move Short from Lower Right". + */ + MOVE_SHORT_FROM_LOWERRIGHT, + /** use the animation effect "Move Short from Bottom". + */ + MOVE_SHORT_FROM_BOTTOM, + /** use the animation effect "Move Short from Lower Left". + */ + MOVE_SHORT_FROM_LOWERLEFT, + /** use the animation effect "Move Short to Left". + */ + MOVE_SHORT_TO_LEFT, + /** use the animation effect "Move Short to Upper Left". + */ + MOVE_SHORT_TO_UPPERLEFT, + /** use the animation effect "Move Short to Top". + */ + MOVE_SHORT_TO_TOP, + /** use the animation effect "Move Short to Upper Right". + */ + MOVE_SHORT_TO_UPPERRIGHT, + /** use the animation effect "Move Short to Right". + */ + MOVE_SHORT_TO_RIGHT, + /** use the animation effect "Move Short to Lower Right". + */ + MOVE_SHORT_TO_LOWERRIGHT, + /** use the animation effect "Move Short to Bottom". + */ + MOVE_SHORT_TO_BOTTOM, + /** use the animation effect "Move Short to Lower Left". + */ + MOVE_SHORT_TO_LOWERLEFT, + /** use the animation effect "Vertical Checkerboard". + */ + VERTICAL_CHECKERBOARD, + /** use the animation effect "Horizontal Checkerboard". + */ + HORIZONTAL_CHECKERBOARD, + /** use the animation effect "Horizontal Rotate". + */ + HORIZONTAL_ROTATE, + /** use the animation effect "Vertical Rotate". + */ + VERTICAL_ROTATE, + /** use the animation effect "Horizontal Stretch". + */ + HORIZONTAL_STRETCH, + /** use the animation effect "Vertical Stretch". + */ + VERTICAL_STRETCH, + /** use the animation effect "Stretch From Left". + */ + STRETCH_FROM_LEFT, + /** use the animation effect "Stretch From Upper Left". + */ + STRETCH_FROM_UPPERLEFT, + /** use the animation effect "Stretch From Top". + */ + STRETCH_FROM_TOP, + /** use the animation effect "Stretch From Upper Right". + */ + STRETCH_FROM_UPPERRIGHT, + /** use the animation effect "Stretch From Right". + */ + STRETCH_FROM_RIGHT, + /** use the animation effect "Stretch From Lower Right". + */ + STRETCH_FROM_LOWERRIGHT, + /** use the animation effect "Stretch From Bottom". + */ + STRETCH_FROM_BOTTOM, + /** use the animation effect "Stretch From Lower Left". + */ + STRETCH_FROM_LOWERLEFT, + /** use the animation effect "Zoom In". + */ + ZOOM_IN, + /** use the animation effect "Zoom In Small". + */ + ZOOM_IN_SMALL, + /** use the animation effect "Zoom In Spiral". + */ + ZOOM_IN_SPIRAL, + /** use the animation effect "Zoom Out". + */ + ZOOM_OUT, + /** use the animation effect "Zoom Out Small". + */ + ZOOM_OUT_SMALL, + /** use the animation effect "Zoom Out Spiral". + */ + ZOOM_OUT_SPIRAL, + /** use the animation effect "Zoom In From Left". + */ + ZOOM_IN_FROM_LEFT, + /** use the animation effect "Zoom In From Upper Left". + */ + ZOOM_IN_FROM_UPPERLEFT, + /** use the animation effect "Zoom In From Top". + */ + ZOOM_IN_FROM_TOP, + /** use the animation effect "Zoom In From Upper Right". + */ + ZOOM_IN_FROM_UPPERRIGHT, + /** use the animation effect "Zoom In From Right". + */ + ZOOM_IN_FROM_RIGHT, + /** use the animation effect "Zoom In From Lower Right". + */ + ZOOM_IN_FROM_LOWERRIGHT, + /** use the animation effect "Zoom In From Bottom". + */ + ZOOM_IN_FROM_BOTTOM, + /** use the animation effect "Zoom In From Lower Left". + */ + ZOOM_IN_FROM_LOWERLEFT, + /** use the animation effect "Zoom In From Center". + */ + ZOOM_IN_FROM_CENTER, + /** use the animation effect "Zoom Out From Left". + */ + ZOOM_OUT_FROM_LEFT, + /** use the animation effect "Zoom Out From Upper Left". + */ + ZOOM_OUT_FROM_UPPERLEFT, + /** use the animation effect "Zoom Out From Top". + */ + ZOOM_OUT_FROM_TOP, + /** use the animation effect "Zoom Out From Upper Right". + */ + ZOOM_OUT_FROM_UPPERRIGHT, + /** use the animation effect "Zoom Out From Right". + */ + ZOOM_OUT_FROM_RIGHT, + /** use the animation effect "Zoom Out From Lower Right". + */ + ZOOM_OUT_FROM_LOWERRIGHT, + /** use the animation effect "Zoom Out From Bottom". + */ + ZOOM_OUT_FROM_BOTTOM, + /** use the animation effect "Zoom Out From Lower Left". + */ + ZOOM_OUT_FROM_LOWERLEFT, + /** use the animation effect "Zoom Out From Center". + */ + ZOOM_OUT_FROM_CENTER +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/presentation/AnimationSpeed.idl b/offapi/com/sun/star/presentation/AnimationSpeed.idl new file mode 100644 index 0000000000..694296a122 --- /dev/null +++ b/offapi/com/sun/star/presentation/AnimationSpeed.idl @@ -0,0 +1,49 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module presentation { + + +/** specifies the speed values of animation/fade effects. + */ +published enum AnimationSpeed +{ + + /** set the speed from the animation/fade to slow. + */ + SLOW, + + + /** set the speed from the animation/fade to medium. + */ + MEDIUM, + + + /** set the speed from the animation/fade to fast. + */ + FAST + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/presentation/ChartShape.idl b/offapi/com/sun/star/presentation/ChartShape.idl new file mode 100644 index 0000000000..f6fc665da5 --- /dev/null +++ b/offapi/com/sun/star/presentation/ChartShape.idl @@ -0,0 +1,41 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module presentation { + + +/** This service is implemented by the chart presentation shape. + +Presentation shapes can be used in a presentation + page layouts and their position and size is by default set + by the presentation shapes on the com::sun::star::drawing::MasterPage. + */ +published service ChartShape +{ + service com::sun::star::presentation::Shape; + + service com::sun::star::drawing::OLE2Shape; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/presentation/ClickAction.idl b/offapi/com/sun/star/presentation/ClickAction.idl new file mode 100644 index 0000000000..eaa4d7c995 --- /dev/null +++ b/offapi/com/sun/star/presentation/ClickAction.idl @@ -0,0 +1,105 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module presentation { + + +/** This enumeration specifies the actions which can be processed when + a user clicks on an object. + */ +published enum ClickAction +{ + + /** No action is performed on click. + */ + NONE, + + + /** The presentation jumps to the previous page. + */ + PREVPAGE, + + + /** The presentation jumps to the next page. + */ + NEXTPAGE, + + + /** The presentation continues with the first page. + */ + FIRSTPAGE, + + + /** The presentation continues with the last page. + */ + LASTPAGE, + + + /** The presentation jumps to a bookmark. + */ + BOOKMARK, + + + /** The presentation jumps to another document. + */ + DOCUMENT, + + + /** The object renders itself invisible after a click. + */ + INVISIBLE, + + + /** A sound is played after a click. + */ + SOUND, + + + /** An OLE verb is performed on this object. + */ + VERB, + + + /** The object vanishes with its effect. + */ + VANISH, + + + /** Another program is executed after a click. + */ + PROGRAM, + + + /** A star basic macro is executed after the click. + */ + MACRO, + + + /** The presentation is stopped after the click. + */ + STOPPRESENTATION + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/presentation/CustomPresentation.idl b/offapi/com/sun/star/presentation/CustomPresentation.idl new file mode 100644 index 0000000000..c5b28f512a --- /dev/null +++ b/offapi/com/sun/star/presentation/CustomPresentation.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 . + */ + + + + module com { module sun { module star { module presentation { + + +/** A custom presentation can show the pages of its presentation in a + customized order. + +
Such a presentation can use certain pages more than once, + but it does not necessarily use all of the pages.
+ */ +published service CustomPresentation +{ + /** This is the container of the names of pages in this customized + presentation. + */ + interface com::sun::star::container::XIndexContainer; + + /** This gives you access to the name of this customized presentation. + */ + interface com::sun::star::container::XNamed; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/presentation/CustomPresentationAccess.idl b/offapi/com/sun/star/presentation/CustomPresentationAccess.idl new file mode 100644 index 0000000000..4f1fd47c4f --- /dev/null +++ b/offapi/com/sun/star/presentation/CustomPresentationAccess.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 . + */ + + + module com { module sun { module star { module presentation { + + +/** This is a container for custom presentations. + */ +published service CustomPresentationAccess +{ + /** This is the container of the custom presentations. + +Each instance in this container implements the service + CustomPresentation. +
The methods insertByName and replaceByName both replace + the name of the given CustomPresentation + */ + interface com::sun::star::container::XNameContainer; + + /** This interface lets you create empty instances of + the service CustomPresentation. + +
These services are needed for the insertByName
+ and replaceByName
methods of this service
+ com::sun::star::container::XNameContainer interface.
+ */
+ interface com::sun::star::lang::XSingleServiceFactory;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/presentation/DateTimeShape.idl b/offapi/com/sun/star/presentation/DateTimeShape.idl
new file mode 100644
index 0000000000..8f8b0063f2
--- /dev/null
+++ b/offapi/com/sun/star/presentation/DateTimeShape.idl
@@ -0,0 +1,41 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module presentation {
+
+
+/** This service is implemented by the date and time presentation shape.
+
+
Presentation shapes can be used in a presentation + page layouts and their position and size is by default set + by the presentation shapes on the com::sun::star::drawing::MasterPage. + */ +service DateTimeShape +{ + service com::sun::star::presentation::Shape; + + service com::sun::star::drawing::TextShape; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/presentation/DocumentSettings.idl b/offapi/com/sun/star/presentation/DocumentSettings.idl new file mode 100644 index 0000000000..a8bb64e80c --- /dev/null +++ b/offapi/com/sun/star/presentation/DocumentSettings.idl @@ -0,0 +1,99 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module presentation { + + +/** describes properties that apply to the whole presentation document. + */ +published service DocumentSettings +{ + /** This service documents the common properties of an office document + */ + service com::sun::star::document::Settings; + + + /** This service configures the header and footer settings during print + */ + [optional] service com::sun::star::document::HeaderFooterSettings; + + + /** provides access to the properties. + */ + interface com::sun::star::beans::XPropertySet; + + + /** enables or disables the printing of the drawing pages + */ + [optional, property] boolean IsPrintDrawing; + + /** enables or disables the printing of the notes pages + */ + [optional, property] boolean IsPrintNotes; + + /** enables or disables the printing of the handout pages + */ + [optional, property] boolean IsPrintHandout; + + /** enables or disables the printing of the outline pages + */ + [optional, property] boolean IsPrintOutline; + + /** enables or disables the printing of draw pages that + are marked hidden + */ + [optional, property] boolean IsPrintHiddenPages; + + // Note: the following properties exist also in + // css::drawing::DocumentSettings + + + /** enables or disables the fitting of the page to the printable + area during print + */ + [optional, property] boolean IsPrintFitPage; + + /** if this is true and the paper size for printing is larger than + the paper size of the printer than the content is tiled over + multiple pages. + */ + [optional, property] boolean IsPrintTilePage; + + /** is the number format used for page number fields + + Values 0-7 are supported. + + @see com::sun::star::style::NumberingType + */ + [optional, property] long PageNumberFormat; + + /** If this is true, the distance between two paragraphs is + the sum of ParaBottomMargin of the previous and ParaTopMargin of + the next paragraph. If false, only the greater of the two is + chosen. + */ + [optional, property] boolean ParagraphSummation; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/presentation/DrawPage.idl b/offapi/com/sun/star/presentation/DrawPage.idl new file mode 100644 index 0000000000..216513ff95 --- /dev/null +++ b/offapi/com/sun/star/presentation/DrawPage.idl @@ -0,0 +1,145 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module presentation { + + +/** This is the service provided by a com::sun::star::drawing::DrawPage inside a + PresentationDocument. + + @see PresentationDocument + */ +published service DrawPage +{ + service com::sun::star::drawing::DrawPage; + + /** Every page is a link target inside the document object model. + */ + service com::sun::star::document::LinkTarget; + + + /** specifies how the page change is triggered. + +
If this is 0, the user must click to start each object animation + and to change the page. If set to 1, the page is + automatically switched. If it is set to 2, all object effects run + automatically, but the user has to click on the page to change it.
+ */ + [property] long Change; + + + /** If the property com::sun::star::drawing::DrawPage::Change is set to 1, + this is the time in seconds this page is shown before switching + to the next page. + */ + [property] long Duration; + + /** If the property com::sun::star::drawing::DrawPage::Change is set to 1, + this is the time in seconds this page is shown before switching + to the next page, also permitting sub-second precision here. + */ + [optional, property] double HighResDuration; + + /** This is the effect that is used to fade in this page. + */ + [property] com::sun::star::presentation::FadeEffect Effect; + + + /** If this property is not ZERO, this number specifies a presentation + layout for this page. + */ + [property] short Layout; + + + /** Defines the speed of the fade-in effect of this page. + @see TransitionSpeed + */ + [property] com::sun::star::presentation::AnimationSpeed Speed; + + /** defines if a header presentation shape from the master page is visible + on this page. + */ + + [optional, property] boolean IsHeaderVisible; + + + /** defines the text that is displayed in a header textfield rendered on this + page. + */ + [optional, property] string HeaderText; + + + /** defines if a footer presentation shape from the master page is visible + on this page. + */ + + [optional, property] boolean IsFooterVisible; + + + /** defines the text that is displayed in a footer textfield rendered on this + page. + */ + [optional, property] string FooterText; + + + /** defines if a page number presentation shape from the master page is visible + on this page. + */ + + [optional, property] boolean IsPageNumberVisible; + + + /** defines if a date and time presentation shape from the master page is visible + on this page. + */ + + [optional, property] boolean IsDateTimeVisible; + + + /** defines if a date and time text field shows a fixed string value or the + current date on this page. + */ + + [optional, property] boolean IsDateTimeFixed; + + + /** defines the text that is displayed in a date and time textfield rendered on this + page. This value is only used ifIsDateTimeFixed
is `TRUE`.
+ */
+ [optional, property] string DateTimeText;
+
+
+ /** defines the format that is used to format a date and time text field on
+ this page. This is only used if IsDateTimeFixed
is `FALSE`.
+ */
+ [optional, property] long DateTimeFormat;
+
+ /** Specifies slide transition time in seconds.
+ @since LibreOffice 6.1
+ @see Speed
+ */
+ [property, optional] double TransitionDuration;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/presentation/EffectCommands.idl b/offapi/com/sun/star/presentation/EffectCommands.idl
new file mode 100644
index 0000000000..b84884c666
--- /dev/null
+++ b/offapi/com/sun/star/presentation/EffectCommands.idl
@@ -0,0 +1,63 @@
+/* -*- 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 .
+ */
+
+
+ module com { module sun { module star { module presentation {
+
+
+/**
+ @see ::com::sun::star::animations::XCommand
+*/
+constants EffectCommands
+{
+ /** the command is user defined
+ */
+ const short CUSTOM = 0;
+
+ /** the command is an OLE verb.
+ Required parameters are
+ "Verb" of type long that specifies the verb to execute.
+ */
+ const short VERB = 1;
+
+ /** the command starts playing on a media object.
+ Optional parameters are
+ "MediaTime" of type double that specifies the start
+ time in milliseconds. If not given, play continues at
+ last position known.
+ */
+ const short PLAY = 2;
+
+ /** the command toggles the pause status on a media object.
+ */
+ const short TOGGLEPAUSE = 3;
+
+ /** the command stops the animation on a media object
+ */
+ const short STOP = 4;
+
+ /** the command stops all currently running sound effects.
+ */
+ const short STOPAUDIO = 5;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/presentation/EffectNodeType.idl b/offapi/com/sun/star/presentation/EffectNodeType.idl
new file mode 100644
index 0000000000..3a6ff2f1ff
--- /dev/null
+++ b/offapi/com/sun/star/presentation/EffectNodeType.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 .
+ */
+
+
+ module com { module sun { module star { module presentation {
+
+
+/** This constants defines a type for an animation effect node.
+ Presentation shapes can be used in a presentation + page layouts and their position and size is by default set + by the presentation shapes on the com::sun::star::drawing::MasterPage. + */ +service FooterShape +{ + service com::sun::star::presentation::Shape; + + service com::sun::star::drawing::TextShape; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/presentation/GraphicObjectShape.idl b/offapi/com/sun/star/presentation/GraphicObjectShape.idl new file mode 100644 index 0000000000..f9430e558f --- /dev/null +++ b/offapi/com/sun/star/presentation/GraphicObjectShape.idl @@ -0,0 +1,41 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module presentation { + + +/** This service is implemented by the graphic presentation shape. + +
Presentation shapes can be used in a presentation + page layouts and their position and size is by default set + by the presentation shapes on the com::sun::star::drawing::MasterPage. + */ +published service GraphicObjectShape +{ + service com::sun::star::presentation::Shape; + + service com::sun::star::drawing::GraphicObjectShape; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/presentation/HandoutShape.idl b/offapi/com/sun/star/presentation/HandoutShape.idl new file mode 100644 index 0000000000..7c28297927 --- /dev/null +++ b/offapi/com/sun/star/presentation/HandoutShape.idl @@ -0,0 +1,41 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module presentation { + + +/** This service is implemented by the handout presentation shape. + +
Presentation shapes can be used in a presentation + page layouts and their position and size is by default set + by the presentation shapes on the com::sun::star::drawing::MasterPage. + */ +published service HandoutShape +{ + service com::sun::star::presentation::Shape; + + service com::sun::star::drawing::PageShape; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/presentation/HandoutView.idl b/offapi/com/sun/star/presentation/HandoutView.idl new file mode 100644 index 0000000000..caf91c9035 --- /dev/null +++ b/offapi/com/sun/star/presentation/HandoutView.idl @@ -0,0 +1,41 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module presentation { + + +/** This component integrates a view to a handout page inside a presentation + document into the desktop. + + @since OOo 1.1.2 + */ +published service HandoutView +{ + + /** this services offers the integration of this component into the + desktop and the basic interfaces and properties of a draw view. + */ + service com::sun::star::drawing::DrawingDocumentDrawView; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/presentation/HeaderShape.idl b/offapi/com/sun/star/presentation/HeaderShape.idl new file mode 100644 index 0000000000..7130a84c66 --- /dev/null +++ b/offapi/com/sun/star/presentation/HeaderShape.idl @@ -0,0 +1,41 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module presentation { + + +/** This service is implemented by the header presentation shape. + +
Presentation shapes can be used in a presentation + page layouts and their position and size is by default set + by the presentation shapes on the com::sun::star::drawing::MasterPage. + */ +service HeaderShape +{ + service com::sun::star::presentation::Shape; + + service com::sun::star::drawing::TextShape; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/presentation/NotesShape.idl b/offapi/com/sun/star/presentation/NotesShape.idl new file mode 100644 index 0000000000..058b2e8423 --- /dev/null +++ b/offapi/com/sun/star/presentation/NotesShape.idl @@ -0,0 +1,41 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module presentation { + + +/** This service is implemented by the notes presentation shape. + +
Presentation shapes can be used in a presentation + page layouts and their position and size is by default set + by the presentation shapes on the com::sun::star::drawing::MasterPage. + */ +published service NotesShape +{ + service com::sun::star::presentation::Shape; + + service com::sun::star::drawing::TextShape; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/presentation/NotesView.idl b/offapi/com/sun/star/presentation/NotesView.idl new file mode 100644 index 0000000000..35b8a8c693 --- /dev/null +++ b/offapi/com/sun/star/presentation/NotesView.idl @@ -0,0 +1,41 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module presentation { + + +/** This component integrates a view to a handout page inside a presentation + document into the desktop. + + @since OOo 1.1.2 + */ +published service NotesView +{ + + /** this services offers the integration of this component into the + desktop and the basic interfaces and properties of a draw view. + */ + service com::sun::star::drawing::DrawingDocumentDrawView; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/presentation/OLE2Shape.idl b/offapi/com/sun/star/presentation/OLE2Shape.idl new file mode 100644 index 0000000000..fdf573e2ae --- /dev/null +++ b/offapi/com/sun/star/presentation/OLE2Shape.idl @@ -0,0 +1,41 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module presentation { + + +/** This service is implemented by the OLE2 presentation shape. + +
Presentation shapes can be used in a presentation + page layouts and their position and size is by default set + by the presentation shapes on the com::sun::star::drawing::MasterPage. + */ +published service OLE2Shape +{ + service com::sun::star::presentation::Shape; + + service com::sun::star::drawing::OLE2Shape; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/presentation/OutlineView.idl b/offapi/com/sun/star/presentation/OutlineView.idl new file mode 100644 index 0000000000..b379d72656 --- /dev/null +++ b/offapi/com/sun/star/presentation/OutlineView.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 . + */ + + + module com { module sun { module star { module presentation { + + +/** This component integrates an outline view to a presentation + document into the desktop. + + In an outline view, the textual contents of presentation text objects + from all presentation pages are presented as a continuous outline text. + + @since OOo 1.1.2 + */ +published service OutlineView +{ + + /** this services offers the integration of this component into the + desktop. + */ + service com::sun::star::frame::Controller; + + + /** lets you access the window for this view + */ + interface com::sun::star::awt::XWindow; + + + + /** lets you access the properties of this service. + */ + interface com::sun::star::beans::XPropertySet; + + + /** This is the area that is currently visible. + */ + [readonly, property] com::sun::star::awt::Rectangle VisibleArea; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/presentation/OutlinerShape.idl b/offapi/com/sun/star/presentation/OutlinerShape.idl new file mode 100644 index 0000000000..e6b24b239a --- /dev/null +++ b/offapi/com/sun/star/presentation/OutlinerShape.idl @@ -0,0 +1,41 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module presentation { + + +/** This service is implemented by the outline presentation shape. + +
Presentation shapes can be used in a presentation + page layouts and their position and size is by default set + by the presentation shapes on the com::sun::star::drawing::MasterPage. + */ +published service OutlinerShape +{ + service com::sun::star::presentation::Shape; + + service com::sun::star::drawing::TextShape; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/presentation/PageShape.idl b/offapi/com/sun/star/presentation/PageShape.idl new file mode 100644 index 0000000000..7eee34944c --- /dev/null +++ b/offapi/com/sun/star/presentation/PageShape.idl @@ -0,0 +1,41 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module presentation { + + +/** This service is implemented by the page presentation shape. + +
Presentation shapes can be used in a presentation + page layouts and their position and size is by default set + by the presentation shapes on the com::sun::star::drawing::MasterPage. + */ +published service PageShape +{ + service com::sun::star::presentation::Shape; + + service com::sun::star::drawing::PageShape; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/presentation/ParagraphTarget.idl b/offapi/com/sun/star/presentation/ParagraphTarget.idl new file mode 100644 index 0000000000..63d3385edc --- /dev/null +++ b/offapi/com/sun/star/presentation/ParagraphTarget.idl @@ -0,0 +1,41 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module presentation { + + +/** an event has a source that causes an event to be fired and a trigger + that defines under which condition an event should be raised and + an offset if the event should be raised a defined amount of time + after the event is triggered. +*/ +struct ParagraphTarget +{ + /** */ + com::sun::star::drawing::XShape Shape; + + /** */ + short Paragraph; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/presentation/Presentation.idl b/offapi/com/sun/star/presentation/Presentation.idl new file mode 100644 index 0000000000..88ebb36068 --- /dev/null +++ b/offapi/com/sun/star/presentation/Presentation.idl @@ -0,0 +1,125 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module presentation { + + +/** This service is a presentation that is available from a + PresentationDocument via the + XPresentationSupplier interface. + */ +published service Presentation +{ + /** lets you start and stop a presentation. + +
It also gives you access to the more advanced features, like + rehearse timing and the live modes. + */ + interface com::sun::star::presentation::XPresentation; + + + /** This is the standard interface for access to the properties from this + service. + */ + interface com::sun::star::beans::XPropertySet; + + + /** enables/disables the shape animations. + */ + [property] boolean AllowAnimations; + + + /** If this string is not empty, it contains the name of a customized + show that is used for the presentation. + */ + [property] string CustomShow; + + + /** If this string is not empty, it contains the name of the page where + the presentation is started. + */ + [property] string FirstPage; + + + /** If this property is set to `TRUE`, the window of the presentation is + always on top of all other windows. + */ + [property] boolean IsAlwaysOnTop; + + + /** If this property is `TRUE`, all pages are changed automatically. + +
This overrides the properties of the pages.
+ */ + [property] boolean IsAutomatic; + + + /** If this property is set to `TRUE`, the presentation is repeated + endlessly. + */ + [property] boolean IsEndless; + + + /** If this property is set to `TRUE`, the presentation runs in + full-screen mode. + */ + [property] boolean IsFullScreen; + + + /** With this property, you can set the presentation to live mode. +Implementations that have no live mode capability may ignore this + property and always return false. + */ + [property] boolean IsLivePresentation; + + + /** If this property is `TRUE`, the mouse is visible during the + presentation. + */ + [property] boolean IsMouseVisible; + + + /** is the duration of the black screen after the + presentation has finished. + +
If this is set to 0
, no black screen is shown.
You can draw on the presentation with this pen.
+ */ + [property] boolean UsePen; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/presentation/Presentation2.idl b/offapi/com/sun/star/presentation/Presentation2.idl new file mode 100644 index 0000000000..ae78057071 --- /dev/null +++ b/offapi/com/sun/star/presentation/Presentation2.idl @@ -0,0 +1,43 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module presentation { + + +/** enhances the Presentation service to give access to a XPresentation2 interface. + + @since OOo 3.0 +*/ +service Presentation2 +{ + service Presentation; + + /** enhances the XPresentation interface to give access to + a XSlideShowController and + to start a presentation with arguments. + */ + interface com::sun::star::presentation::XPresentation2; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/presentation/PresentationDocument.idl b/offapi/com/sun/star/presentation/PresentationDocument.idl new file mode 100644 index 0000000000..74b941d13d --- /dev/null +++ b/offapi/com/sun/star/presentation/PresentationDocument.idl @@ -0,0 +1,76 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module presentation { + + +/** This is the service provided by a presentation document. + */ +service PresentationDocument +{ + /** This is a basic service for a drawing document. + +The following services are available at the + com::sun::star::lang::XMultiServiceFactory + only in a presentation application + +
This color is used if the property com::sun::star::drawing::Shape::DimPrev + is `TRUE` and com::sun::star::drawing::Shape::DimHide is `FALSE`.
+ */ + [property] com::sun::star::util::Color DimColor; + + + /** If this property and the property com::sun::star::drawing::Shape::DimPrev + are both `TRUE`, the shape is hidden instead of dimmed to a color. + */ + [property] boolean DimHide; + + + /** If this property is `TRUE`, this shape is dimmed to the color of + property com::sun::star::drawing::Shape::DimColor after executing its + animation effect. + */ + [property] boolean DimPrevious; + + + /** selects the animation effect of this shape. + */ + [property] com::sun::star::presentation::AnimationEffect Effect; + + + /** If this is a default presentation object and if it is empty, + this property is `TRUE`. + */ + [property] boolean IsEmptyPresentationObject; + + + /** If this is a presentation object, this property is `TRUE`. +Presentation objects are objects like TitleTextShape and + OutlinerShape.
+ */ + [readonly, property] boolean IsPresentationObject; + + + /** selects an action performed after the user clicks + on this shape. + */ + [property] com::sun::star::presentation::ClickAction OnClick; + + + /** If this property is `TRUE`, the sound of this shape is played in + full. + +The default behavior is to stop the sound after completing the + animation effect.
+ */ + [property] boolean PlayFull; + + + /** This is the position of this shape in the order of the shapes which + can be animated on its page. + +The animations are executed in this order, starting at the shape + with the PresentationOrder "one." You can change the order by + changing this number. Setting it to "one" makes this shape the + first shape in the execution order for the animation effects.
+ */ + [property] long PresentationOrder; + + + /** This is the URL to a sound file that is played while the animation + effect of this shape is running. + */ + [property] string Sound; + + + /** If this property is set to `TRUE`, a sound is played while the + animation effect is executed. + */ + [property] boolean SoundOn; + + + /** This is the speed of the animation effect. + */ + [property] com::sun::star::presentation::AnimationSpeed Speed; + + + /** This is the animation effect for the text inside this shape. + */ + [property] com::sun::star::presentation::AnimationEffect TextEffect; + + + /** specifies an "OLE2" verb for the ClickAction VERB in + the property com::sun::star::drawing::Shape::OnClick. + */ + [property] long Verb; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/presentation/ShapeAnimationSubType.idl b/offapi/com/sun/star/presentation/ShapeAnimationSubType.idl new file mode 100644 index 0000000000..927210b66e --- /dev/null +++ b/offapi/com/sun/star/presentation/ShapeAnimationSubType.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 . + */ + + + module com { module sun { module star { module presentation { + + +/** Defines the whole shape or a subitem as a target for an + effect. + + @see ::com::sun::star::animations::XAnimate::SubItem + @see ::com::sun::star::animations::XIterateContainer::SubItem +*/ +constants ShapeAnimationSubType +{ + /** the whole shape is a target + */ + const short AS_WHOLE = 0; + + /** only the background is a target. +Presentation shapes can be used in a presentation + page layouts and their position and size is by default set + by the presentation shapes on the com::sun::star::drawing::MasterPage. + */ +service SlideNumberShape +{ + service com::sun::star::presentation::Shape; + + service com::sun::star::drawing::TextShape; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/presentation/SlideShow.idl b/offapi/com/sun/star/presentation/SlideShow.idl new file mode 100644 index 0000000000..84279c7f76 --- /dev/null +++ b/offapi/com/sun/star/presentation/SlideShow.idl @@ -0,0 +1,26 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module presentation { + +service SlideShow : XSlideShow; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/presentation/SlidesView.idl b/offapi/com/sun/star/presentation/SlidesView.idl new file mode 100644 index 0000000000..b02d85a2be --- /dev/null +++ b/offapi/com/sun/star/presentation/SlidesView.idl @@ -0,0 +1,62 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module presentation { + + +/** This component integrates a slides view to a presentation + document into the desktop. + + In a slides view, the pages of a presentation document are displayed + to the user as thumbnails and can be arranged and cut/copied to/from + the clipboard. + + @since OOo 1.1.2 + */ +published service SlidesView +{ + + /** this services offers the integration of this component into the + desktop. + */ + service com::sun::star::frame::Controller; + + + /** lets you access the window for this view + */ + interface com::sun::star::awt::XWindow; + + + + /** lets you access the properties of this service. + */ + interface com::sun::star::beans::XPropertySet; + + + /** This is the area that is currently visible. + */ + [readonly, property] com::sun::star::awt::Rectangle VisibleArea; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/presentation/SubtitleShape.idl b/offapi/com/sun/star/presentation/SubtitleShape.idl new file mode 100644 index 0000000000..6e0d77cecd --- /dev/null +++ b/offapi/com/sun/star/presentation/SubtitleShape.idl @@ -0,0 +1,41 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module presentation { + + +/** This service is implemented by the subtitle presentation shape. + +
Presentation shapes can be used in a presentation
+ page layouts and their position and size is by default set
+ by the presentation shapes on the com::sun::star::drawing::MasterPage.
+ */
+published service SubtitleShape
+{
+ service com::sun::star::presentation::Shape;
+
+ service com::sun::star::drawing::TextShape;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/presentation/TextAnimationType.idl b/offapi/com/sun/star/presentation/TextAnimationType.idl
new file mode 100644
index 0000000000..b4bba4ad67
--- /dev/null
+++ b/offapi/com/sun/star/presentation/TextAnimationType.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 .
+ */
+
+
+ module com { module sun { module star { module presentation {
+
+
+/** Defines how a target ::com::sun::star::text::XTextRange
+ is animated inside an ::com::sun::star::animations::XIterateContainer.
+
+ This is stored inside the attribute
+ ::com::sun::star::animations::XIterateContainer::IterateType.
+
+ @see ::com::sun::star::animations::XIterateContainer
+*/
+constants TextAnimationType
+{
+ /** the text is animated paragraph by paragraph
+ */
+ const short BY_PARAGRAPH = 0;
+
+ /** the text is animated word by word
+ */
+ const short BY_WORD = 1;
+
+ /** the text is animated letter by letter.
+ */
+ const short BY_LETTER = 2;
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/presentation/TitleTextShape.idl b/offapi/com/sun/star/presentation/TitleTextShape.idl
new file mode 100644
index 0000000000..a9e7df0906
--- /dev/null
+++ b/offapi/com/sun/star/presentation/TitleTextShape.idl
@@ -0,0 +1,41 @@
+/* -*- 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 .
+ */
+
+
+
+ module com { module sun { module star { module presentation {
+
+
+/** This service is implemented by the title and subtitle presentation shape.
+
+
Presentation shapes can be used in a presentation + page layouts and their position and size is by default set + by the presentation shapes on the com::sun::star::drawing::MasterPage. + */ +published service TitleTextShape +{ + service com::sun::star::presentation::Shape; + + service com::sun::star::drawing::TextShape; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/presentation/TransitionFactory.idl b/offapi/com/sun/star/presentation/TransitionFactory.idl new file mode 100644 index 0000000000..9e3b9c5815 --- /dev/null +++ b/offapi/com/sun/star/presentation/TransitionFactory.idl @@ -0,0 +1,27 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module presentation { + +service TransitionFactory : XTransitionFactory; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/presentation/XCustomPresentationSupplier.idl b/offapi/com/sun/star/presentation/XCustomPresentationSupplier.idl new file mode 100644 index 0000000000..3c0526827a --- /dev/null +++ b/offapi/com/sun/star/presentation/XCustomPresentationSupplier.idl @@ -0,0 +1,44 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module presentation { + + +/** must be supported to provide access to customized + presentations of a presentation document. + + @see XCustomPresentation + @see XCustomPresentationAccess + */ +published interface XCustomPresentationSupplier: com::sun::star::uno::XInterface +{ + + /** @returns + the CustomPresentation. + */ + com::sun::star::container::XNameContainer getCustomPresentations(); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/presentation/XHandoutMasterSupplier.idl b/offapi/com/sun/star/presentation/XHandoutMasterSupplier.idl new file mode 100644 index 0000000000..4ccaab7be5 --- /dev/null +++ b/offapi/com/sun/star/presentation/XHandoutMasterSupplier.idl @@ -0,0 +1,37 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module presentation { + + +/** returns the handout master page for this document + */ +published interface XHandoutMasterSupplier: com::sun::star::uno::XInterface +{ + /** returns the DrawPage. + */ + com::sun::star::drawing::XDrawPage getHandoutMasterPage(); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/presentation/XPresentation.idl b/offapi/com/sun/star/presentation/XPresentation.idl new file mode 100644 index 0000000000..dc2274a015 --- /dev/null +++ b/offapi/com/sun/star/presentation/XPresentation.idl @@ -0,0 +1,52 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module presentation { + + +/** With this interface you can control any object that implements + a Presentation. +*/ +published interface XPresentation: com::sun::star::uno::XInterface +{ + + /** The presentation is shown in full-screen and started from the + beginning. + */ + void start(); + + + /** The presentation is stopped and the full-screen mode will end. + */ + void end(); + + + /** Starts the presentation from the beginning and shows the + actual running time to the user. + */ + void rehearseTimings(); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/presentation/XPresentation2.idl b/offapi/com/sun/star/presentation/XPresentation2.idl new file mode 100644 index 0000000000..3557557580 --- /dev/null +++ b/offapi/com/sun/star/presentation/XPresentation2.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 . + */ + + + module com { module sun { module star { module presentation { + + +/** enhances the XPresentation interface to give access to + a XSlideShowController and + to start a presentation with arguments. + + @since OOo 3.0 +*/ +interface XPresentation2 +{ + + /** allows to start and stop the presentation. + */ + interface XPresentation; + + + /** gives access to the properties of the slide show. + */ + interface com::sun::star::beans::XPropertySet; + + + /** start the slide show with the given arguments. + All arguments override the values from Presentation. + */ + void startWithArguments( [in] sequence< ::com::sun::star::beans::PropertyValue > Arguments ); + + + /** returns true if the slide show is currently running */ + boolean isRunning(); + + + /** if the slide show is running, this returns a controller object to + control the running slide show. */ + XSlideShowController getController(); +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/presentation/XPresentationPage.idl b/offapi/com/sun/star/presentation/XPresentationPage.idl new file mode 100644 index 0000000000..78b7977796 --- /dev/null +++ b/offapi/com/sun/star/presentation/XPresentationPage.idl @@ -0,0 +1,43 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module presentation { + + +/** describes a page from a presentation. + + @see com::sun::star::drawing::DrawPage + */ +published interface XPresentationPage: com::sun::star::drawing::XDrawPage +{ + + /** return the note page from the current page in the presentation, + the name for the note page in the user interface note view, and one of the views + from a presentation page. + */ + com::sun::star::drawing::XDrawPage getNotesPage(); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/presentation/XPresentationSupplier.idl b/offapi/com/sun/star/presentation/XPresentationSupplier.idl new file mode 100644 index 0000000000..c0d3c525b3 --- /dev/null +++ b/offapi/com/sun/star/presentation/XPresentationSupplier.idl @@ -0,0 +1,40 @@ +/* -*- 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 . + */ + + + + module com { module sun { module star { module presentation { + + +/** controls a presentation directly. This supplier will do this. + */ +published interface XPresentationSupplier: com::sun::star::uno::XInterface +{ + + /** + @returns an interface to control a presentation. + */ + com::sun::star::presentation::XPresentation getPresentation(); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/presentation/XShapeEventListener.idl b/offapi/com/sun/star/presentation/XShapeEventListener.idl new file mode 100644 index 0000000000..24657e3312 --- /dev/null +++ b/offapi/com/sun/star/presentation/XShapeEventListener.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 . + */ + +module com { module sun { module star { module presentation { + +/** Listener interface to receive shape-specific events.
+ + @since OOo 2.4 + */ +interface XShapeEventListener : ::com::sun::star::lang::XEventListener +{ + /** Notify a clicked shape.
+ + This method notifies the listener that a shape was + clicked.
+ + @param xShape + The shape that was clicked upon. + + @param aOriginalEvent + The original mouse click event that generated this notification. + */ + void click( [in] ::com::sun::star::drawing::XShape xShape, + [in] ::com::sun::star::awt::MouseEvent aOriginalEvent ); +}; + +}; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/presentation/XSlideShow.idl b/offapi/com/sun/star/presentation/XSlideShow.idl new file mode 100644 index 0000000000..ca31d88d8e --- /dev/null +++ b/offapi/com/sun/star/presentation/XSlideShow.idl @@ -0,0 +1,327 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module presentation { + +/** Slide show interface to perform slide show presentations.
+ + This interface provides the necessary methods to run and control a + slide show from a given set of XDrawPage slides. The slide show can + be displayed simultaneously on multiple targets.
+ + Note: To control a running slide show inside a presentation, please + use XPresentation2 and XSlideShowController. + + @since OOo 3.0 + */ +interface XSlideShow : ::com::sun::star::uno::XInterface +{ + /** Trigger the next effect of the slide show.
+ + This method triggers the next effect on the currently + displayed slide. If there is currently no slide show running, + this method does nothing. If there are no more effects on the + current slide, a possible slide transition effect is issued + and the next slide is displayed.
+ + @return `TRUE`, if the next effect was successfully + triggered. This method returns `FALSE`, if there is no show + running, the last effect on the last slide was already + triggered, or the implementation failed to trigger the next + effect. + */ + boolean nextEffect(); + + /** Undo the last effect in the main sequence of the slide show.
+ + The current slide is displayed as if the last user-triggered effect + has never been triggered. If there is no previous effect on the + current slide then slideEnded(true) is called at the registered + XSlideShowListener objects, which can then trigger a change to the + previous slide. Note that this command is executed asynchronously. + Multiple calls to update() may be necessary to complete its execution. + If there is currently no slide show running, this method does + nothing.
+ + @return `TRUE`, if the previous effect was successfully + triggered. This method returns `FALSE`, if there is no show + running, the first effect on the first slide was not yet + triggered, or the implementation failed to trigger the previous + effect. + */ + boolean previousEffect(); + + /** Start a shape-intrinsic animation or activity.
+ + This method starts an animation or activity intrinsic to the + given shape. Shape-intrinsic activities are things like video + playback for multimedia shapes, sounds, GIF animations and + drawing layer animations (flipping between shapes in a group, + or scroll text).
+ + @param xShape + The shape to start the activity for + */ + boolean startShapeActivity( [in] ::com::sun::star::drawing::XShape xShape ); + + /** Stop a shape-intrinsic animation or activity.
+ + This method stops an animation or activity intrinsic to the + given shape. Shape-intrinsic activities are things like video + playback for multimedia shapes, sounds, GIF animations and + drawing layer animations (flipping between shapes in a group, + or scroll text).
+ + @param xShape + The shape to stop the activity for + */ + boolean stopShapeActivity( [in] ::com::sun::star::drawing::XShape xShape ); + + /** Jump to the given slide.
+ + This method ends all effects on the current slide, displays a + possible slide transition, followed by the given slide. If the + current slide is equal to the requested slide here, this + method does nothing (this especially means, that any currently + active effects will remain running).
+ + @param xSlide + The slide to display. + + @param xDrawPages + For future use. + + @param AnimationNode + The animation node determine the animations to display. + + @param aProperties + Sequence of property values, which influence the way the + slide is displayed. Currently, the + following values are recognized: +
+ + This method either pauses the slide show (all currently + running effects are stopped), or starts a previously stopped + show again (all paused effects start again).
+ + @param bPauseShow + When `TRUE`, the show is paused. When `FALSE`, and the show + was paused, it starts running at the paused position again. + + @return `TRUE`, if the requested action was successfully + performed. + */ + boolean pause( [in] boolean bPauseShow ); + + /** Query the currently displayed slide.
+ + @return the instance of the current slide. If there's no + slide show running at the moment, this method returns an + empty reference. + */ + ::com::sun::star::drawing::XDrawPage getCurrentSlide(); + + /** Register drawn polygons in presentation mode + + @param xDocFactory + + */ + + void registerUserPaintPolygons([in] ::com::sun::star::lang::XMultiServiceFactory xDocFactory); + + /** Change a property of the slide show.
+ + @param aShowProperty + Property values, which influence the way the slides are + shown. Note that this might possibly be a subset of what is + supported on show(). Currently, the following values + are recognized: +
+ + This method adds a view to the slide show. After successful + completion of this method, the slide show will be visible on + the added view, scaled according to the view's output area.
+ + @param xView + The view to add + + @return `TRUE`, if the view has been successfully + added. Otherwise, `FALSE` is returned (e.g. if the view is + already added). + */ + boolean addView( [in] XSlideShowView xView ); + + /** Remove view from the slide show.
+ + This method removes the given view from the slide show. After + successful completion of this method, the slide show will + cease to display on this view.
+ + @param xView + View to remove + + @return `TRUE`, if the view was successfully removed, `FALSE` + otherwise (e.g. if the view was not added in the first place). + */ + boolean removeView( [in] XSlideShowView xView ); + + /** Update the animations.
+ + This method updates all currently active slide animations. The + XSlideShow implementations do not render animations + automatically, but must be called from their clients. This + allows for various update mechanisms to be employed, ranging + from a dedicated rendering thread, over timer-based updates, + to rendering in an idle function. Either way, the client of + this interface decide about the details.
+ + @param nNextTimeout + Via this value, the implementation can return a timeout value, + denoting the maximal time span that must not be exceeded from + the return of this method to the next update call. Otherwise, + the animations might show visible jerks. + + @return `TRUE`, if further update calls are required. If + `FALSE` is returned, no further update calls are necessary, + until anyone of the other interface methods is called (most + notably, the next/previousSlide(), nextEffect() and show() + methods will nearly always make further update() calls + necessary). + */ + boolean update( [out] double nNextTimeout ); + + /** Add a slide show listener.
+ + This method adds a listener to the slide show, which will get + notified when a registered shape is clicked upon, or a new + slide is about to be displayed. Note that the listeners will + not be notified, when the slide change is directly + requested by one of the nextSlide(), previousSlide() or + displaySlide() methods. + + @param xListener + Listener to add. + */ + void addSlideShowListener( [in] XSlideShowListener xListener ); + + /** Revoke a previously registered slide show listener.
+ + @param xListener + Listener interface to revoke from being called. + */ + void removeSlideShowListener( [in] XSlideShowListener xListener ); + + /** Add a shape event listener.
+ + This method adds a listener to the slide show, which will get + notified when a mouse click is performed on the given + shape. This can be used by clients of the slide show to + trigger external actions, such as jumps to different slides.
+ + @param xListener + Listener to add. + + @param xShape + Shape to register a listener for. + */ + void addShapeEventListener( + [in] XShapeEventListener xListener, + [in] ::com::sun::star::drawing::XShape xShape ); + + /** Revoke a previously registered shape event listener.
+ + @param xListener + Listener interface to revoke from being called. + + @param xShape + Shape for which the listener should be revoked. + */ + void removeShapeEventListener( + [in] XShapeEventListener xListener, + [in] ::com::sun::star::drawing::XShape xShape ); + + /** Set a special mouse cursor for a shape.
+ + This method requests the slide show to display a special + cursor, whenever the mouse is hovering over the given shape.
+ + @param xShape + Shape to display a special mouse cursor. + + @param nPointerShape + Type of mouse cursor to display. Must be one of the + ::com::sun::star::awt::SystemPointer values. + */ + void setShapeCursor( + [in] ::com::sun::star::drawing::XShape xShape, + [in] short nPointerShape ); + +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/presentation/XSlideShowController.idl b/offapi/com/sun/star/presentation/XSlideShowController.idl new file mode 100644 index 0000000000..837a70329b --- /dev/null +++ b/offapi/com/sun/star/presentation/XSlideShowController.idl @@ -0,0 +1,258 @@ +/* -*- 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 . + */ + + + module com { module sun { module star { module presentation { + + +/** interface to control a running slide show. + + @see XPresentation2 + @since OOo 3.0 +*/ +interface XSlideShowController +{ + + /** returns true if the slide show is still running. + If this returns false, this component is already disposed. + You can start a new slide show and get a new instance + of XSlideShowController from XPresentation2 + */ + boolean isRunning(); + + + /** @returns + the number of slides in this slide show. + + @see getSlideByIndex + */ + long getSlideCount(); + + + /** gives access to the slides that will be shown in this slide show. + +
Slides are returned in the order they will be displayed in the + presentation which can be different than the orders of slides in + the document. Not all slides must be present and each slide can + be used more than once. + + @returns + the slide at the specified index. + + @param Index + specifies the position in the list of slides that are displayed + in this slide show. The first index is 0. + + @throws com::sun::star::lang::IndexOutOfBoundsException + if the index is not valid. + + */ + ::com::sun::star::drawing::XDrawPage getSlideByIndex( [in] long Index ) + raises( com::sun::star::lang::IndexOutOfBoundsException ); + + + /** adds a listener that receives events while the slide show is running. */ + void addSlideShowListener( [in] XSlideShowListener Listener ); + + + /** removes a listener. */ + void removeSlideShowListener( [in] XSlideShowListener Listener ); + + + /** start next effects that wait on a generic trigger. +
If no generic triggers are waiting the next + slide will be displayed. + */ + void gotoNextEffect(); + + + /** undo the last effects that were triggered by a generic trigger. +
If there is no previous effect that can be undone then the + previous slide will be displayed. + */ + void gotoPreviousEffect(); + + + /** goto and display first slide */ + void gotoFirstSlide(); + + + /** goto and display next slide. +
Remaining effects on the current slide will be skipped.*/ + void gotoNextSlide(); + + + /** goto and display previous slide. +
Remaining effects on the current slide will be skipped.*/ + void gotoPreviousSlide(); + + + /** goto and display last slide. +
Remaining effects on the current slide will be skipped.*/ + void gotoLastSlide(); + + + /** goto the given textual bookmark */ + void gotoBookmark( [in] string Bookmark ); + + + /** jumps to the given slide. +
The slide can also be a slide that would normally not be shown during + the current slide show. + + @throws com::sun::star::lang::IllegalArgumentException + if the given page is not a valid slide of the document for + which this slide show is started. Also not allowed are master, + notes and handout pages. + */ + void gotoSlide( [in] com::sun::star::drawing::XDrawPage Page ) + raises( com::sun::star::lang::IllegalArgumentException ); + + + /** jumps to the slide at the given index. + */ + void gotoSlideIndex( [in] long Index ); + + + /** stop all currently played sounds */ + void stopSound(); + + + /** pauses the slide show. All effects are paused. +
The slide show continues on next user input or if + resume() is called. + */ + void pause(); + + + /** resumes a paused slide show. + */ + void resume(); + + + /** returns `TRUE` if the slide show is currently paused. + + @see pause() + @see resume() + */ + boolean isPaused(); + + + /** pauses the slide show and blanks the screen in the given color. +
Change attribute Pause to false to unpause + the slide show. + */ + void blankScreen( [in] long Color ); + + + /** activates the user interface of this slide show. + + @see deactivate() + @see isActive() + */ + void activate(); + + /** can be called to deactivate the user interface of this slide show. + +
A deactivated
+ @see activate()
+ @see isActive()
+ */
+ void deactivate();
+
+
+ /** determines if the slide show is active.
+
+ @return
+ `TRUE` for UI active slide show
+
+ `FALSE` otherwise
+ */
+ boolean isActive();
+
+
+ /** returns slide that is currently displayed */
+ com::sun::star::drawing::XDrawPage getCurrentSlide();
+
+
+ /** returns the index of the current slide. */
+ long getCurrentSlideIndex();
+
+
+ /** the index for the slide that is displayed next. */
+ long getNextSlideIndex();
+
+
+ /** returns `TRUE` if the slide show was started to run endlessly.
+ */
+ boolean isEndless();
+
+
+ /** Returns `TRUE` if the slide show was started in full-screen mode.
+ */
+ boolean isFullScreen();
+
+
+ /** If this attribute is set to `TRUE`, the window of the slide show is
+ always on top of all other windows.
+ */
+ [attribute] boolean AlwaysOnTop;
+
+
+ /** If this attribute is `TRUE`, the mouse is visible during the
+ slide show.
+ */
+ [attribute] boolean MouseVisible;
+
+
+ /** If this is `TRUE`, a pen is shown during presentation.
+
+
You can draw on the presentation with this pen.
+ */ + [attribute] boolean UsePen; + + + /** This attribute changes the color of the pen. */ + [attribute] long PenColor; + + /** This attribute changes the width of the pen. + + @since LibreOffice 4.2 + */ + [attribute] double PenWidth; + + + /** This method clears ink drawing from the slideshow being played + + @since LibreOffice 7.2 + */ + void setEraseAllInk( [in] boolean EraseAllInk ); + + /** returns the actual XSlideShow instance that runs the + slide show. ++ + @see XShapeEventListener + + @since OOo 3.0 + */ +interface XSlideShowListener : ::com::sun::star::animations::XAnimationListener +{ + /** Notify that the slide show is paused + */ + void paused(); + + /** Notify that the slide show is resumed from a paused state */ + void resumed(); + + /** Notify that a new slide starts to become visible. */ + void slideTransitionStarted(); + + /** Notify that the slide transition of the current slide ended. */ + void slideTransitionEnded(); + + /** Notify that the last animation from the main sequence + of the current slide has ended. */ + void slideAnimationsEnded(); + + /** Notify that the current slide has ended, + e.g. the user has clicked on the slide. + Calling displaySlide() twice will not issue this event. + @param reverse + For the default order (forward) this flag is `FALSE`. + When the main sequence was traversed in reverse order then this + flag is `TRUE`. + */ + void slideEnded( [in] boolean reverse ); + + /** Notifies that a hyperlink has been clicked. + @param hyperLink hyperlink URL + */ + void hyperLinkClicked( [in] string hyperLink ); +}; + +}; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/presentation/XSlideShowNavigationListener.idl b/offapi/com/sun/star/presentation/XSlideShowNavigationListener.idl new file mode 100644 index 0000000000..683c1b6c63 --- /dev/null +++ b/offapi/com/sun/star/presentation/XSlideShowNavigationListener.idl @@ -0,0 +1,28 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */ +/* + * 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/. + */ + +module com { module sun { module star { module presentation { + +/** Listener interface with navigation support to receive global slide show events.
+ + @see XSlideShowListener + + @since LibreOffice 7.6 + */ +interface XSlideShowNavigationListener : com::sun::star::presentation::XSlideShowListener +{ + /** Notify that the context menu has been requested + @param point point to show the context menu + */ + void contextMenuShow( [in] com::sun::star::awt::Point point ); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ diff --git a/offapi/com/sun/star/presentation/XSlideShowView.idl b/offapi/com/sun/star/presentation/XSlideShowView.idl new file mode 100644 index 0000000000..056a7e2521 --- /dev/null +++ b/offapi/com/sun/star/presentation/XSlideShowView.idl @@ -0,0 +1,168 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module presentation { + +/** View interface to display slide show presentations on.
+ + This interface provides the necessary methods to enable an + XSlideShow interface to display a presentation. The slide show can + be displayed simultaneously on multiple views
+ + @since OOo 2.4 + */ +interface XSlideShowView : ::com::sun::star::uno::XInterface +{ + /** Get view canvas.
+ + This method gets the underlying XCanvas to display on this + view.
+ + @return XSpriteCanvas to display on. Must be valid, and the + same object, as long as this view is added to any slide show. + */ + ::com::sun::star::rendering::XSpriteCanvas getCanvas(); + + /** This method clears the whole view area. + + The slide show uses this method to fully erase the view + content. Since the slide show has no notion of view size, this + is the only reliable way to wholly clear the view. + */ + void clear(); + + /** Query the current transformation matrix for this view.
+ + This method returns the transformation matrix of the + view. When notified via the transformation change listener, + the show will be displayed using the new transformation.
+ + @return the view transformation matrix. Note that the slide + show itself will paint all slides as one-by-one boxes, one + therefore has to at least provide a scaling at this matrix to + blow this up to the desired device pixel size (640 times 480, + or whatever size the output view has). Furthermore, the aspect + ratio of the scaling should match that of the slides + (otherwise, the slides will be scaled anisotropically). + */ + ::com::sun::star::geometry::AffineMatrix2D getTransformation(); + + /** Query the current translation offset used to fill the physical screen while keeping aspect ratio.
+ + This method returns the translation offset of the view of the + view.
+ + @return the slideshowview will be transformed in order to fill + the physical screen while keeping the aspect ratio. + In order to do so, we need to add a black border on the side. This method + return an IntegerSize2D which represent (x, y) translation. + x represents the width of the border on the left, for example. + */ + ::com::sun::star::geometry::IntegerSize2D getTranslationOffset(); + + /** Add a listener to get notified when the transformation matrix changes.
+ + This method registers a listener with the view, which will get + called every time the transformation matrix changes.
+ + @param xListener + Listener interface to call when the transformation matrix changes. + */ + void addTransformationChangedListener( [in] ::com::sun::star::util::XModifyListener xListener ); + + /** Revoke a previously registered transformation matrix change listener.
+ + @param xListener + Listener interface to revoke from being called. + */ + void removeTransformationChangedListener( [in] ::com::sun::star::util::XModifyListener xListener ); + + /** Add a listener to get notified when this view needs a repaint.
+ + This method registers a listener with the view, which will get + called every time the view needs an update of their screen + representation.
+ + @param xListener + Listener interface to call when the view needs a repaint. + */ + void addPaintListener( [in] ::com::sun::star::awt::XPaintListener xListener ); + + /** Revoke a previously registered paint listener.
+ + @param xListener + Listener interface to revoke from being called. + */ + void removePaintListener( [in] ::com::sun::star::awt::XPaintListener xListener ); + + /** Add a mouse listener to the view.
+ + This method registers a listener with the view, which will get + called every time the mouse is clicked on the view.
+ + @param xListener + Listener interface to call when the mouse is clicked on the view. + */ + void addMouseListener( [in] com::sun::star::awt::XMouseListener xListener ); + + /** Revoke a previously registered mouse listener.
+ + @param xListener + Listener interface to revoke from being called. + */ + void removeMouseListener( [in] com::sun::star::awt::XMouseListener xListener ); + + /** Add a mouse motion listener to the view.
+ + This method registers a listener with the view, which will get + called every time the mouse is moved on the view.
+ + @param xListener + Listener interface to call when the mouse is moved on the view. + */ + void addMouseMotionListener( [in] com::sun::star::awt::XMouseMotionListener xListener ); + + /** Revoke a previously registered mouse move listener.
+ + @param xListener + Listener interface to revoke from being called. + */ + void removeMouseMotionListener( [in] com::sun::star::awt::XMouseMotionListener xListener ); + + /** Change the mouse cursor currently in effect.
+ + This method changes the mouse cursor currently in effect, for + this view.
+ + @param nPointerShape + New mouse cursor shape to display for this view. Must be from + the ::com::sun::star::awt::SystemPointer constant group. + */ + void setMouseCursor( [in] short nPointerShape ); + + /** Get rectangle defining area inside of canvas device which + this slide show view uses. + */ + ::com::sun::star::awt::Rectangle getCanvasArea(); +}; + +}; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/presentation/XTransition.idl b/offapi/com/sun/star/presentation/XTransition.idl new file mode 100644 index 0000000000..5ff9e42ac8 --- /dev/null +++ b/offapi/com/sun/star/presentation/XTransition.idl @@ -0,0 +1,49 @@ +/* -*- 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 . + */ + +module com { module sun { module star { + +module rendering { interface XBitmap; }; + +module presentation { + +interface XSlideShowView; + +/** Transition interface to render custom transitions over time.
+ + @since OOo 2.4 + */ +interface XTransition : ::com::sun::star::uno::XInterface +{ + /** Update transition on screen to given time state.
+ + @param t + Time on the transition timeline to display. Must be in the + [0,1] range. + */ + void update( [in] double t ); + + void viewChanged( [in] XSlideShowView view, + [in] com::sun::star::rendering::XBitmap leavingBitmap, + [in] com::sun::star::rendering::XBitmap enteringBitmap ); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/presentation/XTransitionFactory.idl b/offapi/com/sun/star/presentation/XTransitionFactory.idl new file mode 100644 index 0000000000..49b543b11e --- /dev/null +++ b/offapi/com/sun/star/presentation/XTransitionFactory.idl @@ -0,0 +1,72 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { + +module rendering { interface XBitmap; }; + +module presentation { + +interface XTransition; +interface XSlideShowView; + +/** TransitionFactory interface to request optional custom Transition instances for slide show transitions.
+ + This interface provides the necessary methods to query and create optional transition effects for a SlideShow
+ + @since OOo 2.4 + */ +interface XTransitionFactory : ::com::sun::star::uno::XInterface +{ + /** Checks whether this instance provides an implementation for given transition id.
+ */ + boolean hasTransition( [in] short transitionType, [in] short transitionSubType ); + + /** Actually create a transition for the given transition id + + @param transitionType + Main type of transition (@see ::com::sun::star::animations::TransitionType) + + @param transitionSubType + Subtype for the transition (@see ::com::sun::star::animations::TransitionSubType) + + @param transitionFadeColor + Color to use (for some transitions) + + @param view + Slide show view to display on + + @param leavingBitmap + Bitmap of the slide that's going to leave the screen + + @param enteringBitmap + Bitmap of the slide that's going to enter the screen + */ + XTransition createTransition( [in] short transitionType, + [in] short transitionSubType, + [in] long transitionFadeColor, + [in] XSlideShowView view, + [in] com::sun::star::rendering::XBitmap leavingBitmap, + [in] com::sun::star::rendering::XBitmap enteringBitmap ); +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/presentation/textfield/DateTime.idl b/offapi/com/sun/star/presentation/textfield/DateTime.idl new file mode 100644 index 0000000000..de079bb59c --- /dev/null +++ b/offapi/com/sun/star/presentation/textfield/DateTime.idl @@ -0,0 +1,34 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module presentation { module textfield { + +/** specifies service of a presentation date and time text field. + @see com::sun::star::text::TextField +*/ +service DateTime +{ + service com::sun::star::text::TextField; +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/presentation/textfield/Footer.idl b/offapi/com/sun/star/presentation/textfield/Footer.idl new file mode 100644 index 0000000000..ed73476526 --- /dev/null +++ b/offapi/com/sun/star/presentation/textfield/Footer.idl @@ -0,0 +1,34 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module presentation { module textfield { + +/** specifies service of a presentation footer text field. + @see com::sun::star::text::TextField +*/ +service Footer +{ + service com::sun::star::text::TextField; +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/presentation/textfield/Header.idl b/offapi/com/sun/star/presentation/textfield/Header.idl new file mode 100644 index 0000000000..94e12a47fa --- /dev/null +++ b/offapi/com/sun/star/presentation/textfield/Header.idl @@ -0,0 +1,34 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module presentation { module textfield { + +/** specifies service of a presentation header text field. + @see com::sun::star::text::TextField +*/ +service Header +{ + service com::sun::star::text::TextField; +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/qa/XDumper.idl b/offapi/com/sun/star/qa/XDumper.idl new file mode 100644 index 0000000000..0722b8b5bd --- /dev/null +++ b/offapi/com/sun/star/qa/XDumper.idl @@ -0,0 +1,40 @@ +/* -*- 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/. + */ + +module com +{ +module sun +{ +module star +{ +module qa +{ + +/** + * Dumps the content into a string. + * This is an internal interface and should not be used outside of Libreoffice source code + */ +interface XDumper : com::sun::star::uno::XInterface +{ + /** + * dump the content into a string + * @param kind What kind of data to dump (for objects that know how to dump different data). + * @since LibreOffice 3.6 + */ + + string dump([in] string kind); +}; + +} ; // chart2 +} ; // com +} ; // sun +} ; // star + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/rdf/BlankNode.idl b/offapi/com/sun/star/rdf/BlankNode.idl new file mode 100644 index 0000000000..74040291b0 --- /dev/null +++ b/offapi/com/sun/star/rdf/BlankNode.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 . + */ + + + +module com { module sun { module star { module rdf { + +/** represents a blank node that may occur in a RDF graph. + + @since OOo 3.0 + + @see XRepository + */ +service BlankNode : XBlankNode +{ + + /** create a blank RDF node. + +
+ Be careful! With this constructor you can create a node that aliases + another node that already exists in some repository. + That may or may not be what you want. + If you want to create a new blank node that is guaranteed to be unique, + use XRepository::createBlankNode() instead. +
+ + @param NodeID + the ID for the blank node. + + @throws com::sun::star::lang::IllegalArgumentException + if the argument does not represent a valid blank node ID + + @see XRepository::createBlankNode + */ + create( [in] string NodeID ) + raises( com::sun::star::lang::IllegalArgumentException ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/rdf/FileFormat.idl b/offapi/com/sun/star/rdf/FileFormat.idl new file mode 100644 index 0000000000..d20fbb5e9d --- /dev/null +++ b/offapi/com/sun/star/rdf/FileFormat.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 . + */ + + + +module com { module sun { module star { module rdf { + +/** Constants to specify RDF file formats. + +
+ These constants are mainly for use with + XRepository::importGraph() + and XRepository::exportGraph(). +
+ ++ Note that these are integers because UNO IDL does not permit + `string` constants. +
+ + @since OOo 3.0 + + @see XRepository::importGraph + @see XRepository::exportGraph + */ +constants FileFormat +{ + + /// RDF/XML + const short RDF_XML = 0; // "application/rdf+xml"; + + /// N3 (Notation-3) + const short N3 = 1; // "text/rdf+n3"; + + /// N-Triples + const short NTRIPLES = 2; // "text/plain"; + + /// TriG + const short TRIG = 3; // "application/trig"; + + /// TriX + const short TRIX = 4; // "application/trix"; + + /// Turtle + const short TURTLE = 5; // "application/turtle"; + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/rdf/Literal.idl b/offapi/com/sun/star/rdf/Literal.idl new file mode 100644 index 0000000000..6166e24369 --- /dev/null +++ b/offapi/com/sun/star/rdf/Literal.idl @@ -0,0 +1,67 @@ +/* -*- 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 . + */ + + + +module com { module sun { module star { module rdf { + +/** represents a literal that may occur in a RDF graph. + + @since OOo 3.0 + + @see XRepository + */ +service Literal : XLiteral +{ + + /** creates a plain literal RDF node. + + @param Value + the string value of the literal + */ + create( [in] string Value ); + + /** creates a typed literal RDF node. + + @param Value + the string value of the literal + + @param Type + the data type of the literal + */ + createWithType( [in] string Value, [in] XURI Type ); + + /** creates a literal RDF node with a language. + + @param Value + the string value of the literal + + @param Language + the language of the literal + */ + createWithLanguage( [in] string Value, [in] string Language ); + + // NOTE: there is no createWithTypeAndLanguage! +}; + + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/rdf/ParseException.idl b/offapi/com/sun/star/rdf/ParseException.idl new file mode 100644 index 0000000000..493f2dc045 --- /dev/null +++ b/offapi/com/sun/star/rdf/ParseException.idl @@ -0,0 +1,36 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module rdf { + +/** represents an error condition that is signaled on parsing an RDF file. + + @since OOo 3.0 + + @see XRepository + */ +exception ParseException : com::sun::star::uno::Exception +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/rdf/QueryException.idl b/offapi/com/sun/star/rdf/QueryException.idl new file mode 100644 index 0000000000..8157b24e60 --- /dev/null +++ b/offapi/com/sun/star/rdf/QueryException.idl @@ -0,0 +1,37 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module rdf { + +/** represents an error condition that is signaled on evaluating a query + against an RDF Repository. + + @since OOo 3.0 + + @see XRepository + */ +exception QueryException : com::sun::star::uno::Exception +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/rdf/Repository.idl b/offapi/com/sun/star/rdf/Repository.idl new file mode 100644 index 0000000000..39dbf028dc --- /dev/null +++ b/offapi/com/sun/star/rdf/Repository.idl @@ -0,0 +1,42 @@ +/* -*- 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 . + */ + + + +module com { module sun { module star { module rdf { + +/** provides access to a set of named RDF graphs. + + @since OOo 3.0 + + @see XRepository + @see XRepositorySupplier + */ +service Repository : XRepository +{ + /** constructs repository with in-memory storage. + */ + create(); + // FIXME: if we want to support HTTP/SQL-based storage, or inference, define more constructors here +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/rdf/RepositoryException.idl b/offapi/com/sun/star/rdf/RepositoryException.idl new file mode 100644 index 0000000000..c5de1def7c --- /dev/null +++ b/offapi/com/sun/star/rdf/RepositoryException.idl @@ -0,0 +1,37 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module rdf { + +/** represents an error condition that is signaled on accessing an RDF + Repository. + + @since OOo 3.0 + + @see XRepository + */ +exception RepositoryException : com::sun::star::uno::Exception +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/rdf/Statement.idl b/offapi/com/sun/star/rdf/Statement.idl new file mode 100644 index 0000000000..7714955090 --- /dev/null +++ b/offapi/com/sun/star/rdf/Statement.idl @@ -0,0 +1,45 @@ +/* -*- 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 . + */ + + + +module com { module sun { module star { module rdf { + +/** represents a RDF statement, or triple. + + @since OOo 3.2 + + @see XRepository + */ +struct Statement +{ + /// the subject of the RDF statement. + XResource Subject; + /// the predicate of the RDF statement. + XURI Predicate; + /// the object of the RDF statement. + XNode Object; + /// the named graph that contains this statement, or `NULL`. + XURI Graph; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/rdf/URI.idl b/offapi/com/sun/star/rdf/URI.idl new file mode 100644 index 0000000000..6006db1d43 --- /dev/null +++ b/offapi/com/sun/star/rdf/URI.idl @@ -0,0 +1,77 @@ +/* -*- 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 . + */ + + + +module com { module sun { module star { module rdf { + +/** represents a URI node that may occur in a RDF graph. + + @since OOo 3.0 + + @see XRepository + */ +service URI : XURI +{ + + /** creates a URI RDF node. + + @param Value + the URI, represented as `string`. + + @throws com::sun::star::lang::IllegalArgumentException + if the argument does not represent a valid URI + */ + create( [in] string Value ) + raises( com::sun::star::lang::IllegalArgumentException ); + + /** creates a URI RDF node from namespace prefix and local name. + + @param Namespace + the namespace prefix of the URI, represented as + `string`. + + @param LocalName + the local name of the URI, represented as `string`. + + @throws com::sun::star::lang::IllegalArgumentException + if the arguments do not represent a valid URI + */ + createNS( [in] string Namespace, [in] string LocalName ) + raises( com::sun::star::lang::IllegalArgumentException ); + + /** creates a URI RDF node for a well-known URI. + + @param Id + the URI, represented as a constant from URIs. + + @throws com::sun::star::lang::IllegalArgumentException + if the argument is not a valid constant from URIs + + @see URIs + */ + createKnown( [in] short Id ) + raises( com::sun::star::lang::IllegalArgumentException ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/rdf/URIs.idl b/offapi/com/sun/star/rdf/URIs.idl new file mode 100644 index 0000000000..2e246ea92b --- /dev/null +++ b/offapi/com/sun/star/rdf/URIs.idl @@ -0,0 +1,328 @@ +/* -*- 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 . + */ + + + +module com { module sun { module star { module rdf { + + +/** Constants to specify some well-known URIs. + ++ These constants are for use with URI::createKnown(). +
+ + @since OOo 3.2 + + @see URI::createKnown + */ +constants URIs +{ + /// http://www.w3.org/2001/XMLSchema-datatypes#NCName + const short XSD_NCNAME = 1; + /// http://www.w3.org/2001/XMLSchema-datatypes#string + const short XSD_STRING = 2; + /// http://www.w3.org/2001/XMLSchema-datatypes#normalizedString + const short XSD_NORMALIZEDSTRING = 3; + /// http://www.w3.org/2001/XMLSchema-datatypes#boolean + const short XSD_BOOLEAN = 4; + /// http://www.w3.org/2001/XMLSchema-datatypes#decimal + const short XSD_DECIMAL = 5; + /// http://www.w3.org/2001/XMLSchema-datatypes#float + const short XSD_FLOAT = 6; + /// http://www.w3.org/2001/XMLSchema-datatypes#double + const short XSD_DOUBLE = 7; + /// http://www.w3.org/2001/XMLSchema-datatypes#integer + const short XSD_INTEGER = 8; + /// http://www.w3.org/2001/XMLSchema-datatypes#nonNegativeInteger + const short XSD_NONNEGATIVEINTEGER = 9; + /// http://www.w3.org/2001/XMLSchema-datatypes#positiveInteger + const short XSD_POSITIVEINTEGER = 10; + /// http://www.w3.org/2001/XMLSchema-datatypes#nonPositiveInteger + const short XSD_NONPOSITIVEINTEGER = 11; + /// http://www.w3.org/2001/XMLSchema-datatypes#negativeInteger + const short XSD_NEGATIVEINTEGER = 12; + /// http://www.w3.org/2001/XMLSchema-datatypes#long + const short XSD_LONG = 13; + /// http://www.w3.org/2001/XMLSchema-datatypes#int + const short XSD_INT = 14; + /// http://www.w3.org/2001/XMLSchema-datatypes#short + const short XSD_SHORT = 15; + /// http://www.w3.org/2001/XMLSchema-datatypes#byte + const short XSD_BYTE = 16; + /// http://www.w3.org/2001/XMLSchema-datatypes#unsignedLong + const short XSD_UNSIGNEDLONG = 17; + /// http://www.w3.org/2001/XMLSchema-datatypes#unsignedInt + const short XSD_UNSIGNEDINT = 18; + /// http://www.w3.org/2001/XMLSchema-datatypes#unsignedShort + const short XSD_UNSIGNEDSHORT = 19; + /// http://www.w3.org/2001/XMLSchema-datatypes#unsignedByte + const short XSD_UNSIGNEDBYTE = 20; + /// http://www.w3.org/2001/XMLSchema-datatypes#hexBinary + const short XSD_HEXBINARY = 21; + /// http://www.w3.org/2001/XMLSchema-datatypes#base64Binary + const short XSD_BASE64BINARY = 22; + /// http://www.w3.org/2001/XMLSchema-datatypes#dateTime + const short XSD_DATETIME = 23; + /// http://www.w3.org/2001/XMLSchema-datatypes#time + const short XSD_TIME = 24; + /// http://www.w3.org/2001/XMLSchema-datatypes#date + const short XSD_DATE = 25; + /// http://www.w3.org/2001/XMLSchema-datatypes#gYearMonth + const short XSD_GYEARMONTH = 26; + /// http://www.w3.org/2001/XMLSchema-datatypes#gYear + const short XSD_GYEAR = 27; + /// http://www.w3.org/2001/XMLSchema-datatypes#gMonthDay + const short XSD_GMONTHDAY = 28; + /// http://www.w3.org/2001/XMLSchema-datatypes#gDay + const short XSD_GDAY = 29; + /// http://www.w3.org/2001/XMLSchema-datatypes#gMonth + const short XSD_GMONTH = 30; + /// http://www.w3.org/2001/XMLSchema-datatypes#anyURI + const short XSD_ANYURI = 31; + /// http://www.w3.org/2001/XMLSchema-datatypes#token + const short XSD_TOKEN = 32; + /// http://www.w3.org/2001/XMLSchema-datatypes#language + const short XSD_LANGUAGE = 33; + /// http://www.w3.org/2001/XMLSchema-datatypes#NMTOKEN + const short XSD_NMTOKEN = 34; + /// http://www.w3.org/2001/XMLSchema-datatypes#Name + const short XSD_NAME = 35; + /// http://www.w3.org/2001/XMLSchema-datatypes#duration + const short XSD_DURATION = 36; + /// http://www.w3.org/2001/XMLSchema-datatypes#QName + const short XSD_QNAME = 37; + /// http://www.w3.org/2001/XMLSchema-datatypes#NOTATION + const short XSD_NOTATION = 38; + /// http://www.w3.org/2001/XMLSchema-datatypes#NMTOKENS + const short XSD_NMTOKENS = 39; + /// http://www.w3.org/2001/XMLSchema-datatypes#ID + const short XSD_ID = 40; + /// http://www.w3.org/2001/XMLSchema-datatypes#IDREF + const short XSD_IDREF = 41; + /// http://www.w3.org/2001/XMLSchema-datatypes#IDREFS + const short XSD_IDREFS = 42; + /// http://www.w3.org/2001/XMLSchema-datatypes#ENTITY + const short XSD_ENTITY = 43; + /// http://www.w3.org/2001/XMLSchema-datatypes#ENTITIES + const short XSD_ENTITIES = 44; + + /// http://www.w3.org/1999/02/22-rdf-syntax-ns#type + const short RDF_TYPE = 1000; + /// http://www.w3.org/1999/02/22-rdf-syntax-ns#subject + const short RDF_SUBJECT = 1001; + /// http://www.w3.org/1999/02/22-rdf-syntax-ns#predicate + const short RDF_PREDICATE = 1002; + /// http://www.w3.org/1999/02/22-rdf-syntax-ns#object + const short RDF_OBJECT = 1003; + /// http://www.w3.org/1999/02/22-rdf-syntax-ns#Property + const short RDF_PROPERTY = 1004; + /// http://www.w3.org/1999/02/22-rdf-syntax-ns#Statement + const short RDF_STATEMENT = 1005; + /// http://www.w3.org/1999/02/22-rdf-syntax-ns#value + const short RDF_VALUE = 1006; + /// http://www.w3.org/1999/02/22-rdf-syntax-ns#first + const short RDF_FIRST = 1007; + /// http://www.w3.org/1999/02/22-rdf-syntax-ns#rest + const short RDF_REST = 1008; + /// http://www.w3.org/1999/02/22-rdf-syntax-ns#nil + const short RDF_NIL = 1009; + /// http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral + const short RDF_XMLLITERAL = 1010; + /// http://www.w3.org/1999/02/22-rdf-syntax-ns#Alt + const short RDF_ALT = 1011; + /// http://www.w3.org/1999/02/22-rdf-syntax-ns#Bag + const short RDF_BAG = 1012; + /// http://www.w3.org/1999/02/22-rdf-syntax-ns#List + const short RDF_LIST = 1013; + /// http://www.w3.org/1999/02/22-rdf-syntax-ns#Seq + const short RDF_SEQ = 1014; + /// http://www.w3.org/1999/02/22-rdf-syntax-ns#_1 + const short RDF_1 = 1015; + /* hmm... that's a lot of potential constants: + _n where n is a decimal integer greater than zero with no leading zeros. + */ + + /// http://www.w3.org/2000/01/rdf-schema#comment + const short RDFS_COMMENT = 1100; + /// http://www.w3.org/2000/01/rdf-schema#label + const short RDFS_LABEL = 1101; + /// http://www.w3.org/2000/01/rdf-schema#domain + const short RDFS_DOMAIN = 1102; + /// http://www.w3.org/2000/01/rdf-schema#range + const short RDFS_RANGE = 1103; + /// http://www.w3.org/2000/01/rdf-schema#subClassOf + const short RDFS_SUBCLASSOF = 1104; + /// http://www.w3.org/2000/01/rdf-schema#Literal + const short RDFS_LITERAL = 1105; + /// http://www.w3.org/2000/01/rdf-schema#member + const short RDFS_MEMBER = 1106; + /// http://www.w3.org/2000/01/rdf-schema#subPropertyOf + const short RDFS_SUBPROPERTYOF = 1107; + /// http://www.w3.org/2000/01/rdf-schema#isDefinedBy + const short RDFS_ISDEFINEDBY = 1108; + /// http://www.w3.org/2000/01/rdf-schema#seeAlso + const short RDFS_SEEALSO = 1109; + /// http://www.w3.org/2000/01/rdf-schema#Resource + const short RDFS_RESOURCE = 1110; + /// http://www.w3.org/2000/01/rdf-schema#Class + const short RDFS_CLASS = 1111; + /// http://www.w3.org/2000/01/rdf-schema#Datatype + const short RDFS_DATATYPE = 1112; + /// http://www.w3.org/2000/01/rdf-schema#Container + const short RDFS_CONTAINER = 1113; + /// http://www.w3.org/2000/01/rdf-schema#ContainerMembershipProperty + const short RDFS_CONTAINERMEMBERSHIPPROPERTY = 1114; + + /// http://www.w3.org/2002/07/owl#Class + const short OWL_CLASS = 1200; + /// http://www.w3.org/2002/07/owl#ObjectProperty + const short OWL_OBJECTPROPERTY = 1201; + /// http://www.w3.org/2002/07/owl#DatatypeProperty + const short OWL_DATATYPEPROPERTY = 1202; + /// http://www.w3.org/2002/07/owl#FunctionalProperty + const short OWL_FUNCTIONALPROPERTY = 1203; + /// http://www.w3.org/2002/07/owl#Thing + const short OWL_THING = 1204; + /// http://www.w3.org/2002/07/owl#Nothing + const short OWL_NOTHING = 1205; + /// http://www.w3.org/2002/07/owl#Individual + const short OWL_INDIVIDUAL = 1206; + /// http://www.w3.org/2002/07/owl#equivalentClass + const short OWL_EQUIVALENTCLASS = 1207; + /// http://www.w3.org/2002/07/owl#equivalentProperty + const short OWL_EQUIVALENTPROPERTY = 1208; + /// http://www.w3.org/2002/07/owl#sameAs + const short OWL_SAMEAS = 1209; + /// http://www.w3.org/2002/07/owl#differentFrom + const short OWL_DIFFERENTFROM = 1210; + /// http://www.w3.org/2002/07/owl#AllDifferent + const short OWL_ALLDIFFERENT = 1211; + /// http://www.w3.org/2002/07/owl#distinctMembers + const short OWL_DISTINCTMEMBERS = 1212; + /// http://www.w3.org/2002/07/owl#inverseOf + const short OWL_INVERSEOF = 1213; + /// http://www.w3.org/2002/07/owl#TransitiveProperty + const short OWL_TRANSITIVEPROPERTY = 1214; + /// http://www.w3.org/2002/07/owl#SymmetricProperty + const short OWL_SYMMETRICPROPERTY = 1215; + /// http://www.w3.org/2002/07/owl#InverseFunctionalProperty + const short OWL_INVERSEFUNCTIONALPROPERTY = 1216; + /// http://www.w3.org/2002/07/owl#Restriction + const short OWL_RESTRICTION = 1217; + /// http://www.w3.org/2002/07/owl#onProperty + const short OWL_ONPROPERTY = 1218; + /// http://www.w3.org/2002/07/owl#allValuesFrom + const short OWL_ALLVALUESFROM = 1219; + /// http://www.w3.org/2002/07/owl#someValuesFrom + const short OWL_SOMEVALUESFROM = 1220; + /// http://www.w3.org/2002/07/owl#minCardinality + const short OWL_MINCARDINALITY = 1221; + /// http://www.w3.org/2002/07/owl#maxCardinality + const short OWL_MAXCARDINALITY = 1222; + /// http://www.w3.org/2002/07/owl#cardinality + const short OWL_CARDINALITY = 1223; + /// http://www.w3.org/2002/07/owl#Ontology + const short OWL_ONTOLOGY = 1224; + /// http://www.w3.org/2002/07/owl#imports + const short OWL_IMPORTS = 1225; + /// http://www.w3.org/2002/07/owl#versionInfo + const short OWL_VERSIONINFO = 1226; + /// http://www.w3.org/2002/07/owl#priorVersion + const short OWL_PRIORVERSION = 1227; + /// http://www.w3.org/2002/07/owl#backwardCompatibleWith + const short OWL_BACKWARDCOMPATIBLEWITH = 1228; + /// http://www.w3.org/2002/07/owl#incompatibleWith + const short OWL_INCOMPATIBLEWITH = 1229; + /// http://www.w3.org/2002/07/owl#DeprecatedClass + const short OWL_DEPRECATEDCLASS = 1230; + /// http://www.w3.org/2002/07/owl#DeprecatedProperty + const short OWL_DEPRECATEDPROPERTY = 1231; + /// http://www.w3.org/2002/07/owl#AnnotationProperty + const short OWL_ANNOTATIONPROPERTY = 1232; + /// http://www.w3.org/2002/07/owl#OntologyProperty + const short OWL_ONTOLOGYPROPERTY = 1233; + /// http://www.w3.org/2002/07/owl#oneOf + const short OWL_ONEOF = 1234; + /// http://www.w3.org/2002/07/owl#dataRange + const short OWL_DATARANGE = 1235; + /// http://www.w3.org/2002/07/owl#disjointWith + const short OWL_DISJOINTWITH = 1236; + /// http://www.w3.org/2002/07/owl#unionOf + const short OWL_UNIONOF = 1237; + /// http://www.w3.org/2002/07/owl#complementOf + const short OWL_COMPLEMENTOF = 1238; + /// http://www.w3.org/2002/07/owl#intersectionOf + const short OWL_INTERSECTIONOF = 1239; + /// http://www.w3.org/2002/07/owl#hasValue + const short OWL_HASVALUE = 1240; + + /// http://docs.oasis-open.org/ns/office/1.2/meta/pkg#hasPart + const short PKG_HASPART = 2000; +/* REMOVED + /// http://docs.oasis-open.org/ns/office/1.2/meta/pkg#idref + const short PKG_IDREF = 2001; + /// http://docs.oasis-open.org/ns/office/1.2/meta/pkg#path + const short PKG_PATH = 2002; +*/ + /// http://docs.oasis-open.org/ns/office/1.2/meta/pkg#mimeType + const short PKG_MIMETYPE = 2003; + /// http://docs.oasis-open.org/ns/office/1.2/meta/pkg#Package + const short PKG_PACKAGE = 2004; + /// http://docs.oasis-open.org/ns/office/1.2/meta/pkg#Element + const short PKG_ELEMENT = 2005; + /// http://docs.oasis-open.org/ns/office/1.2/meta/pkg#File + const short PKG_FILE = 2006; + /// http://docs.oasis-open.org/ns/office/1.2/meta/pkg#MetadataFile + const short PKG_METADATAFILE = 2007; + /// http://docs.oasis-open.org/ns/office/1.2/meta/pkg#Document + const short PKG_DOCUMENT = 2008; + + /// http://docs.oasis-open.org/ns/office/1.2/meta/odf#prefix + const short ODF_PREFIX = 2100; + /// http://docs.oasis-open.org/ns/office/1.2/meta/odf#suffix + const short ODF_SUFFIX = 2101; + /// http://docs.oasis-open.org/ns/office/1.2/meta/odf#Element + const short ODF_ELEMENT = 2102; + /// http://docs.oasis-open.org/ns/office/1.2/meta/odf#ContentFile + const short ODF_CONTENTFILE = 2103; + /// http://docs.oasis-open.org/ns/office/1.2/meta/odf#StylesFile + const short ODF_STYLESFILE = 2104; +/* REMOVED + /// http://docs.oasis-open.org/ns/office/1.2/meta/odf#MetadataFile + const short ODF_METADATAFILE = 2105; +*/ + + // urn:oasis:names:tc:opendocument:xmlns:text:1.0meta-field +// const short TEXT_META_FIELD = 3000; + + /** custom shading color of an annotated text range or metadata field + (replacement of the default field shading color) + + urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0odf#shading + + @since LibreOffice 7.2 + */ + const short LO_EXT_SHADING = 2106; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/rdf/XBlankNode.idl b/offapi/com/sun/star/rdf/XBlankNode.idl new file mode 100644 index 0000000000..503e5841b5 --- /dev/null +++ b/offapi/com/sun/star/rdf/XBlankNode.idl @@ -0,0 +1,42 @@ +/* -*- 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 . + */ + + + +module com { module sun { module star { module rdf { + +/** represents a blank node that may occur in a RDF graph. + ++ Blank nodes are distinct, but have no URI; in other words, + they are resources that are anonymous. +
+ + @since OOo 3.0 + + @see XRepository + */ +interface XBlankNode : XResource +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/rdf/XDocumentMetadataAccess.idl b/offapi/com/sun/star/rdf/XDocumentMetadataAccess.idl new file mode 100644 index 0000000000..934fe3ebbe --- /dev/null +++ b/offapi/com/sun/star/rdf/XDocumentMetadataAccess.idl @@ -0,0 +1,376 @@ +/* -*- 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 . + */ + + + +module com { module sun { module star { module rdf { + +/** document metadata functionality related to the "manifest.rdf". + ++ This interface contains some methods that create connections between + the content and the RDF metadata of an ODF document. + The main idea is to make querying and manipulating the + data in the metadata manifest easier. +
+ ++ Note that this interface inherits from XURI: the + base URI of the document is the string value of the RDF node. + This is so that you can easily make RDF statements about the document. +
+ + @since OOo 3.2 + + @see XDocumentRepository + */ +interface XDocumentMetadataAccess +{ + interface XURI; + interface XRepositorySupplier; + + /** get the unique ODF element with the given metadata reference. + + @param MetadataReference + a metadata reference, comprising the stream name and the XML ID + For example: Pair("content.xml", "foo-element-1") + + @returns + the ODF element with the given metadata references if it exists, + else `NULL` + */ + XMetadatable getElementByMetadataReference( + [in] com::sun::star::beans::StringPair MetadataReference); + + /** get the ODF element that corresponds to a URI. + + @param URI + a URI that may identify an ODF element + + @returns + the ODF element that corresponds to the given URI, or `NULL` + + @throws com::sun::star::lang::IllegalArgumentException + if the given URI is `NULL` + */ + XMetadatable getElementByURI([in] XURI URI) + raises( com::sun::star::lang::IllegalArgumentException ); + + /** get the names of all metadata files with a given type. + + @param Type + therdf:type
property of the requested named graphs
+
+ @returns
+ the names of all metadata graphs that have a rdf:type
+ property with the given Type as object
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if the given Type is `NULL`
+ */
+ sequence+ This convenience method does the following: +
rdf:type
properties
+ for the new graph into the manifest graphrdf:type
+ properties for the graph
+
+ @returns
+ the name of the new graph
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if the FileName is invalid
+
+ @throws com::sun::star::container::ElementExistException
+ if a stream with the given FileName already exists
+ */
+ XURI addMetadataFile([in] string FileName,
+ [in] sequence+ This convenience method does the following: +
rdf:type
properties
+ for the new graph into the manifest graphrdf:type
+ properties for the graph
+
+ @returns
+ the name of the new graph
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if the given stream is `NULL`,
+ or BaseURI is `NULL` and the format requires use of a base URI,
+ or the FileName is invalid
+
+ @throws com::sun::star::datatransfer::UnsupportedFlavorException
+ if the format requested is unknown or not supported
+
+ @throws com::sun::star::container::ElementExistException
+ if a stream with the given FileName already exists
+
+ @throws ParseException
+ if the input does not conform to the specified file format.
+
+ @throws com::sun::star::io::IOException
+ if an I/O error occurs.
+
+ @see FileFormat
+ */
+ XURI importMetadataFile( [in] /*FileFormat*/ short Format,
+ [in] com::sun::star::io::XInputStream InStream,
+ [in] string FileName, [in] XURI BaseURI,
+ [in] sequence+ This convenience method does the following: +
+ This convenience method adds the required statements declaring a + content or styles file to the manifest graph. +
odf:ContentFile
is added.odf:StylesFile
is added.+ This convenience method removes the statements declaring a + content or styles file from the manifest graph. +
+ + @param FileName + the name of the stream in the ODF storage + + @throws com::sun::star::lang::IllegalArgumentException + if the FileName is invalid + + @throws com::sun::star::container::NoSuchElementException + if a graph with the given GraphName does not exist + */ + void removeContentOrStylesFile([in] string FileName) + raises( com::sun::star::lang::IllegalArgumentException, + com::sun::star::container::NoSuchElementException ); + + /** initialize document metadata from a storage. + ++ This method re-initializes the document metadata, + loads the stream named "manifest.rdf" from the storage, and then + loads all metadata streams mentioned in the manifest. +
+ ++ Note that it is not an error if the storage does not contain + a manifest. + In this case, the document metadata will be default initialized. +
+ ++ If an InteractionHandler argument is given, it will be used for + error reporting. Otherwise, errors will be reported as exceptions. +
+ + @param Storage + a storage, representing e.g. an ODF package file, or sub-document + + @param BaseURI + a base URI to resolve relative URI references +N.B.: when loading from an ODF package, the base URI is not the + URI of the package, but the URI of the directory in the package + that contains the metadata.rdf
+ + @param InteractionHandler + an InteractionHandler, used for error reporting + + @throws com::sun::star::lang::IllegalArgumentException + if any argument is `NULL` + + @throws com::sun::star::lang::WrappedTargetException + if an error occurs while loading and no InteractionHandler given + */ + void loadMetadataFromStorage( + [in] com::sun::star::embed::XStorage Storage, + [in] XURI BaseURI, + [in] com::sun::star::task::XInteractionHandler InteractionHandler ) + raises( com::sun::star::lang::IllegalArgumentException, + com::sun::star::lang::WrappedTargetException ); + + /** store document metadata to a storage. + ++ This method stores all the graphs in the document metadata repository + to the given storage. +
+ ++ Note that to be stored correctly, a named graph must have a complete + entry in the manifest graph. +
+ + @param Storage + a storage, representing e.g. an ODF package file, or sub-document + + @throws com::sun::star::lang::IllegalArgumentException + if Storage argument is `NULL` + + @throws com::sun::star::lang::WrappedTargetException + if an error occurs while loading + */ + void storeMetadataToStorage( + [in] com::sun::star::embed::XStorage Storage ) + raises( com::sun::star::lang::IllegalArgumentException, + com::sun::star::lang::WrappedTargetException ); + + /** loads document metadata from a medium. + +If the Medium contains an InteractionHandler, it will be used for + error reporting.
+ + @param Medium + the com::sun::star::document::MediaDescriptor + representing the source + + @throws com::sun::star::lang::IllegalArgumentException + if the argument does not contain a URL or Stream property + + @throws com::sun::star::lang::WrappedTargetException + if an error occurs while loading + + @see com::sun::star::document::MediaDescriptor + */ + void loadMetadataFromMedium( + [in] sequence < com::sun::star::beans::PropertyValue > Medium ) + raises( com::sun::star::lang::IllegalArgumentException, + com::sun::star::lang::WrappedTargetException ); + + /** stores document metadata to a medium. + + @param Medium + the com::sun::star::document::MediaDescriptor + representing the target + + @throws com::sun::star::lang::IllegalArgumentException + if the argument does not contain a URL or Stream property + + @throws com::sun::star::lang::WrappedTargetException + if an error occurs while storing + + @see com::sun::star::document::MediaDescriptor + */ + void storeMetadataToMedium( + [in] sequence < com::sun::star::beans::PropertyValue > Medium ) + raises( com::sun::star::lang::IllegalArgumentException, + com::sun::star::lang::WrappedTargetException ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/rdf/XDocumentRepository.idl b/offapi/com/sun/star/rdf/XDocumentRepository.idl new file mode 100644 index 0000000000..b4ce2fac2c --- /dev/null +++ b/offapi/com/sun/star/rdf/XDocumentRepository.idl @@ -0,0 +1,213 @@ +/* -*- 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 . + */ + + + +module com { module sun { module star { module rdf { + +/** extends XRepository with document-specific functionality. + ++ This subclass of XRepository provides some methods which + only make sense for repositories that are attached to a document. + For example, the methods allow for manipulating in-content metadata, + which is stored as RDFa. +
+ + @since OOo 3.2 + + @see XRepositorySupplier + @see XDocumentMetadataAccess + */ +interface XDocumentRepository : XRepository +{ + + /** update the RDFa statement(s) that correspond to an ODF element in the + repository. + ++ This method will do the following steps: +
Subject Predicate
+ XLiteral(Object->getText()^^RDFaDatatype)
Subject Predicate XLiteral(RDFaContent^^RDFaDatatype)
+ + RDFa statements are handled specially because they are not logically + part of any named graph in the repository. + Also, they have rather unusual semantics; + just using XNamedGraph::addStatement() would be + ambiguous: + if the object is a XMetadatable, do we insert + the object itself (URI) or its literal content (RDFa)? +
+ + @param Subject + the subject of the RDF triple(s). + + @param Predicates + the predicates of the RDF triple(s). + + @param Object + the object of the RDF triple(s) is the text content of this + parameter. + + @param RDFaContent + therdfa:content
attribute (may be the empty
+ `string`).
+
+ @param RDFaDatatype
+ the rdfa:datatype
attribute (may be `NULL`)
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if any parameter is `NULL`, Predicates is empty,
+ or Object is of a type that can not have RDFa metadata attached.
+
+ @throws RepositoryException
+ if an error occurs when accessing the repository.
+ */
+ void setStatementRDFa(
+ [in] XResource Subject,
+ [in] sequence+ RDFa statements are handled specially because they are not logically + part of any graph. +
+ + @param Element + the element whose RDFa statement(s) should be removed + + @throws com::sun::star::lang::IllegalArgumentException + if the given Element is `NULL`, or of a type that can not have + RDFa metadata attached. + + @throws RepositoryException + if an error occurs when accessing the repository. + */ + void removeStatementRDFa([in] XMetadatable Element) + raises( com::sun::star::lang::IllegalArgumentException, + RepositoryException ); + + /** find the RDFa statement(s) associated with an ODF element. + + @param Element + the ODF element for which RDFa statements should be found + + @returns ++ This method exists because RDFa statements are not part of any named + graph, and thus they cannot be enumerated with + XNamedGraph::getStatements(). +
+ +
+ Any parameter may be `NULL`, which acts as a wildcard.
+ For example, to get all statements about myURI:
+ getStatementsRDFa(myURI, null, null)
+
+ RDF literals may come in three varieties: +
+ To make using ODF elements as part of RDF statements more convenient, + this interface inherits from XURI. + The URI is constructed by concatenating the URI of the document, the + stream name, a fragment separator, and the XML ID. +
+ ++ Note that using the XURI interface on an instance of + XMetadatable may have the side effect of creating a metadata + reference for the instance. +
+ + @since OOo 3.2 + + @see XRepository + @see XDocumentMetadataAccess + */ +interface XMetadatable : XURI +{ + /** a metadata reference, comprising the stream name and the XML ID. + ++ Note that this metadata reference must be unique for the ODF document. + This implies that the XML ID part must be unique for every stream. + A pair of two empty strings signifies "no metadata reference". + For example: Pair("content.xml", "foo-element-1") +
+ + @throws com::sun::star::lang::IllegalArgumentException + if the given metadata reference is invalid, or not unique + */ + [attribute] com::sun::star::beans::StringPair MetadataReference { + set raises ( com::sun::star::lang::IllegalArgumentException ); + }; + + /** creates a metadata reference for this object, if necessary. + ++ If this object already has a metadata reference, do nothing; + otherwise, create metadata reference with a fresh, unique XML ID + and assign it to the MetadataReference attribute. +
+ */ + void ensureMetadataReference(); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/rdf/XNamedGraph.idl b/offapi/com/sun/star/rdf/XNamedGraph.idl new file mode 100644 index 0000000000..36e96ed603 --- /dev/null +++ b/offapi/com/sun/star/rdf/XNamedGraph.idl @@ -0,0 +1,190 @@ +/* -*- 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 . + */ + + + +module com { module sun { module star { module rdf { + +/** represents an RDF named graph that is stored in an RDF Repository. + ++ Note that this interface inherits from XResource: the + name of the graph is the string value of the RDF node. + This is so that you can easily make RDF statements about named graphs. +
+ ++ Note that instances may be destroyed via + XRepository::destroyGraph(). + If a graph is destroyed, subsequent calls to addStatement(), + removeStatements() will fail with an + com::sun::star::container::NoSuchElementException. +
+ + @since OOo 3.2 + + @see XRepository + */ +interface XNamedGraph : XURI +{ + + /** returns the name of the graph. + ++ The name is unique within the repository. +
+ + @returns + the name of the graph + */ + XURI getName(); + + /** removes all statements from the graph. + + @throws com::sun::star::container::NoSuchElementException + if this graph does not exist in the repository any more + + @throws RepositoryException + if an error occurs when accessing the repository. + */ + void clear() + raises( com::sun::star::container::NoSuchElementException, + RepositoryException ); + + /** adds a RDF statement to the graph. + ++ Note that the ODF elements that can have metadata attached all + implement the interface XMetadatable, which inherits + from XResource, meaning that you can simply pass them + in as arguments here, and it will magically work. +
+ + @param Subject + the subject of the RDF triple. + + @param Predicate + the predicate of the RDF triple. + + @param Object + the object of the RDF triple. + + @throws com::sun::star::lang::IllegalArgumentException + if any parameter is `NULL` + + @throws com::sun::star::container::NoSuchElementException + if this graph does not exist in the repository any more + + @throws RepositoryException + if an error occurs when accessing the repository. + */ + void addStatement([in] XResource Subject, + [in] XURI Predicate, + [in] XNode Object) + raises( com::sun::star::lang::IllegalArgumentException, + com::sun::star::container::NoSuchElementException, + RepositoryException ); + + /** removes matching RDF statements from the graph. + ++ Note that the ODF elements that can have metadata attached all + implement the interface XMetadatable, which inherits + from XResource, meaning that you can simply pass them + in as arguments here, and it will magically work. +
+ +
+ Any parameter may be `NULL`, which acts as a wildcard.
+ For example, to remove all statements about myURI:
+ removeStatement(myURI, null, null)
+
+ Note that the ODF elements that can have metadata attached all + implement the interface XMetadatable, which inherits + from XResource, meaning that you can simply pass them + in as arguments here, and it will magically work. +
+ +
+ Any parameter may be `NULL`, which acts as a wildcard.
+ For example, to get all statements about myURI:
+ getStatements(myURI, null, null)
+
+ In the RDF data model, there are three distinct types of nodes: + URIs, blank nodes, and literals. +
+ ++ XNode + | + |---XLiteral + | + XResource + | + |---XBlankNode + | + XURI ++ + @since OOo 3.0 + + @see XRepository + @see Statement + @see XResource + @see XBlankNode + @see XURI + @see XLiteral + */ +interface XNode +{ + /// the string value of the node. + [readonly, attribute] string StringValue; +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/rdf/XQuerySelectResult.idl b/offapi/com/sun/star/rdf/XQuerySelectResult.idl new file mode 100644 index 0000000000..aa88a1c1fa --- /dev/null +++ b/offapi/com/sun/star/rdf/XQuerySelectResult.idl @@ -0,0 +1,57 @@ +/* -*- 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 . + */ + + + +module com { module sun { module star { module rdf { + +/** represents the result of a SPARQL "SELECT" query. + +
+ The result consists of: +
+
+ */ + sequence+ A repository for storing information according to the data model of the + Resource Description Framework. + This interface may be used e.g. for repositories that correspond to a + loaded ODF document, or for repositories that are backed by some kind of + database. +
++ The RDF triples are stored as a set of named RDF graphs. + Importing and exporting files in the + RDF/XML + format is supported. + Support for other file formats is optional. + Support for querying the repository with the + SPARQL + query language is provided. +
+ + + @since OOo 3.2 + + @see XRepositorySupplier + @see XDocumentRepository + */ +interface XRepository +{ + + /** creates a fresh unique blank node. + + @returns + a newly generated blank node which is unique in this repository + */ + XBlankNode createBlankNode(); + + + /** imports a named graph into the repository. + ++ Implementations must support RDF/XML format. + Support for other RDF formats is optional. + If the format is not supported by the implementation, an + com::sun::star::datatransfer::UnsupportedFlavorException is raised. + If the format requires use of a BaseURI, but none is given, an + com::sun::star::lang::IllegalArgumentException + is raised. +
+ + @param Format + the format of the input file + + @param InStream + the input stream, containing an RDF file in the specified format + + @param GraphName + the name of the graph that is imported + + @param BaseURI + a base URI to resolve relative URI references + + @returns + the imported graph + + @throws com::sun::star::lang::IllegalArgumentException + if the given stream or the GraphName is `NULL`, + or BaseURI is `NULL` and the format requires use of a base URI + + @throws com::sun::star::datatransfer::UnsupportedFlavorException + if the format requested is unknown or not supported + + @throws com::sun::star::container::ElementExistException + if a graph with the given GraphName already exists in the + repository + + @throws ParseException + if the input does not conform to the specified file format. + + @throws RepositoryException + if an error occurs when accessing the repository. + + @throws com::sun::star::io::IOException + if an I/O error occurs. + + @see FileFormat + */ + XNamedGraph importGraph([in] /*FileFormat*/ short Format, + [in] com::sun::star::io::XInputStream InStream, + [in] XURI GraphName, [in] XURI BaseURI) + raises( com::sun::star::lang::IllegalArgumentException, + com::sun::star::datatransfer::UnsupportedFlavorException, + com::sun::star::container::ElementExistException, + ParseException, + RepositoryException, + com::sun::star::io::IOException ); + + /** exports a named graph from the repository. + ++ Implementations must support RDF/XML format. + Support for other RDF formats is optional. + If the format is not supported by the implementation, an + com::sun::star::datatransfer::UnsupportedFlavorException is raised. +
+ + @param Format + the format of the output file + + @param OutStream + the target output stream + + @param GraphName + the name of the graph that is to be exported + + @param BaseURI + a base URI to resolve relative URI references + + @throws com::sun::star::lang::IllegalArgumentException + if the given stream or the GraphName is `NULL`, + or BaseURI is `NULL` and the format requires use of a base URI + + @throws com::sun::star::datatransfer::UnsupportedFlavorException + if the format requested is unknown or not supported + + @throws com::sun::star::container::NoSuchElementException + if a graph with the given GraphName does not exist + + @throws RepositoryException + if an error occurs when accessing the repository. + + @throws com::sun::star::io::IOException + if an I/O error occurs. + + @see FileFormat + */ + void exportGraph([in] /*FileFormat*/ short Format, + [in] com::sun::star::io::XOutputStream OutStream, + [in] XURI GraphName, [in] XURI BaseURI) + raises( com::sun::star::lang::IllegalArgumentException, + com::sun::star::datatransfer::UnsupportedFlavorException, + com::sun::star::container::NoSuchElementException, + RepositoryException, + com::sun::star::io::IOException ); + + /** gets the names of all the graphs in the repository. + + @returns + a list containing the names of the graphs in the repository + + @throws RepositoryException + if an error occurs when accessing the repository. + */ + sequence+ The name must be unique within the repository. +
+ + @param GraphName + the name of the graph that is to be created + + @returns + the graph with the given name + + @throws com::sun::star::lang::IllegalArgumentException + if the given GraphName is invalid + + @throws com::sun::star::container::ElementExistException + if a graph with the given GraphName already exists + + @throws RepositoryException + if an error occurs when accessing the repository. + */ + XNamedGraph createGraph([in] XURI GraphName) + raises( com::sun::star::lang::IllegalArgumentException, + com::sun::star::container::ElementExistException, + RepositoryException ); + + /** destroys the graph with the given name, and removes it from the + repository. + ++ This invalidates any instances of XNamedGraph + for the argument. +
+ + @param GraphName + the name of the graph that is to be destroyed + + @throws com::sun::star::lang::IllegalArgumentException + if the given GraphName is invalid + + @throws com::sun::star::container::NoSuchElementException + if a graph with the given GraphName does not exist + + @throws RepositoryException + if an error occurs when accessing the repository. + */ + void destroyGraph([in] XURI GraphName) + raises( com::sun::star::lang::IllegalArgumentException, + com::sun::star::container::NoSuchElementException, + RepositoryException ); + + /** gets matching RDF statements from the repository. + +
+ Any parameter may be `NULL`, which acts as a wildcard.
+ For example, to get all statements about myURI:
+ getStatements(myURI, null, null)
+
+ This method runs a SPARQL query that returns a list of variable + bindings, i.e., a query beginning with "SELECT". + The result is basically a (rectangular) table with labeled columns, + where individual cells may be `NULL`. +
+ + @param Query + the SPARQL query `string` + + @returns + an enumeration, containing ++ This method runs a SPARQL query that constructs a result graph, + i.e., a query beginning with "CONSTRUCT". +
+ + @param Query + the SPARQL query `string` + + @returns + an iterator over the query result graph, represented as an + enumeration of Statement + + @throws QueryException + if the query is malformed, or evaluation fails + + @throws RepositoryException + if an error occurs when accessing the repository. + + @see Statement + */ + com::sun::star::container::XEnumeration/*+ This method runs a SPARQL query that computes a boolean, + i.e., a query beginning with "ASK". +
+ + @param Query + the SPARQL query `string` + + @returns + the boolean query result + + @throws QueryException + if the query is malformed, or evaluation fails + + @throws RepositoryException + if an error occurs when accessing the repository. + */ + boolean queryAsk([in] string Query) + raises( QueryException, + RepositoryException ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/rdf/XRepositorySupplier.idl b/offapi/com/sun/star/rdf/XRepositorySupplier.idl new file mode 100644 index 0000000000..25efe116cd --- /dev/null +++ b/offapi/com/sun/star/rdf/XRepositorySupplier.idl @@ -0,0 +1,44 @@ +/* -*- 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 . + */ + + + +module com { module sun { module star { module rdf { + +/** provides access to an RDF Repository. + + @since OOo 3.0 + + @see XRepository + */ +interface XRepositorySupplier +{ + /** provides the RDF Repository associated with this object. + + @returns + an object of type XRepository + */ + XRepository getRDFRepository(); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/rdf/XResource.idl b/offapi/com/sun/star/rdf/XResource.idl new file mode 100644 index 0000000000..b8964aad29 --- /dev/null +++ b/offapi/com/sun/star/rdf/XResource.idl @@ -0,0 +1,43 @@ +/* -*- 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 . + */ + + + +module com { module sun { module star { module rdf { + +/** represents a resource node that may occur in a RDF graph. + ++ Note that this interface exists only to separate resources from literals. +
+ + @since OOo 3.0 + + @see XRepository + @see XBlankNode + @see XURI + */ +interface XResource : XNode +{ +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/rdf/XURI.idl b/offapi/com/sun/star/rdf/XURI.idl new file mode 100644 index 0000000000..9ca250dc52 --- /dev/null +++ b/offapi/com/sun/star/rdf/XURI.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 . + */ + + + +module com { module sun { module star { module rdf { + +/** represents a URI node that may occur in a RDF graph. + ++ Note that this is actually an IRI, but the RDF literature speaks of URIs + only, so we chose to use established terminology. +
+ ++ The URI is split into a Namespace and a LocalName, + using the first applicable of the following criteria: +
+ + Valid range is [0,1.0], with 0.0 denoting fully transparent, + and 1.0 fully opaque. + */ + ColorComponent Alpha; + /// Red component. Valid range is [0,1.0] + ColorComponent Red; + /// Green component. Valid range is [0,1.0] + ColorComponent Green; + /// Blue component. Valid range is [0,1.0] + ColorComponent Blue; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/rendering/AnimationAttributes.idl b/offapi/com/sun/star/rendering/AnimationAttributes.idl new file mode 100644 index 0000000000..a9363cdb2c --- /dev/null +++ b/offapi/com/sun/star/rendering/AnimationAttributes.idl @@ -0,0 +1,55 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module rendering { + +/** This structure contains attributes needed to run an animation. + + @since OOo 2.0 + */ +struct AnimationAttributes +{ + /// Preferred duration of the animation sequence in seconds. + double Duration; + + + /** Repeat mode of the animation sequence.
+ + This value determines how the [0,1] parameter space of the animation + should be swept through. Permissible values are given in + AnimationRepeat.
+ + @see AnimationRepeat. + */ + byte RepeatMode; + + + /** Size of the untransformed animation sequence.
+ + This value specifies the size of the animation when rendered + with the identity view transform. This permits + e.g. XSprite implementations to cache rendered + animation content in finite-sized bitmaps.
+ */ + ::com::sun::star::geometry::RealSize2D UntransformedSize; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/rendering/AnimationRepeat.idl b/offapi/com/sun/star/rendering/AnimationRepeat.idl new file mode 100644 index 0000000000..579057b071 --- /dev/null +++ b/offapi/com/sun/star/rendering/AnimationRepeat.idl @@ -0,0 +1,71 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module rendering { + +/** This are the possible repeat modes for animations.
+ + These constants determine how the [0,1] parameter range of the + animation is driven through, thus defining the possible repeat + modes.
+ + @since OOo 2.0 + */ +constants AnimationRepeat +{ + /** The [0,1] parameter range is swept through exactly once.
+ + The [0,1] parameter range is swept through exactly once, + starting with 0 and ending with 1.
+ */ + const byte ONE_SHOT=0; + + + /** The [0,1] parameter range is swept through exactly twice.
+ + The [0,1] parameter range is swept through exactly twice, + starting with 0, going to 1, and going back to 0. When + plotting the value over time, this yields a triangle curve.
+ */ + const byte ONE_SHOT_PINGPONG=1; + + + /** The [0,1] parameter range is swept through infinitely.
+ + The [0,1] parameter range is swept through infinitely, + starting with 0, going to 1, and going back to 0, and then + starting again. When plotting the value over time, this yields + a repeated triangle curve.
+ */ + const byte PINGPONG=2; + + + /** The [0,1] parameter range is swept through infinitely.
+ + The [0,1] parameter range is swept through infinitely, + starting with 0, going to 1, and starting with 0 again. When + plotting the value over time, this yields a repeated saw-tooth + curve.
+ */ + const byte REPEAT=3; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/rendering/BitmapCanvas.idl b/offapi/com/sun/star/rendering/BitmapCanvas.idl new file mode 100644 index 0000000000..6b31c1f285 --- /dev/null +++ b/offapi/com/sun/star/rendering/BitmapCanvas.idl @@ -0,0 +1,40 @@ +/* -*- 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 . + */ + + +module com { module sun { module star { module rendering { + +// TODO: Multiple-inheritance interfaces + +/** This service provides the interfaces for a XBitmapCanvas + */ +service BitmapCanvas +{ + /** Canvas interface, to issue rendering operations. + */ + interface XBitmapCanvas; + + /** Bitmap interface, to directly manipulate the pixel. + */ + interface XBitmap; +}; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/rendering/BlendMode.idl b/offapi/com/sun/star/rendering/BlendMode.idl new file mode 100644 index 0000000000..b10721ec45 --- /dev/null +++ b/offapi/com/sun/star/rendering/BlendMode.idl @@ -0,0 +1,52 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module rendering { + +/** These constants determine some extra ways how the primitive color + is combined with the background.
+ + @see CompositeOperation + + Please refer to the PDF specification for explanations of this + constants.
+ */
+constants BlendMode
+{
+ const byte NORMAL = 0;
+ const byte MULTIPLY = 1;
+ const byte SCREEN = 2;
+ const byte OVERLAY = 3;
+ const byte DARKEN = 4;
+ const byte LIGHTEN = 5;
+ const byte COLOR_DODGE = 6;
+ const byte COLOR_BURN = 7;
+ const byte HARD_LIGHT = 8;
+ const byte SOFT_LIGHT = 9;
+ const byte DIFFERENCE = 10;
+ const byte EXCLUSION = 11;
+ const byte HUE = 12;
+ const byte SATURATION = 13;
+ const byte COLOR = 14;
+ const byte LUMINOSITY = 15;
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/rendering/Canvas.idl b/offapi/com/sun/star/rendering/Canvas.idl
new file mode 100644
index 0000000000..abf3cde0ea
--- /dev/null
+++ b/offapi/com/sun/star/rendering/Canvas.idl
@@ -0,0 +1,28 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module rendering {
+
+/// Service providing an XCanvas interface
+service Canvas: XCanvas;
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/rendering/CanvasFactory.idl b/offapi/com/sun/star/rendering/CanvasFactory.idl
new file mode 100644
index 0000000000..319ec07023
--- /dev/null
+++ b/offapi/com/sun/star/rendering/CanvasFactory.idl
@@ -0,0 +1,45 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module rendering {
+
+/** The CanvasFactory is used to create the Canvas
+ objects, evaluating the user's configuration preferences from
+
+ /org.openoffice.VCL/Settings/Canvas/PreferredServices
.
+
+ The latter specifies a string list of service names to use.
+
+
+ Instantiating this service, you can use its + com::sun::star::lang::XMultiComponentFactory + interface to create Canvas objects, passing an empty string + as service specifier (default). + If you want to manually override the configured service list, you can pass + a service name to try first. +
+ + @since OOo 2.0 +*/ +service CanvasFactory : com::sun::star::lang::XMultiComponentFactory; + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/rendering/Caret.idl b/offapi/com/sun/star/rendering/Caret.idl new file mode 100644 index 0000000000..ab0d1daf27 --- /dev/null +++ b/offapi/com/sun/star/rendering/Caret.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 . + */ + +module com { module sun { module star { module rendering { + +/** This structure contains the caret information.+ + This structure is used from the XTextLayout interface + to transport information regarding a text caret.
+ + @since OOo 2.0 + */ +struct Caret +{ + /** This contains the main caret index.
+ + The main caret index corresponds to the insert position when + inserting text in the layout's main text direction. + */ + long MainCaretIndex; + + /** This contains the secondary caret index.
+ + The secondary caret index, when different from the main caret + index, corresponds to the insert position when inserting text + at a direction change opposite to the layout's main text + direction. + */ + long SecondaryCaretIndex; + + /** The angle of the caret.
+ + This member contains the rotation angle of the caret in + degrees, with 0 denoting an unrotated caret (the unrotated + caret orientation depends on the writing mode, horizontally or + vertically). The rotation angle is positive for + counter-clockwise rotations.
+ */
+ double CaretAngle;
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/rendering/Color.idl b/offapi/com/sun/star/rendering/Color.idl
new file mode 100644
index 0000000000..bee2b56810
--- /dev/null
+++ b/offapi/com/sun/star/rendering/Color.idl
@@ -0,0 +1,27 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module rendering {
+
+/// Shorthand for the device-dependent color components, and easier to read
+typedef sequence
+
+ Color components usually correspond to physical attributes like the
+ amount of red colorant contained in an output color. This constant
+ field enumerates the most common ones.
+
+ @since OOo 2.3
+ */
+constants ColorComponentTag
+{
+ /// Unspecified device color value
+ const byte DEVICE=0;
+
+ /// Red colorant from RGB color space
+ const byte RGB_RED=1;
+
+ /// Green colorant from RGB color space
+ const byte RGB_GREEN=2;
+
+ /// Blue colorant from RGB color space
+ const byte RGB_BLUE=3;
+
+ /// Cyan colorant from CMYK color space
+ const byte CMYK_CYAN=4;
+
+ /// Magenta colorant from CMYK color space
+ const byte CMYK_MAGENTA=5;
+
+ /// Yellow colorant from CMYK color space
+ const byte CMYK_YELLOW=6;
+
+ /// Black colorant from CMYK color space
+ const byte CMYK_BLACK=7;
+
+ /// Orange colorant from hexachrome color space
+ const byte CMYKOG_ORANGE=8;
+
+ /// Green colorant from hexachrome color space
+ const byte CMYKOG_GREEN=9;
+
+ /// Arbitrary extra spot color, e.g. Pantone
+ const byte SPOT=10;
+
+ /// Index into palette
+ const byte INDEX=11;
+
+ /// Alpha channel
+ const byte ALPHA=12;
+
+ /// Grey value. Used for monochrome color spaces
+ const byte GREY=13;
+
+ /** Premultiplied alpha channel
+
+ Note that this alpha format actually influences the other color
+ components, in that their values are pre-multiplied with the
+ alpha value.
+ */
+ const byte PREMULTIPLIED_ALPHA=14;
+
+ /// CieXYZ X value
+ const byte CIEXYZ_X=15;
+
+ /// CieXYZ Y value
+ const byte CIEXYZ_Y=16;
+
+ /// CieXYZ Z value
+ const byte CIEXYZ_Z=17;
+
+ /// CieLab L value
+ const byte CIELAB_L=18;
+
+ /// CieLab a value
+ const byte CIELAB_A=19;
+
+ /// CieLab b value
+ const byte CIELAB_B=20;
+
+ /// HSV H value
+ const byte HSV_H=21;
+
+ /// HSV S value
+ const byte HSV_S=22;
+
+ /// HSV V value
+ const byte HSV_V=23;
+
+ /// HSL H value
+ const byte HSL_H=24;
+
+ /// HSL S value
+ const byte HSL_S=25;
+
+ /// HSL L value
+ const byte HSL_L=26;
+
+ /// YCbCr Y value
+ const byte YCBCR_Y=27;
+
+ /// YCbCr Cb value
+ const byte YCBCR_CB=28;
+
+ /// YCbCr Cr value
+ const byte YCBCR_CR=29;
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/rendering/ColorProfile.idl b/offapi/com/sun/star/rendering/ColorProfile.idl
new file mode 100644
index 0000000000..4467abf899
--- /dev/null
+++ b/offapi/com/sun/star/rendering/ColorProfile.idl
@@ -0,0 +1,33 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module rendering {
+
+/* TODO: There's still a lot open here! */
+
+/// ICC Color profile
+struct ColorProfile
+{
+ // TODO
+ byte dummy;
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/rendering/ColorSpaceType.idl b/offapi/com/sun/star/rendering/ColorSpaceType.idl
new file mode 100644
index 0000000000..14321cbc28
--- /dev/null
+++ b/offapi/com/sun/star/rendering/ColorSpaceType.idl
@@ -0,0 +1,116 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module rendering {
+
+/// Categories for color spaces
+constants ColorSpaceType
+{
+ /** Unspecified device color space - use conversion functions to
+ convert to standard color spaces
+ */
+ const byte DEVICE_COLOR=0;
+
+ /** Grey-value color space.
+
+ Use this for monochrome images.
+ */
+ const byte GREY=1;
+
+ /** RGB color space
+ */
+ const byte RGB=2;
+
+ /** CMYK color space.
+
+ See Wikipedia
+ for a thorough explanation.
+ */
+ const byte CMYK=3;
+
+ /** CMYKOG color space.
+
+ See Wikipedia
+ for a thorough explanation.
+ */
+ const byte CMYKOG=4;
+
+ /** Standard CieXYZ color space.
+
+ See Wikipedia
+ for a thorough explanation.
+ */
+ const byte CIEXYZ=5;
+
+ /** Standard CieLab color space.
+
+ See Wikipedia
+ for a thorough explanation. Preferable over CIEXYZ if
+ perceptual uniformity is an issue.
+ */
+ const byte CIELAB=6;
+
+ /** Standard sRGB color space.
+
+ See Wikipedia
+ for a thorough explanation.
+ */
+ const byte SRGB=7;
+
+ /** HSV color space.
+
+ Hue saturation value. See Wikipedia
+ for a thorough explanation.
+ */
+ const byte HSV=8;
+
+ /** HSL color space.
+
+ Hue saturation lightness. See Wikipedia
+ for a thorough explanation
+ */
+ const byte HSL=9;
+
+ /** YCbCr color space.
+
+ See Wikipedia
+ for a thorough explanation. This color space is common for
+ digital video.
+ */
+ const byte YCBCR=10;
+
+ /** Indexed color space.
+
+ The color components of this color space are in fact indices
+ into a color map.
+ */
+ const byte INDEXED=11;
+
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/rendering/CompositeOperation.idl b/offapi/com/sun/star/rendering/CompositeOperation.idl
new file mode 100644
index 0000000000..89ed232b11
--- /dev/null
+++ b/offapi/com/sun/star/rendering/CompositeOperation.idl
@@ -0,0 +1,148 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module rendering {
+
+/** These constants determine how the primitive color is combined with
+ the background.
+
+ When performing these calculations, it is assumed that all color
+ values are premultiplied with the corresponding alpha values (if
+ no alpha is specified, 1.0 is assumed). Then, the following
+ general compositing operation is performed:
+
+ C = Ca * Fa + Cb * Fb
+
+ where C is the result color, Ca and Cb are the input colors,
+ premultiplied with alpha, and Fa and Fb are described for the
+ different composite modes (wherein Aa and Ab denote source and
+ destination alpha, respectively).
+
+ @since OOo 2.0
+ */
+constants CompositeOperation
+{
+ /** Clear the destination.
+
+ Clear the destination area. The function values are: Fa = Fb =
+ 0.
+ */
+ const byte CLEAR = 0;
+
+ /** Copy source as-is to the destination.
+
+ Copy source as-is to the destination. The function values are:
+ Fa = 1, Fb = 0.
+ */
+ const byte SOURCE = 1;
+
+ /** Leave the destination as-is.
+
+ Leave the destination as-is. The function values are: Fa = 0,
+ Fb = 1.
+ */
+ const byte DESTINATION = 2;
+
+ /** Copy the source over the destination.
+
+ Copy the source over the destination. The function values are:
+ Fa = 1, Fb = 1-Aa.
+ */
+ const byte OVER = 3;
+
+ /** Copy the source under the destination.
+
+ Copy the source under the destination. The function values
+ are: Fa = 1-Ab, Fb = 1.
+ */
+ const byte UNDER = 4;
+
+ /** Copy the source to the destination.
+
+ Copy the source to the destination, but limited to where the
+ destination is. The function values are: Fa = Ab, Fb = 0.
+ */
+ const byte INSIDE = 5;
+
+ /** Leave the destination as is.
+
+ Leave the destination as is, but only where the source
+ was. The function values are: Fa = 0, Fb = Aa.
+ */
+ const byte INSIDE_REVERSE = 6;
+
+ /** Copy the source to the destination
+
+ Copy the source to the destination, but limited to where the
+ destination is not. The function values are: Fa = 1-Ab, Fb =
+ 0.
+ */
+ const byte OUTSIDE = 7;
+
+ /** Leave the destination as is.
+
+ Leave the destination as is, but only where the source has not
+ been. The function values are: Fa = 0, Fb = 1-Aa.
+ */
+ const byte OUTSIDE_REVERSE = 8;
+
+ /** Copy the source over the destination
+
+ Copy the source over the destination, but only where the
+ destination is. Keep the destination. The function values are:
+ Fa = Ab, Fb = 1-Aa.
+ */
+ const byte ATOP = 9;
+
+ /** Copy the destination over the source.
+
+ Copy the destination over the source, but only where the
+ source is. Keep the source. The function values are: Fa =
+ 1-Ab, Fb = Aa.
+ */
+ const byte ATOP_REVERSE = 10;
+
+ /** Combine source and destination by exclusive or.
+
+ Take only the parts where either source or destination, but
+ not both visible. The function values are: Fa = 1-Ab, Fb =
+ 1-Aa.
+ */
+ const byte XOR = 11;
+
+ /** Add source and destination values.
+
+ Simply add contributions of both source and destination. The
+ resulting color values are limited to the permissible color
+ range, and clipped to the maximal value, if exceeded. The
+ function values are: Fa = 1, Fb = 1.
+ */
+ const byte ADD = 12;
+
+ /** Saturate source and destination.
+
+ Saturate destination with source values. The function values
+ are: Fa = min(1,(1-Ab)/Aa), Fb = 1
+ */
+ const byte SATURATE = 13;
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/rendering/EmphasisMark.idl b/offapi/com/sun/star/rendering/EmphasisMark.idl
new file mode 100644
index 0000000000..eee11bd597
--- /dev/null
+++ b/offapi/com/sun/star/rendering/EmphasisMark.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 .
+ */
+
+module com { module sun { module star { module rendering {
+
+/** These constants control the automatic rendering of emphasis marks.
+
+ These constants control the automatic rendering of emphasis marks
+ for a given font.
+
+ @since OOo 2.0
+ */
+constants EmphasisMark
+{
+ /// No automatic emphasis marks
+ const byte NONE = 0;
+
+
+ /// Automatic emphasis marks as dots above the glyphs
+ const byte DOT_ABOVE = 1;
+
+
+ /// Automatic emphasis marks as dots below the glyphs
+ const byte DOT_BELOW = 2;
+
+
+ /// Automatic emphasis marks as circles (unfilled outlines) above the glyphs
+ const byte CIRCLE_ABOVE = 3;
+
+
+ /// Automatic emphasis marks as circles (unfilled outlines) below the glyphs
+ const byte CIRCLE_BELOW = 4;
+
+
+ /// Automatic emphasis marks as discs (filled circles) above the glyphs
+ const byte DISC_ABOVE = 5;
+
+
+ /// Automatic emphasis marks as discs (filled circles) below the glyphs
+ const byte DISC_BELOW = 6;
+
+
+ /// Automatic emphasis marks as accent marks above the glyphs
+ const byte ACCENT_ABOVE = 7;
+
+
+ /// Automatic emphasis marks as accent marks below the glyphs
+ const byte ACCENT_BELOW = 8;
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/rendering/FillRule.idl b/offapi/com/sun/star/rendering/FillRule.idl
new file mode 100644
index 0000000000..96ca8132fd
--- /dev/null
+++ b/offapi/com/sun/star/rendering/FillRule.idl
@@ -0,0 +1,52 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module rendering {
+
+/** Determines which algorithm to use when determining inside and
+ outside of filled poly-polygons.
+
+ @since OOo 2.0
+ */
+enum FillRule
+{
+ /** Fill every area, where, when traveling along a line, the
+ summed winding number (that is, -1 for a
+ counter-clockwise-oriented polygon, and +1 for a
+ clockwise-oriented) is non-zero.
+
+ For example, a poly-polygon consisting of two concentric
+ circles with similar orientation is filled the same way as if
+ only the outer circle would exist. If both have opposite
+ orientation, then the filled representation looks the same as
+ if filled with the EVEN_ODD fill rule.
+ */
+ NON_ZERO,
+
+
+ /** Fill every area, where, when traveling along a line, an
+ uneven number of intersections with polygon edges have
+ happened.
+ */
+ EVEN_ODD
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/rendering/FloatingPointBitmapFormat.idl b/offapi/com/sun/star/rendering/FloatingPointBitmapFormat.idl
new file mode 100644
index 0000000000..ab085418d7
--- /dev/null
+++ b/offapi/com/sun/star/rendering/FloatingPointBitmapFormat.idl
@@ -0,0 +1,57 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module rendering {
+
+/** This structure describes format of a floating point bitmap.
+
+ @since OOo 2.0
+ */
+constants FloatingPointBitmapFormat
+{
+ /** Half-float format.
+
+ The color components are stored in the half-float format,
+ i.e. in a 16 bit value, with 5 bit exponent, 10 bit mantissa
+ and a sign bit. See also OpenEXR for a format
+ employing half-floats.
+ */
+ const byte HALFFLOAT=0;
+
+ /** IEEE float format.
+
+ The color components are stored in the IEEE single-precision
+ floating point format, i.e. in a 32 bit value, with 8 bit
+ exponent, 23 bit mantissa and a sign bit.
+ */
+ const byte FLOAT=1;
+
+ /** IEEE double format.
+
+ The color components are stored in the IEEE double-precision
+ floating point format, i.e. in a 64 bit value, with 16 bit
+ exponent, 47 bit mantissa and a sign bit.
+ */
+ const byte DOUBLE=2;
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/rendering/FloatingPointBitmapLayout.idl b/offapi/com/sun/star/rendering/FloatingPointBitmapLayout.idl
new file mode 100644
index 0000000000..0d55dc3c84
--- /dev/null
+++ b/offapi/com/sun/star/rendering/FloatingPointBitmapLayout.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 .
+ */
+
+module com { module sun { module star { module rendering {
+
+/** This structure describes the memory layout of a bitmap having
+ floating point color channels.
+
+ This structure collects all necessary information to describe the
+ memory layout of a bitmap having floating point color channels
+
+ @since OOo 2.0
+ */
+struct FloatingPointBitmapLayout
+{
+ /** Number of scanlines for this bitmap.
+
+ This value must not be negative
+ */
+ long ScanLines;
+
+ /** Number of data bytes per scanline.
+
+ This value must not be negative
+ */
+ long ScanLineBytes;
+
+ /** Byte offset between the start of two consecutive scanlines.
+
+ This value is permitted to be negative, denoting a bitmap
+ whose content is flipped at the x axis.
+ */
+ long ScanLineStride;
+
+ /** Byte offset between the start of two consecutive planes.
+
+ This value is permitted to be negative. If this value is zero,
+ the bitmap is assumed to be in chunky format, otherwise it is
+ assumed to be planar. The difference between chunky and
+ planar layout lies in the way how color channels are
+ interleaved. For a chunky format, all channel data for a
+ single pixel lies consecutively in memory. For a planar
+ layout, the first channel of all pixel is stored consecutive,
+ followed by the second channel, and so forth.
+ */
+ long PlaneStride;
+
+ // TODO(F3): Need some specializations of XColorSpace for float
+ // and half float formats. This maybe translates to the bitmap
+ // layout as well, leading to separate structs for double, float
+ // and half float formats, because of the ColorSpace member. Or
+ // leave it as it is, forcing the client to query for derived
+ // interfaces...
+
+ /// Color space the bitmap colors shall be interpreted within.
+ XColorSpace ColorSpace;
+
+ /** Number of color components per pixel.
+
+ This value must not be negative
+ */
+ long NumComponents;
+
+ /** Endianness of the pixel values.
+
+ This value must be one of the Endianness constants
+ */
+ byte Endianness;
+
+ /** Format type of this bitmap.
+
+ This value must be one of the
+ FloatingPointBitmapFormat constants.
+ */
+ byte Format;
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/rendering/FontInfo.idl b/offapi/com/sun/star/rendering/FontInfo.idl
new file mode 100644
index 0000000000..626baf5f6c
--- /dev/null
+++ b/offapi/com/sun/star/rendering/FontInfo.idl
@@ -0,0 +1,109 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module rendering {
+
+/** This structure provides information about a specific font.
+
+ @since OOo 2.0
+ */
+struct FontInfo
+{
+ /** The PANOSE font classification.
+
+ TODO: Document semantics in Panose.idl
+ */
+ Panose FontDescription;
+
+
+ /** The name of the font family.
+
+ The family name is the one normally associated to a font, such
+ as Times New Roman, Thorndale, Andale or Arial.
+
+ Note: outlined fonts are now specified with "outline" as part
+ of the family name.
+ */
+ string FamilyName;
+
+
+ /** The name of the specific font style within its family.
+
+ For example, oblique, italic, or narrow.
+ */
+ string StyleName;
+
+
+ /** This value specifies which Unicode ranges are supported by
+ this font.
+
+ This is to be interpreted as a split-up 128-bit value, see Adobe's
+ OpenType specification for the specific meaning of each
+ bit. UnicodeRanges0 contains the least significant bits,
+ UnicodeRanges3 the most significant ones.
+
+ const int128 UNICODE_RANGE_BASIC_LATIN = 1;
+ const int128 UNICODE_RANGE_LATIN_SUPPLEMENT = 2;
+ const int128 UNICODE_RANGE_LATIN_EXTENDED_A = 4;
+ const int128 UNICODE_RANGE_LATIN_EXTENDED_B = 4;
+ ...
+ const int128 UNICODE_RANGE_MASK_LATIN = 1;
+ const int128 UNICODE_RANGE_MASK_CJK = (31<<48) + (3<<55) +
+ (1<<59);
+ const int128 UNICODE_RANGE_MASK_CTL = (1<<11) + (1<<13) +
+ (0x3FFF<<15) + (0x0FFF<<70);
+
+ */
+ long UnicodeRanges0;
+ long UnicodeRanges1;
+ long UnicodeRanges2;
+ long UnicodeRanges3;
+
+
+ /** Specifies whether the font is a symbol font.
+
+ This refers solely to a font using the Microsoft SYMBOL_CHARSET
+ charset (i.e. RTL_TEXTENCODING_SYMBOL), and not a font using any
+ different "Symbol" encoding (e.g. RTL_TEXTENCODING_ADOBE_SYMBOL,
+ RTL_TEXTENCODING_ADOBE_DINGBATS) or a font only useful for
+ icons, dingbats or technical symbols.
+
+ If yes, text written in this symbol font does not have a
+ specified meaning.
+ */
+ ::com::sun::star::util::TriState IsSymbolFont;
+
+
+ /** Set to true, if the font is usable for vertical text
+ output.
+
+ Vertical fonts have subtle differences to horizontal ones,
+ e.g. rotated or differently shaped glyphs, or special rotated
+ versions of normally upright glyphs (e.g. brackets).
+ */
+ ::com::sun::star::util::TriState IsVertical;
+
+
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/rendering/FontMetrics.idl b/offapi/com/sun/star/rendering/FontMetrics.idl
new file mode 100644
index 0000000000..afe5d100ec
--- /dev/null
+++ b/offapi/com/sun/star/rendering/FontMetrics.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 .
+ */
+
+module com { module sun { module star { module rendering {
+
+/** Metrics global to the font, i.e. not specific to single
+ glyphs. The font height is defined as
+ ascent+descent+internalLeading, and therefore not explicitly
+ included here.
+
+ Please note that when querying FontMetrics from an XCanvasFont
+ interface, all values here are given relative to the font cell
+ size. That means, the referenceCharWidth and/or
+ ascent+descent+internalLeading will approximately (rounded to
+ integer device resolution, or exactly, if fractional font
+ rendering is enabled) match the referenceAdvancement/cellSize
+ members of the FontRequest for which the XCanvasFont was
+ queried. Please be aware that the values returned in this
+ structure only map one-to-one to device pixel, if the combined
+ rendering transformation for text output equals the identity
+ transformation. Otherwise, the text output (and thus the resulting
+ metrics) will be subject to that transformation. Depending on the
+ underlying font technology, actual device output might be off by
+ up to one device pixel from the transformed metrics.
+
+ @since OOo 2.0
+ */
+struct FontMetrics
+{
+ /// Ascent (above the baseline) part of the font.
+ double Ascent;
+
+
+ /// Descent (below the baseline) part of the font.
+ double Descent;
+
+
+ /// Extra space above ascent
+ double InternalLeading;
+
+
+ /** Extra space outside the font cells.
+
+ It should not contain ink marks and is typically used
+ by the font designer to modify the line distance.
+ */
+ double ExternalLeading;
+
+
+ /** This value specifies the reference character width of the
+ font.
+
+ It's roughly equivalent to the average width of all
+ characters, and if one needs a font with double character
+ width, the referenceCharSize should be doubled.
+ */
+ double ReferenceCharSize;
+
+
+ /** Specifies the offset to be added to the baseline when drawing
+ underlined text.
+ */
+ double UnderlineOffset;
+
+
+ /** Specifies the offset to be added to the baseline when striking
+ through the text.
+ */
+ double StrikeThroughOffset;
+
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/rendering/FontRequest.idl b/offapi/com/sun/star/rendering/FontRequest.idl
new file mode 100644
index 0000000000..07080d3df9
--- /dev/null
+++ b/offapi/com/sun/star/rendering/FontRequest.idl
@@ -0,0 +1,100 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module rendering {
+
+/** This structure contains all information necessary to describe a
+ font to be queried from XCanvas.
+
+ Note: Outline fonts are to be requested as a special family, set
+ FontInfo::FamilyName appropriately. Emboss/relief
+ must be emulated by upper layers.
+
+ Leave the FontInfo::FamilyName and
+ FontInfo::StyleName empty, if font selection
+ should only happen via the PANOSE description.
+
+ @since OOo 2.0
+ */
+struct FontRequest
+{
+ /** The description of the font.
+
+ This member contains the description of the font as returned
+ by the font listing methods.
+ */
+ FontInfo FontDescription;
+
+
+ /** The size of the font in device coordinate space.
+
+ This value corresponds to the font height in Western scripts,
+ but is independent of the writing direction (see
+ FontRequest::IsVertical below). That
+ means, the value specified here is always measured orthogonal
+ to the text advancement (height for horizontal writing, and
+ width for vertical writing).
+
+ When this value is negative, its absolute value is taken as
+ the character size of the font. If this value is positive,
+ it's taken as the cell size of the font.
+
+ This member and the referenceAdvancement member are mutually
+ exclusive, one of them has to be set to 0 (which means don't
+ care).
+
+ For distorted fonts, the render transformation must be
+ used. That is, the size specified here corresponds to device
+ pixel only if the combined render transformation during text
+ output equals the identity transform. This also applies to all
+ query methods, for both XCanvasFont and
+ XTextLayout.
+ */
+ double CellSize;
+
+
+ /** This value specifies the size of the font in the writing
+ direction (i.e. width for horizontal writing, and height for
+ vertical writing).
+
+ It is equivalent to the referenceCharSize of the FontMetrics
+ structure.
+
+ This member and the cellSize member are mutually exclusive,
+ one of them has to be set to 0 (which means don't care). For
+ distorted fonts, the font matrix must be used.
+ */
+ double ReferenceAdvancement;
+
+
+ /** The locale this font should be able to render.
+
+ This member supplements the
+ FontInfo::UnicodeRange0 entry with a specific
+ locale; this is e.g. important when selecting between
+ traditional and simplified Chinese is necessary (since the
+ letters have the same Unicode ranges and character values).
+ */
+ ::com::sun::star::lang::Locale Locale;
+
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/rendering/IntegerBitmapLayout.idl b/offapi/com/sun/star/rendering/IntegerBitmapLayout.idl
new file mode 100644
index 0000000000..f23c634d26
--- /dev/null
+++ b/offapi/com/sun/star/rendering/IntegerBitmapLayout.idl
@@ -0,0 +1,110 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module rendering {
+
+/** This structure describes the memory layout of a bitmap having
+ integer color channels.
+
+ This structure collects all necessary information to describe the
+ memory layout of a bitmap having integer color channels
+
+ @since OOo 2.0
+ */
+struct IntegerBitmapLayout
+{
+ /** Number of scanlines for this bitmap.
+
+ This value must not be negative
+ */
+ long ScanLines;
+
+ /** Number of data bytes per scanline.
+
+ This value must not be negative
+ */
+ long ScanLineBytes;
+
+ /** Byte offset between the start of two consecutive scanlines.
+
+ This value is permitted to be negative, denoting a bitmap
+ whose content is flipped at the x axis.
+ */
+ long ScanLineStride;
+
+ /** Byte offset between the start of two consecutive planes.
+
+ This value is permitted to be negative. If this value is zero,
+ the bitmap is assumed to be in chunky format, otherwise it is
+ assumed to be planar. The difference between chunky and
+ planar layout lies in the way how color channels are
+ interleaved. For a chunky format, all channel data for a
+ single pixel lies consecutively in memory. For a planar
+ layout, the first channel of all pixel is stored consecutive,
+ followed by the second channel, and so forth.
+ */
+ long PlaneStride;
+
+ /** Color space the bitmap colors shall be interpreted within.
+
+ Note that the actual pixel layout is specified at the color
+ space. If this layout describes a palette bitmap format, this
+ color space describes the index format (plus maybe an extra
+ alpha channel). The palette itself references another color
+ space, which describes the layout of the palette entries.
+
+ @see XBitmapPalette
+ */
+ XIntegerBitmapColorSpace ColorSpace;
+
+ /** This member determines whether the bitmap data are actually
+ indices into a color map.
+
+ When set to the nil reference, the bitmap data is assumed to
+ contain direct color values (to be interpreted according to
+ the associated color space). If this member references a valid
+ palette, one of the pixel components as returned by the color
+ space referenced from the #ColorSpace is
+ required to be of type
+ ColorComponentTag::INDEX. That component is
+ then used to index the palette.
+ */
+ XBitmapPalette Palette;
+
+ /** This member determines the bit order (only relevant if a pixel
+ uses less than 8 bits, of course).
+
+ When `TRUE`, this member denotes that the leftmost pixel from
+ an 8 bit amount of pixel data consists of the bits starting
+ with the most significant bit. When `FALSE`, it's starting
+ with the least significant bit.
+
+ Example: for a 1bpp bitmap, each pixel is represented by
+ exactly one bit. If this member is `TRUE`, the first pixel is
+ the MSB of the first byte, and the eighth pixel is the LSB of
+ the first byte. If this member is `FALSE`, it's just the
+ opposite.
+ */
+ boolean IsMsbFirst;
+
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/rendering/InterpolationMode.idl b/offapi/com/sun/star/rendering/InterpolationMode.idl
new file mode 100644
index 0000000000..5fa7ec19d0
--- /dev/null
+++ b/offapi/com/sun/star/rendering/InterpolationMode.idl
@@ -0,0 +1,83 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module rendering {
+
+/** These constants specify the interpolation type for animation
+ frames.
+
+ With this constants, one specifies the way of interpolation that
+ takes place between two consecutive frames of a discrete animation
+ sequence.
+
+ @since OOo 2.0
+ */
+constants InterpolationMode
+{
+ /** Perform a nearest neighbor interpolation.
+
+ That is, when interpolating between two values v0 and v1,
+ positioned at t0 and t1, take the one which has the closest t
+ coordinate.
+ */
+ const byte NEAREST_NEIGHBOR=1;
+
+
+ /** Perform a linear interpolation.
+
+ That is, when interpolating at position t between two values
+ v0 and v1, positioned at t0 and t1, take the sum of v0
+ weighted with (t-t0) and v1 weighted with (t1-t).
+ */
+ const byte LINEAR=2;
+
+
+ /** Perform a cubic interpolation.
+
+ That is, when interpolating at position t, take the four
+ closest data points v0, v1, v2, and v3, fit a cubic curve
+ through them, and take the interpolated value from this cubic
+ curve.
+ */
+ const byte CUBIC=3;
+
+
+ /** Perform a cubic Bezier spline interpolation.
+
+ That is, when interpolating at position t, take the three
+ closest data points v0, v1, and v2, fit a cubic Bezier spline
+ through them, and take the interpolated value from this cubic
+ curve.
+ */
+ const byte BEZIERSPLINE3=4;
+
+
+ /** Perform a quadric Bezier spline interpolation.
+
+ That is, when interpolating at position t, take the four
+ closest data points v0, v1, v2, and v3, fit a quadric Bezier
+ spline through them, and take the interpolated value from this
+ quadric curve.
+ */
+ const byte BEZIERSPLINE4=5;
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/rendering/MtfRenderer.idl b/offapi/com/sun/star/rendering/MtfRenderer.idl
new file mode 100644
index 0000000000..f70771e375
--- /dev/null
+++ b/offapi/com/sun/star/rendering/MtfRenderer.idl
@@ -0,0 +1,30 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module rendering {
+
+service MtfRenderer : XMtfRenderer
+{
+ createWithBitmapCanvas([in] XBitmapCanvas Canvas);
+};
+
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/rendering/Panose.idl b/offapi/com/sun/star/rendering/Panose.idl
new file mode 100644
index 0000000000..091299f527
--- /dev/null
+++ b/offapi/com/sun/star/rendering/Panose.idl
@@ -0,0 +1,57 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module rendering {
+
+struct Panose
+{
+ /// PanoseFamilyTypes
+ byte FamilyType;
+
+ /// PanoseSerifStyle
+ byte SerifStyle;
+
+ /// PanoseWeight
+ byte Weight;
+
+ /// PanoseProportion
+ byte Proportion;
+
+ /// PanoseContrast
+ byte Contrast;
+
+ /// PanoseStrokeVariation
+ byte StrokeVariation;
+
+ /// PanoseArmStyle
+ byte ArmStyle;
+
+ /// PanoseLetterForm
+ byte Letterform;
+
+ /// PanoseMidline
+ byte Midline;
+
+ /// PanoseXHeight
+ byte XHeight;
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/rendering/PanoseArmStyle.idl b/offapi/com/sun/star/rendering/PanoseArmStyle.idl
new file mode 100644
index 0000000000..4045d60c00
--- /dev/null
+++ b/offapi/com/sun/star/rendering/PanoseArmStyle.idl
@@ -0,0 +1,40 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module rendering {
+
+constants PanoseArmStyle
+{
+ const byte ANYTHING=0;
+ const byte NO_FIT=1;
+ const byte STRAIGHT_HORIZONTAL=2;
+ const byte STRAIGHT_WEDGE=3;
+ const byte STRAIGHT_VERTICAL=4;
+ const byte STRAIGHT_SINGLE_SERIF=5;
+ const byte STRAIGHT_DOUBLE_SERIF=6;
+ const byte BENT_HORIZONTAL=7;
+ const byte BENT_WEDGE=8;
+ const byte BENT_VERTICAL=9;
+ const byte BENT_SINGLE_SERIF=10;
+ const byte BENT_DOUBLE_SERIF=11;
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/rendering/PanoseContrast.idl b/offapi/com/sun/star/rendering/PanoseContrast.idl
new file mode 100644
index 0000000000..3aa1eb1fcf
--- /dev/null
+++ b/offapi/com/sun/star/rendering/PanoseContrast.idl
@@ -0,0 +1,38 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module rendering {
+
+constants PanoseContrast
+{
+ const byte ANYTHING=0;
+ const byte NO_FIT=1;
+ const byte NONE=2;
+ const byte VERY_LOW=3;
+ const byte LOW=4;
+ const byte MEDIUM_LOW=5;
+ const byte MEDIUM=6;
+ const byte MEDIUM_HIGH=7;
+ const byte HIGH=8;
+ const byte VERY_HIGH=9;
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/rendering/PanoseFamilyTypes.idl b/offapi/com/sun/star/rendering/PanoseFamilyTypes.idl
new file mode 100644
index 0000000000..ea7d87061f
--- /dev/null
+++ b/offapi/com/sun/star/rendering/PanoseFamilyTypes.idl
@@ -0,0 +1,34 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module rendering {
+
+constants PanoseFamilyTypes
+{
+ const byte ANYTHING=0;
+ const byte NO_FIT=1;
+ const byte TEXT_DISPLAY=2;
+ const byte SCRIPT=3;
+ const byte DECORATIVE=4;
+ const byte PICTORIAL=5;
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/rendering/PanoseLetterForm.idl b/offapi/com/sun/star/rendering/PanoseLetterForm.idl
new file mode 100644
index 0000000000..c2cc80a2fc
--- /dev/null
+++ b/offapi/com/sun/star/rendering/PanoseLetterForm.idl
@@ -0,0 +1,44 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module rendering {
+
+constants PanoseLetterForm
+{
+ const byte ANYTHING=0;
+ const byte NO_FIT=1;
+ const byte NORMAL_CONTACT=2;
+ const byte NORMAL_WEIGHTED=3;
+ const byte NORMAL_BOXED=4;
+ const byte NORMAL_FLATTENED=5;
+ const byte NORMAL_ROUNDED=6;
+ const byte NORMAL_OFF_CENTER=7;
+ const byte NORMAL_SQUARE=8;
+ const byte OBLIQUE_CONTACT=9;
+ const byte OBLIQUE_WEIGHTED=10;
+ const byte OBLIQUE_BOXED=11;
+ const byte OBLIQUE_FLATTENED=12;
+ const byte OBLIQUE_ROUNDED=13;
+ const byte OBLIQUE_OFF_CENTER=14;
+ const byte OBLIQUE_SQUARE=15;
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/rendering/PanoseMidline.idl b/offapi/com/sun/star/rendering/PanoseMidline.idl
new file mode 100644
index 0000000000..96e9a0a23a
--- /dev/null
+++ b/offapi/com/sun/star/rendering/PanoseMidline.idl
@@ -0,0 +1,42 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module rendering {
+
+constants PanoseMidline
+{
+ const byte ANYTHING=0;
+ const byte NO_FIT=1;
+ const byte STANDARD_TRIMMED=2;
+ const byte STANDARD_POINTED=3;
+ const byte STANDARD_SERIFED=4;
+ const byte HIGH_TRIMMER=5;
+ const byte HIGH_POINTED=6;
+ const byte HIGH_SERIFED=7;
+ const byte CONSTANT_TRIMMED=8;
+ const byte CONSTANT_POINTED=9;
+ const byte CONSTANT_SERIFED=10;
+ const byte LOW_TRIMMED=11;
+ const byte LOW_POINTED=12;
+ const byte LOW_SERIFED=13;
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/rendering/PanoseProportion.idl b/offapi/com/sun/star/rendering/PanoseProportion.idl
new file mode 100644
index 0000000000..5c220a0427
--- /dev/null
+++ b/offapi/com/sun/star/rendering/PanoseProportion.idl
@@ -0,0 +1,38 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module rendering {
+
+constants PanoseProportion
+{
+ const byte ANYTHING=0;
+ const byte NO_FIT=1;
+ const byte OLD_SKOOL=2;
+ const byte MODERN=3;
+ const byte EVEN_WIDTH=4;
+ const byte EXPANDED=5;
+ const byte CONDENSED=6;
+ const byte VERY_EXPANDED=7;
+ const byte VERY_CONDENSED=8;
+ const byte MONO_SPACED=9;
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/rendering/PanoseSerifStyle.idl b/offapi/com/sun/star/rendering/PanoseSerifStyle.idl
new file mode 100644
index 0000000000..869f501e5c
--- /dev/null
+++ b/offapi/com/sun/star/rendering/PanoseSerifStyle.idl
@@ -0,0 +1,44 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module rendering {
+
+constants PanoseSerifStyle
+{
+ const byte ANYTHING=0;
+ const byte NO_FIT=1;
+ const byte COVE=2;
+ const byte OBTUSE_COVE=3;
+ const byte SQUARE_COVE=4;
+ const byte OBTUSE_SQUARE_COVE=5;
+ const byte SQUARE=6;
+ const byte THIN=7;
+ const byte BONE=8;
+ const byte EXAGGERATED=9;
+ const byte TRIANGLE=10;
+ const byte NORMAL_SANS=11;
+ const byte OBTUSE_SANS=12;
+ const byte PERP_SANS=13;
+ const byte FLARED=14;
+ const byte ROUNDED=15;
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/rendering/PanoseStrokeVariation.idl b/offapi/com/sun/star/rendering/PanoseStrokeVariation.idl
new file mode 100644
index 0000000000..bdbf70c74e
--- /dev/null
+++ b/offapi/com/sun/star/rendering/PanoseStrokeVariation.idl
@@ -0,0 +1,37 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module rendering {
+
+constants PanoseStrokeVariation
+{
+ const byte ANYTHING=0;
+ const byte NO_FIT=1;
+ const byte GRADUAL_DIAGONAL=2;
+ const byte GRADUAL_TRANSITIONAL=3;
+ const byte GRADUAL_VERTICAL=4;
+ const byte GRADUAL_HORIZONTAL=5;
+ const byte RAPID_VERTICAL=6;
+ const byte RAPID_HORIZONTAL=7;
+ const byte INSTANT_VERTICAL=8;
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/rendering/PanoseWeight.idl b/offapi/com/sun/star/rendering/PanoseWeight.idl
new file mode 100644
index 0000000000..69123ea779
--- /dev/null
+++ b/offapi/com/sun/star/rendering/PanoseWeight.idl
@@ -0,0 +1,40 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module rendering {
+
+constants PanoseWeight
+{
+ const byte ANYTHING=0;
+ const byte NO_FIT=1;
+ const byte VERY_LIGHT=2;
+ const byte LIGHT=3;
+ const byte THIN=4;
+ const byte BOOK=5;
+ const byte MEDIUM=6;
+ const byte DEMI_BOLD=7;
+ const byte BOLD=8;
+ const byte HEAVY=9;
+ const byte BLACK=10;
+ const byte NORD=11;
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/rendering/PanoseXHeight.idl b/offapi/com/sun/star/rendering/PanoseXHeight.idl
new file mode 100644
index 0000000000..aad00f7c19
--- /dev/null
+++ b/offapi/com/sun/star/rendering/PanoseXHeight.idl
@@ -0,0 +1,36 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module rendering {
+
+constants PanoseXHeight
+{
+ const byte ANYTHING=0;
+ const byte NO_FIT=1;
+ const byte CONSTANT_SMALL=2;
+ const byte CONSTANT_STANDARD=3;
+ const byte CONSTANT_LARGE=4;
+ const byte DUCKING_SMALL=5;
+ const byte DUCKING_STANDARD=6;
+ const byte DUCKING_LARGE=7;
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/rendering/PathCapType.idl b/offapi/com/sun/star/rendering/PathCapType.idl
new file mode 100644
index 0000000000..7bd712f3c9
--- /dev/null
+++ b/offapi/com/sun/star/rendering/PathCapType.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 .
+ */
+
+module com { module sun { module star { module rendering {
+
+/** These constants determine which shape to use for start or end of a
+ stroked path.
+
+ The start and end of stroked paths can have one out of several
+ different shapes (which are, of course, only visible for strokes
+ wider than one device pixel).
+
+ @since OOo 2.0
+ */
+constants PathCapType
+{
+ /// End the path at its start or end point, without any cap.
+ const byte BUTT=0;
+
+
+ /// Extend the path with a half circle cap, diameter is the line width.
+ const byte ROUND=1;
+
+
+ /// Extend the path with a rectangular cap, half the line width long.
+ const byte SQUARE=2;
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/rendering/PathJoinType.idl b/offapi/com/sun/star/rendering/PathJoinType.idl
new file mode 100644
index 0000000000..05b6645982
--- /dev/null
+++ b/offapi/com/sun/star/rendering/PathJoinType.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 .
+ */
+
+module com { module sun { module star { module rendering {
+
+/** Determines which shape to use when joining path segments.
+
+ The joins between different paths segments can be formed out of
+ several different shapes (which are of course only visible for
+ strokes wider than one device pixel).
+
+ @since OOo 2.0
+ */
+constants PathJoinType
+{
+ /** Do not join the path segments at all.
+
+ This join type might lead, depending on the angle between the
+ segments, to visible cracks at the meeting points.
+ */
+ const byte NONE=0;
+
+
+ /** Join the path segment by extending the outer border until they
+ intersect.
+ */
+ const byte MITER=1;
+
+
+ /** Join the path segment with a pie-like patch, such that the
+ outer line of the meeting point is round.
+ */
+ const byte ROUND=2;
+
+
+ /** Join the path segment by connecting the outer ends of the
+ abutting segments with a straight line.
+ */
+ const byte BEVEL=3;
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/rendering/RGBColor.idl b/offapi/com/sun/star/rendering/RGBColor.idl
new file mode 100644
index 0000000000..2deec8490c
--- /dev/null
+++ b/offapi/com/sun/star/rendering/RGBColor.idl
@@ -0,0 +1,35 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module rendering {
+
+/// RGB color triplet
+struct RGBColor
+{
+ /// Red component. Valid range is [0,1.0]
+ ColorComponent Red;
+ /// Green component. Valid range is [0,1.0]
+ ColorComponent Green;
+ /// Blue component. Valid range is [0,1.0]
+ ColorComponent Blue;
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/rendering/RenderState.idl b/offapi/com/sun/star/rendering/RenderState.idl
new file mode 100644
index 0000000000..ce194e98ea
--- /dev/null
+++ b/offapi/com/sun/star/rendering/RenderState.idl
@@ -0,0 +1,88 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module rendering {
+
+interface XPolyPolygon2D;
+
+/** This structure contains information passed to each
+ XCanvas render operation.
+
+ This structure contains information considered as the render
+ state, i.e. the common setup required to render each individual
+ XCanvas primitive.
+
+ @since OOo 2.0
+ */
+struct RenderState
+{
+ /** The affine transform associated with this render
+ operation.
+
+ This is used to transform coordinates of canvas primitives
+ from user space to view space (from which they are
+ subsequently transformed to device space by the view
+ transform).
+ */
+ ::com::sun::star::geometry::AffineMatrix2D AffineTransform;
+
+
+ /** The clipping area associated with this render operation.
+
+ This clipping is interpreted in the user coordinate system,
+ i.e. subject to the render state transform followed by the
+ view transform before mapped to device coordinate space.
+
+ Specifying an empty interface denotes no clipping,
+ i.e. everything rendered to the canvas will be visible
+ (subject to device-dependent constraints, of
+ course). Specifying an empty XPolyPolygon2D, i.e. a
+ poly-polygon containing zero polygons, or an XPolyPolygon2D
+ with any number of empty sub-polygons, denotes the NULL
+ clip. That means, nothing rendered to the canvas will be
+ visible.
+ */
+ XPolyPolygon2D Clip;
+
+
+ /** The device color associated with this render operation.
+
+ Note that this need not be RGB here, but depends on the active
+ device color space.
+
+ @see XGraphicDevice
+ @see XColorSpace
+ */
+ sequence
+
+ The composite mode determines in which way the primitive and
+ possibly existing background is combined. The permissible
+ values must be one out of the CompositeOperation
+ constants.
+ */
+ byte CompositeOperation;
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/rendering/RenderingIntent.idl b/offapi/com/sun/star/rendering/RenderingIntent.idl
new file mode 100644
index 0000000000..66f7d8faad
--- /dev/null
+++ b/offapi/com/sun/star/rendering/RenderingIntent.idl
@@ -0,0 +1,78 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module rendering {
+
+/** The rendering intent for a color space.
+
+ The rendering intent for a color space mostly determines how
+ out-of-gamut color is treated. See Wikipedia
+ for a thorough explanation.
+
+ @since OOo 2.0
+ */
+constants RenderingIntent
+{
+ /** Also known as the image intent, this rendering intent
+ aims to preserve the visual relationship between
+ colors in a way that is perceived as natural to the
+ human eye, although the color values themselves may
+ change. This intent is most suitable for photographic
+ images.
+ */
+ const byte PERCEPTUAL=0;
+
+
+ /** The rendering intent for business graphics that
+ maintains vivid color at the expense of accurate
+ color. It scales the source gamut to the destination
+ gamut but preserves relative saturation instead of
+ hue, so when scaling to a smaller gamut, hues may
+ shift. This rendering intent is primarily designed for
+ business graphics, where bright saturated colors are
+ more important than the exact relationship between
+ colors (such as in a photographic image).
+ */
+ const byte SATURATION=1;
+
+ /** The rendering intent almost identical to Absolute
+ Colorimetric except for the following difference:
+ Relative Colorimetric compares the white point
+ (extreme highlight) of the source color space to that
+ of the destination color space and shifts all colors
+ accordingly.
+ */
+ const byte RELATIVE_COLORIMETRIC=2;
+
+ /** The rendering intent that leaves colors that fall
+ inside the destination gamut unchanged. Out of gamut
+ colors are clipped. No scaling of colors to
+ destination white point is performed. This intent aims
+ to maintain color accuracy at the expense of
+ preserving relationships between colors, and is useful
+ for seeing how output will look on a non-neutral
+ substrate.
+ */
+ const byte ABSOLUTE_COLORIMETRIC=3;
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/rendering/RepaintResult.idl b/offapi/com/sun/star/rendering/RepaintResult.idl
new file mode 100644
index 0000000000..5c1d2c3df9
--- /dev/null
+++ b/offapi/com/sun/star/rendering/RepaintResult.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 .
+ */
+
+module com { module sun { module star { module rendering {
+
+/** These constants specify the result of the
+ XCachedPrimitive render operation.
+
+ @since OOo 2.0
+ */
+constants RepaintResult
+{
+ /** Repaint succeeded, primitive has been exactly reproduced.
+ */
+ const byte REDRAWN=1;
+
+
+ /** Repaint succeeded, primitive has been reproduced in preview quality.
+ */
+ const byte DRAFTED=2;
+
+
+ /** Repaint failed altogether.
+ */
+ const byte FAILED=3;
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/rendering/StringContext.idl b/offapi/com/sun/star/rendering/StringContext.idl
new file mode 100644
index 0000000000..0b4c349fbe
--- /dev/null
+++ b/offapi/com/sun/star/rendering/StringContext.idl
@@ -0,0 +1,56 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module rendering {
+
+/** Collection of string-related arguments used on all canvas text
+ interfaces.
+
+ A possibly much larger string than later rendered is necessary
+ here, because in several languages, glyph selection is context
+ dependent.
+
+ @since OOo 2.0
+ */
+struct StringContext
+{
+ /** The complete text, from which a subset is selected by the
+ parameters below.
+ */
+ string Text;
+
+
+ /** Start position within the string.
+
+ The first character has index 0.
+ */
+ long StartPosition;
+
+
+ /** Length of the substring to actually use.
+
+ Must be within the range [0,INTMAX].
+ */
+ long Length;
+
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/rendering/StrokeAttributes.idl b/offapi/com/sun/star/rendering/StrokeAttributes.idl
new file mode 100644
index 0000000000..b9022c3590
--- /dev/null
+++ b/offapi/com/sun/star/rendering/StrokeAttributes.idl
@@ -0,0 +1,128 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module rendering {
+
+/** This structure contains all attributes required for path stroking.
+
+ Path stroking is the process of drawing a polygon with a thick
+ pen. The various attributes contained in this structure can be
+ used to customize that process.
+ */
+struct StrokeAttributes
+{
+ /** Defines the width of the stroke, measured in user
+ coordinate space.
+
+ This value must be positive (or 0.0)
+ */
+ double StrokeWidth;
+
+
+ /** Determines the maximal length of the diagonal in mitered
+ corners.
+
+ This attribute is only used when
+ StrokeAttributes::JoinType is set to
+ PathJoinType::MITER. Should the length of a
+ corner's diagonal exceed this limit, a beveled join is used
+ instead. This value must be positive (or 0.0, which is
+ equivalent to setting
+ StrokeAttributes::JoinType to
+ PathJoinType::BEVEL.
+
+ Before performing the actual comparison, implementations will
+ multiply the MiterLimit with the current StrokeWidth, such
+ that, with phi being the angle between the two joining
+ segments, MiterLimit=1/sin(phi/2.0).
+ */
+ double MiterLimit;
+
+
+ /** Array of ink on and off lengths, measured in user coordinate
+ space.
+
+ The first element specifies the length of the first "on"
+ segment of the dashing, the second element the length of the
+ first "off" segment, and so forth. Give zero elements here for
+ solid strokes. This array always have an even number of
+ elements, with zero, as usual, counting as even
+ here. Furthermore, each entry in this array must have a value
+ that is positive (or 0.0)
+ */
+ sequence
+
+ The entries here are relative to the
+ StrokeAttributes::StrokeWidth attribute
+ above, i.e. the total width of all lines and spacings will
+ always equal
+ StrokeAttributes::StrokeWidth. The first
+ element specifies the width of the rightmost line, when
+ traveling from the start point of the path to the end
+ point. The second element specifies the space between the
+ first line and the second line, and so forth. If the array
+ ends with a spacing, this spacing is included in the total
+ width of the multiple-line stroke. That is, the stroke becomes
+ asymmetric.
+ */
+ sequence
+
+ The start point is the first point of every polygon of the
+ path poly-polygon.
+
+ @see PathCapType
+ */
+ byte StartCapType;
+
+
+ /** The end shape of the stroke.
+
+ The end point is the last point of every polygon of the path
+ poly-polygon.
+
+ @see PathCapType
+ */
+ byte EndCapType;
+
+
+ /** The join shape of the stroke.
+
+ After every sub-stroke, i.e. after every line or curve segment
+ within a single path polygon, a shape of this type is inserted
+ into the stroke to glue the segments together. Please note
+ that distinct polygons within the path poly-polygon are not
+ connected, and therefore also not joined via the shape
+ specified here.
+
+ @see PathJoinType
+ */
+ byte JoinType;
+
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/rendering/TextDirection.idl b/offapi/com/sun/star/rendering/TextDirection.idl
new file mode 100644
index 0000000000..043d4d3dcf
--- /dev/null
+++ b/offapi/com/sun/star/rendering/TextDirection.idl
@@ -0,0 +1,43 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module rendering {
+
+/** Specifies main text direction in a text portion.
+
+ This also changes the interpretation of the start point.
+
+ @since OOo 2.0
+ */
+constants TextDirection
+{
+ /// Reference point is left, main direction is from left to right
+ const byte WEAK_LEFT_TO_RIGHT=0;
+ /// Reference point is left, main direction is from left to right
+ const byte STRONG_LEFT_TO_RIGHT=2;
+
+ /// Reference point is right, main direction is from right to left
+ const byte WEAK_RIGHT_TO_LEFT=1;
+ /// Reference point is right, main direction is from right to left
+ const byte STRONG_RIGHT_TO_LEFT=3;
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/rendering/TextHit.idl b/offapi/com/sun/star/rendering/TextHit.idl
new file mode 100644
index 0000000000..3b7df55cc9
--- /dev/null
+++ b/offapi/com/sun/star/rendering/TextHit.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 .
+ */
+
+module com { module sun { module star { module rendering {
+
+/** This structure contains hit information for XTextLayout.
+
+ This structure is used from the XTextLayout interface
+ to transport information regarding hit tests.
+
+ @since OOo 2.0
+ */
+struct TextHit
+{
+ /** This contains the entry index.
+
+ The entry index is the index of the insertion point in the
+ character sequence. The insertion point denotes positions
+ between the actual characters in the string, and can
+ thus have values ranging from 0 up to the number of characters
+ in the string. Hereby, an index of 0 denotes an insertion
+ position before the first character, and an index
+ containing the number of characters denotes an insertion
+ behind the last character.
+ */
+ long EntryIndex;
+
+ /** This member denotes whether the hit was on the leading
+ edge.
+
+ Each character is divided in two halves, the leading and the
+ trailing part. The leading edge is the part of the glyph
+ encountered first when reading text of the corresponding
+ language (i.e. the leading edge of an Arabic glyph is the
+ right half of it, whereas it is the left half of a Latin
+ character). If the hit was on the leading edge, this member is
+ set to `TRUE`.
+ */
+ boolean IsLeadingEdge;
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/rendering/Texture.idl b/offapi/com/sun/star/rendering/Texture.idl
new file mode 100644
index 0000000000..9d990d28f3
--- /dev/null
+++ b/offapi/com/sun/star/rendering/Texture.idl
@@ -0,0 +1,132 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module rendering {
+
+interface XBitmap;
+interface XParametricPolyPolygon2D;
+
+/** Contains all information needed to define a texture.
+
+ This structure contains all information necessary to define a
+ texture. A texture describes the filled area of polygonal shapes,
+ providing its own transformation matrix, repeat mode, and
+ transparency.
+
+ To achieve uniformity, if this texture has a bitmap set, it is
+ scaled in such a way that it will cover the same [0,1]x[0,1] box
+ as the hatch and the gradient. The transformation member can then
+ be used to scale the complete texture as it fits suit.
+
+ @since OOo 2.0
+ */
+struct Texture
+{
+ /** Texture transformation from texture to primitive space.
+
+ This member allows arbitrary transformations of the texture,
+ relative to the textured primitive. Thus, the total
+ transformation from the [0,1]x[0,1] texture space to the
+ device coordinate space is the concatenation of texture,
+ render state, and view state transformation (with only render
+ state and view state transformation being applied to the
+ textured primitive).
+ */
+ ::com::sun::star::geometry::AffineMatrix2D AffineTransform;
+
+
+ /** Overall transparency of the texturing.
+
+ The valid range for this value is [0,1], where 0 denotes
+ complete transparency, and 1 denotes fully opaque.
+ */
+ double Alpha;
+
+
+ /** Specifies the number of parameterized polygons used for the texture.
+
+ This member specifies the number of polygons the parametric
+ polygon interface is queried. The continuous range [0,1] of
+ the XParametricPolyPolygon::getOutline() method is divided up
+ into numberOfHatchPolygons equal parts, and for everyone of
+ these parts, the start of the interval is plugged into the
+ getOutline method. For example, if numberOfHatchPolygons is 2,
+ then getOutline is called twice, once with 0.0 and once with
+ 0.5. Use this parameter to control the density of the
+ hatching.
+ */
+ long NumberOfHatchPolygons;
+
+
+ /** Texture bitmap.
+
+ This member can be used together with gradient and hatching.
+
+ The bitmap is scaled to a one-by-one rectangle, to cover the
+ same area as both the gradient and the hatching.
+ */
+ XBitmap Bitmap;
+
+
+ /** Texture gradient.
+
+ This member can be used together with bitmap and hatching. The
+ parametric polygons color value is used to fill the returned
+ polygonal outlines.
+ */
+ XParametricPolyPolygon2D Gradient;
+
+
+ /** Texture hatching.
+
+ This member can be used together with bitmap and gradient. The
+ parametric polygons color value is used to stroke the returned
+ polygonal outlines.
+ */
+ XParametricPolyPolygon2D Hatching;
+
+
+ /** Specifies the stroke attributes used for hatching.
+
+ Use 0.0 as the strokeWidth here to indicate hair lines.
+ */
+ StrokeAttributes HatchAttributes;
+
+
+ /** Repeat mode of the texture, x direction.
+
+ The repeat mode is separated into x and y direction, this is
+ the x direction part. Permissible values are from the
+ TexturingMode constants.
+ */
+ byte RepeatModeX;
+
+ /** Repeat mode of the texture, y direction.
+
+ The repeat mode is separated into x and y direction, this is
+ the y direction part. Permissible values are from the
+ TexturingMode constants.
+ */
+ byte RepeatModeY;
+
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/rendering/TexturingMode.idl b/offapi/com/sun/star/rendering/TexturingMode.idl
new file mode 100644
index 0000000000..50d7dba890
--- /dev/null
+++ b/offapi/com/sun/star/rendering/TexturingMode.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 .
+ */
+
+module com { module sun { module star { module rendering {
+
+/** Enumeration of possible values to spread a texture across a
+ primitive.
+
+ @since OOo 2.0
+ */
+constants TexturingMode
+{
+ /** Pixel outside the texture area are fully transparent.
+
+ This completely switches off pixel generation outside the
+ texture coordinate range [0,1]. This results in only one
+ instance of the texture generated per textured primitive.
+ */
+ const byte NONE=0;
+
+
+ /** Clamp texture coordinate.
+
+ This value clamps the texture coordinates to the range
+ [0,1]. This results in only one instance of the texture
+ generated per textured primitive, with the remaining area
+ filled with the color of the outermost texels
+ */
+ const byte CLAMP=1;
+
+
+ /** Repeat the texture.
+
+ This value repeats the texture over the textured primitive,
+ for the given texture coordinate.
+ */
+ const byte REPEAT=2;
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/rendering/ViewState.idl b/offapi/com/sun/star/rendering/ViewState.idl
new file mode 100644
index 0000000000..6be4c3a4d6
--- /dev/null
+++ b/offapi/com/sun/star/rendering/ViewState.idl
@@ -0,0 +1,62 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module rendering {
+
+interface XPolyPolygon2D;
+
+/** This structure contains information considered the view state.
+
+ This structure contains information considered the view state,
+ i.e. the invariant setup used when painting a whole view of
+ something.
+
+ @since OOo 2.0
+ */
+struct ViewState
+{
+ /** The affine transform associated with the view.
+
+ This member is used to transform coordinates of draw
+ operations from user space to screen space.
+ */
+ ::com::sun::star::geometry::AffineMatrix2D AffineTransform;
+
+
+ /** The clipping area associated with the view.
+
+ This clipping is interpreted in the view coordinate systems,
+ i.e. subject to the view transform before mapping to the
+ device coordinate space.
+
+ Specifying an empty interface denotes no clipping,
+ i.e. everything rendered to the canvas will be visible
+ (subject to device-dependent constraints, of
+ course). Specifying an empty XPolyPolygon2D, i.e. a
+ poly-polygon containing zero polygons, or an XPolyPolygon2D
+ with any number of empty sub-polygons, denotes the NULL
+ clip. That means, nothing rendered to the canvas will be
+ visible.
+ */
+ XPolyPolygon2D Clip;
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/rendering/VolatileContentDestroyedException.idl b/offapi/com/sun/star/rendering/VolatileContentDestroyedException.idl
new file mode 100644
index 0000000000..2bb3fc9315
--- /dev/null
+++ b/offapi/com/sun/star/rendering/VolatileContentDestroyedException.idl
@@ -0,0 +1,35 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module rendering {
+
+ /** This exception indicates an invalid volatile bitmap content.
+
+ When accessing or rendering XVolatileBitmap data, that has
+ been invalidated by the system, this exception will be thrown.
+
+ @since OOo 2.0
+ */
+ exception VolatileContentDestroyedException : ::com::sun::star::uno::Exception
+ {
+ };
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/rendering/XAnimatedSprite.idl b/offapi/com/sun/star/rendering/XAnimatedSprite.idl
new file mode 100644
index 0000000000..5a3f48f5aa
--- /dev/null
+++ b/offapi/com/sun/star/rendering/XAnimatedSprite.idl
@@ -0,0 +1,162 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module rendering {
+
+/** This interface can be used to control an animated sprite object.
+
+ This interface can be used to control an animated sprite object on
+ an XSpriteCanvas. Sprites are moving, animated objects.
+
+ @since OOo 2.0
+ */
+interface XAnimatedSprite : XSprite
+{
+ /** Start animation sequence of this sprite.
+
+ The speed of the animation is given in cycles per second
+ (where a cycle is defined as one full animation run, i.e. the
+ full [0,1] range of the XAnimation::render()'s
+ t parameter, or a full sequence of sprite bitmaps drawn). Once
+ an animation is running, the associated
+ XSpriteCanvas handles screen updates
+ automatically. That means, changes to position or alpha are
+ reflected on screen automatically. Please note further that
+ sprite visibility and animation are unrelated, i.e. a hidden
+ sprite can have a running animation, which then displays in
+ the middle of the animation sequence, when a show() is called
+ later on.
+
+ @param nSpeed
+ The speed of the animation in cycles per second (where a cycle
+ is defined as one full animation run, i.e. the full [0,1]
+ range of the XAnimation::render()'s t
+ parameter, or a full sequence of sprite bitmaps drawn).
+ */
+ void startAnimation( [in] double nSpeed );
+
+
+ /** Stop the animation sequence.
+
+ A subsequent XAnimatedSprite::startAnimation()
+ will commence the sequence at the point where it was stopped
+ with here. Once an animation is stopped, the associated
+ XSpriteCanvas does not update changed sprites
+ anymore.
+ */
+ void stopAnimation();
+
+
+ /** Reset the animation sequence to start with the first frame.
+
+ If the animation is currently running, the next frame that is
+ drawn after this method has finished, will be the first
+ one. Please note that if an animation is not started, the
+ associated XSpriteCanvas does not update changed
+ sprites automatically.
+ */
+ void resetAnimation();
+
+
+ /** Issue an additional render call to this sprite's
+ animation.
+
+ This method has no effect when called for a bitmap-sequence
+ sprite. Please note that if an animation is not started, the
+ associated XSpriteCanvas does not update changed
+ sprites automatically, but has to be told to do so via
+ XSpriteCanvas::updateScreen().
+ */
+ void updateAnimation();
+
+
+ /** Changes the view state in place for this sprite's
+ animation.
+
+ The state given here is used when calling the
+ XAnimation::render() method, or when drawing
+ the sprite's bitmaps, respectively. There's no need to call
+ XSpriteCanvas::updateAnimation() after this
+ method, as it automatically rerenders, if necessary. Please
+ note that if an animation is not started, the associated
+ XSpriteCanvas does not update changed sprites
+ automatically, but has to be told to do so via
+ XSpriteCanvas::updateScreen().
+
+ @param aViewState
+ The state given here is used when calling the
+ XAnimation::render() method, or when drawing
+ the sprite's bitmaps, respectively.
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if the view transformation matrix is singular.
+ */
+ void setViewState( [in] ViewState aViewState )
+ raises (com::sun::star::lang::IllegalArgumentException);
+
+
+ /** Changes all of the sprite's attributes at one atomic
+ instance.
+
+ This is useful at times where one does not want multiple
+ redraws for every state change.
+
+ Please note that if an animation is not started, the
+ associated XSpriteCanvas does not update changed
+ sprites automatically, but has to be told to do so via
+ XSpriteCanvas::updateScreen().
+
+ @param aNewPos
+ New left,top output position of the sprite. This position gets
+ transformed by the view and render state.
+
+ @param aViewState
+ New view state of the sprite, and part of the transformation
+ that is applied to aNewPos. The view transformation matrix
+ must not be singular.
+
+ @param aRenderState
+ New render state of the sprite, and part of the transformation
+ that is applied to aNewPos. The render transformation matrix
+ must not be singular.
+
+ @param nAlpha
+ New alpha value of the sprite. This value must be within the
+ [0,1] range.
+
+ @param bUpdateAnimation
+ Whether this method should implicitly call
+ XSpriteCanvas::updateAnimation() or not.
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if one of the passed parameters does not lie in the specified,
+ permissible range.
+ */
+ void setAll( [in] ::com::sun::star::geometry::RealPoint2D aNewPos,
+ [in] ViewState aViewState,
+ [in] RenderState aRenderState,
+ [in] double nAlpha,
+ [in] boolean bUpdateAnimation )
+ raises (com::sun::star::lang::IllegalArgumentException);
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/rendering/XAnimation.idl b/offapi/com/sun/star/rendering/XAnimation.idl
new file mode 100644
index 0000000000..d44303f083
--- /dev/null
+++ b/offapi/com/sun/star/rendering/XAnimation.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 .
+ */
+
+
+module com { module sun { module star { module rendering {
+
+/* TODO: Have a property set here, to easily extend attributes? Think
+ that's advisable, because animations change the most. Implement
+ that with multiple inheritance interface types, please, not with
+ service description.
+*/
+
+/** This interface defines an animation sequence.
+
+ This interface must be implemented by every animation object. It
+ is used by the XCanvas interface to render generic
+ animations.
+
+ @since OOo 2.0
+ */
+interface XAnimation : ::com::sun::star::uno::XInterface
+{
+ /** Render the animation content at time t into the specified
+ canvas.
+
+ Note that it is perfectly legal to e.g. map t in a nonlinear
+ fashion to internal frames, for example to achieve
+ acceleration or deceleration effects. It is required that the
+ render method has const semantics, i.e. when called with the
+ same parameter set, identical output must be generated. This
+ is because e.g. a Sprite might decide arbitrarily to render an
+ animation once and cache the result, or repaint it via
+ XAnimation::render every time.
+
+ The rendered content, although, must be exactly the same for
+ identical viewState, canvas and t values. Or, for that
+ matters, must call the same canvas methods in the same order
+ with the same parameter sets, for identical viewState and t
+ values. Furthermore, when viewState has the identity
+ transformation set, rendered output must be contained in a
+ rectangle with upper left corner at (0,0) and width and height
+ given by the AnimationAttributes' untransformedSize
+ member. Any content exceeding this box might get clipped off.
+
+ @param canvas
+ The target canvas to render this animation to.
+
+ @param viewState
+ The view state to be used when rendering this animation to the
+ target canvas. The view transformation matrix must not be
+ singular.
+
+ @param t
+ Time instant for which animation content is requested. The
+ range must always be [0,1], where 0 denotes the very beginning, and
+ 1 the end of the animation sequence.
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if one of the passed parameters does not lie in the specified,
+ permissible range.
+ */
+ void render( [in] XCanvas canvas, [in] ViewState viewState, [in] double t )
+ raises (com::sun::star::lang::IllegalArgumentException);
+
+
+ /** Request the attribute information for this animation.
+
+ This method returns the AnimationAttributes
+ structure, which defines more closely how to play this
+ animation.
+
+ @returns the requested AnimationAttributes
+ structure.
+ */
+ AnimationAttributes getAnimationAttributes();
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/rendering/XBezierPolyPolygon2D.idl b/offapi/com/sun/star/rendering/XBezierPolyPolygon2D.idl
new file mode 100644
index 0000000000..5b3cc27842
--- /dev/null
+++ b/offapi/com/sun/star/rendering/XBezierPolyPolygon2D.idl
@@ -0,0 +1,151 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module rendering {
+
+/** This is a specialized interface for a 2D poly-polygon containing
+ straight line and Bezier segments.
+
+ This poly-polygon can contain polygons consisting of a mixture of
+ cubic Bezier curves and straight lines. As the straight line is a
+ special case of a cubic Bezier curve (control points collinear
+ with the line through start and end point), this can be expressed
+ uniformly with a sequence of RealBezierSegment2Ds.
+
+ By convention, a RealBezierSegment2D is a straight
+ line segment, if all three contained points are strictly equal.
+
+ @since OOo 2.0
+ */
+interface XBezierPolyPolygon2D : XPolyPolygon2D
+{
+ /** Query subset of this poly-polygon.
+
+ Query subset of this poly-polygon, starting at the given
+ polygon and the given point within that polygon, and
+ containing the specified number of polygons and points in the
+ last polygon.
+
+ @param nPolygonIndex
+ The index of the polygon to start point retrieval with. This
+ index must be in the range [0,numPolygons-1].
+
+ @param nNumberOfPolygons
+ The number of polygons to extract. This value must not exceed
+ numPolygons-nPolygonIndex.
+
+ @param nPointIndex
+ The index of the first point in the first polygon to
+ extract. This value must not exceed the number of points in
+ this polygon minus one.
+
+ @param nNumberOfPoints
+ The number of points to extract from the last polygon. This
+ value must not exceed the number of points in this last
+ polygon minus one.
+
+ @returns the sequence of extracted points.
+
+ @throws com::sun::star::lang::IndexOutOfBoundsException
+ if one of the given values exceed the permissible range.
+ */
+ sequence< sequence < ::com::sun::star::geometry::RealBezierSegment2D > > getBezierSegments( [in] long nPolygonIndex, [in] long nNumberOfPolygons, [in] long nPointIndex, [in] long nNumberOfPoints )
+ raises (com::sun::star::lang::IndexOutOfBoundsException);
+
+
+ /** Set the specified sequence of Bezier segments to the poly-polygon.
+
+ This method can either set the whole poly-polygon to the new
+ data, or insert the segments at the given index
+
+ @param points the points.
+
+ @param nPolygonIndex
+ The index of the polygon to start segment insertion with. This
+ index must be in the range [0,numPolygons], and the insertion
+ will take place before this position (i.e. when
+ specifying 0 here, the given Bezier sequence will precede all
+ existing polygons already within the poly-polygon). To append
+ to a poly-polygon, call setPoints() with
+ XBezierPolyPolygon2D::getNumberOfPolygons()
+ as the polygon index. If nPolygonIndex is -1, the given
+ Bezier sequence replaces the poly-polygon content,
+ such that after this method completes, it contains exactly the
+ specified Bezier segment data.
+
+ @throws com::sun::star::lang::IndexOutOfBoundsException
+ if one of the given values exceed the permissible range.
+ */
+ void setBezierSegments( [in] sequence< sequence< ::com::sun::star::geometry::RealBezierSegment2D > > points, [in] long nPolygonIndex )
+ raises (com::sun::star::lang::IndexOutOfBoundsException);
+
+
+ /** Get a single point from the poly-polygon.
+
+ @param nPolygonIndex
+ The index of the polygon where the point to be extract is
+ contained within. This index must be in the range
+ [0,numPolygons-1].
+
+ @param nPointIndex
+ The index of the point in the polygon specified by
+ nPolygonIndex, which is to be retrieved. This value must not
+ exceed the number of points in this polygon minus one.
+
+ @returns the requested point.
+
+ @throws com::sun::star::lang::IndexOutOfBoundsException
+ if one of the given values exceed the permissible range.
+
+ */
+ ::com::sun::star::geometry::RealBezierSegment2D getBezierSegment( [in] long nPolygonIndex, [in] long nPointIndex )
+ raises (com::sun::star::lang::IndexOutOfBoundsException);
+
+
+ /** Set a single point on the poly-polygon.
+
+ The remaining points of the poly-polygon will not be changed by
+ this method. Use
+ XBezierPolyPolygon2D::getNumberOfPolygons()
+ or
+ XBezierPolyPolygon2D::getNumberOfPolygonPoints()
+ to append points or polygons, respectively.
+
+ @param point
+ The point to be set at the poly-polygon.
+
+ @param nPolygonIndex
+ The index of the polygon to insert the point in. This index
+ must be in the range [0,numPolygons].
+
+ @param nPointIndex
+ The index of the point in the polygon specified by
+ nPolygonIndex, which is to be set. This value must not
+ exceed the number of points in this polygon.
+
+ @throws com::sun::star::lang::IndexOutOfBoundsException
+ if one of the given values exceed the permissible range.
+ */
+ void setBezierSegment( [in] ::com::sun::star::geometry::RealBezierSegment2D point, [in] long nPolygonIndex, [in] long nPointIndex )
+ raises (com::sun::star::lang::IndexOutOfBoundsException);
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/rendering/XBitmap.idl b/offapi/com/sun/star/rendering/XBitmap.idl
new file mode 100644
index 0000000000..f1a5a446f0
--- /dev/null
+++ b/offapi/com/sun/star/rendering/XBitmap.idl
@@ -0,0 +1,85 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module rendering {
+
+/** This is a generic interface to a bitmap.
+
+ This interface contains the generic functionality to be used on
+ every XCanvas bitmap object. More format-specific
+ methods can be found at the XIntegerBitmap,
+ XIeeeDoubleBitmap, XIeeeFloatBitmap and
+ XHalfFloatBitmap interfaces.
+
+ @since OOo 2.0
+ */
+interface XBitmap : ::com::sun::star::uno::XInterface
+{
+ /** Query the size of the bitmap.
+
+ This method queries the bitmap size in pixel.
+
+ @return the bitmap size in pixel.
+ */
+ ::com::sun::star::geometry::IntegerSize2D getSize();
+
+
+ /** Query transparency status of the bitmap.
+
+ The method checks, whether the bitmap contains any alpha
+ information. The same information is also available at the
+ XColorSpace associated with this bitmap, though
+ much easier to access here (the color space then has a
+ component flagged
+ ColorComponentTag::ALPHA).
+
+ @return `TRUE`, if the bitmap has alpha data, or `FALSE` if
+ not.
+ */
+ boolean hasAlpha();
+
+
+ /** Query a scaled copy of the original bitmap.
+
+ @param newSize
+ Requested size of the new bitmap. Both of the two size
+ components must be greater than zero.
+
+ @param beFast
+ When set to true, this parameter advises getScaledBitmap to
+ use the fastest available algorithm to scale the bitmap, which
+ might cause visible artifacts.
+
+ @returns the new scaled bitmap.
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if the size components are outside the specified range.
+
+ @throws VolatileContentDestroyedException
+ if the contents of a volatile bitmap have been destroyed, and
+ thus cannot be read to generate the scaled bitmap.
+ */
+ XBitmap getScaledBitmap( [in] ::com::sun::star::geometry::RealSize2D newSize, [in] boolean beFast )
+ raises (com::sun::star::lang::IllegalArgumentException,
+ VolatileContentDestroyedException);
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/rendering/XBitmapCanvas.idl b/offapi/com/sun/star/rendering/XBitmapCanvas.idl
new file mode 100644
index 0000000000..a9d43225fc
--- /dev/null
+++ b/offapi/com/sun/star/rendering/XBitmapCanvas.idl
@@ -0,0 +1,102 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module rendering {
+
+/** This is a specialization of the canvas interface for bitmapped
+ canvases.
+
+ This interface is a specialization of the canvas interface for
+ bitmapped canvases, where additional methods for accessing and
+ moving of bitmap content are provided.
+
+ @since OOo 2.0
+ */
+interface XBitmapCanvas : XCanvas
+{
+ /** This method copies a rectangular area from a place of one
+ canvas to a place on another.
+
+ This method copies a rectangular area from a place of one
+ canvas to a place on another. Source and destination areas are
+ permitted to overlap. If the source view or render state has a
+ clipping set, the regions clipped away from the source
+ rectangle are regarded fully transparent for the copy
+ operation. The device color for both source and destination
+ render state is ignored, the compositing mode only for the
+ source render state.
+
+ @param sourceCanvas
+ Canvas from which to copy the bitmap data. Can be identical to
+ the canvas this method is called on, but must be valid.
+
+ @param sourceRect
+ Rectangle from which to copy the bitmap data. This rectangle
+ is subject to both view and render transformation, before
+ being applied. Thus, on screen, it does not necessarily
+ resemble a rectangle any more. The rectangle must be
+ non-empty, see
+ ::com::sun::star::geometry::RealRectangle2D
+ for details.
+
+ @param sourceViewState
+ The view state to apply to the source of this copy
+ operation. The view transformation must be non-singular.
+
+ @param sourceRenderState
+ The render state to apply to the source of this copy
+ operation. The render transformation must be non-singular, and
+ the compositing mode must be one of the
+ CompositingOperation values.
+
+ @param destRect
+ Rectangle into which to copy the bitmap data. This rectangle
+ is subject to both view and render transformation, before
+ being applied. Thus, on screen, it does not necessarily
+ resemble a rectangle any more. The rectangle must be
+ non-empty, see
+ ::com::sun::star::geometry::RealRectangle2D
+ for details.
+
+ @param destViewState
+ The view state to apply to the destination of this copy
+ operation. The view transformation must be non-singular.
+
+ @param destRenderState
+
+ The render state to apply to the destination of this copy
+ operation. The render transformation must be non-singular, and
+ the compositing mode must be one of the
+ CompositingOperation values.
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if one of the parameters are not within the specified range.
+ */
+ void copyRect( [in] XBitmapCanvas sourceCanvas,
+ [in] ::com::sun::star::geometry::RealRectangle2D sourceRect, [in] ViewState sourceViewState, [in] RenderState sourceRenderState,
+ [in] ::com::sun::star::geometry::RealRectangle2D destRect, [in] ViewState destViewState, [in] RenderState destRenderState )
+ raises (com::sun::star::lang::IllegalArgumentException,
+ VolatileContentDestroyedException);
+
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/rendering/XBitmapPalette.idl b/offapi/com/sun/star/rendering/XBitmapPalette.idl
new file mode 100644
index 0000000000..4971cd7d4f
--- /dev/null
+++ b/offapi/com/sun/star/rendering/XBitmapPalette.idl
@@ -0,0 +1,100 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module rendering {
+
+/** Interface to access the palette of a color-indexed bitmap.
+
+ @since OOo 2.0
+ */
+interface XBitmapPalette : ::com::sun::star::uno::XInterface
+{
+ /** Request the number of palette entries available.
+
+ @return the number of entries in this palette.
+ */
+ long getNumberOfEntries();
+
+
+ /** Request the color for the given palette entry.
+
+ @param entry
+ Output parameter for the color components at the given palette
+ entry.
+
+ @param nIndex
+ The index of the palette entry to be retrieved. Valid range is
+ [0,getNumberOfEntries()-1].
+
+ @return `TRUE`, if the given palette entry should be displayed
+ opaque, and `FALSE` if the entry should be displayed
+ transparent. This is sometimes used for so-called mask
+ transparency, by flagging certain palette entries to be fully
+ transparent when displaying the bitmap.
+
+ @throws com::sun::star::lang::IndexOutOfBoundsException
+ if the index is smaller than zero or larger than
+ XBitmapPalette::getNumberOfEntries()-1.
+ */
+ boolean getIndex( [out] sequence
+
+ @return the color space that is associated with this palette.
+ */
+ XColorSpace getColorSpace( );
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/rendering/XBufferController.idl b/offapi/com/sun/star/rendering/XBufferController.idl
new file mode 100644
index 0000000000..2ae22432a7
--- /dev/null
+++ b/offapi/com/sun/star/rendering/XBufferController.idl
@@ -0,0 +1,114 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module rendering {
+
+/** Interface providing access to double/multi-buffer facilities of
+ screen devices.
+
+ This interface provides methods to enable and control
+ double/multi-buffering facilities on screen devices.
+
+ @since OOo 2.0
+ */
+interface XBufferController : ::com::sun::star::uno::XInterface
+{
+ /** Create the given number of background buffers.
+
+ There's one buffer implicitly available, which is the canvas
+ surface itself. Thus, calling
+
+ @param nBuffers
+ The number of background<buffers requested. Must be greater
+ than 0.
+
+ @return the number of actually generated buffers, which might
+ be between 0 (no double-buffering available) and nBuffers.
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if nBuffers is smaller than one.
+ */
+ long createBuffers( [in] long nBuffers )
+ raises (com::sun::star::lang::IllegalArgumentException);
+
+
+ /** Destroy all buffers generated via this object.
+ */
+ void destroyBuffers();
+
+
+ /** Switch the display to show the specified buffer.
+
+ The method returns, when the switch is performed and the
+ selected buffer is shown on screen, or immediately when an
+ error occurs. If the switch was successful, subsequent render
+ operations will be directed to the new backbuffer.
+
+ Use this method if you need your screen display to be in sync
+ with other things, e.g. sound playback.
+
+ @param bUpdateAll
+ When `TRUE`, update the whole screen. When `FALSE`,
+ implementation is permitted to restrict update to areas the
+ canvas itself changed (e.g. because of render operations, or
+ changes on the sprites). The former is useful for updates
+ after window expose events, the latter for animation display.
+
+ @return whether the switch was performed successfully.
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if nBuffer is outside the permissible range.
+ */
+ boolean showBuffer( [in] boolean bUpdateAll );
+
+
+ /** Schedule the display of the specified buffer.
+
+ The method returns, when the switching of the buffer is
+ successfully scheduled, or immediately when an error
+ occurs. If the switch was successful, subsequent render
+ operations will be directed to the new backbuffer. Note that,
+ if the buffer switching is exceedingly slow, or the frequency
+ of switchBuffer() is exceedingly high, the buffer scheduled
+ for display here might become the current render target
+ before it is fully displayed on screen. In this case,
+ any rendering operation to this buffer will block, until it is
+ safe to perform the operation without visible cluttering.
+
+ Use this method if you favor maximal render speed, but don't
+ necessarily require your screen display to be in sync with
+ other things, e.g. sound playback.
+
+ @param bUpdateAll
+ When `TRUE`, update the whole screen. When `FALSE`,
+ implementation is permitted to restrict update to areas the
+ canvas itself changed (e.g. because of render operations, or
+ changes on the sprites). The former is useful for updates
+ after window expose events, the latter for animation display.
+
+ @return whether the switch was performed successfully.
+ */
+ boolean switchBuffer( [in] boolean bUpdateAll );
+
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/rendering/XCachedPrimitive.idl b/offapi/com/sun/star/rendering/XCachedPrimitive.idl
new file mode 100644
index 0000000000..ce2d461397
--- /dev/null
+++ b/offapi/com/sun/star/rendering/XCachedPrimitive.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 .
+ */
+
+module com { module sun { module star { module rendering {
+
+/** Interface for cached repaint of already drawn XCanvas
+ primitives.
+
+ This interface provides a method to quickly redraw some
+ XCanvas primitives, using cached data.
+
+ @since OOo 2.0
+ */
+interface XCachedPrimitive : ::com::sun::star::uno::XInterface
+{
+ /** Redraw the cached primitive.
+
+ Redraw the cached primitive, with a possibly new view state.
+
+ @param aState
+ The view state to be used when redrawing the primitive. The
+ view state is of course permitted to differ from the one used
+ for initial rendering.
+
+ @return a value of type RepaintResult, denoting
+ the result of this operation.
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if the view transformation matrix is singular.
+ */
+ byte redraw( [in] ViewState aState )
+ raises (com::sun::star::lang::IllegalArgumentException);
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/rendering/XCanvas.idl b/offapi/com/sun/star/rendering/XCanvas.idl
new file mode 100644
index 0000000000..aafaa9ccc6
--- /dev/null
+++ b/offapi/com/sun/star/rendering/XCanvas.idl
@@ -0,0 +1,646 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module geometry {
+ interface XMapping2D;
+}; }; }; };
+
+module com { module sun { module star { module rendering {
+
+interface XCanvasFont;
+interface XPolyPolygon2D;
+interface XCachedPrimitive;
+interface XBitmap;
+interface XGraphicDevice;
+interface XTextLayout;
+
+/** Central interface for rendering.
+
+ This is the central interface for graphical output production, and
+ the place where all draw methods are located.
+
+ Some notes are in order to explain the concepts used here. The
+ XCanvas interface is free of client-modifiable state,
+ i.e. it can be used safely and without external synchronization in
+ a multi-threaded environment. On the other hand, this implies that
+ for nearly every canvas operation, external state is
+ required. This is provided by ViewState and
+ RenderState in a unified fashion, supplemented by a
+ few extra state parameters for some methods (e.g. textured
+ polygons or text rendering).
+
+ When used careless, this scheme can be inefficient to some extend,
+ because internally, view, render and other states have to be
+ combined before rendering. This is especially expensive for
+ complex clip polygons, i.e. when both ViewState and
+ RenderState have a complex clip polygon set, which
+ have to be intersected before rendering. It is therefore
+ recommended to combine ViewState and
+ RenderState already at the client side, when objects
+ are organized in a hierarchical way: the classic example are
+ grouped draw shapes, whose parent group object imposes a
+ common clipping and a common transformation on its siblings. The
+ group object would therefore merge the ViewState and
+ the RenderState it is called with into a new
+ ViewState, and call its siblings with a
+ RenderState containing only the local offset (and no
+ extra clipping).
+
+ Further on, this stateless nature provides easy ways for
+ caching. Every non-trivial operation on XCanvas can
+ return a cache object, which, when called to redraw, renders the
+ primitive usually much more quickly than the original method. Note
+ that such caching is a lot more complicated, should the actual
+ rendering a method yields depend on internal state (which is the
+ case e.g. for the
+ ::com::sun::star::awt::XGraphics
+ interface). Please note, though, that deciding whether to return
+ an XCachedPrimitive is completely up to the
+ implementation - don't rely on the methods returning something
+ (this is because there might be cases when returning such a cache
+ object will actually be a pessimization, since it involves memory
+ allocation and comparisons).
+
+ Things that need more than a small, fixed amount of data are
+ encapsulated in own interfaces, e.g. polygons and bitmaps. You
+ can, in principle, roll your own implementations of these
+ interfaces, wrap it around your internal representation of
+ polygons and bitmaps, and render them. It might just not be overly
+ fast, because the XCanvas would need to convert for
+ each render call. It is therefore recommended to create such
+ objects via the XGraphicDevice factory (to be
+ retrieved from every canvas object via the
+ getDevice() call) - they will then internally
+ optimize to the underlying graphics subsystem.
+
+ @since OOo 2.0
+ */
+interface XCanvas : ::com::sun::star::uno::XInterface
+{
+ /** Clear the whole canvas area.
+
+ This method clears the whole canvas area to the device default
+ color (e.g. white for a printer, transparent for an
+ XCustomSprite).
+ */
+ void clear();
+
+ /** Draw a point in device resolution on the device.
+
+ @param aPoint
+ The point to draw.
+
+ @param aViewState
+ The view state to be used when drawing this point.
+
+ @param aRenderState
+ The render state to be used when drawing this point.
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if one of the view and render state parameters are outside the
+ specified range.
+ */
+ void drawPoint( [in] ::com::sun::star::geometry::RealPoint2D aPoint, [in] ViewState aViewState, [in] RenderState aRenderState )
+ raises (com::sun::star::lang::IllegalArgumentException);
+
+
+ /** Draw a line in device resolution width (i.e. one device pixel
+ wide).
+
+ @param aStartPoint
+ The start point of the line to draw.
+
+ @param aEndPoint
+ The end point of the line to draw.
+
+ @param aViewState
+ The view state to be used when drawing this line.
+
+ @param aRenderState
+ The render state to be used when drawing this line.
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if one of the view and render state parameters are outside the
+ specified range.
+ */
+ void drawLine( [in] ::com::sun::star::geometry::RealPoint2D aStartPoint, [in] ::com::sun::star::geometry::RealPoint2D aEndPoint, [in] ViewState aViewState, [in] RenderState aRenderState )
+ raises (com::sun::star::lang::IllegalArgumentException);
+
+
+ /** Draw a cubic Bezier curve in device resolution width (i.e. one
+ device pixel wide).
+
+ @param aBezierSegment
+ The start and the two control points of the Bezier curve.
+
+ @param aEndPoint
+ The end point of the Bezier curve.
+
+ @param aViewState
+ The view state to be used when drawing this curve.
+
+ @param aRenderState
+ The render state to be used when drawing this curve.
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if one of the view and render state parameters are outside the
+ specified range.
+ */
+ void drawBezier( [in] ::com::sun::star::geometry::RealBezierSegment2D aBezierSegment, [in] ::com::sun::star::geometry::RealPoint2D aEndPoint, [in] ViewState aViewState, [in] RenderState aRenderState )
+ raises (com::sun::star::lang::IllegalArgumentException);
+
+
+ /** Draw a poly-polygon in device resolution line width (i.e. the
+ lines are one device pixel wide).
+
+ @param xPolyPolygon
+ The poly-polygon to draw.
+
+ @param aViewState
+ The view state to be used when drawing this polygon.
+
+ @param aRenderState
+ The render state to be used when drawing this polygon.
+
+ @return a handle to the cached rendering output.
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if one of the view and render state parameters are outside the
+ specified range.
+ */
+ XCachedPrimitive drawPolyPolygon( [in] XPolyPolygon2D xPolyPolygon, [in] ViewState aViewState, [in] RenderState aRenderState )
+ raises (com::sun::star::lang::IllegalArgumentException);
+
+
+ /** Stroke each polygon of the provided poly-polygon with the
+ specified stroke attributes.
+
+ This method considers the stroking of all polygons as an
+ atomic operation in relation to the RenderState's
+ CompositeOperationy operation. That means,
+ overlapping strokes from distinct polygons will look exactly
+ as overlapping segments of the same polygon, even with
+ transparency.
+
+ @param xPolyPolygon
+ The poly-polygon to render.
+
+ @param aViewState
+ The view state to be used when stroking this polygon.
+
+ @param aRenderState
+ The render state to be used when stroking this polygon.
+
+ @param aStrokeAttributes
+ Further attributes used to parameterize the stroking.
+
+ @return a handle to the cached rendering output.
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if one of the view and render state parameters are outside the
+ specified range.
+ */
+ XCachedPrimitive strokePolyPolygon( [in] XPolyPolygon2D xPolyPolygon, [in] ViewState aViewState, [in] RenderState aRenderState, [in] StrokeAttributes aStrokeAttributes )
+ raises (com::sun::star::lang::IllegalArgumentException);
+
+
+ /** Stroke each polygon of the provided poly-polygon with the
+ specified stroke attributes, fill the stroked outline
+ with the specified texture graphics.
+
+ This method considers the stroking of all polygons as an
+ atomic operation in relation to the RenderState's
+ CompositeOp operation. That means, overlapping
+ strokes from distinct polygons will look exactly as
+ overlapping segments of the same polygon, even with
+ transparency.
+
+ @param xPolyPolygon
+ The poly-polygon to render.
+
+ @param aViewState
+ The view state to be used when strokes this polygon.
+
+ @param aRenderState
+ The render state to be used when stroking this polygon.
+
+ @param aTextures
+ A sequence of texture definitions, with which to fill the
+ stroked area.
+
+ @param aStrokeAttributes
+ Further attributes used to parameterize the stroking.
+
+ @return a handle to the cached rendering output.
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if one of the view and render state parameters are outside the
+ specified range.
+
+ @throws VolatileContentDestroyedException
+ if a texture bitmap was volatile, and the content was
+ destroyed before the rendering could take place.
+ */
+ XCachedPrimitive strokeTexturedPolyPolygon( [in] XPolyPolygon2D xPolyPolygon, [in] ViewState aViewState, [in] RenderState aRenderState, [in] sequence
+
+ This method considers the stroking of all polygons as an
+ atomic operation in relation to the RenderState's
+ CompositeOp operation. That means, overlapping
+ strokes from distinct polygons will look exactly as
+ overlapping segments of the same polygon, even with
+ transparency.
+
+ @param xPolyPolygon
+ The poly-polygon to render.
+
+ @param aViewState
+ The view state to be used when stroking this polygon.
+
+ @param aRenderState
+ The render state to be used when stroking this polygon.
+
+ @param aTextures
+ A sequence of texture definitions, with which to fill the
+ stroked area.
+
+ @param xMapping
+ A bilinear mapping function which defines the warping of the
+ textures on the output area.
+
+ @param aStrokeAttributes
+ Further attributes used to parameterize the stroking.
+
+ @return a handle to the cached rendering output.
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if one of the view and render state parameters are outside the
+ specified range.
+
+ @throws VolatileContentDestroyedException
+ if a texture bitmap was volatile, and the content was
+ destroyed before the rendering could take place.
+ */
+ XCachedPrimitive strokeTextureMappedPolyPolygon( [in] XPolyPolygon2D xPolyPolygon, [in] ViewState aViewState, [in] RenderState aRenderState, [in] sequence
+
+ This method can be used to e.g. set a clipping which covers the same
+ area as a stroke.
+
+ @param xPolyPolygon
+ The poly-polygon to render.
+
+ @param aViewState
+ The view state to be used when generating the outline.
+
+ @param aRenderState
+ The render state to be used when generating the outline.
+
+ @param aStrokeAttributes
+ Further attributes used to parameterize the stroking.
+
+ @return a poly-polygon describing the outline of the stroked
+ area.
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if one of the view and render state parameters are outside the
+ specified range.
+ */
+ XPolyPolygon2D queryStrokeShapes( [in] XPolyPolygon2D xPolyPolygon, [in] ViewState aViewState, [in] RenderState aRenderState, [in] StrokeAttributes aStrokeAttributes )
+ raises (com::sun::star::lang::IllegalArgumentException);
+
+
+ /** Fill the given poly-polygon.
+
+ This method fills the given poly-polygon according to the
+ RenderState's color and the poly-polygon's fill
+ rule.
+
+ @param xPolyPolygon
+ The poly-polygon to render.
+
+ @param aViewState
+ The view state to be used when filling this polygon.
+
+ @param aRenderState
+ The render state to be used when filling this polygon.
+
+ @return a handle to the cached rendering output.
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if one of the view and render state parameters are outside the
+ specified range.
+ */
+ XCachedPrimitive fillPolyPolygon( [in] XPolyPolygon2D xPolyPolygon, [in] ViewState aViewState, [in] RenderState aRenderState )
+ raises (com::sun::star::lang::IllegalArgumentException);
+
+
+ /** Fill the given poly-polygon with a texture.
+
+ This method fills the given poly-polygon according to the
+ RenderState's color, the given textures and
+ poly-polygon's fill rule.
+
+ @param xPolyPolygon
+ The poly-polygon to render.
+
+ @param aViewState
+ The view state to be used when filling this polygon.
+
+ @param aRenderState
+ The render state to be used when filling this polygon.
+
+ @param xTextures
+ A sequence of texture definitions, with which to fill the
+ polygonal area.
+
+ @return a handle to the cached rendering output.
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if one of the view and render state parameters are outside the
+ specified range.
+
+ @throws VolatileContentDestroyedException
+ if a texture bitmap was volatile, and the content was
+ destroyed before the rendering could take place.
+ */
+ XCachedPrimitive fillTexturedPolyPolygon( [in] XPolyPolygon2D xPolyPolygon, [in] ViewState aViewState, [in] RenderState aRenderState, [in] sequence
+
+ This method fills the given poly-polygon according to the
+ RenderState's color, the given textures and
+ poly-polygon's fill rule. The texture is mapped to the
+ poly-polygon's interior via the given texture mapping.
+
+ @param xPolyPolygon
+ The poly-polygon to render.
+
+ @param aViewState
+ The view state to be used when filling this polygon.
+
+ @param aRenderState
+ The render state to be used when filling this polygon.
+
+ @param xTextures
+ A sequence of texture definitions, with which to fill the
+ polygonal area.
+
+ @param xMapping
+ A bilinear mapping function which defines the warping of the
+ textures on the output area.
+
+ @return a handle to the cached rendering output.
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if one of the view and render state parameters are outside the
+ specified range.
+
+ @throws VolatileContentDestroyedException
+ if a texture bitmap was volatile, and the content was
+ destroyed before the rendering could take place.
+ */
+ XCachedPrimitive fillTextureMappedPolyPolygon( [in] XPolyPolygon2D xPolyPolygon, [in] ViewState aViewState, [in] RenderState aRenderState, [in] sequence
+
+ @param aFilter
+ Filter parameter to reduce the list of returned fonts. Every
+ member of FontInfo that is not the empty string
+ or the "don't care" value restricts the list of returned fonts
+ to contain only those that have the specified attribute.
+
+ @param aFontProperties
+ This interface can provide additional font properties to
+ filter the list of available fonts against.
+
+ @returns the list of fonts matching the filter set.
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if one of the font properties are invalid or not recognized,
+ or if one of the FontInfo members is not within
+ the permitted range.
+ */
+ sequence< FontInfo > queryAvailableFonts( [in] FontInfo aFilter, [in] sequence< ::com::sun::star::beans::PropertyValue > aFontProperties )
+ raises (com::sun::star::lang::IllegalArgumentException);
+
+
+ /** Draw the text given by the substring of the specified string
+ with the given font.
+
+ The local origin of this output operation is either the left
+ end of the text baseline, for textDirection equal
+ LEFT_TO_RIGHT, or the right end of the baseline, for
+ textDirection equal to RIGHT_TO_LEFT, respectively.
+
+ @param aText
+ The text to output.
+
+ @param xFont
+ The font retrieved from this canvas to be used when drawing
+ the text.
+
+ @param aViewState
+ The view state to be used when drawing this text.
+
+ @param aRenderState
+ The render state to be used when drawing this text.
+
+ @param nTextDirection
+ A value from the TextDirection collection,
+ denoting the main writing direction for this string. The main
+ writing direction determines the origin of the text output,
+ i.e. the left edge for left-to-right and the right edge for
+ right-to-left text.
+
+ @return a handle to the cached rendering output.
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if one of the view and render state parameters are outside the
+ specified range.
+ */
+ XCachedPrimitive drawText( [in] StringContext aText, [in] XCanvasFont xFont, [in] ViewState aViewState, [in] RenderState aRenderState, [in] byte nTextDirection )
+ raises (com::sun::star::lang::IllegalArgumentException);
+
+
+ /** Draw the formatted text given by the text layout.
+
+ The glyphs as represented by the text layout are always output
+ with the reference position being the leftmost edge of the
+ layout object's baseline. If the layout contains more than one
+ baseline, the baseline of the first strong character in
+ logical order is used here (strong in this context means that
+ the character can be unambiguously assigned to a Unicode
+ script).
+
+ @param xLayoutetText
+ An interface to the readily layouted text, obtained from a
+ XCanvasFont created at this canvas. The text
+ layout already carries intrinsic font information.
+
+ @param aViewState
+ The view state to be used when drawing this text.
+
+ @param aRenderState
+ The render state to be used when drawing this text.
+
+ @return a handle to the cached rendering output.
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if one of the view and render state parameters are outside the
+ specified range.
+ */
+ XCachedPrimitive drawTextLayout( [in] XTextLayout xLayoutetText, [in] ViewState aViewState, [in] RenderState aRenderState )
+ raises (com::sun::star::lang::IllegalArgumentException);
+
+
+ /** Render the given bitmap.
+
+ This method renders the bitmap, at a position and shape as
+ specified by the combined view and render transformations. For
+ fast render speed, the bitmap should be created by the
+ corresponding XGraphicDevice's
+ XGraphicDevice::createCompatibleBitmap()
+ method.
+
+ @param xBitmap
+ The bitmap to render.
+
+ @param aViewState
+ The view state to be used when drawing this text.
+
+ @param aRenderState
+ The render state to be used when drawing this text.
+
+ @return a handle to the cached rendering output.
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if one of the view and render state parameters are outside the
+ specified range.
+
+ @throws VolatileContentDestroyedException
+ if a texture bitmap was volatile, and the content was
+ destroyed before the rendering could take place.
+ */
+ XCachedPrimitive drawBitmap( [in] XBitmap xBitmap, [in] ViewState aViewState, [in] RenderState aRenderState )
+ raises (com::sun::star::lang::IllegalArgumentException,
+ VolatileContentDestroyedException);
+
+ /** Render the given bitmap, with a global color modulation.
+
+ This method renders the bitmap, at a position and shape as
+ specified by the combined view and render transformations. For
+ fast render speed, the bitmap should be created by the
+ corresponding XGraphicDevice's
+ XGraphicDevice::createCompatibleBitmap()
+ method. The bitmap's color channel values are multiplied with
+ the device color values as specified in the render state.
+
+ @param xBitmap
+ The bitmap to render.
+
+ @param aViewState
+ The view state to be used when drawing this text.
+
+ @param aRenderState
+ The render state to be used when drawing this text. The device
+ color entry in the render state is multiplied with every pixel
+ color value, and only the result is rendered into the
+ canvas. If, for example, the bitmap should be rendered with
+ increased global transparency, set all device color channels
+ to 1.0, except for the alpha channel, which should be set to
+ the desired transparency.
+
+ @return a handle to the cached rendering output.
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if one of the view and render state parameters are outside the
+ specified range.
+
+ @throws VolatileContentDestroyedException
+ if a texture bitmap was volatile, and the content was
+ destroyed before the rendering could take place.
+ */
+ XCachedPrimitive drawBitmapModulated( [in] XBitmap xBitmap, [in] ViewState aViewState, [in] RenderState aRenderState )
+ raises (com::sun::star::lang::IllegalArgumentException,
+ VolatileContentDestroyedException);
+
+
+ /** Request the associated graphic device for this canvas.
+
+ A graphic device provides methods specific to the underlying
+ output device capabilities, which are common for all canvases
+ rendering to such a device. This includes device resolution,
+ color space, or bitmap formats.
+
+ @return the associated XGraphicDevice.
+ */
+ XGraphicDevice getDevice();
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/rendering/XCanvasFont.idl b/offapi/com/sun/star/rendering/XCanvasFont.idl
new file mode 100644
index 0000000000..a74ec54390
--- /dev/null
+++ b/offapi/com/sun/star/rendering/XCanvasFont.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 .
+ */
+
+
+module com { module sun { module star { module rendering {
+
+interface XCanvas;
+interface XTextLayout;
+interface XPolyPolygon2D;
+
+/** This interface provides access to a specific, XCanvas-dependent
+ font incarnation. This font is not universally usable, but belongs
+ to the XCanvas it was queried from.
+ */
+interface XCanvasFont : ::com::sun::star::uno::XInterface
+{
+ /** Create a text layout interface.
+
+ Create a text layout interface for the given string, using
+ this font to generate the glyphs from.
+
+ @param aText
+ The text to layout.
+
+ @param nDirection
+ Main text direction for the string specified. The main text
+ direction is e.g. important for characters that are not
+ strong, i.e. that change affinity according to the current
+ writing direction. Make sure that across text portions and
+ lines, the direction is set consistently.
+
+ @param nRandomSeed
+ Optional random seed for OpenType glyph variations.
+ */
+ XTextLayout createTextLayout( [in] StringContext aText, [in] byte nDirection, [in] hyper nRandomSeed );
+
+
+ /** Query the FontRequest that was used to generate this object.
+ */
+ FontRequest getFontRequest();
+
+
+ /** Query metric information about the font, that is generic to
+ all its glyphs.
+
+ Note that the metric values in the returned result are in the
+ font coordinate system, i.e. relative to the corresponding
+ size of this font. That is, when this font was created with a
+ cell size of 20 units, the metrics returned are calculated
+ relative to this size.
+ */
+ FontMetrics getFontMetrics();
+
+
+ /** Query the list of available font sizes.
+
+ This method queries the list of available font sizes (in
+ device units) for this font. For scalable fonts that are not
+ restricted to discrete sizes, this list is empty,
+ meaning that every size is possible. Fonts that do
+ restrict the device size to certain discrete values, setting
+ an overall transformation that scales the
+ FontRequest::CellSize to something not
+ contained in the list returned by this method can lead to
+ visible disturbances.
+ */
+ sequence< double > getAvailableSizes();
+
+
+ /** Query the list of additional font properties.
+ */
+ sequence< ::com::sun::star::beans::PropertyValue > getExtraFontProperties();
+
+
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/rendering/XColorSpace.idl b/offapi/com/sun/star/rendering/XColorSpace.idl
new file mode 100644
index 0000000000..7243bb9b97
--- /dev/null
+++ b/offapi/com/sun/star/rendering/XColorSpace.idl
@@ -0,0 +1,232 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module rendering {
+
+/** Information how to interpret certain color data.
+
+ This interface encapsulates all information that is necessary to
+ interpret color data, by defining a describing color space, like
+ for example CMYK or sRGB. You can either convert between this and
+ an arbitrary other color space, or into the standard RGB or ARGB
+ formats (because those are so overwhelmingly common in computer
+ graphics).
+
+ All canvas interfaces standardize to sequences of IEEE doubles for
+ color representation. As this is overly verbose when used for
+ bitmap data, derived interfaces exist,
+ e.g. XIntegerBitmapColorSpace, which use sequences of
+ integers for color representation.
+ */
+interface XColorSpace
+{
+ /** Query type of this color space.
+
+ @return a value from the ColorSpaceType constant
+ group.
+ */
+ byte getType();
+
+ /** Query the kind for each color component.
+
+ Color space components tend to correspond to physical
+ attributes like the amount of one specific colorant contained
+ in the final output color. This method returns a sequence of
+ tags, specifying for each component of a color value, to what
+ color attribute (if any) it corresponds. The values must be
+ one of the ColorComponentTag constants.
+
+ At the same time, the number of elements in this sequence
+ corresponds to the number of color channels for this color
+ space.
+
+ @remark For the standard RGB color space, ComponentTags
+ consists of three elements, containing RGB_RED, RGB_GREEN and
+ RGB_BLUE tags, respectively
+ */
+ sequence
+
+ @return a value from the RenderingIntent constant
+ group.
+ */
+ byte getRenderingIntent();
+
+ /** Query various optional properties from the color space.
+
+ If this color space has an ICC color profile, the sequence
+ contains an element named ICCProfile. Some color spaces also
+ have properties Gamma, Whitepoint and Blackpoint. Background
+ information for these is available here.
+ */
+ sequence< ::com::sun::star::beans::PropertyValue > getProperties();
+
+
+
+ /** Convert to color of another color space.
+
+ @param deviceColor Sequence of device color components. Is
+ permitted to contain more than one device color element,
+ therefore, batch conversion of multiple color values is
+ possible.
+
+ @param targetColorSpace the color space to convert to.
+
+ @return the corresponding sequence of device colors in the
+ target color space (e.g. `sequence
+
+ Any information not representable in the RGBColor
+ struct is discarded during the conversion. This includes alpha
+ information.
+
+ @param deviceColor Sequence of device color components. Is
+ permitted to contain more than one device color element,
+ therefore, batch conversion of multiple color values is
+ possible.
+
+ @return the corresponding sequence of colors in the sRGB color
+ space.
+
+ @throws a
+ com::sun::star::lang::IllegalArgumentException,
+ if the input sequence does not match the device color format.
+
+ @see convertToARGB()
+ */
+ sequence
+
+ If the given input color does not carry alpha information, an
+ alpha value of 1.0 (fully opaque) is assumed.
+
+ @param deviceColor Sequence of device color components. Is
+ permitted to contain more than one device color element,
+ therefore, batch conversion of multiple color values is
+ possible.
+
+ @return the corresponding sequence of colors in the sRGB color
+ space.
+
+ @throws a
+ com::sun::star::lang::IllegalArgumentException,
+ if the input sequence does not match the device color format.
+ */
+ sequence
+
+ If the given input color does not carry alpha information, an
+ alpha value of 1.0 (fully opaque) is assumed. The resulting
+ individual RGB color values are premultiplied by the alpha
+ value (e.g. if alpha is 0.5, each color value has only half of
+ the original intensity).
+
+ @param deviceColor Sequence of device color components. Is
+ permitted to contain more than one device color element,
+ therefore, batch conversion of multiple color values is
+ possible.
+
+ @return the corresponding sequence of colors in the sRGB color
+ space.
+
+ @throws a
+ com::sun::star::lang::IllegalArgumentException,
+ if the input sequence does not match the device color format.
+ */
+ sequence
+
+ If this color space conveys alpha information, it is assumed
+ be fully opaque for the given RGB color value.
+
+ @param rgbColor Sequence of sRGB color components. Is
+ permitted to contain more than one color element, therefore,
+ batch conversion of multiple color values is possible.
+
+ @return the corresponding sequence of device colors.
+
+ @throws a
+ com::sun::star::lang::IllegalArgumentException,
+ if the input sequence does not match the device color format.
+ */
+ sequence
+
+ If this color space does not convey alpha information, the
+ specified alpha value is silently ignored.
+
+ @param rgbColor Sequence of sRGB color components. Is
+ permitted to contain more than one color element, therefore,
+ batch conversion of multiple color values is possible.
+
+ @return the corresponding sequence of device colors.
+
+ @throws a
+ com::sun::star::lang::IllegalArgumentException,
+ if the input sequence does not match the device color format.
+ */
+ sequence
+
+ If this color space does not convey alpha information, the
+ specified alpha value is silently ignored.
+
+ @param rgbColor Sequence of sRGB color components. Is
+ permitted to contain more than one color element, therefore,
+ batch conversion of multiple color values is possible. The
+ individual color values are assumed to be premultiplied by the
+ alpha value.
+
+ @return the corresponding sequence of device colors.
+
+ @throws a
+ com::sun::star::lang::IllegalArgumentException,
+ if the input sequence does not match the device color format.
+ */
+ sequence
+
+ Every change performed on XCustomSprite objects is only visible
+ after a XSpriteCanvas::updateScreen() call, to facilitate
+ synchronized screen updates.
+
+ TODO: Maybe more than alpha has to be overridden from render state.
+ TODO: Provide means to change the output area
+ */
+interface XCustomSprite : XSprite
+{
+
+ /** Query a render canvas for this sprite's content.
+
+ Whatever is rendered to this canvas will become visible on the
+ screen only after a XSpriteCanvas::updateScreen() call at the
+ associated sprite canvas. This canvas is not equivalent to the
+ host canvas of the sprite. At the very least, all output
+ happens relative to the sprite's upper left corner, i.e. the
+ origin of the sprite's canvas device coordinate system will
+ move with the sprite across the screen.
+
+ @return the canvas the sprite content can be rendered into.
+ */
+ XCanvas getContentCanvas();
+
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/rendering/XGraphicDevice.idl b/offapi/com/sun/star/rendering/XGraphicDevice.idl
new file mode 100644
index 0000000000..553797e913
--- /dev/null
+++ b/offapi/com/sun/star/rendering/XGraphicDevice.idl
@@ -0,0 +1,254 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module rendering {
+
+interface XBitmap;
+interface XVolatileBitmap;
+interface XBufferController;
+
+/* TODO: There's obviously a concept called window missing here, where
+ methods such as bufferController, fullscreen mode etc . belong
+ to. But see below
+ */
+
+/** This interface provides access to a graphic device, such as a
+ printer, or a screen device. Every canvas (@see XCanvas) has
+ exactly one associated graphic device, into which its output is
+ rendered.
+
+ For a typical windowing system, the graphic device is equivalent
+ to a distinct OS window, with its own clipped output area,
+ fullscreen and double-buffering attributes. That is, even if one
+ can have multiple canvases per system window, they all share the
+ same graphic device and thus e.g. fullscreen state. If the OS
+ restrictions are in such a way that fullscreen or double-buffering
+ is screen-exclusive, i.e. that per screen, only one object can
+ have this state, it might even be that all windows on the screen
+ share a common graphic device.
+ */
+interface XGraphicDevice : ::com::sun::star::uno::XInterface
+{
+ /** Query the controller for multi buffering functionality on this
+ graphic device.
+
+ If there is no such functionality available, the NULL
+ reference is returned.
+ */
+ XBufferController getBufferController();
+
+
+ /** Query the color space interface for this graphic device.
+
+ This is to be used when interpreting or setting device color
+ values.
+ */
+ XColorSpace getDeviceColorSpace();
+
+
+ /** Query the physical resolution of the device in pixel per
+ millimeter.
+
+ A special floating point value of +infinity here indicates
+ "unknown", i.e. at the time of rendering undetermined or
+ possibly infinite resolution along the corresponding
+ direction.
+ */
+ ::com::sun::star::geometry::RealSize2D getPhysicalResolution();
+
+
+ /** Query the physical dimensions of the device in millimeter.
+
+ A special floating point value of +infinity here indicates
+ "unknown", i.e. at the time of rendering undetermined or
+ possibly infinite resolution along the corresponding
+ direction.
+
+ @see XBitmap::getSize()
+ */
+ ::com::sun::star::geometry::RealSize2D getPhysicalSize();
+
+
+ /** Create a line poly-polygon which can internally use
+ device-optimized representations already.
+
+ @param points
+ The points of the poly-polygon, in a separate array for every polygon.
+ */
+ XLinePolyPolygon2D createCompatibleLinePolyPolygon( [in] sequence< sequence< ::com::sun::star::geometry::RealPoint2D > > points );
+
+
+ /** Create a Bezier poly-polygon which can internally use
+ device-optimized representations already.
+
+ @param points
+ The points of the poly-polygon, in a separate array for every polygon.
+ */
+ XBezierPolyPolygon2D createCompatibleBezierPolyPolygon( [in] sequence< sequence< ::com::sun::star::geometry::RealBezierSegment2D > > points );
+
+
+ /** Create a bitmap whose memory layout and sample model is
+ compatible to the graphic device.
+
+ @param size
+ Size of the requested bitmap in pixel. Both components of the
+ size must be greater than 0
+ */
+ XBitmap createCompatibleBitmap( [in] ::com::sun::star::geometry::IntegerSize2D size )
+ raises (com::sun::star::lang::IllegalArgumentException);
+
+
+ /** Create a volatile bitmap that is usable with this graphic device.
+
+ A volatile bitmap's difference in comparison to a plain bitmap
+ (e.g. generated via createCompatibleBitmap()) is the fact that
+ its content might vanish at any point in time (making any
+ operation with them produce a
+ VolatileContentDestroyedException). The benefit,
+ on the other hand, is that they might be easy to
+ hardware-accelerate on certain platforms, without the need to
+ keep a safety copy of the content internally.
+
+ @param size
+ Size of the requested bitmap in pixel. Both components of the
+ size must be greater than 0
+ */
+ XVolatileBitmap createVolatileBitmap( [in] ::com::sun::star::geometry::IntegerSize2D size )
+ raises (com::sun::star::lang::IllegalArgumentException);
+
+
+ /** Create a bitmap with alpha channel whose memory layout and
+ sample model is compatible to the graphic device.
+
+ @param size
+ Size of the requested bitmap in pixel. Both components of the
+ size must be greater than 0
+ */
+ XBitmap createCompatibleAlphaBitmap( [in] ::com::sun::star::geometry::IntegerSize2D size )
+ raises (com::sun::star::lang::IllegalArgumentException);
+
+
+ /** Create a volatile bitmap with alpha channel that is usable
+ with this graphic device.
+
+ A volatile bitmap's difference in comparison to a plain bitmap
+ (e.g. generated via createCompatibleBitmap()) is the fact that
+ its content might vanish at any point in time (making any
+ operation with them produce a
+ VolatileContentDestroyedException). The benefit,
+ on the other hand, is that they might be easy to
+ hardware-accelerate on certain platforms, without the need to
+ keep a safety copy of the content internally.
+
+ @param size
+ Size of the requested bitmap in pixel. Both components of the
+ size must be greater than 0
+ */
+ XVolatileBitmap createVolatileAlphaBitmap( [in] ::com::sun::star::geometry::IntegerSize2D size )
+ raises (com::sun::star::lang::IllegalArgumentException);
+
+
+ /** Get a reference to this device's parametric polygon factory.
+
+ @return a reference to this device's parametric polygon
+ factory. Although it is possible to use parametric polygons on
+ all canvases, regardless of the associated graphic device,
+ this is not advisable: each canvas implementation is free to
+ internally generate optimized parametric polygons, which can
+ be used more directly for e.g. texturing operations.
+
+ Available services (all canvas implementations should provide
+ this minimal set, though are free to add more; just check the
+ getAvailableServiceNames() on the returned interface):
+
+ - Gradients - all gradients need to support two construction
+ parameters, "Colors" being a `sequence< Color >`
+ and "Stops" being a `sequence< double >`. Both must
+ have the same length, and at least two elements. See
+ http://www.w3.org/TR/SVG11/pservers.html#GradientStops for
+ the semantics of gradient stops and colors.
+ Required gradient services:
+
+ - "LinearGradient" - the gradient varies linearly between
+ the given colors. without coordinate system
+ transformation, the color interpolation happens in
+ increasing x direction, and is constant in y
+ direction. Equivalent to svg linear gradient
+ http://www.w3.org/TR/SVG11/pservers.html#LinearGradients
+
+ - "EllipticalGradient" - this gradient has zeroth color
+ index in the middle, and varies linearly between center
+ and final color. The services takes an additional
+ parameter named "AspectRatio" of double
+ (width divided by height), if this aspect ratio is 1, the
+ gradient is circular. If it's not 1, the gradient is
+ elliptical, with the special twist that the aspect ratio
+ is maintained also for the center color: the gradient will
+ not collapse into a single point, but become a line of
+ center color. If "AspectRatio" is missing, or equal to 1,
+ this gradient yields similar results as the svg radial
+ gradient
+ http://www.w3.org/TR/SVG11/pservers.html#RadialGradients
+
+ - "RectangularGradient" - this gradient has zeroth color
+ index in the middle, and varies linearly between center
+ and final color via rectangular boxes
+ around the center point. The services takes an additional
+ parameter named "AspectRatio" of double
+ (width divided by height), if this aspect ratio is 1, the
+ gradient is quadratic. If it's not 1, the gradient is
+ rectangular, with the special twist that the aspect ratio
+ is maintained also for the center color: the gradient will
+ not collapse into a single point, but become a line of
+ center color.
+
+ - Hatch patterns - Required hatch services:
+
+ - "VerticalLineHatch" - this hatching consists of vertical lines
+ - "OrthogonalLinesHatch" - this hatching consists of
+ crossing vertical and horizontal lines
+ - "ThreeCrossingLinesHatch" - this hatching consists of
+ vertical and horizontal lines plus diagonal lines from
+ left, top to bottom, right.
+ - "FourCrossingLinesHatch" - this hatching consists of
+ vertical and horizontal lines plus diagonal lines in both
+ directions.
+ */
+ com::sun::star::lang::XMultiServiceFactory getParametricPolyPolygonFactory();
+
+
+ /** Tells whether this graphic device has a full screen mode,
+ i.e. whether a window can cover the whole screen exclusively.
+ */
+ boolean hasFullScreenMode();
+
+
+ /** Enter or leave the fullscreen mode, if possible. The return
+ value denotes the success of the operation.
+
+ @attention depending on the underlying operating system,
+ fullscreen mode can be left without an enterFullScreenMode(
+ false ) call.
+ */
+ boolean enterFullScreenMode( [in] boolean bEnter );
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/rendering/XHalfFloatBitmap.idl b/offapi/com/sun/star/rendering/XHalfFloatBitmap.idl
new file mode 100644
index 0000000000..2dac2f4149
--- /dev/null
+++ b/offapi/com/sun/star/rendering/XHalfFloatBitmap.idl
@@ -0,0 +1,63 @@
+/* -*- 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 .
+ */
+
+module com { module sun { module star { module rendering {
+
+/** Specialized interface for bitmaps containing half floats as their
+ color components.
+
+ Half floats are 16 bit wide, and newer GPUs already have them as
+ supported frame buffer format.
+ */
+interface XHalfFloatBitmap : XHalfFloatReadOnlyBitmap
+{
+
+ /** Set raw data of a bitmap.
+
+ Set raw data of a bitmap, in the format as defined by
+ getMemoryLayout(). With the given rectangle, a subset of the
+ bitmap can be changed. When setting subsets of the bitmap, the
+ same scanline padding takes place as when the whole bitmap is
+ changed.
+
+ */
+ void setData( [in] sequence
+
+ When setting data on volatile bitmaps, always call isValid()
+ before, and retrieve a new memory layout via
+ getMemoryLayout(). At least under Windows, the memory layout
+ can change for the same bitmap, if the user e.g. switches the
+ screen resolution. Thus, this method will throw an
+ IllegalArgumentException, if the memory layout changed between
+ a call to getMemoryLayout() and setData().
+ */
+ void setPixel( [in] sequence
+
+ Use this interface for e.g. bitmaps that are calculated
+ on-the-fly, or that are pure functional, and thus cannot be
+ modified.
+
+ If you get passed an instance of
+ XHalfFloatReadOnlyBitmap that also supports the
+ XVolatileBitmap interface, things become a bit more
+ complicated. When reading data, one has to check for both
+ VolatileContentDestroyedException and mismatching
+ FloatingPointBitmapLayout return values. If either of them
+ occurs, the whole bitmap read operation should be repeated.
+ */
+interface XHalfFloatReadOnlyBitmap : XBitmap
+{
+ /** Query the raw data of this bitmap.
+
+ Query the raw data of this bitmap, in the format as defined by
+ getMemoryLayout(). With the given rectangle, a subset of the
+ whole bitmap can be queried. When querying subsets of the
+ bitmap, the same scanline padding takes place as when the
+ whole bitmap is requested. Note: as we currently have no 16
+ bit float UNO data type, the values are transported as 16 bit
+ integers across the API (which requires casting on both
+ sides).
+
+ @throws VolatileContentDestroyedException
+ if the bitmap is volatile, and the content has been destroyed by the system.
+ */
+ sequence
+
+ @throws VolatileContentDestroyedException
+ if the bitmap is volatile, and the content has been destroyed by the system.
+ */
+ sequence
+ */
+ FloatingPointBitmapLayout getMemoryLayout();
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/rendering/XIeeeDoubleBitmap.idl b/offapi/com/sun/star/rendering/XIeeeDoubleBitmap.idl
new file mode 100644
index 0000000000..59f673dd49
--- /dev/null
+++ b/offapi/com/sun/star/rendering/XIeeeDoubleBitmap.idl
@@ -0,0 +1,107 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module rendering {
+
+/** This is a specialized interface for bitmaps containing IEEE
+ doubles for their color components.
+ */
+interface XIeeeDoubleBitmap : XIeeeDoubleReadOnlyBitmap
+{
+
+ /** Set raw data of a bitmap.
+
+ Set raw data of a bitmap, in the format as defined by
+ getMemoryLayout(). With the given rectangle, a subset of the
+ bitmap can be changed. When setting subsets of the bitmap, the
+ same scanline padding takes place as when the whole bitmap is
+ changed.
+
+ When setting data on volatile bitmaps, always call isValid()
+ before, and retrieve a new memory layout via
+ getMemoryLayout(). At least under Windows, the memory layout
+ can change for the same bitmap, if the user e.g. switches the
+ screen resolution. Thus, this method will throw an
+ IllegalArgumentException, if the memory layout changed between
+ a call to getMemoryLayout() and setData().
+
+ @param data
+ Data to set
+
+ @param bitmapLayout
+ Layout of the data to set. Must match this bitmap's current
+ layout.
+
+ @param rect
+ Destination rectangle, within the bounds of the bitmap, to set
+ the data in.
+
+ @throws com::sun::star::lang::IndexOutOfBoundsException
+ if parts of the given rectangle are outside the permissible
+ bitmap area.
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if the given memory layout does not match this bitmap's
+ layout, or if the given data sequence has too few or too much
+ elements.
+ */
+ void setData( [in] sequence
+
+ When setting data on volatile bitmaps, always call isValid()
+ before, and retrieve a new memory layout via
+ getMemoryLayout(). At least under Windows, the memory layout
+ can change for the same bitmap, if the user e.g. switches the
+ screen resolution. Thus, this method will throw an
+ IllegalArgumentException, if the memory layout changed between
+ a call to getMemoryLayout() and setPixel().
+
+ @param color
+ The color value(s) to set
+
+ @param bitmapLayout
+ Layout of the color elements to set. Must match this bitmap's
+ current layout.
+
+ @param pos
+ Pixel position with the bounds of the bitmap to set.
+
+ @throws com::sun::star::lang::IndexOutOfBoundsException
+ if the given point is outside the permissible bitmap area.
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if the given memory layout does not match this bitmap's
+ layout, or if the given data sequence has too few or too much
+ elements.
+ */
+ void setPixel( [in] sequence
+
+ Use this interface for e.g. bitmaps that are calculated
+ on-the-fly, or that are pure functional, and thus cannot be
+ modified.
+
+ If you get passed an instance of
+ XHalfFloatReadOnlyBitmap that also supports the
+ XVolatileBitmap interface, things become a bit more
+ complicated. When reading data, one has to check for both
+ VolatileContentDestroyedException and mismatching
+ FloatingPointBitmapLayout return values. If either of them
+ occurs, the whole bitmap read operation should be repeated.
+ */
+interface XIeeeDoubleReadOnlyBitmap : XBitmap
+{
+ /** Query the raw data of this bitmap.
+
+ Query the raw data of this bitmap, in the format as defined by
+ getMemoryLayout(). With the given rectangle, a subset of the
+ whole bitmap can be queried. When querying subsets of the
+ bitmap, the same scanline padding takes place as when the
+ whole bitmap is requested.
+
+ Note that the bitmap memory layout might change for volatile
+ bitmaps.
+
+ @param bitmapLayout
+ The memory layout the returned data is in.
+
+ @param rect
+ A rectangle, within the bounds of the bitmap, to retrieve the
+ consent from.
+
+ @throws VolatileContentDestroyedException
+ if the bitmap is volatile, and the content has been destroyed by the system.
+
+ @throws com::sun::star::lang::IndexOutOfBoundsException
+ if parts of the given rectangle are outside the permissible
+ bitmap area.
+ */
+ sequence
+
+ Note that the bitmap memory layout might change for volatile
+ bitmaps.
+
+ @param bitmapLayout
+ The memory layout the returned data is in.
+
+ @param pos
+ A position, within the bounds of the bitmap, to retrieve the
+ color from.
+
+ @throws VolatileContentDestroyedException
+ if the bitmap is volatile, and the content has been destroyed by the system.
+
+ @throws com::sun::star::lang::IndexOutOfBoundsException
+ if the given position is outside the permissible bitmap area.
+ */
+ sequence
+
+ Please note that for volatile bitmaps, the memory layout might
+ change between subsequent calls.
+ */
+ FloatingPointBitmapLayout getMemoryLayout();
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/rendering/XIeeeFloatBitmap.idl b/offapi/com/sun/star/rendering/XIeeeFloatBitmap.idl
new file mode 100644
index 0000000000..a50927c8e8
--- /dev/null
+++ b/offapi/com/sun/star/rendering/XIeeeFloatBitmap.idl
@@ -0,0 +1,106 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module rendering {
+
+/** Specialized interface for bitmaps containing IEEE floats as their
+ color components.
+ */
+interface XIeeeFloatBitmap : XIeeeFloatReadOnlyBitmap
+{
+
+ /** Set raw data of a bitmap.
+
+ Set raw data of a bitmap, in the format as defined by
+ getMemoryLayout(). With the given rectangle, a subset of the
+ bitmap can be changed. When setting subsets of the bitmap, the
+ same scanline padding takes place as when the whole bitmap is
+ changed.
+
+ When setting data on volatile bitmaps, always call isValid()
+ before, and retrieve a new memory layout via
+ getMemoryLayout(). At least under Windows, the memory layout
+ can change for the same bitmap, if the user e.g. switches the
+ screen resolution. Thus, this method will throw an
+ IllegalArgumentException, if the memory layout changed between
+ a call to getMemoryLayout() and setData().
+
+ @param data
+ Data to set
+
+ @param bitmapLayout
+ Layout of the data to set. Must match this bitmap's current
+ layout.
+
+ @param rect
+ Destination rectangle, within the bounds of the bitmap, to set
+ the data in.
+
+ @throws com::sun::star::lang::IndexOutOfBoundsException
+ if parts of the given rectangle are outside the permissible
+ bitmap area.
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if the given memory layout does not match this bitmap's
+ layout, or if the given data sequence has too few or too much
+ elements.
+ */
+ void setData( [in] sequence
+
+ When setting data on volatile bitmaps, always call isValid()
+ before, and retrieve a new memory layout via
+ getMemoryLayout(). At least under Windows, the memory layout
+ can change for the same bitmap, if the user e.g. switches the
+ screen resolution. Thus, this method will throw an
+ IllegalArgumentException, if the memory layout changed between
+ a call to getMemoryLayout() and setPixel().
+
+ @param color
+ The color value(s) to set
+
+ @param bitmapLayout
+ Layout of the color elements to set. Must match this bitmap's
+ current layout.
+
+ @param pos
+ Pixel position with the bounds of the bitmap to set.
+
+ @throws com::sun::star::lang::IndexOutOfBoundsException
+ if the given point is outside the permissible bitmap area.
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if the given memory layout does not match this bitmap's
+ layout, or if the given data sequence has too few or too much
+ elements.
+ */
+ void setPixel( [in] sequence
+
+ Use this interface for e.g. bitmaps that are calculated
+ on-the-fly, or that are pure functional, and thus cannot be
+ modified.
+
+ If you get passed an instance of
+ XHalfFloatReadOnlyBitmap that also supports the
+ XVolatileBitmap interface, things become a bit more
+ complicated. When reading data, one has to check for both
+ VolatileContentDestroyedException and mismatching
+ FloatingPointBitmapLayout return values. If either of them
+ occurs, the whole bitmap read operation should be repeated.
+ */
+interface XIeeeFloatReadOnlyBitmap : XBitmap
+{
+ /** Query the raw data of this bitmap.
+
+ Query the raw data of this bitmap, in the format as defined by
+ getMemoryLayout(). With the given rectangle, a subset of the
+ whole bitmap can be queried. When querying subsets of the
+ bitmap, the same scanline padding takes place as when the
+ whole bitmap is requested.
+
+ Note that the bitmap memory layout might change for volatile
+ bitmaps.
+
+ @param bitmapLayout
+ The memory layout the returned data is in.
+
+ @param rect
+ A rectangle, within the bounds of the bitmap, to retrieve the
+ consent from.
+
+ @throws VolatileContentDestroyedException
+ if the bitmap is volatile, and the content has been destroyed by the system.
+
+ @throws com::sun::star::lang::IndexOutOfBoundsException
+ if parts of the given rectangle are outside the permissible
+ bitmap area.
+ */
+ sequence
+
+ Note that the bitmap memory layout might change for volatile
+ bitmaps.
+
+ @param bitmapLayout
+ The memory layout the returned data is in.
+
+ @param pos
+ A position, within the bounds of the bitmap, to retrieve the
+ color from.
+
+ @throws VolatileContentDestroyedException
+ if the bitmap is volatile, and the content has been destroyed by the system.
+
+ @throws com::sun::star::lang::IndexOutOfBoundsException
+ if the given position is outside the permissible bitmap area.
+ */
+ sequence
+
+ Please note that for volatile bitmaps, the memory layout might
+ change between subsequent calls.
+ */
+ FloatingPointBitmapLayout getMemoryLayout();
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/rendering/XIntegerBitmap.idl b/offapi/com/sun/star/rendering/XIntegerBitmap.idl
new file mode 100644
index 0000000000..178f6e8d25
--- /dev/null
+++ b/offapi/com/sun/star/rendering/XIntegerBitmap.idl
@@ -0,0 +1,116 @@
+/* -*- 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 .
+ */
+
+
+module com { module sun { module star { module rendering {
+
+/** This is a specialized interface for bitmaps having integer color
+ channels.
+
+ @since OOo 2.0
+ */
+interface XIntegerBitmap : XIntegerReadOnlyBitmap
+{
+
+ /** Set raw data of a bitmap.
+
+ Set raw data of a bitmap, in the format as defined by
+ getMemoryLayout(). With the given rectangle, a subset of the
+ bitmap can be changed. If the internal data format's pixel are
+ not integer multiples of bytes (i.e. if one pixel occupies
+ less than a byte), the leftover content of the bytes at the
+ right of each scanline is ignored and left unchanged in the
+ bitmap. When setting subsets of the bitmap, the same scanline
+ padding takes place as when the whole bitmap is changed.
+
+ When setting data on volatile bitmaps, always call isValid()
+ before, and retrieve a new memory layout via
+ getMemoryLayout(). At least under Windows, the memory layout
+ can change for the same bitmap, if the user e.g. switches the
+ screen resolution. Thus, this method will throw an
+ IllegalArgumentException, if the memory layout changed between
+ a call to getMemoryLayout() and setData().
+
+ @param data
+ Data to set
+
+ @param bitmapLayout
+ Layout of the data to set. Must match this bitmap's current
+ layout.
+
+ @param rect
+ Destination rectangle, within the bounds of the bitmap, to set
+ the data in.
+
+ @throws com::sun::star::lang::IndexOutOfBoundsException
+ if parts of the given rectangle are outside the permissible
+ bitmap area.
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if the given memory layout does not match this bitmap's
+ layout, or if the given data sequence has too few or too many
+ elements.
+ */
+ void setData( [in] sequence
+
+ If the internal data format's pixel are not integer multiples
+ of bytes (i.e. if one pixel occupies less than a byte), the
+ color value is expected in the least significant bits of the
+ single byte given as the color.
+
+ When setting data on volatile bitmaps, always call isValid()
+ before, and retrieve a new memory layout via
+ getMemoryLayout(). At least under Windows, the memory layout
+ can change for the same bitmap, if the user e.g. switches the
+ screen resolution. Thus, this method will throw an
+ IllegalArgumentException, if the memory layout changed between
+ a call to getMemoryLayout() and setPixel().
+
+ @param color
+ The color value(s) to set
+
+ @param bitmapLayout
+ Layout of the color elements to set. Must match this bitmap's
+ current layout.
+
+ @param pos
+ Pixel position with the bounds of the bitmap to set.
+
+ @throws com::sun::star::lang::IndexOutOfBoundsException
+ if the given point is outside the permissible bitmap area.
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if the given memory layout does not match this bitmap's
+ layout, or if the given data sequence has too few or too many
+ elements.
+ */
+ void setPixel( [in] sequence
+
+ This interface encapsulates all information specific to a certain
+ integer bitmap color space, like for example 1555 ARGB. Note that
+ the individual elements of the integer color representation
+ sequence need not correspond to the color space's components -
+ instead, the color components might be packed back-to-back into
+ those bytes, as they appear in the raw bitmap data.
+ */
+interface XIntegerBitmapColorSpace : XColorSpace
+{
+ /** Query number of bits used per bitmap pixel.
+
+ This method yields the total number of bits used for a color
+ value. At the associated XIntegerBitmap, the
+ XIntegerBitmap::setPixel() method will expect
+ a sequence of ceil(BitsPerPixel/8) bytes, and the
+ XIntegerReadOnlyBitmap::getPixel() will
+ return that number of bytes. Similarly, the color conversion
+ expect input data in multiples of ceil(BitsPerPixel/8), and
+ also return converted data in chunks of this.
+ */
+ long getBitsPerPixel();
+
+ /** Query the number of bits used for each component.
+
+ This method returns a sequence of integers, each denoting the
+ number of bits occupied by the respective component. The sum
+ of all component bits must be less or equal than the value
+ returned from getBitsPerPixel(). If the sum is
+ less, excess bits are always kept in the most significant bits
+ of a pixel. Color components will appear in the byte sequences
+ returned from the XIntegerBitmap methods in the
+ order defined here, with the first element starting from the
+ least significant bits of the pixel, etc.
+
+ @remark For the typical 32 bit RGBA color data, the four
+ values would all contain the value eight. For a 16 bit 1555
+ ARGB format, with mask values 0x8000 for alpha, 0x7C for red,
+ 0x3E for green and 0x1F for blue, the values would be 5, 5, 5,
+ 1, in that order.
+ */
+ sequence
+
+ @return `TRUE`, This method returns the endianness of the color
+ data. The value is one of the Endianness
+ constants. If color data is represented using more than one
+ byte, the actual channel positions are specified using bit
+ positions. Therefore, depending on the architecture, the
+ actual color data bytes might need to get swapped, for the
+ bits to align properly.
+
+ @remark with a 16 bit 565 RGB format, written on a big endian
+ architecture, a destination machine using little endian CPU
+ will need to swap the bytes, in order to keep the green
+ channel bits together.
+ */
+ byte getEndianness();
+
+
+ /** Convert integer bitmap color to generic IEEE double device
+ color of another color space.
+
+ Color values are properly rounded and clipped, to be valid in
+ the target color space.
+
+ @param deviceColor Sequence of device color components. Is
+ permitted to contain more than one device color element,
+ therefore, batch conversion of multiple color values is
+ possible.
+
+ @param targetColorSpace the color space to convert to.
+
+ @return the corresponding sequence of device colors in the
+ target color space
+
+ @throws a
+ com::sun::star::lang::IllegalArgumentException,
+ if the input sequence does not match the device color format.
+ */
+ sequence
+
+ Color values are properly rounded and clipped, to be valid in
+ the target color space.
+
+ @param deviceColor Sequence of device color components. Is
+ permitted to contain more than one device color element,
+ therefore, batch conversion of multiple color values is
+ possible.
+
+ @param targetColorSpace the color space to convert to.
+
+ @return the corresponding sequence of device colors in the
+ target color space
+
+ @throws a
+ com::sun::star::lang::IllegalArgumentException,
+ if the input sequence does not match the device color format.
+ */
+ sequence
+
+ Any information not representable in the RGBColor
+ struct is discarded during the conversion. This includes alpha
+ information. Color values are properly rounded and clipped,
+ to be valid in the target color space.
+
+ @param deviceColor Sequence of device color components. Is
+ permitted to contain more than one device color element,
+ therefore, batch conversion of multiple color values is
+ possible.
+
+ @return the corresponding sequence of sRGB colors.
+
+ @see XIntegerBitmapColorSpace::convertIntegerToARGB()
+
+ @throws a
+ com::sun::star::lang::IllegalArgumentException,
+ if the input sequence does not match the device color format.
+ */
+ sequence
+
+ If the given input color does not carry alpha information, an
+ alpha value of 1.0 (fully opaque) is assumed. Color values
+ are properly rounded and clipped, to be valid in the target
+ color space.
+
+ @param deviceColor Sequence of device color components. Is
+ permitted to contain more than one device color element,
+ therefore, batch conversion of multiple color values is
+ possible.
+
+ @return the corresponding sequence of sRGB colors.
+
+ @throws a
+ com::sun::star::lang::IllegalArgumentException,
+ if the input sequence does not match the device color format.
+ */
+ sequence
+
+ If the given input color does not carry alpha information, an
+ alpha value of 1.0 (fully opaque) is assumed. Color values
+ are properly rounded and clipped, to be valid in the target
+ color space. The resulting individual RGB color values are
+ premultiplied by the alpha value (e.g. if alpha is 0.5, each
+ color value has only half of the original intensity).
+
+ @param deviceColor Sequence of device color components. Is
+ permitted to contain more than one device color element,
+ therefore, batch conversion of multiple color values is
+ possible.
+
+ @return the corresponding sequence of sRGB colors.
+
+ @throws a
+ com::sun::star::lang::IllegalArgumentException,
+ if the input sequence does not match the device color format.
+ */
+ sequence
+
+ If this color space conveys alpha information, it is assumed
+ be fully opaque for the given RGB color value. Color values
+ are properly rounded and clipped, to be valid in the target
+ color space.
+
+ @param rgbColor Sequence of sRGB color components. Is
+ permitted to contain more than one color element, therefore,
+ batch conversion of multiple color values is possible.
+
+ @return the corresponding sequence of device colors.
+
+ @throws a
+ com::sun::star::lang::IllegalArgumentException,
+ if the input sequence does not match the device color format.
+ */
+ sequence
+
+ If this color space does not convey alpha information, the
+ specified alpha value is silently ignored. Color values are
+ properly rounded and clipped, to be valid in the target color
+ space.
+
+ @param rgbColor Sequence of sRGB color components. Is
+ permitted to contain more than one color element, therefore,
+ batch conversion of multiple color values is possible.
+
+ @return the corresponding sequence of device colors.
+
+ @throws a
+ com::sun::star::lang::IllegalArgumentException,
+ if the input sequence does not match the device color format.
+ */
+ sequence
+
+ If this color space does not convey alpha information, the
+ specified alpha value is silently ignored. Color values are
+ properly rounded and clipped, to be valid in the target color
+ space.
+
+ @param rgbColor Sequence of sRGB color components. Is
+ permitted to contain more than one color element, therefore,
+ batch conversion of multiple color values is possible. The
+ individual RGB color values are assumed to be premultiplied by
+ the alpha value already.
+
+ @return the corresponding sequence of device colors.
+
+ @throws a
+ com::sun::star::lang::IllegalArgumentException,
+ if the input sequence does not match the device color format.
+ */
+ sequencecreateBuffers(1)
+ creates a double-buffered object.