diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 09:06:44 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 09:06:44 +0000 |
commit | ed5640d8b587fbcfed7dd7967f3de04b37a76f26 (patch) | |
tree | 7a5f7c6c9d02226d7471cb3cc8fbbf631b415303 /offapi/com/sun/star/frame | |
parent | Initial commit. (diff) | |
download | libreoffice-upstream.tar.xz libreoffice-upstream.zip |
Adding upstream version 4:7.4.7.upstream/4%7.4.7upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
162 files changed, 11906 insertions, 0 deletions
diff --git a/offapi/com/sun/star/frame/AppDispatchProvider.idl b/offapi/com/sun/star/frame/AppDispatchProvider.idl new file mode 100644 index 000000000..20a6624a2 --- /dev/null +++ b/offapi/com/sun/star/frame/AppDispatchProvider.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 . + */ +#ifndef __com_sun_star_frame_AppDispatchProvider_idl__ +#define __com_sun_star_frame_AppDispatchProvider_idl__ + +#include <com/sun/star/frame/XAppDispatchProvider.idl> + + + module com { module sun { module star { module frame { + +/** + @since LibreOffice 4.2 + */ +service AppDispatchProvider : XAppDispatchProvider; + + +}; }; }; }; + +#endif + +/* 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 000000000..7a010c915 --- /dev/null +++ b/offapi/com/sun/star/frame/AutoRecovery.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 . + */ +#ifndef __com_sun_star_frame_AutoRecovery_idl__ +#define __com_sun_star_frame_AutoRecovery_idl__ + +#include <com/sun/star/frame/XDispatch.idl> + +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; + + +}; }; }; }; + +#endif + +/* 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 000000000..fe52b9131 --- /dev/null +++ b/offapi/com/sun/star/frame/Bibliography.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 . + */ +#ifndef __com_sun_star_frame_Bibliography_idl__ +#define __com_sun_star_frame_Bibliography_idl__ + +#include <com/sun/star/container/XNameAccess.idl> + + + module com { module sun { module star { module frame { + +/** + @since LibreOffice 4.1 + */ +published service Bibliography : com::sun::star::container::XNameAccess; + + +}; }; }; }; + +#endif + +/* 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 000000000..7259b62f1 --- /dev/null +++ b/offapi/com/sun/star/frame/BorderWidths.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 . + */ +#ifndef __com_sun_star_frame_BorderWidths_idl__ +#define __com_sun_star_frame_BorderWidths_idl__ + + + + 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; + +}; + + +}; }; }; }; + +#endif + +/* 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 000000000..f46614e74 --- /dev/null +++ b/offapi/com/sun/star/frame/CommandGroup.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 . + */ +#ifndef __com_sun_star_frame_CommandGroup_idl__ +#define __com_sun_star_frame_CommandGroup_idl__ + + +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; +}; + + +}; }; }; }; + +#endif + +/* 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 000000000..2a36d01db --- /dev/null +++ b/offapi/com/sun/star/frame/Components.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 . + */ +#ifndef __com_sun_star_frame_Components_idl__ +#define __com_sun_star_frame_Components_idl__ + +#include <com/sun/star/container/XEnumerationAccess.idl> + + +module com { module sun { module star { module frame { + +/** specifies a collection of components + + <p> + One important instance of this service is available from the + Desktop object via the XDesktop interface. + </p> + + @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; +}; + + +}; }; }; }; + +#endif + +/* 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 000000000..78b42454c --- /dev/null +++ b/offapi/com/sun/star/frame/ContentHandler.idl @@ -0,0 +1,58 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef __com_sun_star_frame_ContentHandler_idl__ +#define __com_sun_star_frame_ContentHandler_idl__ + +#include <com/sun/star/frame/XNotifyingDispatch.idl> + + +module com { module sun { module star { module frame { + +/** special dispatcher for non visible contents, e.g. sounds + + <p> + 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. + </p> + + @see com::sun::star::document::TypeDetection + */ +published service ContentHandler +{ + /** provides handling of dispatches with defined result state + + <p> + Base interface of XNotifyingDispatch is XDispatch + and can be called for requests if result isn't necessary for dispatch operation. + </p> + + @see XDispatch + */ + interface XNotifyingDispatch; +}; + + +}; }; }; }; + +#endif + +/* 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 000000000..e3411714b --- /dev/null +++ b/offapi/com/sun/star/frame/ContentHandlerFactory.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 . + */ +#ifndef __com_sun_star_frame_ContentHandlerFactory_idl__ +#define __com_sun_star_frame_ContentHandlerFactory_idl__ + +#include <com/sun/star/frame/XLoaderFactory.idl> + + +module com { module sun { module star { module frame { + +/** factory to create content loader + + <p> + With this factory it's possible to + <ul> + <li>have access on configuration of set of registered content handler objects</li> + <li>create a content handler by his internal name</li> + <li>query for a content handler by using special query or property description.</li> + </ul> + </p> + */ +published service ContentHandlerFactory : XLoaderFactory; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/ControlCommand.idl b/offapi/com/sun/star/frame/ControlCommand.idl new file mode 100644 index 000000000..c608e872e --- /dev/null +++ b/offapi/com/sun/star/frame/ControlCommand.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 . + */ +#ifndef __com_sun_star_frame_ControlCommand_idl__ +#define __com_sun_star_frame_ControlCommand_idl__ + + +#include <com/sun/star/beans/NamedValue.idl> + + +module com { module sun { module star { module frame { + + +/** describes a command which can be send to a generic toolbar control. + + @since OOo 2.0.3 + */ +struct ControlCommand +{ + + /** specifies the command which should be processed by the toolbar + control. + */ + string Command; + + + /** specifies a sequence of named values which are used as argument + for the command. The number and type of arguments depend on the + command and control. + */ + sequence< com::sun::star::beans::NamedValue > Arguments; +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/ControlEvent.idl b/offapi/com/sun/star/frame/ControlEvent.idl new file mode 100644 index 000000000..c31f70a6a --- /dev/null +++ b/offapi/com/sun/star/frame/ControlEvent.idl @@ -0,0 +1,59 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef __com_sun_star_frame_ControlEvent_idl__ +#define __com_sun_star_frame_ControlEvent_idl__ + +#include <com/sun/star/util/URL.idl> + +#include <com/sun/star/beans/NamedValue.idl> + + +module com { module sun { module star { module frame { + + +/** describes a control event sent by extended user interface + controls. + + @since OOo 2.0.3 + */ +struct ControlEvent +{ + /** fully parsed URL describing the control that sends this + notification. + */ + ::com::sun::star::util::URL aURL; + + /** specifies the event which has occurred. + */ + string Event; + + + /** specifies a sequence of named values which are used as + additional values for the event. The number and types of + named values depend on the event. + */ + sequence< com::sun::star::beans::NamedValue > aInformation; +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/Controller.idl b/offapi/com/sun/star/frame/Controller.idl new file mode 100644 index 000000000..901fe8a2e --- /dev/null +++ b/offapi/com/sun/star/frame/Controller.idl @@ -0,0 +1,95 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef __com_sun_star_frame_Controller_idl__ +#define __com_sun_star_frame_Controller_idl__ + +#include <com/sun/star/frame/XController.idl> +#include <com/sun/star/frame/XDispatchProvider.idl> +#include <com/sun/star/awt/XWindow.idl> +#include <com/sun/star/ui/XContextMenuInterception.idl> +#include <com/sun/star/awt/XUserInputInterception.idl> +#include <com/sun/star/view/XSelectionSupplier.idl> +#include <com/sun/star/datatransfer/XTransferableSupplier.idl> + + + module com { module sun { module star { module frame { + +/** is an abstract service for a component which offers a deeper integration of + desktop components than a com::sun::star::awt::XWindow + can offer + + <p> + 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. + <br> + (see service com::sun::star::document::OfficeDocument for further information) + <p> + + @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 + + <p> + Mostly used by the Frame service, which contains this + controller object. There will be an interception mechanism for dispatches + available too. + </p> + + @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 + + <p> + Don't mix it with XDispatchProviderInterception which + intercept calls of XDispatch::dispatch(). + </p> + */ + [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; +}; + + +}; }; }; }; + +#endif + +/* 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 000000000..2d6f18de7 --- /dev/null +++ b/offapi/com/sun/star/frame/Desktop.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 . + */ +#ifndef __com_sun_star_frame_Desktop_idl__ +#define __com_sun_star_frame_Desktop_idl__ + +#include <com/sun/star/frame/XDesktop2.idl> + + + 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; + +}; }; }; }; + +#endif + +/* 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 000000000..92a5f124f --- /dev/null +++ b/offapi/com/sun/star/frame/DesktopTask.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 . + */ +#ifndef __com_sun_star_frame_DesktopTask_idl__ +#define __com_sun_star_frame_DesktopTask_idl__ + +#include <com/sun/star/frame/XDesktopTask.idl> +#include <com/sun/star/frame/XFrame.idl> +#include <com/sun/star/beans/XPropertySet.idl> +#include <com/sun/star/frame/XWindowArranger.idl> +#include <com/sun/star/frame/XFramesSupplier.idl> +#include <com/sun/star/awt/Point.idl> +#include <com/sun/star/awt/Size.idl> + + + 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; +}; + + +}; }; }; }; + +#endif + +/* 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 000000000..c50a53a2d --- /dev/null +++ b/offapi/com/sun/star/frame/DesktopTasks.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 . + */ +#ifndef __com_sun_star_frame_DesktopTasks_idl__ +#define __com_sun_star_frame_DesktopTasks_idl__ + +#include <com/sun/star/container/XEnumerationAccess.idl> + + + module com { module sun { module star { module frame { + +/** @deprecated + */ +published service DesktopTasks +{ + interface com::sun::star::container::XEnumerationAccess; +}; + + +}; }; }; }; + +#endif + +/* 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 000000000..eae116227 --- /dev/null +++ b/offapi/com/sun/star/frame/DispatchDescriptor.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 . + */ +#ifndef __com_sun_star_frame_DispatchDescriptor_idl__ +#define __com_sun_star_frame_DispatchDescriptor_idl__ + +#include <com/sun/star/util/URL.idl> + + + + 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 + + <p> + 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. + </p> + + @see XDispatchProvider::queryDispatches() + */ +published struct DispatchDescriptor +{ + /** specifies the URL of the resource/function + + <p> + Must be a full parsed URL. Use service com::sun::star::util::URLTransformer + for that. + </p> + + @see com::sun::star::util::URLTransformer + */ + com::sun::star::util::URL FeatureURL; + + /** name of the target frame + + <p> + Special targets (e.g. "_blank", "_self") or really existing target names can be used. + </p> + + @see XDispatchProvider::queryDispatch() + */ + string FrameName; + + /** describes how the target frame is to be searched + + <p> + This optional parameter is used if <var>FrameName</var> isn't a special target only. + </p> + + @see FrameSearchFlag + */ + long SearchFlags; +}; + + +}; }; }; }; + +#endif + +/* 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 000000000..d35f9e498 --- /dev/null +++ b/offapi/com/sun/star/frame/DispatchHelper.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 . + */ +#ifndef __com_sun_star_frame_DispatchHelper_idl__ +#define __com_sun_star_frame_DispatchHelper_idl__ + +#include <com/sun/star/frame/XDispatchHelper.idl> + + +module com { module sun { module star { module frame { + +/** provides an easy way to dispatch a URL using one call instead of multiple ones. + + <p> + 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 + </p> + + @see DispatchProvider + @see XDispatchProvider + @see XDispatch + + @since OOo 1.1.2 + */ +published service DispatchHelper : XDispatchHelper; + + +}; }; }; }; + +#endif + +/* 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 000000000..7608849b3 --- /dev/null +++ b/offapi/com/sun/star/frame/DispatchInformation.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 . + */ +#ifndef __com_sun_star_frame_DispatchInformation_idl__ +#define __com_sun_star_frame_DispatchInformation_idl__ + +#include <com/sun/star/frame/CommandGroup.idl> + + +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. + + <p> + @see CommandGroup + </p> + */ + short GroupId; +}; + + +}; }; }; }; + +#endif + +/* 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 000000000..b2c9bbe6f --- /dev/null +++ b/offapi/com/sun/star/frame/DispatchProvider.idl @@ -0,0 +1,70 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef __com_sun_star_frame_DispatchProvider_idl__ +#define __com_sun_star_frame_DispatchProvider_idl__ + +#include <com/sun/star/frame/XDispatchProvider.idl> +#include <com/sun/star/frame/XDispatchProviderInterception.idl> + + +module com { module sun { module star { module frame { + +/** provides XDispatch objects for certain functions which + are useful at the UI + + <p> + 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). + </p> + + @see XNotifyingDispatch + @see XDispatch + @see XControlNotificationListener + */ +published service DispatchProvider +{ + /** provides handling of dispatches with defined result state + + <p> + Base interface of XNotifyingDispatch is XDispatch + and can be called for requests if result isn't necessary for dispatch operation. + </p> + + @see XDispatch + */ + interface XDispatchProvider; + + /** provides dispatch interception + + <p> + It makes it possible to register an XDispatchProvider which + intercepts all requests of XDispatch to this instance. + </p> + */ + [optional] interface XDispatchProviderInterception; +}; + + +}; }; }; }; + +#endif + +/* 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 000000000..5eacc1579 --- /dev/null +++ b/offapi/com/sun/star/frame/DispatchRecorder.idl @@ -0,0 +1,51 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef __com_sun_star_frame_DispatchRecorder_idl__ +#define __com_sun_star_frame_DispatchRecorder_idl__ + +#include <com/sun/star/frame/XDispatchRecorder.idl> + + + module com { module sun { module star { module frame { + +/** provides functionality to record XDispatch::dispatch() requests + + <p> + 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`. + </p> + + @see DispatchRecorderSupplier + @see Frame::RecorderSupplier + + @since OOo 1.1.2 + */ +published service DispatchRecorder : XDispatchRecorder; + + +}; }; }; }; + +#endif + +/* 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 000000000..770736461 --- /dev/null +++ b/offapi/com/sun/star/frame/DispatchRecorderSupplier.idl @@ -0,0 +1,51 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef __com_sun_star_frame_DispatchRecorderSupplier_idl__ +#define __com_sun_star_frame_DispatchRecorderSupplier_idl__ + +#include <com/sun/star/frame/XDispatchRecorderSupplier.idl> + + + module com { module sun { module star { module frame { + +/** provides a DispatchRecorder + + <p> + 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. + </p> + + @see DispatchRecorder + @see Frame + @since OOo 1.1.2 + */ +published service DispatchRecorderSupplier : XDispatchRecorderSupplier; + + +}; }; }; }; + +#endif + +/* 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 000000000..dcbd08ee0 --- /dev/null +++ b/offapi/com/sun/star/frame/DispatchResultEvent.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 . + */ + +#ifndef __com_sun_star_frame_DispatchResultEvent_idl__ +#define __com_sun_star_frame_DispatchResultEvent_idl__ + +#include <com/sun/star/lang/EventObject.idl> +#include <com/sun/star/util/URL.idl> + + + module com { module sun { module star { module frame { + +/** contains the result of the dispatch action, if State is set to SUCCESS + + <p> + 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. + </p> + + @see DispatchResultState +*/ +published struct DispatchResultEvent: com::sun::star::lang::EventObject +{ + /** describes state of dispatch + */ + short State; + + /** describes result for given <var>State</var> + */ + any Result; +}; + + +}; }; }; }; + +#endif + +/* 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 000000000..e0658dd2e --- /dev/null +++ b/offapi/com/sun/star/frame/DispatchResultState.idl @@ -0,0 +1,48 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_frame_DispatchResultState_idl__ +#define __com_sun_star_frame_DispatchResultState_idl__ + + +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; +}; + + +}; }; }; }; + +#endif + +/* 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 000000000..64421ef46 --- /dev/null +++ b/offapi/com/sun/star/frame/DispatchStatement.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 . + */ +#ifndef __com_sun_star_frame_DispatchStatement_idl__ +#define __com_sun_star_frame_DispatchStatement_idl__ + +#include <com/sun/star/beans/PropertyValue.idl> + + + 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 + + <p> + That means the <var>URL</var> parameter of a corresponding XDispatchProvider::queryDispatch() request. + </p> + */ + string aCommand; + + + /** specifies the frame target + + <p> + That means the <var>TargetFrameName</var> parameter of a corresponding XDispatchProvider::queryDispatch() request. + </p> + */ + string aTarget; + + /** specifies the dispatch command arguments + + <p> + That means the <var>Arguments</var> parameter of a corresponding XDispatch::dispatch() request. + </p> + */ + sequence < com::sun::star::beans::PropertyValue > aArgs; + + /** specifies the optional search flags + <p> + That means the <var>SearchFlags</var> parameter of a corresponding XDispatchProvider::queryDispatch() request. + </p> + */ + long nFlags; + + /** specifies if this statement should be recorded as commented out or not + + @see XDispatchRecorder::recordDispatchAsComment() + */ + boolean bIsComment; + +}; + + +}; }; }; }; + +#endif + +/* 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 000000000..d7a2109ec --- /dev/null +++ b/offapi/com/sun/star/frame/DocumentTemplates.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 . + */ +#ifndef __com_sun_star_frame_DocumentTemplates_idl__ +#define __com_sun_star_frame_DocumentTemplates_idl__ + +#include <com/sun/star/frame/XDocumentTemplates.idl> + + +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; + + +}; }; }; }; + +#endif + +/* 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 000000000..52fbd8ea6 --- /dev/null +++ b/offapi/com/sun/star/frame/DoubleInitializationException.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 . + */ +#ifndef __com_sun_star_frame_DoubleInitializationException_idl__ +#define __com_sun_star_frame_DoubleInitializationException_idl__ + +#include <com/sun/star/uno/Exception.idl> + + + + 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 +{ +}; + + +}; }; }; }; + +#endif + +/* 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 000000000..026341239 --- /dev/null +++ b/offapi/com/sun/star/frame/FeatureStateEvent.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 . + */ +#ifndef __com_sun_star_frame_FeatureStateEvent_idl__ +#define __com_sun_star_frame_FeatureStateEvent_idl__ + +#include <com/sun/star/lang/EventObject.idl> +#include <com/sun/star/util/URL.idl> + + + + 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. + + <p> + Interest code should listen for FrameActionEvent + too, to update own feature states and dispatch listener on + FrameAction::CONTEXT_CHANGED. + </p> + */ + boolean Requery; + + /** contains the state of the feature in this dispatch. + + <p> + This can be, for example, simply `TRUE` for a boolean feature like + underline on/off. Some simple types like <code>string</code> or + `boolean` are useful here for generic UI elements, like + a checkmark in a menu. + </p> + */ + any State; +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/Frame.idl b/offapi/com/sun/star/frame/Frame.idl new file mode 100644 index 000000000..e5b9bce15 --- /dev/null +++ b/offapi/com/sun/star/frame/Frame.idl @@ -0,0 +1,48 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef __com_sun_star_frame_Frame_idl__ +#define __com_sun_star_frame_Frame_idl__ + +#include <com/sun/star/frame/XFrame2.idl> +#include <com/sun/star/awt/XWindow.idl> + + + module com { module sun { module star { module frame { + +/** represents the environment for a desktop component + + <p> + 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. + </p> + + @see Desktop + */ +published service Frame : XFrame2; + + +}; }; }; }; + +#endif + +/* 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 000000000..4f478132c --- /dev/null +++ b/offapi/com/sun/star/frame/FrameAction.idl @@ -0,0 +1,134 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this 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_frame_FrameAction_idl__ +#define __com_sun_star_frame_FrameAction_idl__ + + + + module com { module sun { module star { module frame { + +/** these are the events which can happen to the components in frames + of the desktop + + <p> + Interest listener can get information about loaded/reloaded or unloaded + components into a Frame. + </p> + + @see XFrame + @see XFrameActionListener + @see FrameActionEvent + */ +published enum FrameAction +{ + /** an event of this kind is broadcast whenever a component is + attached to a frame + + <p> + 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. + </p> + + @see XFrame::setComponent() + */ + COMPONENT_ATTACHED, + + /** an event of this kind is broadcast whenever a component is + detaching from a frame + + <p> + 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. + </p> + + @see XFrame::setComponent() + */ + COMPONENT_DETACHING, + + /** an event of this kind is broadcast whenever a component is + attached to a new model. + + <p> + In this case the component remains the same but operates + on a new model component. + </p> + */ + COMPONENT_REATTACHED, + + /** an event of this kind is broadcast whenever a component gets + activated + + <p> + Activations are broadcast from the top component which was + not active before, down to the inner most component. + </p> + + @see XFrame::activate() + */ + FRAME_ACTIVATED, + + /** an event of this kind is broadcasted immediately before the + component is deactivated + + <p> + Deactivations are broadcast from the innermost component which + does not stay active up to the outer most component which does not + stay active. + </p> + + @see XFrame::deactivate() + */ + FRAME_DEACTIVATING, + + /** an event of this kind is broadcast whenever a component changes + its internal context (i.e., the selection). + + <p> + If the activation status within a frame changes, this counts as + a context change too. + </p> + + @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 +}; + + +}; }; }; }; + +#endif + +/* 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 000000000..c0359b9d4 --- /dev/null +++ b/offapi/com/sun/star/frame/FrameActionEvent.idl @@ -0,0 +1,50 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef __com_sun_star_frame_FrameActionEvent_idl__ +#define __com_sun_star_frame_FrameActionEvent_idl__ + +#include <com/sun/star/lang/EventObject.idl> +#include <com/sun/star/frame/XFrame.idl> +#include <com/sun/star/frame/FrameAction.idl> + + + 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; +}; + + +}; }; }; }; + +#endif + +/* 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 000000000..7a85e6d7f --- /dev/null +++ b/offapi/com/sun/star/frame/FrameControl.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 . + */ +#ifndef __com_sun_star_frame_FrameControl_idl__ +#define __com_sun_star_frame_FrameControl_idl__ + +#include <com/sun/star/awt/UnoControl.idl> +#include <com/sun/star/beans/XPropertySet.idl> + + + module com { module sun { module star { module frame { + +/** contains a frame with a desktop component + + <p> + 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. + </p> + */ +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 + + <p> + The Frame is created if the control + is shown and the #ComponentUrl is set. + </p> + */ + [property, readonly] string Frame; +}; + + +}; }; }; }; + +#endif + +/* 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 000000000..5bdbc17b8 --- /dev/null +++ b/offapi/com/sun/star/frame/FrameLoader.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 . + */ +#ifndef __com_sun_star_frame_FrameLoader_idl__ +#define __com_sun_star_frame_FrameLoader_idl__ + +#include <com/sun/star/frame/XFrameLoader.idl> +#include <com/sun/star/lang/XInitialization.idl> +#include <com/sun/star/container/XNamed.idl> + + + module com { module sun { module star { module frame { + +/** derivations of this abstract service are used to load components + into Frames of the environment + + <p> + 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. + </p> + + @see SynchronousFrameLoader + */ +published service FrameLoader +{ + /** support asynchronous loading of the component + */ + interface XFrameLoader; + + /** support initialization of loader with its own configuration! + + <p> + 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. + </p> + */ + [optional] interface com::sun::star::lang::XInitialization; + + /** provides access to the internal name of this frame loader + + <p> + 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. + </p> + */ + [optional] interface com::sun::star::container::XNamed; +}; + + +}; }; }; }; + +#endif + +/* 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 000000000..6efe90694 --- /dev/null +++ b/offapi/com/sun/star/frame/FrameLoaderFactory.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 . + */ +#ifndef __com_sun_star_frame_FrameLoaderFactory_idl__ +#define __com_sun_star_frame_FrameLoaderFactory_idl__ + +#include <com/sun/star/frame/XLoaderFactory.idl> + + +module com { module sun { module star { module frame { + +/** factory to create frame loader + + <p> + With this factory it's possible to + <ul> + <li>have access on configuration of set of registered frame loader objects</li> + <li>create a frame loader by his internal name</li> + <li>query for a frame loader by using special query or property description.</li> + </ul> + </p> + */ +published service FrameLoaderFactory : XLoaderFactory; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/FrameSearchFlag.idl b/offapi/com/sun/star/frame/FrameSearchFlag.idl new file mode 100644 index 000000000..ad0a5e188 --- /dev/null +++ b/offapi/com/sun/star/frame/FrameSearchFlag.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 . + */ +#ifndef __com_sun_star_frame_FrameSearchFlag_idl__ +#define __com_sun_star_frame_FrameSearchFlag_idl__ + + + + module com { module sun { module star { module frame { + +/** these types describe the algorithm to be used to search a frame + + <p> + 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. + </p> + + @see XFrame::findFrame() + @see XDispatchProvider::queryDispatch() + @see XComponentLoader::loadComponentFromURL() + */ +published constants FrameSearchFlag +{ + /** no longer supported + + <p> + Using of this flag will do nothing. Use right combination of other flags + instead of this one. + </p> + + @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 + + <p> + Note: That means all direct children and of course her children too. + Search doesn't stop at the next level inside the tree! + </p> + */ + const long CHILDREN = 4; + + /** frame will be created if not found + */ + const long CREATE = 8; + + /** includes the direct siblings of the start frame + + <p> + 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. + </p> + */ + const long SIBLINGS = 16; + + /** allow the search outside the current sub task tree of the whole possible frame tree + + <p> + 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. + </p> + */ + 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; +}; + + +}; }; }; }; + +#endif + +/* 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 000000000..01265ad8d --- /dev/null +++ b/offapi/com/sun/star/frame/FramesContainer.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 . + */ +#ifndef __com_sun_star_frame_FramesContainer_idl__ +#define __com_sun_star_frame_FramesContainer_idl__ + +#include <com/sun/star/frame/XFrames.idl> + + + module com { module sun { module star { module frame { + +/** this is a special container which can contain frames + + <p> + All elements in this container support the service frame. + Implementations of this service are available by interface + XFramesSupplier. + </p> + + @see XFramesSupplier + */ +published service FramesContainer +{ + /** access to frame collection by reference + */ + interface XFrames; +}; + + +}; }; }; }; + +#endif + +/* 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 000000000..47fbc9e84 --- /dev/null +++ b/offapi/com/sun/star/frame/GlobalEventBroadcaster.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 . + */ +#ifndef __com_sun_star_frame_GlobalEventBroadcaster_idl__ +#define __com_sun_star_frame_GlobalEventBroadcaster_idl__ + +#include <com/sun/star/frame/XGlobalEventBroadcaster.idl> + + +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; + + +}; }; }; }; + +#endif + +/* 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 000000000..a943fb387 --- /dev/null +++ b/offapi/com/sun/star/frame/IllegalArgumentIOException.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 . + */ +#ifndef __com_sun_star_frame_IllegalArgumentIOException_idl__ +#define __com_sun_star_frame_IllegalArgumentIOException_idl__ + +#include <com/sun/star/io/IOException.idl> + + + + 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 +{ +}; + + +}; }; }; }; + +#endif + +/* 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 000000000..4b579987f --- /dev/null +++ b/offapi/com/sun/star/frame/InfobarType.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/. + */ + +#ifndef __com_sun_star_frame_InfobarType_idl__ +#define __com_sun_star_frame_InfobarType_idl__ + +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; +}; + +}; }; }; }; + +#endif + +/* 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 000000000..511e43ada --- /dev/null +++ b/offapi/com/sun/star/frame/LayoutManager.idl @@ -0,0 +1,59 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_frame_LayoutManager_idl__ +#define __com_sun_star_frame_LayoutManager_idl__ + +#include <com/sun/star/frame/XLayoutManager2.idl> + + + module com { module sun { module star { module frame { + +/** controls the layout of user interface elements which are part of a frame. + + <p> + 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. + </p> + + <p> + Available properties: + <ul> + <li>boolean <code>MenuBarCloser</code>: Whether the small "Close" button in the menubar is displayed</li> + <li>boolean <code>AutomaticToolbars</code>: Whether automatic toolbars do appear</li> + <li>boolean <code>RefreshContextToolbarVisibility</code>: Set to true to refresh visibility of context toolbars</li> + <li>boolean <code>HideCurrentUI</code>: Hide/Show current UI elements (Toolbar, Statusbar, Menubar, etc)</li> + <li>boolean <code>PreserveContentSize</code>: When true, the outer window is resized the content/document size is preserved</li> + </ul> + </p> + + @since OOo 2.0 +*/ + +service LayoutManager : XLayoutManager2; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/LayoutManagerEvents.idl b/offapi/com/sun/star/frame/LayoutManagerEvents.idl new file mode 100644 index 000000000..1ce0f947b --- /dev/null +++ b/offapi/com/sun/star/frame/LayoutManagerEvents.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 . + */ +#ifndef __com_sun_star_frame_LayoutManagerEvents_idl__ +#define __com_sun_star_frame_LayoutManagerEvents_idl__ + + +module com { module sun { module star { module frame { + +/** provides information about layout manager events + + <p>Events are provided <strong>only</strong> for notification + purposes only.</p> + + @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. + + <p> + This event sends the current lock count as additional + information. + </p> + */ + const short LOCK = 0; + + /** specifies that the layout manager processed an unlock call, which + admit layouts when the lock count is zero. + + <p> + This event sends the current lock count as additional + information. + </p> + */ + const short UNLOCK = 1; + + /** specifies that the layout manager refreshed the layout of + the frame. + + <p> + This event sends no additional information. + </p> + */ + const short LAYOUT = 2; + + /** specifies that the layout manager container frame window + becomes visible. + + <p> + This event sends no additional information. + </p> + */ + const short VISIBLE = 3; + + /** specifies that the layout manager container frame window + becomes invisible. + + <p> + This event sends no additional information. + </p> + */ + const short INVISIBLE = 4; + + /** A merged menu bar has been set at the layout manager. + + <p> + This event sends no additional information. + </p> + */ + const short MERGEDMENUBAR = 5; + + /** specifies that a certain user interface element has been made + visible + + <p> + This event sends the resource url of the newly visible user + interface element. + </p> + */ + const short UIELEMENT_VISIBLE = 6; + + /** specifies that a certain user interface element has been made + invisible + + <p> + This event sends the resource url of the invisible user + interface element. + </p> + */ + const short UIELEMENT_INVISIBLE = 7; +}; + +}; }; }; }; + +#endif + +/* 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 000000000..cf220eeb1 --- /dev/null +++ b/offapi/com/sun/star/frame/MediaTypeDetectionHelper.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 . + */ +#ifndef __com_sun_star_frame_MediaTypeDetectionHelper_idl__ +#define __com_sun_star_frame_MediaTypeDetectionHelper_idl__ + +#include <com/sun/star/util/XStringMapping.idl> + + + 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 + + <p> + 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. + </p> + */ +published service MediaTypeDetectionHelper + : com::sun::star::util::XStringMapping; + + +}; }; }; }; + +#endif + +/* 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 000000000..d6d449c64 --- /dev/null +++ b/offapi/com/sun/star/frame/ModuleManager.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 . + */ + +#ifndef __com_sun_star_frame_ModuleManager_idl__ +#define __com_sun_star_frame_ModuleManager_idl__ + +#include <com/sun/star/frame/XModuleManager2.idl> + + +module com { module sun { module star { module frame { + +/** can be used to identify office modules. + + <p> + Further it provides read access to the configuration + of office modules. + </p> + + @since OOo 2.0 + */ + +service ModuleManager : XModuleManager2; + +}; }; }; }; + +#endif + +/* 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 000000000..67823eb41 --- /dev/null +++ b/offapi/com/sun/star/frame/OfficeFrameLoader.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 . + */ +#ifndef __com_sun_star_frame_OfficeFrameLoader_idl__ +#define __com_sun_star_frame_OfficeFrameLoader_idl__ + +#include <com/sun/star/frame/XSynchronousFrameLoader.idl> + + + module com { module sun { module star { module frame { + +/** + @since LibreOffice 4.2 + */ +service OfficeFrameLoader : XSynchronousFrameLoader; + + +}; }; }; }; + +#endif + +/* 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 000000000..8328501d5 --- /dev/null +++ b/offapi/com/sun/star/frame/PopupMenuController.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 . + */ + +#ifndef __com_sun_star_frame_PopupMenuController_idl__ +#define __com_sun_star_frame_PopupMenuController_idl__ + +#include <com/sun/star/frame/XPopupMenuController.idl> +#include <com/sun/star/lang/XInitialization.idl> +#include <com/sun/star/frame/XStatusListener.idl> +#include <com/sun/star/frame/XDispatchProvider.idl> +#include <com/sun/star/lang/XComponent.idl> + + +module com { module sun { module star { module frame { + + +/** provides access to a pop-up menu controller. + + <p> + A pop-up menu controller is used to make special functions available to + users, which depend on runtime or context specific conditions.<br/> + 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. + </p> + + @since OOo 2.0 +*/ + +service PopupMenuController +{ + /** supports functions to initialize and update a pop-up menu controller + implementation. + + <p> + 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. + </p> + */ + interface com::sun::star::frame::XPopupMenuController; + + /** provides functions to initialize a pop-up menu controller with + specific data which are needed. + + <p> + This interface should not directly used. A factory service is responsible to + initialize every controller correctly.<br/> + + A pop-up menu controller needs at least two additional arguments + provided as com::sun::star::beans::PropertyValue: + <ul> + <li><b>Frame</b><br>specifies the com::sun::star::frame::XFrame + instance to which the pop-up menu controller belongs to.</li> + <li><b>CommandURL</b><br>specifies which pop-up menu controller should be created.</li> + </ul> + </p> + + @see PopupMenuControllerFactory + */ + interface com::sun::star::lang::XInitialization; + + /** used to brief the pop-up menu controller with new status information. + + <p> + 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. + </p> + */ + interface com::sun::star::frame::XStatusListener; + + /** used to query for commands supported by the pop-up menu controller to + execute them directly. + + <p> + 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.<br/> + <b>Attention:</b><br/> + Po-pup menu controller functions must be specified using the following + the dispatch URL scheme: "vnd.sun.star.popup:" opaque_part [ "?" query ]. + </p> + + @since OOo 2.2 + */ + [optional] interface com::sun::star::frame::XDispatchProvider; + + /** used to dispose pop-up menu controller by the owner instance. + + <p> + 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. + </p> + + @since OOo 2.2 + */ + [optional] interface com::sun::star::lang::XComponent; +}; + +}; }; }; }; + + +#endif + +/* 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 000000000..009bb66a9 --- /dev/null +++ b/offapi/com/sun/star/frame/PopupMenuControllerFactory.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 . + */ + +#ifndef __com_sun_star_frame_PopupMenuControllerFactory_idl__ +#define __com_sun_star_frame_PopupMenuControllerFactory_idl__ + +#include <com/sun/star/frame/XUIControllerFactory.idl> + +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; + +}; }; }; }; + +#endif + +/* 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 000000000..ffdaa3155 --- /dev/null +++ b/offapi/com/sun/star/frame/ProtocolHandler.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 . + */ +#ifndef __com_sun_star_frame_ProtocolHandler_idl__ +#define __com_sun_star_frame_ProtocolHandler_idl__ + +#include <com/sun/star/frame/XDispatchProvider.idl> +#include <com/sun/star/lang/XInitialization.idl> + + + module com { module sun { module star { module frame { + +/** special dispatch provider registered for URL protocols + + <p> + The generic dispatch mechanism on a Frame + search for such registered protocol handler and use it if it agrees with + the dispatched URL. + </p> + + <p> + Supported URLs must match follow format: + <code><i>protocol scheme</i>:<i>protocol specific part</i></code> + 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. + </p> + */ +published service ProtocolHandler +{ + /** used from the generic dispatch mechanism of the frame, to ask ProtocolHandler + for his agreement for the dispatched URL + + <p> + 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. + </p> + */ + interface XDispatchProvider; + + /** initialize the new handler instance with some context information + + <p> + 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: + <ul> + <li>sequence< any >[0] => the frame for which this ProtocolHandler was created [com.sun.star.frame.XFrame]</li> + </ul> + </p> + + <p> + 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. + </p> + */ + [optional] interface ::com::sun::star::lang::XInitialization; +}; + + +}; }; }; }; + +#endif + +/* 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 000000000..d33859fd8 --- /dev/null +++ b/offapi/com/sun/star/frame/SessionListener.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 . + */ +#ifndef __com_sun_star_frame_SessionListener_idl__ +#define __com_sun_star_frame_SessionListener_idl__ + +#include <com/sun/star/frame/XSessionManagerListener2.idl> + + + 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); +}; + + +}; }; }; }; + +#endif + +/* 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 000000000..8e2202816 --- /dev/null +++ b/offapi/com/sun/star/frame/SessionManager.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 . + */ +#ifndef __com_sun_star_frame_SessionManager_idl__ +#define __com_sun_star_frame_SessionManager_idl__ + +#include <com/sun/star/frame/XSessionManagerClient.idl> + + + 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: + + <ol> + <li>The user starts the desktop shutdown.</li> + <li>The session manager informs all its connected applications + about the pending shutdown.</li> + <li>Each application saves its current state; while doing this it may + <ul> + <li>The application may request to interact with the user (e.g. to ask + where to save documents). This request is necessary because at any one + time only one application can interact with the user. The session manager + coordinates these requests and grants every application in need of user + interaction a timeslot in which it may interact with the user</li> + <li>try to cancel the whole shutdown; the session manager may or may + not honor that request.</li> + </ul> + </li> + <li>After saving is done the session manager signals all applications + to exit.</li> + <li>Applications answer the exit message by disconnecting from the + session manager.</li> + <li>After all applications have exited or a reasonable timeout the + session manager kills all remaining applications and finally lets the + desktop shut down.</li> + </ol> +*/ +service SessionManager +{ + /** XSessionManagerClient (of which there can only be one instance per + process) provides an application's interface to the session manager. + It keeps track of every listener inside the application and multiplexes + the session manager's signals as well as requests to the session manager. + */ + interface XSessionManagerClient; + +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/Settings.idl b/offapi/com/sun/star/frame/Settings.idl new file mode 100644 index 000000000..19267a9ce --- /dev/null +++ b/offapi/com/sun/star/frame/Settings.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 . + */ +#ifndef __com_sun_star_frame_Settings_idl__ +#define __com_sun_star_frame_Settings_idl__ + +#include <com/sun/star/container/XNameAccess.idl> + + + module com { module sun { module star { module frame { + +/** @deprecated + */ +published service Settings +{ + interface com::sun::star::container::XNameAccess; +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/StartModule.idl b/offapi/com/sun/star/frame/StartModule.idl new file mode 100644 index 000000000..8af9903cb --- /dev/null +++ b/offapi/com/sun/star/frame/StartModule.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 . + */ +#ifndef __com_sun_star_frame_StartModule_idl__ +#define __com_sun_star_frame_StartModule_idl__ + +#include <com/sun/star/awt/XWindow.idl> +#include <com/sun/star/frame/XController.idl> + + + module com { module sun { module star { module frame { + +/** + @since LibreOffice 4.1 + */ +service StartModule : com::sun::star::frame::XController +{ + createWithParentWindow([in] com::sun::star::awt::XWindow ContainerWindow); +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/StatusbarController.idl b/offapi/com/sun/star/frame/StatusbarController.idl new file mode 100644 index 000000000..e60b90be6 --- /dev/null +++ b/offapi/com/sun/star/frame/StatusbarController.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 . + */ +#ifndef __com_sun_star_frame_StatusbarController_idl__ +#define __com_sun_star_frame_StatusbarController_idl__ + +#include <com/sun/star/frame/XStatusbarController.idl> + +module com { module sun { module star { module frame { + +interface XStatusbarController; + +/** is an abstract service for a component which offers a more complex user + interface to users within a status bar. + + <p> + 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.<br/> + 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. + <p> + + @see com::sun::star::frame::XDispatchProvider + @see com::sun::star::frame::XStatusbarController + + @since OOo 2.0 + */ +service StatusbarController : XStatusbarController +{ +}; + +}; }; }; }; + +#endif + +/* 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 000000000..4f74f6d6c --- /dev/null +++ b/offapi/com/sun/star/frame/StatusbarControllerFactory.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 . + */ + +#ifndef __com_sun_star_frame_StatusbarControllerFactory_idl__ +#define __com_sun_star_frame_StatusbarControllerFactory_idl__ + +#include <com/sun/star/frame/XUIControllerFactory.idl> + +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; + +}; }; }; }; + +#endif + +/* 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 000000000..4a99eb0d9 --- /dev/null +++ b/offapi/com/sun/star/frame/SynchronousFrameLoader.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 . + */ +#ifndef __com_sun_star_frame_SynchronousFrameLoader_idl__ +#define __com_sun_star_frame_SynchronousFrameLoader_idl__ + +#include <com/sun/star/frame/XSynchronousFrameLoader.idl> +#include <com/sun/star/lang/XInitialization.idl> +#include <com/sun/star/container/XNamed.idl> + + + module com { module sun { module star { module frame { + +/** derivations of this abstract service are used to load components + into Frames of the environment + + <p> + 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. + </p> + + @see FrameLoader + */ +published service SynchronousFrameLoader +{ + /** support synchronous loading of component + */ + interface XSynchronousFrameLoader; + + /** support initialization of loader with its own configuration! + + <p> + 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. + </p> + */ + [optional] interface com::sun::star::lang::XInitialization; + + /** provides access to the internal name of this frame loader + + <p> + 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. + </p> + */ + [optional] interface com::sun::star::container::XNamed; +}; + + +}; }; }; }; + +#endif + +/* 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 000000000..7bc2944c6 --- /dev/null +++ b/offapi/com/sun/star/frame/Task.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 . + */ +#ifndef __com_sun_star_frame_Task_idl__ +#define __com_sun_star_frame_Task_idl__ + +#include <com/sun/star/frame/XFrame.idl> +#include <com/sun/star/frame/XTask.idl> + + + module com { module sun { module star { module frame { + +/** represents a top level frame in the frame hierarchy with the desktop as root + + <p> + 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. + </p> + + @see Frame + + @deprecated + + @since OOo 1.1.2 + */ +published service Task +{ + /** + @deprecated + */ + interface XFrame; + + /** + @deprecated + use com::sun::star::util::XCloseable instead. + + */ + interface XTask; +}; + + +}; }; }; }; + +#endif + +/* 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 000000000..5c8099897 --- /dev/null +++ b/offapi/com/sun/star/frame/TaskCreator.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 . + */ +#ifndef __com_sun_star_frame_TaskCreator_idl__ +#define __com_sun_star_frame_TaskCreator_idl__ + +#include <com/sun/star/lang/XSingleServiceFactory.idl> + + + module com { module sun { module star { module frame { + +/** + @since LibreOffice 4.1 + */ +service TaskCreator : com::sun::star::lang::XSingleServiceFactory; + + +}; }; }; }; + +#endif + +/* 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 000000000..a149c76fe --- /dev/null +++ b/offapi/com/sun/star/frame/TemplateAccess.idl @@ -0,0 +1,46 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef __com_sun_star_frame_TemplateAccess_idl__ +#define __com_sun_star_frame_TemplateAccess_idl__ + +#include <com/sun/star/lang/XLocalizable.idl> +#include <com/sun/star/frame/XDocumentTemplates.idl> + + +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; +}; + + +}; }; }; }; + +#endif + +/* 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 000000000..135c9c1a7 --- /dev/null +++ b/offapi/com/sun/star/frame/TerminationVetoException.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 . + */ +#ifndef __com_sun_star_frame_TerminationVetoException_idl__ +#define __com_sun_star_frame_TerminationVetoException_idl__ + +#include <com/sun/star/uno/Exception.idl> + + + module com { module sun { module star { module frame { + +/** can be thrown by a XTerminateListener to prevent the environment + (e.g., desktop) from terminating + + <p> + 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. + </p> + + @see XDesktop::terminate() + @see XTerminateListener + */ +published exception TerminationVetoException: com::sun::star::uno::Exception +{ +}; + + +}; }; }; }; + +#endif + +/* 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 000000000..2005d9461 --- /dev/null +++ b/offapi/com/sun/star/frame/TitleChangedEvent.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 . + */ +#ifndef __com_sun_star_frame_TitleChangedEvent_idl__ +#define __com_sun_star_frame_TitleChangedEvent_idl__ + +#include <com/sun/star/lang/EventObject.idl> + + + 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; +}; + + +}; }; }; }; + +#endif + +/* 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 000000000..fd332484d --- /dev/null +++ b/offapi/com/sun/star/frame/ToolbarController.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 . + */ + +#ifndef __com_sun_star_frame_ToolbarController_idl__ +#define __com_sun_star_frame_ToolbarController_idl__ + +#include <com/sun/star/lang/XInitialization.idl> +#include <com/sun/star/util/XUpdatable.idl> +#include <com/sun/star/frame/XStatusListener.idl> +#include <com/sun/star/frame/XToolbarController.idl> +#include <com/sun/star/frame/XSubToolbarController.idl> + + + 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. + + <p> + 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.<br/> 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. + <p> + + @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. + + <p> + The toolbar controller implementation should register itself as a + listener when its com::sun::star::util::XUpdatable + interface has been called. + </p> + */ + 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: + <ul> + <li><b>Frame</b><br>a com::sun::star::frame::XFrame + instance to which the toolbar controller belongs.</li> + <li><b>CommandURL</b><br>a string which specifies the command a + toolbar controller is bound.</li> + <li><b>ServiceManager</b><br>a + com::sun::star::lang::XMultiServiceFactory + instance which can be used to create additional UNO services.</li> + </ul> + */ + interface com::sun::star::lang::XInitialization; + + /** used to notify an implementation that it needs to add its listener or remove + and add them again. + + <p> + 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. + </p> + */ + interface com::sun::star::util::XUpdatable; + + /** used to notify changed features and requests for additional user interface + items. + + <p> + 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. + </p> + */ + interface com::sun::star::frame::XToolbarController; + + /** used to notify and retrieve information that are specific for sub-toolbar + controllers. + + <p> + 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. + </p> + */ + [optional] interface ::com::sun::star::frame::XSubToolbarController; +}; + + +}; }; }; }; + +#endif + +/* 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 000000000..201cc4c83 --- /dev/null +++ b/offapi/com/sun/star/frame/ToolbarControllerFactory.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 . + */ +#ifndef __com_sun_star_frame_ToolbarControllerFactory_idl__ +#define __com_sun_star_frame_ToolbarControllerFactory_idl__ + +#include <com/sun/star/frame/XUIControllerFactory.idl> + +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; + +}; }; }; }; + +#endif + +/* 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 000000000..0d1e6bb70 --- /dev/null +++ b/offapi/com/sun/star/frame/TransientDocumentsDocumentContentFactory.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 . + */ +#ifndef __com_sun_star_frame_TransientDocumentsDocumentContentFactory_idl__ +#define __com_sun_star_frame_TransientDocumentsDocumentContentFactory_idl__ + +#include <com/sun/star/frame/XTransientDocumentsDocumentContentFactory.idl> + + +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; +}; + + +}; }; }; }; + +#endif + +/* 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 000000000..76e6db949 --- /dev/null +++ b/offapi/com/sun/star/frame/UICommandDescription.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 . + */ + +#ifndef __com_sun_star_frame_UICommandDescription_idl__ +#define __com_sun_star_frame_UICommandDescription_idl__ + +#include <com/sun/star/container/XNameAccess.idl> + + +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; + +}; }; }; }; + +#endif + +/* 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 000000000..c9eb19d19 --- /dev/null +++ b/offapi/com/sun/star/frame/UnknownModuleException.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 . + */ +#ifndef __com_sun_star_frame_UnknownModuleException_idl__ +#define __com_sun_star_frame_UnknownModuleException_idl__ + +#include <com/sun/star/uno/Exception.idl> + + +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 +{ +}; + +}; }; }; }; + +#endif + +/* 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 000000000..3ff9b5083 --- /dev/null +++ b/offapi/com/sun/star/frame/UntitledNumbersConst.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 . + */ + +#ifndef __com_sun_star_frame_UntitledNumbersConst_idl__ +#define __com_sun_star_frame_UntitledNumbersConst_idl__ + + module com { module sun { module star { module frame { + +constants UntitledNumbersConst +{ + const long INVALID_NUMBER = 0; +}; + +}; }; }; }; + +#endif + +/* 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 000000000..8196096c5 --- /dev/null +++ b/offapi/com/sun/star/frame/WindowArrange.idl @@ -0,0 +1,59 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef __com_sun_star_frame_WindowArrange_idl__ +#define __com_sun_star_frame_WindowArrange_idl__ + + + 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; +}; + + +}; }; }; }; + +#endif + +/* 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 000000000..298c62d8d --- /dev/null +++ b/offapi/com/sun/star/frame/XAppDispatchProvider.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 . + */ +#ifndef __com_sun_star_frame_XAppDispatchProvider_idl__ +#define __com_sun_star_frame_XAppDispatchProvider_idl__ + +#include <com/sun/star/frame/XDispatchInformationProvider.idl> +#include <com/sun/star/frame/XDispatchProvider.idl> + + + module com { module sun { module star { module frame { + +/** + @since LibreOffice 4.2 + */ +interface XAppDispatchProvider +{ + interface XDispatchInformationProvider; + interface XDispatchProvider; +}; + + +}; }; }; }; + +#endif + +/* 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 000000000..5cc6e836f --- /dev/null +++ b/offapi/com/sun/star/frame/XBorderResizeListener.idl @@ -0,0 +1,51 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef __com_sun_star_frame_XBorderResizeListener_idl__ +#define __com_sun_star_frame_XBorderResizeListener_idl__ + +#include <com/sun/star/lang/XEventListener.idl> +#include <com/sun/star/frame/BorderWidths.idl> + + + + 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 ); +}; + + +}; }; }; }; + +#endif + +/* 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 000000000..d75f2df4b --- /dev/null +++ b/offapi/com/sun/star/frame/XBrowseHistoryRegistry.idl @@ -0,0 +1,50 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef __com_sun_star_frame_XBrowseHistoryRegistry_idl__ +#define __com_sun_star_frame_XBrowseHistoryRegistry_idl__ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/beans/PropertyValue.idl> + + + + 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<com::sun::star::beans::PropertyValue> Arguments, + [in] string Title); +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XComponentLoader.idl b/offapi/com/sun/star/frame/XComponentLoader.idl new file mode 100644 index 000000000..81c25360b --- /dev/null +++ b/offapi/com/sun/star/frame/XComponentLoader.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 . + */ +#ifndef __com_sun_star_frame_XComponentLoader_idl__ +#define __com_sun_star_frame_XComponentLoader_idl__ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/lang/XComponent.idl> +#include <com/sun/star/beans/PropertyValue.idl> +#include <com/sun/star/io/IOException.idl> +#include <com/sun/star/lang/IllegalArgumentException.idl> + + + +module com { module sun { module star { module frame { + +/** this is a simple interface to load components by a URL into a + frame environment + + @see Desktop + @see Frame + @see XFrame + */ +published interface XComponentLoader: com::sun::star::uno::XInterface +{ + /** loads a component specified by a URL into the specified + new or existing frame. + + @param URL + specifies the URL of the document to load + + <p> + 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. + </p> + + @param TargetFrameName + specifies the name of the frame to view the document in + + <p> + 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: + <table border=1> + <tr> + <td><strong>"_blank"</strong></td> + <td>always creates a new frame</td> + </tr> + <tr> + <td><strong>"_default"</strong></td> + <td>special UI functionality<br>(e.g. detecting of already loaded documents, using of empty frames of creating of new top frames as fallback)</td> + </tr> + <tr> + <td><strong>"_self", ""(!)</strong></td> + <td>means frame himself</td> + </tr> + <tr> + <td><strong>"_parent"</strong></td> + <td>address direct parent of frame</td> + </tr> + <tr> + <td><strong>"_top"</strong></td> + <td>indicates top frame of current path in tree</td> + </tr> + <tr> + <td><strong>"_beamer"</strong></td> + <td>means special sub frame</td> + </tr> + </table> + + @param SearchFlags + use the values of FrameSearchFlag to specify + how to find the specified <var>TargetFrameName</var> + + <p> + Note: These flags are optional ones and will be used for non special + target names only. + </p> + + @param Arguments + these arguments specify component or filter specific behavior + + <p> + 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. + </p> + + @return + a com::sun::star::lang::XComponent for successfully loaded + documents or + <br> + `NULL`if it failed + + <p> + 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: + <ul> + <li> + com::sun::star::awt::XWindow for simple components<br/> + Should be used for viewable components only. It is not allowed to dispose + it after use directly, because the frame containing the component is its owner. + Because the frame object is not accessible through the interface too, + only an interacting user can do this by closing the frame's window. + </li> + <li> + XController for richer components<br/> + Should be used for real editable components which doesn't need a model. + It is not allowed to dispose it after use directly, because the frame + containing the component is its owner. Here the object can be disposed + by disposing the frame, that the XController::getFrame() + method of the controller returns. But for visible components the controller + should be asked for permission by calling XController::suspend() before. + </li> + <li> + XModel for full featured components<br/> + A model that in general can be shared between several view/controller pairs, + does not have an explicit owner. Every view and also the component that + loaded the document may consider itself as an owner. + Simply calling com::sun::star::lang::XComponent::dispose() on this model may + cause problems, if some members of the "owner community" are currently + busy working on the model. These problems are handled by explicit closing + negotiations through the interface com::sun::star::util::XCloseable. + Direct dispose of the model is allowed only, if this special interface doesn't exist. + </li> + </ul> + </p> + + @throws com::sun::star::io::IOException + when <var>URL</var> couldn't be found or was corrupt + + @throws com::sun::star::lang::IllegalArgumentException + when given parameters doesn't perform the specification + */ + com::sun::star::lang::XComponent loadComponentFromURL( + [in] string URL, + [in] string TargetFrameName, + [in] long SearchFlags, + [in] sequence<com::sun::star::beans::PropertyValue> Arguments) + raises( com::sun::star::io::IOException, + com::sun::star::lang::IllegalArgumentException ); +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XComponentRegistry.idl b/offapi/com/sun/star/frame/XComponentRegistry.idl new file mode 100644 index 000000000..2397454f9 --- /dev/null +++ b/offapi/com/sun/star/frame/XComponentRegistry.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 . + */ +#ifndef __com_sun_star_frame_XComponentRegistry_idl__ +#define __com_sun_star_frame_XComponentRegistry_idl__ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/uno/Uik.idl> + + + + module com { module sun { module star { module frame { + +/** @deprecated + */ +published interface XComponentRegistry: com::sun::star::uno::XInterface +{ + /** @deprecated + */ + com::sun::star::uno::XInterface createObject( + [in] string URL, + [in] com::sun::star::uno::Uik Uik ); +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XConfigManager.idl b/offapi/com/sun/star/frame/XConfigManager.idl new file mode 100644 index 000000000..c0e894aaa --- /dev/null +++ b/offapi/com/sun/star/frame/XConfigManager.idl @@ -0,0 +1,101 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef __com_sun_star_frame_XConfigManager_idl__ +#define __com_sun_star_frame_XConfigManager_idl__ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/beans/XPropertyChangeListener.idl> + + + module com { + module sun { + module star { + module frame { + +/** @deprecated + */ +published interface XConfigManager: com::sun::star::uno::XInterface +{ + /** add a listener to notify changes on well known variables + inside the real implementation + + <p> + Listener can update his text values by calling XConfigManager::substituteVariables() + again. If <var>KeyName</var> specifies a group of keys, the listener gets one notify for each subkey. + </p> + + @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 <var>Text</var> + + <p> + The value of <var>Text</var> is NOT changed. + </p> + + @param Text + original value including variables + + @return + changed copy of <var>Text</var> 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 + +#endif + +/* 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 000000000..09eedf661 --- /dev/null +++ b/offapi/com/sun/star/frame/XControlNotificationListener.idl @@ -0,0 +1,50 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef __com_sun_star_frame_XControlNotificationListener_idl__ +#define __com_sun_star_frame_XControlNotificationListener_idl__ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/frame/ControlEvent.idl> + + +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 ); + +}; + + +}; }; }; }; + +#endif + +/* 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 000000000..0e07f60ee --- /dev/null +++ b/offapi/com/sun/star/frame/XController.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 . + */ +#ifndef __com_sun_star_frame_XController_idl__ +#define __com_sun_star_frame_XController_idl__ + +#include <com/sun/star/lang/XComponent.idl> + + + 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 + <br> + `FALSE` Otherwise + */ + boolean attachModel( [in] XModel Model ); + + /** is called to prepare the controller for closing the view + + @param Suspend + `TRUE` Force the controller to suspend his work + `FALSE` Try to reactivate the controller + + @return + `TRUE` If request was accepted and successfully finished + <br> + `FALSE` Otherwise + */ + boolean suspend( [in] boolean Suspend ); + + /** provides access to current view status + + @returns + set of data that can be used to restore the current view status + at later time by using XController::restoreViewData() + */ + any getViewData(); + + /** restores the view status using the data gotten from a previous call to + XController::getViewData(). + + @param Data + set of data to restore it + */ + void restoreViewData( [in] any Data ); + + /** provides access to currently attached model + + @returns + the currently attached model. + */ + XModel getModel(); + + /** provides access to owner frame of this controller + + @returns + the frame containing this controller. + */ + XFrame getFrame(); +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XController2.idl b/offapi/com/sun/star/frame/XController2.idl new file mode 100644 index 000000000..23c64f1a1 --- /dev/null +++ b/offapi/com/sun/star/frame/XController2.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 . + */ + +#ifndef __com_sun_star_frame_XController2_idl__ +#define __com_sun_star_frame_XController2_idl__ + +#include <com/sun/star/frame/XController.idl> +#include <com/sun/star/awt/XWindow.idl> +#include <com/sun/star/beans/PropertyValue.idl> +#include <com/sun/star/ui/XSidebarProvider.idl> + + +module com { module sun { module star { module frame { + + +/** extends the XController interface + + @since OOo 3.0 +*/ +interface XController2 : XController +{ + /** denotes the "root window" of the controller. + + <p>If the controller is plugged into a frame, this window acts as the + frame's <code>ComponentWindow</code>.</p> + + @see XFrame + */ + [readonly, attribute] ::com::sun::star::awt::XWindow ComponentWindow; + + /** specifies the view name of the controller. + + <p>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.</p> + */ + [readonly, attribute] string ViewControllerName; + + /** denotes the arguments used to create the instance. + + <p>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 <code>CreationArguments</code> + member.</p> + */ + [readonly, attribute] sequence< ::com::sun::star::beans::PropertyValue > + CreationArguments; + + /** get the sidebar if exists + @since LibreOffice 5.1 + */ + ::com::sun::star::ui::XSidebarProvider getSidebar(); +}; + + +}; }; }; }; + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XControllerBorder.idl b/offapi/com/sun/star/frame/XControllerBorder.idl new file mode 100644 index 000000000..1254d54a3 --- /dev/null +++ b/offapi/com/sun/star/frame/XControllerBorder.idl @@ -0,0 +1,69 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef __com_sun_star_frame_XControllerBorder_idl__ +#define __com_sun_star_frame_XControllerBorder_idl__ + +#include <com/sun/star/frame/BorderWidths.idl> +#include <com/sun/star/frame/XBorderResizeListener.idl> +#include <com/sun/star/awt/Rectangle.idl> + + + + module com { module sun { module star { module frame { + +/** allows to retrieve information about controller's border. + */ +interface XControllerBorder: com::sun::star::uno::XInterface +{ + /** allows to get current border sizes of the document. + + @return + BorderWidths representing the sizes of border + */ + BorderWidths getBorder(); + + /** adds the specified listener to receive events about controller's + border resizing. + */ + void addBorderResizeListener( [in] XBorderResizeListener xListener ); + + /** removes the specified listener. + */ + void removeBorderResizeListener( [in] XBorderResizeListener xListener ); + + /** allows to get suggestion for resizing of object area surrounded + by the border. + + <p> If the view is going to be resized/moved this method can be + used to get suggested object area. Pixels are used as units. + </p> + + @return + suggestion for the resizing + */ + ::com::sun::star::awt::Rectangle queryBorderedArea( + [in] ::com::sun::star::awt::Rectangle aPreliminaryRectangle ); +}; + + +}; }; }; }; + +#endif + +/* 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 000000000..b25fdcdaf --- /dev/null +++ b/offapi/com/sun/star/frame/XDesktop.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 . + */ +#ifndef __com_sun_star_frame_XDesktop_idl__ +#define __com_sun_star_frame_XDesktop_idl__ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/frame/XTerminateListener.idl> +#include <com/sun/star/container/XEnumerationAccess.idl> +#include <com/sun/star/lang/XComponent.idl> +#include <com/sun/star/frame/XFrame.idl> + + + + module com { module sun { module star { module frame { + +/** This is the main interface of a desktop service. + + <p> + 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. + </p> + + @see Desktop + */ +published interface XDesktop: com::sun::star::uno::XInterface +{ + /** tries to terminate the desktop. + + <p> + 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. + </p> + + @return + `TRUE` If all listeners agree with this request + <br> + `FALSE` Otherwise + + @see XTerminateListener + @see TerminationVetoException + */ + boolean terminate(); + + /** registers an event listener to the desktop, which is called + when the desktop is queried to terminate, and when it really + terminates. + + @param Listener + listener for termination events + + @see XDesktop::removeTerminateListener() + */ + void addTerminateListener( [in] XTerminateListener Listener ); + + /** unregisters an event listener for termination events. + + @param Listener + listener which wishes to be deregistered + + @see XDesktop::addTerminateListener() + */ + void removeTerminateListener( [in] XTerminateListener Listener ); + + /** provides read access to collection of all currently loaded components + inside the frame tree + + <p> + 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. + </p> + + @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 + + <p> + Normally, the component is the model part of the + active component. If no model exists it is the active controller + (view) itself. + </p> + + @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(); +}; + + +}; }; }; }; + +#endif + +/* 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 000000000..6fe69c862 --- /dev/null +++ b/offapi/com/sun/star/frame/XDesktop2.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 . + */ +#ifndef __com_sun_star_frame_XDesktop2_idl__ +#define __com_sun_star_frame_XDesktop2_idl__ + +#include <com/sun/star/frame/XComponentLoader.idl> +#include <com/sun/star/frame/XDesktop.idl> +#include <com/sun/star/frame/XDispatchProvider.idl> +#include <com/sun/star/frame/XDispatchProviderInterception.idl> +#include <com/sun/star/frame/XFrame.idl> +#include <com/sun/star/frame/XFramesSupplier.idl> +#include <com/sun/star/task/XStatusIndicatorFactory.idl> + + +module com { module sun { module star { module frame { + +/** + @since LibreOffice 4.1 +*/ +published interface XDesktop2 +{ + /** provides access to dispatchers for the frame. + + <p> + 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.<br> + Common special targets include: + <ul> + <li><b>_blank</b><br> is used to create a new frame when dispatching the URL.</li> + <li><b>_default</b><br> is used to recycle empty or create a new frame when dispatching the URL.</li> + <li><b>_self</b><br> forces the frame to dispatch the URL into itself. ("" means the same)</li> + <li><b>_parent</b><br> dispatches the URL into the parent frame.</li> + <li><b>_top</b><br> dispatches the URL into the top level frame, the frame where this is invoked belongs to.</li> + </ul> + </p> + + @see XDispatch + @see XFrame::findFrame() + */ + interface XDispatchProvider; + + /** supports interception mechanism for dispatched URLs + + <p> + 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. + </p> + */ + 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; +}; + + +}; }; }; }; + +#endif + +/* 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 000000000..bdb6a937b --- /dev/null +++ b/offapi/com/sun/star/frame/XDesktopTask.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 . + */ +#ifndef __com_sun_star_frame_XDesktopTask_idl__ +#define __com_sun_star_frame_XDesktopTask_idl__ + +#include <com/sun/star/lang/XComponent.idl> +#include <com/sun/star/awt/XWindow.idl> + + + + 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(); +}; + + +}; }; }; }; + +#endif + +/* 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 000000000..cbd7bcb2e --- /dev/null +++ b/offapi/com/sun/star/frame/XDispatch.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 . + */ +#ifndef __com_sun_star_frame_XDispatch_idl__ +#define __com_sun_star_frame_XDispatch_idl__ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/util/URL.idl> +#include <com/sun/star/beans/PropertyValue.idl> +#include <com/sun/star/frame/XStatusListener.idl> + + + +module com { module sun { module star { module frame { + +/** serves state information of objects which can be connected to + controls (e.g. toolbox controls). + + <p> + 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. + </p> + + <p> + 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. + </p> + + @see Frame + @see FeatureStateEvent + */ +published interface XDispatch: com::sun::star::uno::XInterface +{ + /** dispatches (executes) a URL + + <p> + It is only allowed to dispatch URLs for which this XDispatch + was explicitly queried. Additional arguments ("'#..." or "?...") are allowed. + </p> + + @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 + + <p> + 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. + </p> + + <i>some code for a click-handler (Java)</i> + @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<com::sun::star::beans::PropertyValue> Arguments); + + /** registers a listener of a control for a specific URL + at this object to receive status events. + + <p> + It is only allowed to register URLs for which this XDispatch + was explicitly queried. Additional arguments ("#..." or "?...") will be ignored. + </p> + 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); +}; + + +}; }; }; }; + +#endif + +/* 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 000000000..a51d6a8ef --- /dev/null +++ b/offapi/com/sun/star/frame/XDispatchHelper.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 . + */ +#ifndef __com_sun_star_frame_XDispatchHelper_idl__ +#define __com_sun_star_frame_XDispatchHelper_idl__ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/frame/XDispatchProvider.idl> +#include <com/sun/star/beans/PropertyValue.idl> + + + 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 + <var>TargetFrameName</var> 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 ); +}; + + +}; }; }; }; + +#endif + +/* 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 000000000..ced5ce681 --- /dev/null +++ b/offapi/com/sun/star/frame/XDispatchInformationProvider.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 . + */ +#ifndef __com_sun_star_frame_XDispatchInformationProvider_idl__ +#define __com_sun_star_frame_XDispatchInformationProvider_idl__ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/frame/DispatchInformation.idl> +#include <com/sun/star/container/NoSuchElementException.idl> + + +module com { module sun { module star { module frame { + +/** provides information about supported commands + + <p> + 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. + </p> + + @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 ); +}; + + +}; }; }; }; + +#endif + +/* 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 000000000..4b3c806a4 --- /dev/null +++ b/offapi/com/sun/star/frame/XDispatchProvider.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 . + */ +#ifndef __com_sun_star_frame_XDispatchProvider_idl__ +#define __com_sun_star_frame_XDispatchProvider_idl__ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/frame/XDispatch.idl> +#include <com/sun/star/util/URL.idl> +#include <com/sun/star/frame/DispatchDescriptor.idl> + + + + 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 + <var>TargetFrameName</var> was used + + @return + the dispatch object which provides queried functionality + <br> + or `NULL` if no dispatch object is available + + @see XFrame::findFrame() + @see XDispatchProvider::queryDispatches() + */ + XDispatch queryDispatch( + [in] com::sun::star::util::URL URL, + [in] string TargetFrameName, + [in] long SearchFlags ); + + /** actually this method is redundant to XDispatchProvider::queryDispatch() + to avoid multiple remote calls. + + @param Requests + list of dispatch requests + + @returns + multiple dispatch interfaces for the specified descriptors at once + + <p> + 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. + </p> + */ + sequence< XDispatch > queryDispatches( + [in] sequence<DispatchDescriptor> Requests); +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XDispatchProviderInterception.idl b/offapi/com/sun/star/frame/XDispatchProviderInterception.idl new file mode 100644 index 000000000..a5ffb81d6 --- /dev/null +++ b/offapi/com/sun/star/frame/XDispatchProviderInterception.idl @@ -0,0 +1,74 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef __com_sun_star_frame_XDispatchProviderInterception_idl__ +#define __com_sun_star_frame_XDispatchProviderInterception_idl__ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/frame/XDispatchProviderInterceptor.idl> + + + + module com { module sun { module star { module frame { + +/** makes it possible to register an XDispatchProvider which + intercepts all requests of XDispatch to this instance. + + <p> + 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. + </p> + + @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 + + <p> + The order of removals is arbitrary. It is not necessary to remove the last + registered interceptor first. + </p> + + @param Interceptor + the interceptor which wishes to be unregistered + + @see XDispatchProviderInterception::registerDispatchProviderInterceptor() + */ + void releaseDispatchProviderInterceptor( [in] XDispatchProviderInterceptor Interceptor ); +}; + + +}; }; }; }; + +#endif + +/* 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 000000000..00e717764 --- /dev/null +++ b/offapi/com/sun/star/frame/XDispatchProviderInterceptor.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 . + */ +#ifndef __com_sun_star_frame_XDispatchProviderInterceptor_idl__ +#define __com_sun_star_frame_XDispatchProviderInterceptor_idl__ + +#include <com/sun/star/frame/XDispatchProvider.idl> + + + + module com { module sun { module star { module frame { + +/** makes it possible to intercept request of XDispatch. + + <p> + Can be registered as an interceptor by using interface XDispatchProviderInterception. + </p> + + @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 ); + +}; + + +}; }; }; }; + +#endif + +/* 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 000000000..8b0071fef --- /dev/null +++ b/offapi/com/sun/star/frame/XDispatchRecorder.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 . + */ +#ifndef __com_sun_star_frame_XDispatchRecorder_idl__ +#define __com_sun_star_frame_XDispatchRecorder_idl__ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/util/URL.idl> +#include <com/sun/star/beans/PropertyValue.idl> + + +module com { module sun { module star { module frame { + + published interface XFrame; + +/** provides recording functionality of dispatches + + <p> + 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. + </p> + + @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 + + <p> + Must be called in pairs with XDispatchRecorder::startRecording(). + </p> + + @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 + <br> + (see com::sun::star::document::MediaDescriptor + for further information) + */ + void recordDispatch( + [in] com::sun::star::util::URL URL, + [in] sequence<com::sun::star::beans::PropertyValue> Arguments); + + /** records a single dispatch call identified by its command URL, but + comments it out + + <p> + This way calls that failed on execution can be documented. + </p> + + @param URL + the full parsed command URL + + @param Arguments + optional arguments for the command URL + <br> + (see com::sun::star::document::MediaDescriptor + for further information) + */ + void recordDispatchAsComment( + [in] com::sun::star::util::URL URL, + [in] sequence<com::sun::star::beans::PropertyValue> Arguments); + + /** returns the recorded source code + + <p> + This method must be used before endRecording() is called! + Otherwise the macro will be released. + </p> + + @returns + the recorded data as a string which can be interpreted as a script + */ + string getRecordedMacro(); +}; + + +}; }; }; }; + +#endif + +/* 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 000000000..611fef027 --- /dev/null +++ b/offapi/com/sun/star/frame/XDispatchRecorderSupplier.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 . + */ +#ifndef __com_sun_star_frame_XDispatchRecorderSupplier_idl__ +#define __com_sun_star_frame_XDispatchRecorderSupplier_idl__ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/frame/XDispatch.idl> +#include <com/sun/star/frame/XDispatchRecorder.idl> + + + module com { module sun { module star { module frame { + +/** provides access to the record mechanism of dispatches + + <p> + 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. + </p> + + @see XDispatchRecorder + @since OOo 1.1.2 + */ +published interface XDispatchRecorderSupplier: com::sun::star::uno::XInterface +{ + /** set a dispatch recorder on this supplier + + <p> + 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. + </p> + + @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 + + <p> + 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(). + </p> + + @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 + + <p> + Parameter <var>Dispatcher</var> 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: + <ul> + <li>If <var>Dispatcher</var> doesn't support the interface + XRecordableDispatch a normal dispatch() call + will be made and depend from the result state of that + the request will be recorded. In this case it's possible + to record the incoming parameter (<var>URL</var> and + <var>Arguments</var>) only. Parameters of internal processes + can't be recorded then and will be lost. + </li> + <li>If <var>Dispatcher</var> support the interface + XRecordableDispatch it will be used + to dispatch and record all necessary parameters of + the whole process. + </li> + </ul> + </p> + + @see XRecordableDispatch + */ + void dispatchAndRecord( + [in] com::sun::star::util::URL URL, + [in] sequence<com::sun::star::beans::PropertyValue> Arguments, + [in] XDispatch Dispatcher); +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XDispatchResultListener.idl b/offapi/com/sun/star/frame/XDispatchResultListener.idl new file mode 100644 index 000000000..07e0bc334 --- /dev/null +++ b/offapi/com/sun/star/frame/XDispatchResultListener.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 . + */ +#ifndef __com_sun_star_frame_XDispatchResultListener_idl__ +#define __com_sun_star_frame_XDispatchResultListener_idl__ + +#include <com/sun/star/lang/XEventListener.idl> +#include <com/sun/star/frame/DispatchResultEvent.idl> + + + module com { module sun { module star { module frame { + +/** listener for results of XNotifyingDispatch::dispatchWithNotification() + + @see XNotifyingDispatch + */ +published interface XDispatchResultListener: com::sun::star::lang::XEventListener +{ + /** indicates finished dispatch + + @param Result + contains the result of the dispatch action + + @see DispatchResultEvent + */ + void dispatchFinished( [in] DispatchResultEvent Result ); +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XDocumentTemplates.idl b/offapi/com/sun/star/frame/XDocumentTemplates.idl new file mode 100644 index 000000000..ccac1af0f --- /dev/null +++ b/offapi/com/sun/star/frame/XDocumentTemplates.idl @@ -0,0 +1,195 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this 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_frame_XDocumentTemplates_idl__ +#define __com_sun_star_frame_XDocumentTemplates_idl__ + +#include <com/sun/star/frame/XStorable.idl> +#include <com/sun/star/ucb/XContent.idl> + + +module com { module sun { module star { module frame { + +/** provides a high level API to organize document templates + + <p> + 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. + </p> + */ +published interface XDocumentTemplates: com::sun::star::uno::XInterface +{ + /** provides access to the root of internal used hierarchy + + <p> + This content can be used for accessing the groups directly. + </p> + + @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 + <br> + `FALSE` otherwise + + @see XDocumentTemplates::addTemplate() + */ + boolean storeTemplate( + [in] string GroupName, + [in] string TemplateName, + [in] XStorable Storable); + + /** creates the template with the given name in the given group using the + given URL + + @param GroupName + specifies the group + + @param TemplateName + specifies the template + + @param SourceURL + specifies the position of template + + @return + `TRUE` if operation was successful + <br> + `FALSE` otherwise + + @see XDocumentTemplates::storeTemplate() + */ + boolean addTemplate( + [in] string GroupName, + [in] string TemplateName, + [in] string SourceURL); + + /** remove a template from specified group + + @param GroupName + specifies the group which include the template + + @param TemplateName + specifies the template for delete + + @return + `TRUE` if operation was successful + <br> + `FALSE` otherwise + */ + boolean removeTemplate( + [in] string GroupName, + [in] string TemplateName); + + /** rename a template inside specified group + + @param GroupName + specifies the group which include the template + + @param OldTemplateName + specifies the template for renaming + + @param NewTemplateName + specifies the new name for the template + + @return + `TRUE` if operation was successful + <br> + `FALSE` otherwise + */ + boolean renameTemplate( + [in] string GroupName, + [in] string OldTemplateName, + [in] string NewTemplateName); + + /** creates a new group + + @param GroupName + the name of the group to be created + + @return + `TRUE` if operation was successful + <br> + `FALSE` otherwise + */ + boolean addGroup( [in] string GroupName ); + + /** remove an existing group + + @param GroupName + the name of the group to be removed + + @return + `TRUE` if operation was successful + <br> + `FALSE` otherwise + */ + boolean removeGroup( [in] string GroupName ); + + /** rename an existing group + + @param OldGroupName + the old name of the group + + @param NewGroupName + the new name of the group + + @return + `TRUE` if operation was successful + <br> + `FALSE` otherwise + */ + boolean renameGroup( + [in] string OldGroupName, + [in] string NewGroupName); + + /** force an update for internal structures + + <p> + 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. + </p> + */ + void update(); +}; + + +}; }; }; }; + +#endif + +/* 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 000000000..8da8b0308 --- /dev/null +++ b/offapi/com/sun/star/frame/XExtendedFilterDetection.idl @@ -0,0 +1,51 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef __com_sun_star_frame_XExtendedFilterDetection_idl__ +#define __com_sun_star_frame_XExtendedFilterDetection_idl__ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/beans/PropertyValue.idl> + + + 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 + +#endif + +/* 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 000000000..9ba432e17 --- /dev/null +++ b/offapi/com/sun/star/frame/XFilterDetect.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 . + */ +#ifndef __com_sun_star_frame_XFilterDetect_idl__ +#define __com_sun_star_frame_XFilterDetect_idl__ + +#include <com/sun/star/uno/XInterface.idl> + + + + 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 ); +}; + + +}; }; }; }; + +#endif + +/* 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 000000000..b2d7e41e4 --- /dev/null +++ b/offapi/com/sun/star/frame/XFrame.idl @@ -0,0 +1,357 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this 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_frame_XFrame_idl__ +#define __com_sun_star_frame_XFrame_idl__ + +#include <com/sun/star/lang/XComponent.idl> +#include <com/sun/star/awt/XWindow.idl> + + + 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. + + <p> + 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. + </p> + + @see Desktop + */ +published interface XFrame: com::sun::star::lang::XComponent +{ + /** is called to initialize the frame within a window - the container window. + + <p> + 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. + </p> + + <p>This frame will take over ownership of the window referred from + <var>xWindow</var>. Thus, the previous owner is not allowed to + dispose this window anymore. </p> + + @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. + + <p> + Normally this is used as the parent window of the + component window. + </p> + + @return + the container window of this frame + + @see XFrame::initialize() + */ + com::sun::star::awt::XWindow getContainerWindow(); + + /** sets the frame container that created this frame. + + <p> + 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()) + </p> + + @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. + + <p> + 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: + <ul> + <li>XFrame::findFrame() + <li>XDispatchProvider::queryDispatch() + <li>XComponentLoader::loadComponentFromURL() + </ul> + Note: Special targets like "_blank", "_self" etc. are not allowed. + That's why frame names shouldn't start with a sign "_". + </p> + + @param aName + the new programmatic name of this frame + + @see XFrame::findFrame() + @see XFrame::getName() + @see XDispatchProvider + @see XComponentLoader + */ + void setName( [in] string aName ); + + /** searches for a frame with the specified name. + + <p> + 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. <var>SearchFlags</var> is ignored when + comparing these names with <var>TargetFrameName</var>; further steps are + controlled by <var>SearchFlags</var>. 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). + </p> + + <p> + List of special target names: + <table border=1> + <tr><td>""/"_self"</td><td>address the starting frame itself</td></tr> + <tr><td>"_parent"</td><td>address the direct parent frame only</td></tr> + <tr><td>"_top"</td><td>address the top frame of this subtree of the frametree</td></tr> + <tr><td>"_blank"</td><td>creates a new top frame</td></tr> + </table> + </p> + + <p> + 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. + </p> + + @param aTargetFrameName + identify + <ul><li>(a) a special target ("_blank","_self" ...) or</li> + <li>(b) any well known frame</li></ul> + to search it inside the current hierarchy + + @param nSearchFlags + optional parameter to regulate search if no special target was used for <var>TargetFrameName</var> + + @see FrameSearchFlag + */ + XFrame findFrame( + [in] string aTargetFrameName, + [in] long nSearchFlags); + + /** determines if the frame is a top frame. + + <p> + 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. + </p> + + @return + `TRUE` if frame supports top frame specification + <br> + `FALSE` otherwise + */ + boolean isTop(); + + /** activates this frame and thus the component within. + + <p> + 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. + </p> + + <p> + Finally, most frames may grab the focus to one of its windows + or forward the activation to a sub-frame. + </p> + + @see XFrame::deactivate() + @see XFrame::isActive() + */ + void activate(); + + /** is called by the creator frame when another sub-frame gets activated. + + <p> + At first the frame deactivates its active sub-frame, if any. + Then broadcasts a FrameActionEvent with + FrameAction::FRAME_DEACTIVATING. + </p> + + @see XFrame::activate() + @see XFrame::isActive() + */ + void deactivate(); + + /** determines if the frame is active. + + @return + `TRUE` for active or UI active frames + <br> + `FALSE` otherwise + + @see XFrame::activate() + @see XFrame::deactivate() + */ + boolean isActive(); + + /** sets a new component into the frame or release an existing one from a frame. + + @param xComponentWindow + the window of the new component or `NULL` for release + + <p> + A valid component window should be a child of the frame container window. + </p> + + @param xController + the controller of the new component or `NULL` for release + + <p> + Simple components may implement a com::sun::star::awt::XWindow only. + In this case no controller must be given here. + </p> + + @return + `TRUE`if setting of new component or release of an existing one was successfully + <br> + `FALSE` otherwise (especially, if an existing controller disagree within his + XController::suspend() call) + + @see XFrame::getComponentWindow() + @see XFrame::getContainerWindow() + @see XFrame::getController() + */ + boolean setComponent( + [in] com::sun::star::awt::XWindow xComponentWindow, + [in] XController xController); + + /** provides access to the component window + + <p> + Note: Don't dispose this window - the frame is the owner of it. + </p> + + @returns + the current visible component in this frame + <br> + or `NULL` if no one currently exist + + @see XFrame::setComponent() + */ + com::sun::star::awt::XWindow getComponentWindow(); + + /** provides access to the controller + + <p> + 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. + </p> + + @returns + the current controller within this frame + <br> + or `NULL` if no one currently exist + + @see XFrame::setComponent() + */ + XController getController(); + + /** notifies the frame that the context of the controller within this + frame changed (i.e. the selection). + + <p> + 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. + + <p> + E.g., it is possible to determine instantiation/destruction and + activation/deactivation of components. + </p> + + @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 ); +}; + + +}; }; }; }; + +#endif + +/* 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 000000000..172908aa6 --- /dev/null +++ b/offapi/com/sun/star/frame/XFrame2.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 . + */ +#ifndef __com_sun_star_frame_XFrame2_idl__ +#define __com_sun_star_frame_XFrame2_idl__ + +#include <com/sun/star/container/XNameContainer.idl> +#include <com/sun/star/frame/XDispatchInformationProvider.idl> +#include <com/sun/star/frame/XDispatchProvider.idl> +#include <com/sun/star/frame/XDispatchProviderInterception.idl> +#include <com/sun/star/frame/XDispatchRecorderSupplier.idl> +#include <com/sun/star/frame/XFramesSupplier.idl> +#include <com/sun/star/task/XStatusIndicatorFactory.idl> + + +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. + + <p> + 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.<br> + Common special targets include: + <ul> + <li><b>_blank</b><br> is used to create a new frame when dispatching the URL.</li> + <li><b>_default</b><br> is used to recycle empty or create a new frame when dispatching the URL.</li> + <li><b>_self</b><br> forces the frame to dispatch the URL into itself. ("" means the same)</li> + <li><b>_parent</b><br> dispatches the URL into the parent frame.</li> + <li><b>_top</b><br> dispatches the URL into the top level frame, the frame where this is invoked belongs to.</li> + </ul> + </p> + + @see XDispatch + @see XFrame::findFrame() + */ + interface XDispatchProvider; + + /** provides information about supported commands + + @since OOo 2.0 + */ + interface XDispatchInformationProvider; + + /** supports interception mechanism for dispatched URLs + + <p> + 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. + </p> + */ + 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 + + <p> + 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. + </p> + */ + [attribute] string Title; + + /** provides access to the dispatch recorder of the frame + + <p> + 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. + </p> + + <p> + Note:<br> + It's not recommended to cache an already gotten supplier. Because there exist + no possibility to check for enabled/disabled recording then. + </p> + + @since OOo 1.1.2 + */ + [attribute] XDispatchRecorderSupplier DispatchRecorderSupplier; + + /** Provides access to the LayoutManager of the frame. + This is actually of type XLayoutManager, but this API is still experimental (unpublished). + */ + [attribute] com::sun::star::uno::XInterface LayoutManager; +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XFrameActionListener.idl b/offapi/com/sun/star/frame/XFrameActionListener.idl new file mode 100644 index 000000000..8bb1f9dbb --- /dev/null +++ b/offapi/com/sun/star/frame/XFrameActionListener.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 . + */ +#ifndef __com_sun_star_frame_XFrameActionListener_idl__ +#define __com_sun_star_frame_XFrameActionListener_idl__ + +#include <com/sun/star/lang/XEventListener.idl> +#include <com/sun/star/frame/FrameActionEvent.idl> + + + + module com { module sun { module star { module frame { + +/** has to be provided if an object wants to receive events + when several things happen to components within frames of the desktop frame tree. + + <p> + E.g., you can receive events of instantiation/destruction and + activation/deactivation of components. + </p> + + @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 ); +}; + + +}; }; }; }; + +#endif + +/* 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 000000000..2059ea36c --- /dev/null +++ b/offapi/com/sun/star/frame/XFrameLoader.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 . + */ +#ifndef __com_sun_star_frame_XFrameLoader_idl__ +#define __com_sun_star_frame_XFrameLoader_idl__ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/frame/XFrame.idl> +#include <com/sun/star/beans/PropertyValue.idl> +#include <com/sun/star/frame/XLoadEventListener.idl> + + + + module com { module sun { module star { module frame { + +/** load components into a frame + + <p> + 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. + </p> + + @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. + + <p> + 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. + </p> + */ + void cancel(); +}; + + +}; }; }; }; + +#endif + +/* 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 000000000..a76794d49 --- /dev/null +++ b/offapi/com/sun/star/frame/XFrameLoaderQuery.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 . + */ +#ifndef __com_sun_star_frame_XFrameLoaderQuery_idl__ +#define __com_sun_star_frame_XFrameLoaderQuery_idl__ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/beans/XPropertySet.idl> +#include <com/sun/star/beans/PropertyValue.idl> + + + 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 + +#endif + +/* 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 000000000..132b5ce96 --- /dev/null +++ b/offapi/com/sun/star/frame/XFrameSetModel.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 . + */ +#ifndef __com_sun_star_frame_XFrameSetModel_idl__ +#define __com_sun_star_frame_XFrameSetModel_idl__ + +#include <com/sun/star/uno/XInterface.idl> + + + + 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 ); +}; + + +}; }; }; }; + +#endif + +/* 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 000000000..3325a10c1 --- /dev/null +++ b/offapi/com/sun/star/frame/XFrames.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 . + */ +#ifndef __com_sun_star_frame_XFrames_idl__ +#define __com_sun_star_frame_XFrames_idl__ + +#include <com/sun/star/container/XIndexAccess.idl> +#include <com/sun/star/frame/XFrame.idl> + + + + module com { module sun { module star { module frame { + +/** manages and creates frames. + + <p> + Frames may contain other frames (by implementing an XFrames + interface) and may be contained in other frames. + </p> + + @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 <var>SearchFlags</var> + */ + sequence< XFrame > queryFrames( [in] long nSearchFlags ); + + /** removes the frame from its container. + + <p> + Note: + <ul> + <li>The method XComponent::dispose() is not called implicitly + by this method.</li> + <li>The creator attribute of the frame must be reset by the caller of + this method.</li> + </ul> + </p> + + @param xFrame + frame which should be removed from this container + */ + void remove( [in] XFrame xFrame ); + +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XFramesSupplier.idl b/offapi/com/sun/star/frame/XFramesSupplier.idl new file mode 100644 index 000000000..75fe6ec93 --- /dev/null +++ b/offapi/com/sun/star/frame/XFramesSupplier.idl @@ -0,0 +1,92 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef __com_sun_star_frame_XFramesSupplier_idl__ +#define __com_sun_star_frame_XFramesSupplier_idl__ + +#include <com/sun/star/frame/XFrame.idl> + + + module com { module sun { module star { module frame { + + published interface XFrames; + +/** provides access to sub frames of current one + + @see XFrames + */ +published interface XFramesSupplier: XFrame +{ + /** provides access to this container and to all other XFramesSupplier + which are available from this node of frame tree + + @returns + the collection of frames which is represented by + a FramesContainer. + */ + XFrames getFrames(); + + /** gets the current active frame of this container + (not of any other available supplier) + + <p> + 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. + </p> + + @returns + the Frame which is active within this frame. + */ + XFrame getActiveFrame(); + + /** is called on activation of a direct sub-frame. + + <p> + 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 <var>Frame</var>. + </p> + + <p> + In general this method first calls the method XFramesSupplier::setActiveFrame() + at the creator frame with <var>this</var> as the current argument. Then it broadcasts + the FrameActionEvent FrameAction::FRAME_ACTIVATED. + </p> + + <p> + Note: Given parameter <var>Frame</var> must already exist inside the container + (e.g., inserted by using XFrames::append()) + </p> + + @param Frame + the new active child frame inside this container + */ + void setActiveFrame( [in] XFrame Frame ); +}; + + +}; }; }; }; + +#endif + +/* 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 000000000..cb42d0a87 --- /dev/null +++ b/offapi/com/sun/star/frame/XGlobalEventBroadcaster.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 . + */ +#ifndef __com_sun_star_frame_XGlobalEventBroadcaster_idl__ +#define __com_sun_star_frame_XGlobalEventBroadcaster_idl__ + +#include <com/sun/star/container/XSet.idl> +#include <com/sun/star/document/XDocumentEventBroadcaster.idl> +#include <com/sun/star/document/XDocumentEventListener.idl> +#include <com/sun/star/document/XEventsSupplier.idl> + +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; +}; + + +}; }; }; }; + +#endif + +/* 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 000000000..b04f50b9e --- /dev/null +++ b/offapi/com/sun/star/frame/XInfobarProvider.idl @@ -0,0 +1,146 @@ +/* -*- 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/. + */ + +#ifndef __com_sun_star_frame_XInfobarProvider_idl__ +#define __com_sun_star_frame_XInfobarProvider_idl__ + +#include <com/sun/star/beans/StringPair.idl> +#include <com/sun/star/frame/InfobarType.idl> +#include <com/sun/star/uno/XInterface.idl> + +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. + + <p> The example below adds a new infobar named MyInfoBar with type INFO and close (x) button.</p> + @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] sequence<com::sun::star::beans::StringPair> actionButtons, + [in] boolean showCloseButton) + raises(com::sun::star::lang::IllegalArgumentException); + + /** Updates an existing Infobar. + Use if you want to update only small parts of the Infobar. + + @see appendInfobar for parameter documentation. + + @throws com::sun::star::container::NoSuchElementException + If no such Infobar exists (it might have been closed by the user already) + @throws com::sun::star::lang::IllegalArgumentException + If infobarType contains an invalid value. + + <p>Update the infobar and change the type to WARNING</p> + @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) + + <p>Remove MyInfoBar infobar</p> + @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); +}; + + +}; }; }; }; + +#endif + +/* 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 000000000..318a1eb97 --- /dev/null +++ b/offapi/com/sun/star/frame/XInterceptorInfo.idl @@ -0,0 +1,61 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef __com_sun_star_frame_XInterceptorInfo_idl__ +#define __com_sun_star_frame_XInterceptorInfo_idl__ + +#include <com/sun/star/uno/XInterface.idl> + + + 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. + + <p> + 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. + </p> + + @see XDispatchProviderInterception + @see XDispatchProviderInterceptor + */ +published interface XInterceptorInfo: com::sun::star::uno::XInterface +{ + /** returns the URL list for interception. + + <p> + Wildcards inside the URLs are allowed to register the interceptor for + URLs too, which can have optional arguments (e.g. "..#.." or "..?.."). + </p> + + @return + a list of URLs which are handled by this interceptor + */ + sequence< string > getInterceptedURLs(); +}; + + +}; }; }; }; + +#endif + +/* 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 000000000..52c00df5f --- /dev/null +++ b/offapi/com/sun/star/frame/XLayoutManager.idl @@ -0,0 +1,479 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this 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_frame_XLayoutManager_idl__ +#define __com_sun_star_frame_XLayoutManager_idl__ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/frame/XFrame.idl> +#include <com/sun/star/awt/Point.idl> +#include <com/sun/star/awt/Size.idl> +#include <com/sun/star/awt/XWindow.idl> +#include <com/sun/star/ui/XUIElement.idl> +#include <com/sun/star/ui/DockingArea.idl> +#include <com/sun/star/ui/XDockingAreaAcceptor.idl> + + +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. + + <p> + 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: + <ul> + <li><b>menubar</b> A configurable user interface element representing + a menu bar.</li> + <li><b>popupmenu</b> A configurable user interface element representing + a pop-up menu.</li> + <li><b>toolbar</b> A configurable user interface element a tool + bar.</li> + <li><b>statusbar</b> A configurable user interface element representing + a status bar.</li> + <li><b>floater</b> A basic user interface element representing a + floating window.</li> + </ul> + + @see com::sun::star::ui::UIElementTypes + @see com::sun::star::frame::XFrame + </p> + + @since OOo 2.0 +*/ + +interface XLayoutManager : com::sun::star::uno::XInterface +{ + /** attaches a com::sun::star::frame::XFrame to a layout manager. + + @param Frame + specifies the frame that should be attached to the layout manager + + <p> + 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. + </p> + */ + void attachFrame( [in] com::sun::star::frame::XFrame Frame ); + + /** resets the layout manager and remove all of its internal user interface + elements. + + <p> + 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. + </p> + */ + 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: + <ul> + <li>X = docking area on left side (in pixel)</li> + <li>Y = docking area on top side (in pixel)</li> + <li>Width = docking area on right side (in pixel)</li> + <li>Height = docking area on bottom side (in pixel)</li> + </ul> + */ + com::sun::star::awt::Rectangle getCurrentDockingArea(); + + /** retrieves the current docking area acceptor that controls the border space of the frame's + container window. + + @return + current docking area acceptor which controls the border space of frame's container window. + + <p> + 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! + </p> + */ + 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. + + <p> + 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.<br/> + 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! + </p> + */ + void setDockingAreaAcceptor( [in] com::sun::star::ui::XDockingAreaAcceptor xDockingAreaAcceptor ); + + /** creates a new user interface element. + + @param ResourceURL + specifies which user interface element should be created. A resource URL must meet the following + syntax: "private:resource/$type/$name". It is only allowed to use ASCII characters for type and + name. + */ + void createElement( [in] string ResourceURL ); + + /** destroys a user interface element. + + @param ResourceURL + specifies which user interface element should be destroyed. A resource URL must meet + the following syntax: "private:resource/$type/$name". It is only allowed to use ASCII + characters for type and name. + */ + void destroyElement( [in] string ResourceURL ); + + /** request to make a user interface element visible if it is not in hidden state. + + @param ResourceURL + specifies which user interface element should be made visible. 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 could be made visible, otherwise + `FALSE` will be returned. + + <p> + 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. + </p> + */ + 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. + + <p> + 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! + </p> + */ + 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. + + <p> + 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! + </p> + */ + 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. + + <p> + 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(). + </p> + */ + 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. + + <p> + 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(). + </p> + */ + 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. + + <p> + 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(). + </p> + */ + 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. + + <p> + 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. + </p> + */ + void lock(); + + /** permit layout updates again. + + <p> + This function should be called to permit layout updates. The layout manager starts to calculate the new layout after + this call. + </p> + */ + 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. + + <p> + 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. + </p> + + @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. + + <p> + 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. + </p> + + */ + boolean isVisible(); + +}; + +}; }; }; }; + +#endif + +/* 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 000000000..2e926aeab --- /dev/null +++ b/offapi/com/sun/star/frame/XLayoutManager2.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 . + */ + +#ifndef __com_sun_star_frame_XLayoutManager2_idl__ +#define __com_sun_star_frame_XLayoutManager2_idl__ + +#include <com/sun/star/frame/XLayoutManager.idl> +#include <com/sun/star/frame/XFrameActionListener.idl> +#include <com/sun/star/ui/XUIConfigurationListener.idl> +#include <com/sun/star/beans/XPropertySet.idl> +#include <com/sun/star/frame/XMenuBarMergingAcceptor.idl> +#include <com/sun/star/frame/XLayoutManagerEventBroadcaster.idl> + + + 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. + + <p> + E.g., you can receive events of instantiation/destruction and + activation/deactivation of a frame. + </p> + + @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. + + <p> + E.g., you can receive events of insertion/replacing and + removing of settings data of user interface elements. + </p> + + @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; + +}; + +}; }; }; }; + +#endif + +/* 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 000000000..09336dc02 --- /dev/null +++ b/offapi/com/sun/star/frame/XLayoutManagerEventBroadcaster.idl @@ -0,0 +1,58 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef __com_sun_star_frame_XLayoutManagerEventBroadcaster_idl__ +#define __com_sun_star_frame_XLayoutManagerEventBroadcaster_idl__ + +#include <com/sun/star/frame/XLayoutManagerListener.idl> + + + 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 ); +}; + +}; }; }; }; + +#endif + +/* 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 000000000..e0ed70f90 --- /dev/null +++ b/offapi/com/sun/star/frame/XLayoutManagerListener.idl @@ -0,0 +1,61 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef __com_sun_star_frame_XLayoutManagerListener_idl__ +#define __com_sun_star_frame_XLayoutManagerListener_idl__ + +#include <com/sun/star/lang/XEventListener.idl> + + +module com { module sun { module star { module frame { + +/** makes it possible to receive events from a layout manager. + + <p>Events are provided <strong>only</strong> 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.</p> + + @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 ); +}; + +}; }; }; }; + +#endif + +/* 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 000000000..90992d953 --- /dev/null +++ b/offapi/com/sun/star/frame/XLoadEventListener.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 . + */ +#ifndef __com_sun_star_frame_XLoadEventListener_idl__ +#define __com_sun_star_frame_XLoadEventListener_idl__ + +#include <com/sun/star/lang/XEventListener.idl> + + + 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 ); +}; + + +}; }; }; }; + +#endif + +/* 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 000000000..a6b23b522 --- /dev/null +++ b/offapi/com/sun/star/frame/XLoadable.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 . + */ +#ifndef __com_sun_star_frame_XLoadable_idl__ +#define __com_sun_star_frame_XLoadable_idl__ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/io/IOException.idl> +#include <com/sun/star/frame/DoubleInitializationException.idl> +#include <com/sun/star/beans/PropertyValue.idl> + + + + module com { module sun { module star { module frame { + +/** offers a simple way to initialize a component or load it from a URL. + <p>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. + </p> + + @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<com::sun::star::beans::PropertyValue> lArguments ) + raises( DoubleInitializationException, com::sun::star::io::IOException, com::sun::star::uno::Exception ); + +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XLoaderFactory.idl b/offapi/com/sun/star/frame/XLoaderFactory.idl new file mode 100644 index 000000000..f6b8dd7a2 --- /dev/null +++ b/offapi/com/sun/star/frame/XLoaderFactory.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 . + */ +#ifndef __com_sun_star_frame_XLoaderFactory_idl__ +#define __com_sun_star_frame_XLoaderFactory_idl__ + +#include <com/sun/star/container/XContainerQuery.idl> +#include <com/sun/star/container/XNameAccess.idl> +#include <com/sun/star/lang/XMultiServiceFactory.idl> + + + + module com { module sun { module star { module frame { + +/** + Unified service interface for FrameLoaderFactory and ContentHandlerFactory. + + @since LibreOffice 4.2 + */ +published interface XLoaderFactory +{ + /** interface to create loader objects by using his internal name + + <p> + 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. + </p> + */ + interface com::sun::star::lang::XMultiServiceFactory; + + /** provides access to the whole frame loader configuration + + <p>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. + </p> + <table border=1> + <tr> + <td><b>Types</b></td> + <td>[string]</td> + <td>file types which loader is registered for</td> + </tr> + <tr> + <td><b>UIName</b></td> + <td>[string]</td> + <td>UI representable and localized name</td> + </tr> + </table> + */ + interface com::sun::star::container::XNameAccess; + + /** supports query mode for configuration access + + <p> + This interface can be used to get sub sets of current configuration entries + which represent given search parameters. + </p> + */ + interface com::sun::star::container::XContainerQuery; + +}; + + +}; }; }; }; + +#endif + +/* 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 000000000..c96402376 --- /dev/null +++ b/offapi/com/sun/star/frame/XMenuBarAcceptor.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 . + */ + +#ifndef __com_sun_star_frame_XMenuBarAcceptor_idl__ +#define __com_sun_star_frame_XMenuBarAcceptor_idl__ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/awt/XMenuBar.idl> + + +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 ); + +}; + +}; }; }; }; + +#endif + +/* 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 000000000..7079ba58f --- /dev/null +++ b/offapi/com/sun/star/frame/XMenuBarMergingAcceptor.idl @@ -0,0 +1,69 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_frame_XMenuBarMergingAcceptor_idl__ +#define __com_sun_star_frame_XMenuBarMergingAcceptor_idl__ + +#include <com/sun/star/container/XIndexAccess.idl> +#include <com/sun/star/frame/XDispatchProvider.idl> + + +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. + + <p> + 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. + </p> + + @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(); +}; + +}; }; }; }; + +#endif + +/* 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 000000000..17bd7337f --- /dev/null +++ b/offapi/com/sun/star/frame/XModel.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 . + */ +#ifndef __com_sun_star_frame_XModel_idl__ +#define __com_sun_star_frame_XModel_idl__ + +#include <com/sun/star/lang/XComponent.idl> +#include <com/sun/star/beans/PropertyValue.idl> +#include <com/sun/star/frame/XController.idl> +#include <com/sun/star/container/NoSuchElementException.idl> +#include <com/sun/star/uno/XInterface.idl> + + + + module com { module sun { module star { module frame { + +/** represents a component which is created from a URL and arguments. + + <p> + 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) + </p> + + <p> + Models can be controlled by controller components, which are usually + views of the model. + (see Controller for further details) + </p> + + <p> + 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. + </p> + + @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 + <br> + `FALSE` otherwise + */ + boolean attachResource( + [in] string URL, + [in] sequence<com::sun::star::beans::PropertyValue> Arguments); + + /** provides information about the location of this model + + @returns + the URL of the resource which is represented by this model. + + @see XStorable::getLocation() + */ + string getURL(); + + /** provides read access on currently representation of the + com::sun::star::document::MediaDescriptor + of this model which describes the model and its state + + @returns + the arguments with which the model was originally created or + stored the last time. + */ + sequence< com::sun::star::beans::PropertyValue > getArgs(); + + /** is called whenever a new controller is created for this model. + + <p> + The com::sun::star::lang::XComponent interface + of the controller must be used to recognize when it is deleted. + </p> + + @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. + + <p> + The com::sun::star::lang::XComponent interface + of the controller must be used to recognize when it is deleted. + </p> + + @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. + + <p> + 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. + </p> + */ + void lockControllers(); + + /** resumes the notifications which were suspended by + XModel::lockControllers(). + + <p> + 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. + </p> + */ + void unlockControllers(); + + /** determines if there is at least one lock remaining. + + <p> + While there is at least one lock remaining, some notifications + for display updates are not broadcasted to the controllers. + </p> + + @return + `TRUE` if any lock exist + <br> + `FALSE` otherwise + */ + boolean hasControllersLocked(); + + /** provides access to the controller which currently controls this model + + @returns + If the controller which is active is a controller of this model, + it will be returned. If not, the controller which was the last + active of this model is returned. If no controller of this model + ever was active, the controller first registered is returned. If no + controller is registered for this model, `NULL` is returned. + */ + XController getCurrentController(); + + /** sets a registered controller as the current controller. + + @param Controller + reference to an already existing connected controller, which should be + the new active one + + @throws com::sun::star::container::NoSuchElementException + if <var>xController</var> isn't an already connected controller on this model + */ + void setCurrentController( [in] XController Controller ) + raises( com::sun::star::container::NoSuchElementException ); + + /** provides read access on current selection on controller + + @returns + the current selection in the current controller. + If there is no current controller, it returns `NULL`. + */ + com::sun::star::uno::XInterface getCurrentSelection(); +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XModel2.idl b/offapi/com/sun/star/frame/XModel2.idl new file mode 100644 index 000000000..615fc8244 --- /dev/null +++ b/offapi/com/sun/star/frame/XModel2.idl @@ -0,0 +1,166 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this 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_frame_XModel2_idl__ +#define __com_sun_star_frame_XModel2_idl__ + +#include <com/sun/star/frame/XController2.idl> +#include <com/sun/star/frame/XModel.idl> +#include <com/sun/star/container/XEnumeration.idl> +#include <com/sun/star/awt/XWindow.idl> +#include <com/sun/star/lang/IllegalArgumentException.idl> +#include <com/sun/star/util/InvalidStateException.idl> + + + module com { module sun { module star { module frame { + +/** extends interface XModel. + + The following functions are added: + + - enumeration of all currently connected controller objects. + (not getCurrentController() only, which depends on focus) + + - establish new view controller factory methods, which will make + it possible to create new views for this model. + */ +interface XModel2 : com::sun::star::frame::XModel +{ + /** provides list of all currently connected controller objects. + + <p> + 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). + </P> + + @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. + + <p>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: + <ul> + <li><b>Default</b> specifies the default view of the document.</li> + <li><b>Preview</b> specifies a preview of the document. A minimal implementation of such a view + is a <em>Default</em> view which is read-only.</li> + <li><b>PrintPreview</b> specifies a print preview of the document.</li> + </ul> + </p> + + <p>Implementations of this interface might decide to support additional + view names, which then are documented in the respective service descriptions.</p> + + @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. + + <p>Effectively, this method is equivalent to calling createView() with + the <code>ViewName</code> being <code>"Default"</code>.</p> + + @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 createDefaultViewController( [in] com::sun::star::frame::XFrame Frame ) + raises (com::sun::star::lang::IllegalArgumentException, + com::sun::star::uno::Exception ); + + /** creates a new view instance classified by the specified name and arguments. + + <p>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.</p> + + @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: + <ul> + <li>com::sun::star::document::MediaDescriptor::SuggestedSaveAsDir</li> + <li>com::sun::star::document::MediaDescriptor::SuggestedSaveAsName</li> + <li>com::sun::star::document::MediaDescriptor::LockContentExtraction</li> + <li>com::sun::star::document::MediaDescriptor::LockExport</li> + <li>com::sun::star::document::MediaDescriptor::LockPrint</li> + <li>com::sun::star::document::MediaDescriptor::LockSave</li> + <li>com::sun::star::document::MediaDescriptor::LockEditDoc</li> + <li>com::sun::star::document::MediaDescriptor::EncryptionData (since LibreOffice 7.0)</li> + </ul> + + @throws com::sun::star::lang::IllegalArgumentException When trying to set an unsupported property + @throws com::sun::star::util::InvalidStateException When the document model can not be retrieved + */ + void setArgs([in] sequence< com::sun::star::beans::PropertyValue > Arguments) + raises(com::sun::star::lang::IllegalArgumentException, + com::sun::star::util::InvalidStateException); +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XModel3.idl b/offapi/com/sun/star/frame/XModel3.idl new file mode 100644 index 000000000..96c527d26 --- /dev/null +++ b/offapi/com/sun/star/frame/XModel3.idl @@ -0,0 +1,51 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef __com_sun_star_frame_XModel3_idl__ +#define __com_sun_star_frame_XModel3_idl__ + +#include <com/sun/star/frame/XModel2.idl> + + + module com { module sun { module star { module frame { + +/** extends interface XModel2 with optimised read access getArgs(). + + */ +interface XModel3 : com::sun::star::frame::XModel2 +{ + /** Provides optimised read access + (so we don't need to fetch expensive properties that we are not interested in) + on currently representation of the + com::sun::star::document::MediaDescriptor + of this model which describes the model and its state. + Returns only the selected args. + + @param requestedArgs + @returns the requested and possibly some more arguments with which the model was originally created or + stored the last time. + */ + sequence< com::sun::star::beans::PropertyValue > getArgs2([in] sequence< string > requestedArgs); +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XModule.idl b/offapi/com/sun/star/frame/XModule.idl new file mode 100644 index 000000000..978332fb0 --- /dev/null +++ b/offapi/com/sun/star/frame/XModule.idl @@ -0,0 +1,61 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_frame_XModule_idl__ +#define __com_sun_star_frame_XModule_idl__ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/lang/IllegalArgumentException.idl> +#include <com/sun/star/frame/UnknownModuleException.idl> + + +module com { module sun { module star { module frame { + +/** can be used to overrule identification of office modules. + + <p> + 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. + </p> + + @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(); +}; + +}; }; }; }; + +#endif + +/* 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 000000000..a5f782233 --- /dev/null +++ b/offapi/com/sun/star/frame/XModuleManager.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 . + */ + +#ifndef __com_sun_star_frame_XModuleManager_idl__ +#define __com_sun_star_frame_XModuleManager_idl__ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/lang/IllegalArgumentException.idl> +#include <com/sun/star/frame/UnknownModuleException.idl> + + +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 its exists it will be preferred. + + @param Module + Possible objects for this parameter can be the following one: + <ul> + <li> + <b>com::sun::star::frame::XFrame</b><br> + A frame contains (against a component window) a controller. + Such controller represent the module (in case no model exists). + </li> + <li> + <b>com::sun::star::frame::XController</b><br> + A controller can be bound to a model. Then the model represent the module. + If no model exists - the controller is used for identification. + </li> + <li> + <b>com::sun::star::frame::XModel</b><br> + A model represent a module every time and can be used for + identification directly. + </li> + </ul> + + @throws com::sun::star::lang::IllegalArgumentException + if the parameter Module is: + <ul> + <li>an empty one</li> + <li>or does not provide one of the needed interface + XFrame, XController, XModel</li> + <li>or does not provide the needed interface XServiceInfo.</li> + </ul> + + @throws UnknownModuleException + if the given module could not be identified. + Note: If the module represent a XFrame instance with does not contain + a document, this exception is thrown too! + + @return An identifier for the given module. + Note: This value varies every time. Error will be transported + by thrown exceptions! + */ + string identify( [in] ::com::sun::star::uno::XInterface Module ) + raises(::com::sun::star::lang::IllegalArgumentException, + UnknownModuleException ); + + +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XModuleManager2.idl b/offapi/com/sun/star/frame/XModuleManager2.idl new file mode 100644 index 000000000..91e6ed6b4 --- /dev/null +++ b/offapi/com/sun/star/frame/XModuleManager2.idl @@ -0,0 +1,59 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef __com_sun_star_frame_XModuleManager2_idl__ +#define __com_sun_star_frame_XModuleManager2_idl__ + +#include <com/sun/star/frame/XModuleManager.idl> +#include <com/sun/star/container/XNameReplace.idl> + + +module com { module sun { module star { module frame { + +/** + This interface provides a merged single interface for the ModuleManager + service to implement. + + @since LibreOffice 4.0 +*/ +interface XModuleManager2 +{ + /** provides functions to identify office modules. + */ + interface XModuleManager; + + /** provides read access to the configuration of office modules. + + <p> + 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. + </p> + */ + interface ::com::sun::star::container::XNameReplace; +}; + + +}; }; }; }; + +#endif + +/* 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 000000000..416317022 --- /dev/null +++ b/offapi/com/sun/star/frame/XNotifyingDispatch.idl @@ -0,0 +1,58 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef __com_sun_star_frame_XNotifyingDispatch_idl__ +#define __com_sun_star_frame_XNotifyingDispatch_idl__ + +#include <com/sun/star/frame/XDispatch.idl> +#include <com/sun/star/frame/XDispatchResultListener.idl> + +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<com::sun::star::beans::PropertyValue> Arguments, + [in] XDispatchResultListener Listener); +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XPopupMenuController.idl b/offapi/com/sun/star/frame/XPopupMenuController.idl new file mode 100644 index 000000000..89c354a8c --- /dev/null +++ b/offapi/com/sun/star/frame/XPopupMenuController.idl @@ -0,0 +1,70 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_frame_XPopupMenuController_idl__ +#define __com_sun_star_frame_XPopupMenuController_idl__ + +#include <com/sun/star/awt/XPopupMenu.idl> + + +module com { module sun { module star { module frame { + + +/** provides data to a pop-up menu controller implementation to + fill and update a pop-up menu dynamically. + + <p> + 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. + </p> + + @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. + + <p>A controller should <b>never</b> 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. + </p> + */ + void updatePopupMenu(); +}; + +}; }; }; }; + + +#endif + +/* 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 000000000..211dacf63 --- /dev/null +++ b/offapi/com/sun/star/frame/XRecordableDispatch.idl @@ -0,0 +1,96 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef __com_sun_star_frame_XRecordableDispatch_idl__ +#define __com_sun_star_frame_XRecordableDispatch_idl__ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/frame/XDispatchRecorder.idl> +#include <com/sun/star/util/URL.idl> + + + module com { module sun { module star { module frame { + +/** extends an existing XDispatch implementation with functionality + for dispatch recording + + <p> + 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. + </p> + + <p> + 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. + </p> + + @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] sequence<com::sun::star::beans::PropertyValue> Arguments, + [in] XDispatchRecorder Recorder); +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XSessionManagerClient.idl b/offapi/com/sun/star/frame/XSessionManagerClient.idl new file mode 100644 index 000000000..247733f7d --- /dev/null +++ b/offapi/com/sun/star/frame/XSessionManagerClient.idl @@ -0,0 +1,96 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef __com_sun_star_frame_XSessionManagerClient_idl__ +#define __com_sun_star_frame_XSessionManagerClient_idl__ + +#include <com/sun/star/frame/XSessionManagerListener.idl> + + +module com { module sun { module star { module frame { + +/** Connect to a session manager to get information about pending + desktop shutdown + + */ + interface XSessionManagerClient : com::sun::star::uno::XInterface + { + + /** addSessionManagerListener registers a listener for session management events + + @param xListener + listener for session management events + + @see XSessionManagerListener + @see XSessionManagerClient::removeSessionManagerListener() + */ + void addSessionManagerListener( [in] XSessionManagerListener xListener ); + + /** removeSessionManagerListener deregisters a listener for session events + + @param xListener + listener to be removed + + @see XSessionManagerListener + @see XSessionManagerClient::addSessionManagerListener() + */ + void removeSessionManagerListener( [in] XSessionManagerListener xListener ); + + /** queryInteraction issues a request for a user interaction slot + from the session manager + + @param xListener + the listener requesting user interaction + + @see XSessionManagerListener + */ + void queryInteraction( [in] XSessionManagerListener xListener ); + + /** interactionDone is called when a listener has finished user interaction + + @param xListener + the listener done with user interaction + + @see XSessionManagerListener + */ + void interactionDone( [in] XSessionManagerListener xListener ); + + /** saveDone signals that a listener has processed a save request + + @param xListener + the listener having finished save request processing + + @see XSessionManagerListener + */ + void saveDone( [in] XSessionManagerListener xListener ); + + /** Call cancelShutdown to try to cancel a desktop shutdown in progress + + @returns + `TRUE` if shutdown was canceled, + `FALSE` else. + */ + boolean cancelShutdown(); + }; + +}; }; }; }; + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XSessionManagerListener.idl b/offapi/com/sun/star/frame/XSessionManagerListener.idl new file mode 100644 index 000000000..d82e7b091 --- /dev/null +++ b/offapi/com/sun/star/frame/XSessionManagerListener.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 . + */ +#ifndef __com_sun_star_frame_XSessionManagerListener_idl__ +#define __com_sun_star_frame_XSessionManagerListener_idl__ + +#include <com/sun/star/lang/XEventListener.idl> + +module com { module sun { module star { module frame { + + interface XSessionManagerListener : com::sun::star::lang::XEventListener + { + + /** doSave gets called when a save event was issued by the session manager + the listener should do what is necessary to restore + the current state of the application + + <p>If the listener desires to interact with the user + it must first issue a user interaction request and + only do so if interaction was granted</p> + + <p>When the save request is processed (with or without + user interaction) the listener must call + XSessionManagerClient::saveDone() + on the session manager client service object.</p> + + @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 + + <p>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.</p> + + @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(); + }; + +}; }; }; }; + + +#endif + +/* 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 000000000..e1245511b --- /dev/null +++ b/offapi/com/sun/star/frame/XSessionManagerListener2.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 . + */ +#ifndef __com_sun_star_frame_XSessionManagerListener2_idl__ +#define __com_sun_star_frame_XSessionManagerListener2_idl__ + +#include <com/sun/star/lang/XEventListener.idl> +#include <com/sun/star/frame/XSessionManagerListener.idl> + +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(); + }; + +}; }; }; }; + + +#endif + +/* 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 000000000..ee53f9d78 --- /dev/null +++ b/offapi/com/sun/star/frame/XStatusListener.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 . + */ +#ifndef __com_sun_star_frame_XStatusListener_idl__ +#define __com_sun_star_frame_XStatusListener_idl__ + +#include <com/sun/star/lang/XEventListener.idl> +#include <com/sun/star/frame/FeatureStateEvent.idl> + + + + module com { module sun { module star { module frame { + +/** makes it possible to receive events when the state of a feature changes. + + <p> + Nobody guarantee any notification. Use combination of XNotifyingDispatch + and XDispatchResultListener for that. + </p> + + @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 ); +}; + + +}; }; }; }; + +#endif + +/* 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 000000000..633e694d8 --- /dev/null +++ b/offapi/com/sun/star/frame/XStatusbarController.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 . + */ +#ifndef __com_sun_star_frame_XStatusbarController_idl__ +#define __com_sun_star_frame_XStatusbarController_idl__ + +#include <com/sun/star/awt/MouseEvent.idl> +#include <com/sun/star/awt/Point.idl> +#include <com/sun/star/awt/Rectangle.idl> +#include <com/sun/star/awt/XGraphics.idl> +#include <com/sun/star/frame/XStatusListener.idl> +#include <com/sun/star/lang/XComponent.idl> +#include <com/sun/star/lang/XInitialization.idl> +#include <com/sun/star/util/XUpdatable.idl> + +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. + + <p> + 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.<br/> + 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. + <p> + + @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. + + <p>A status bar controller is initialized with <b>five</b> additional + arguments provided as a sequence of + com::sun::star::beans::PropertyValue:</p> + + <ul> + <li><b>Frame</b><br/>a com::sun::star::frame::XFrame + instance to which the status bar controller belongs. + </li> + <li><b>CommandURL</b><br/>a string which specifies the command + associated with the statusbar controller.<br> + The command is used to identify the status bar controller + implementation. + </li> + <li><b>StatusbarItem</b><br/>a com::sun::star::ui::XStatusbarItem + instance which represents the status bar item associated with + this controller. + </li> + <li><b>ParentWindow</b><br/>a com::sun::star::awt::Window + instance which represents the parent window (status bar window). + </li> + <li><b>ModuleName</b><br/>a string which specifies the name of the + office module attached to the frame to which this controller + belongs; the value is taken from + com::sun::star::frame::XModuleManager::identify(). + </li> + </ul> + */ + interface com::sun::star::lang::XInitialization; + + /** with this interface a component can receive events if a feature has + changed. + + <p>The status bar controller implementation should register itself as a + listener when its com::sun::star::util::XUpdatable + interface has been called.</p> + */ + interface com::sun::star::frame::XStatusListener; + + /** used to notify an implementation that it needs to add its listener or + remove and add them again. + + <p> + 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. + </p> + */ + 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. + <br/>See com::sun::star::awt::Command for + possible values. + + @param bMouseEvent + `TRUE` if the command is based on a mouse event, otherwise `FALSE`. + + @param aData + for future use only. + */ + void command( [in] ::com::sun::star::awt::Point aPos, + [in] long nCommand, + [in] boolean bMouseEvent, + [in] any aData ); + + /** is called by a status bar if the controller has to update the visual + representation. + + @param xGraphics + a reference to a com::sun::star::awt::XGraphics + which has to be used to update the visual representation. + + @param OutputRectangle + a com::sun::star::awt::Rectangle which + determine the output rectangle for all drawing operations + + @param nStyle + reserved for future use. + */ + void paint( [in] ::com::sun::star::awt::XGraphics xGraphics, + [in] ::com::sun::star::awt::Rectangle OutputRectangle, + [in] long nStyle ); + + /** is called by a status bar if the user clicked with mouse into the + field of the corresponding control. + + @param aPos + the current mouse position in pixel. + */ + void click( [in] ::com::sun::star::awt::Point aPos ); + + /** is called by a status bar if the user double-clicked with mouse + into the field of the corresponding control. + + @param aPos + the current mouse position in pixel. + */ + void doubleClick( [in] ::com::sun::star::awt::Point aPos ); +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XStorable.idl b/offapi/com/sun/star/frame/XStorable.idl new file mode 100644 index 000000000..60e8239e0 --- /dev/null +++ b/offapi/com/sun/star/frame/XStorable.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 . + */ +#ifndef __com_sun_star_frame_XStorable_idl__ +#define __com_sun_star_frame_XStorable_idl__ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/io/IOException.idl> +#include <com/sun/star/beans/PropertyValue.idl> + + + + module com { module sun { module star { module frame { + +/** offers a simple way to store a component to a URL. + + <p> + It is usually only useful for two cases: + </p> + <ol> + <li> + Large components which are wrapped up in UNO interfaces + and for which distinct filters are not available separately as + components. + </li> + <li> + Very small components for which only one or very few hard + coded file format filters make sense or even exist. + </li> + </ol> + */ +published interface XStorable: com::sun::star::uno::XInterface +{ + /** The object may know the location because it was loaded from there, + or because it is stored there. + + @returns + `TRUE` if the object knows a location where it is persistent + `FALSE` otherwise + */ + boolean hasLocation(); + + /** After XStorable::storeAsURL() it returns the + URL the object was stored to. + + @returns + the URL of the resource which is represented by this object. + */ + string getLocation(); + + /** It is not possible to call XStorable::store() successfully + when the data store is read-only. + + @returns + `TRUE` if the data store is readonly or opened readonly + `FALSE` otherwise + */ + boolean isReadonly(); + + /** stores the data to the URL from which it was loaded. + + <p>Only objects which know their locations can be stored.</p> + + @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. + + <p>This is the normal behavior for UI's "save-as" feature.</p> + + <p>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.</p> + + @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] sequence<com::sun::star::beans::PropertyValue> lArguments ) + raises( com::sun::star::io::IOException ); + + /** stores the object's persistent data to a URL and + continues to be a representation of the old URL. + + <p>This is the normal behavior for UI's export feature.</p> + + <p>This method accepts all kinds of export filters, not only combined + import/export filters because it implements an exporting capability, not a + persistence capability.</p> + + @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<com::sun::star::beans::PropertyValue> lArguments ) + raises( com::sun::star::io::IOException ); +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XStorable2.idl b/offapi/com/sun/star/frame/XStorable2.idl new file mode 100644 index 000000000..50d83f2b7 --- /dev/null +++ b/offapi/com/sun/star/frame/XStorable2.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 . + */ +#ifndef __com_sun_star_frame_XStorable2_idl__ +#define __com_sun_star_frame_XStorable2_idl__ + +#include <com/sun/star/frame/XStorable.idl> +#include <com/sun/star/lang/IllegalArgumentException.idl> +#include <com/sun/star/io/IOException.idl> +#include <com/sun/star/beans/PropertyValue.idl> + + + + module com { module sun { module star { module frame { + +/** extends XStorable. + */ +published interface XStorable2: XStorable +{ + /** stores the data to the URL from which it was loaded. + + <p> + Only objects which know their locations can be stored. + </p> + + <p> + This is an extension of the XStorable::store(). + This method allows to specify some additional parameters for + storing process. + </p> + + @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<com::sun::star::beans::PropertyValue> lArguments ) + raises( com::sun::star::lang::IllegalArgumentException, + com::sun::star::io::IOException ); + +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XSubToolbarController.idl b/offapi/com/sun/star/frame/XSubToolbarController.idl new file mode 100644 index 000000000..624218e82 --- /dev/null +++ b/offapi/com/sun/star/frame/XSubToolbarController.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 . + */ +#ifndef __com_sun_star_frame_XSubToolbarController_idl__ +#define __com_sun_star_frame_XSubToolbarController_idl__ + +#include <com/sun/star/uno/XInterface.idl> + + + module com { module sun { module star { module frame { + +/** special interface to support sub-toolbars in a controller implementation. + + <p> + 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. + </p> + + @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`. + + <p> + Enables implementations to dynamically decide to support sub-toolbars + or not. + </p> + */ + 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. + + <p> + 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. + </p> + */ + void updateImage(); +}; + +}; }; }; }; + +#endif + +/* 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 000000000..48b207bf7 --- /dev/null +++ b/offapi/com/sun/star/frame/XSynchronousDispatch.idl @@ -0,0 +1,59 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef __com_sun_star_frame_XSynchronousDispatch_idl__ +#define __com_sun_star_frame_XSynchronousDispatch_idl__ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/util/URL.idl> +#include <com/sun/star/beans/PropertyValue.idl> + + +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 + + <p> + 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. + </p> + + @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<com::sun::star::beans::PropertyValue> Arguments); +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XSynchronousFrameLoader.idl b/offapi/com/sun/star/frame/XSynchronousFrameLoader.idl new file mode 100644 index 000000000..f4673de36 --- /dev/null +++ b/offapi/com/sun/star/frame/XSynchronousFrameLoader.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 . + */ +#ifndef __com_sun_star_frame_XSynchronousFrameLoader_idl__ +#define __com_sun_star_frame_XSynchronousFrameLoader_idl__ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/frame/XFrame.idl> +#include <com/sun/star/beans/PropertyValue.idl> + + + module com { module sun { module star { module frame { + +/** loads a resource into a Frame. + + <p> + Unlike the XFrameLoader interface, this loading will be synchronous. + </p> + + @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 + <br> + `FALSE` otherwise + */ + boolean load( + [in] sequence< com::sun::star::beans::PropertyValue > Descriptor, + [in] XFrame Frame ); + + /** cancels the loading process. + + <p> + 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 ... + </p> + */ + void cancel(); +}; + + +}; }; }; }; + +#endif + +/* 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 000000000..a5a3b8373 --- /dev/null +++ b/offapi/com/sun/star/frame/XTask.idl @@ -0,0 +1,58 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef __com_sun_star_frame_XTask_idl__ +#define __com_sun_star_frame_XTask_idl__ + +#include <com/sun/star/frame/XFrame.idl> + + + + 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(); +}; + + +}; }; }; }; + +#endif + +/* 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 000000000..7e4e95a95 --- /dev/null +++ b/offapi/com/sun/star/frame/XTasksSupplier.idl @@ -0,0 +1,51 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef __com_sun_star_frame_XTasksSupplier_idl__ +#define __com_sun_star_frame_XTasksSupplier_idl__ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/container/XEnumerationAccess.idl> +#include <com/sun/star/frame/XTask.idl> + + + + 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(); +}; + + +}; }; }; }; + +#endif + +/* 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 000000000..c0249e9bf --- /dev/null +++ b/offapi/com/sun/star/frame/XTerminateListener.idl @@ -0,0 +1,70 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef __com_sun_star_frame_XTerminateListener_idl__ +#define __com_sun_star_frame_XTerminateListener_idl__ + +#include <com/sun/star/lang/XEventListener.idl> +#include <com/sun/star/lang/EventObject.idl> +#include <com/sun/star/frame/TerminationVetoException.idl> + + + + 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. + + <p> + 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. + </p> + + @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 ); +}; + + +}; }; }; }; + +#endif + +/* 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 000000000..537e3fa82 --- /dev/null +++ b/offapi/com/sun/star/frame/XTerminateListener2.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 . + */ +#ifndef __com_sun_star_frame_XTerminateListener2_idl__ +#define __com_sun_star_frame_XTerminateListener2_idl__ + +#include <com/sun/star/frame/XTerminateListener.idl> + + + 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. + + <p> + 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. + </p> + + @param Event + describe the source of the event (e.g., the desktop) + */ + void cancelTermination( [in] com::sun::star::lang::EventObject Event ); +}; + + +}; }; }; }; + +#endif + +/* 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 000000000..54116b6ae --- /dev/null +++ b/offapi/com/sun/star/frame/XTitle.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 . + */ +#ifndef __com_sun_star_frame_XTitle_idl__ +#define __com_sun_star_frame_XTitle_idl__ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/lang/IllegalArgumentException.idl> + + + 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 ); +}; + + +}; }; }; }; + +#endif + +/* 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 000000000..bd53e1aa4 --- /dev/null +++ b/offapi/com/sun/star/frame/XTitleChangeBroadcaster.idl @@ -0,0 +1,46 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef __com_sun_star_frame_XTitleChangeBroadcaster_idl__ +#define __com_sun_star_frame_XTitleChangeBroadcaster_idl__ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/frame/XTitleChangeListener.idl> + + + 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 ); +}; + + +}; }; }; }; + +#endif + +/* 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 000000000..4c8a27d2b --- /dev/null +++ b/offapi/com/sun/star/frame/XTitleChangeListener.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 . + */ +#ifndef __com_sun_star_frame_XTitleChangeListener_idl__ +#define __com_sun_star_frame_XTitleChangeListener_idl__ + +#include <com/sun/star/lang/XEventListener.idl> +#include <com/sun/star/frame/TitleChangedEvent.idl> + + + 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 ); +}; + + +}; }; }; }; + +#endif + +/* 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 000000000..c8f7578ab --- /dev/null +++ b/offapi/com/sun/star/frame/XToolbarController.idl @@ -0,0 +1,92 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef __com_sun_star_frame_XToolbarController_idl__ +#define __com_sun_star_frame_XToolbarController_idl__ + +#include <com/sun/star/awt/XWindow.idl> +#include <com/sun/star/awt/KeyModifier.idl> + + + 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. + + <p> + 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.<br/> + 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. + <p> + + @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. + + <p> + 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. + </p> + */ + 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 ); +}; + +}; }; }; }; + +#endif + +/* 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 000000000..04ec98e66 --- /dev/null +++ b/offapi/com/sun/star/frame/XToolbarControllerListener.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 . + */ +#ifndef __com_sun_star_frame_XToolbarControllerListener_idl__ +#define __com_sun_star_frame_XToolbarControllerListener_idl__ + +#include <com/sun/star/uno/XInterface.idl> + + + 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. + + <p> + 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. + </p> + */ + void functionSelected( [in] string aToolbarRes, [in] string aCommand ); + +}; + +}; }; }; }; + +#endif + +/* 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 000000000..5751787d2 --- /dev/null +++ b/offapi/com/sun/star/frame/XTransientDocumentsDocumentContentFactory.idl @@ -0,0 +1,70 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef __com_sun_star_frame_XTransientDocumentsDocumentContentFactory_idl__ +#define __com_sun_star_frame_XTransientDocumentsDocumentContentFactory_idl__ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/ucb/XContent.idl> +#include <com/sun/star/frame/XModel.idl> +#include <com/sun/star/lang/IllegalArgumentException.idl> + + +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 ); + +}; + + +}; }; }; }; + +#endif + +/* 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 000000000..26359db3e --- /dev/null +++ b/offapi/com/sun/star/frame/XTransientDocumentsDocumentContentIdentifierFactory.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/. + * + */ +#ifndef __com_sun_star_frame_XTransientDocumentsDocumentContentIdentifierFactory_idl__ +#define __com_sun_star_frame_XTransientDocumentsDocumentContentIdentifierFactory_idl__ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/ucb/XContentIdentifier.idl> +#include <com/sun/star/frame/XModel.idl> +#include <com/sun/star/lang/IllegalArgumentException.idl> + + +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 ); + +}; + + +}; }; }; }; + +#endif + +/* 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 000000000..a44eed272 --- /dev/null +++ b/offapi/com/sun/star/frame/XUIControllerFactory.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 . + */ +#ifndef __com_sun_star_frame_XUIControllerFactory_idl__ +#define __com_sun_star_frame_XUIControllerFactory_idl__ + +#include <com/sun/star/lang/XMultiComponentFactory.idl> +#include <com/sun/star/frame/XUIControllerRegistration.idl> + +module com { module sun { module star { module frame { + +/** a factory to create User Interface controllers. + + <p> + 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 + </p> + + @since LibreOffice 4.1 + */ +interface XUIControllerFactory +{ + /** this interface provides functions to create new instances of a registered UI controller. + + <p> + 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: + <ul> + <li> + <b>Frame</b><br>specifies the com::sun::star::frame::XFrame + instance to which the UI controller belongs to. This property must be provided to + the UI controller, otherwise it cannot dispatch its internal commands. + </li> + <li> + <b>ModuleIdentifier</b><br>optional string that specifies in which module context the UI + controller should be created.<br>The module identifier can be retrieved using the + ModuleManager. + </li> + </ul> + </p> + */ + interface com::sun::star::lang::XMultiComponentFactory; + + /** provides functions to query for, register and deregister a popup menu controller. + */ + interface XUIControllerRegistration; +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XUIControllerRegistration.idl b/offapi/com/sun/star/frame/XUIControllerRegistration.idl new file mode 100644 index 000000000..17ebbfeb8 --- /dev/null +++ b/offapi/com/sun/star/frame/XUIControllerRegistration.idl @@ -0,0 +1,96 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_frame_XUIControllerRegistration_idl__ +#define __com_sun_star_frame_XUIControllerRegistration_idl__ + +#include <com/sun/star/uno/XInterface.idl> + + +module com { module sun { module star { module frame { + + +/** is used to query, register and unregister user interface controller. + + <p> + 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 + </p> + + @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 ); +}; + +}; }; }; }; + + +#endif + +/* 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 000000000..19fbbca9e --- /dev/null +++ b/offapi/com/sun/star/frame/XUntitledNumbers.idl @@ -0,0 +1,95 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef __com_sun_star_frame_XUntitledNumbers_idl__ +#define __com_sun_star_frame_XUntitledNumbers_idl__ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/lang/IllegalArgumentException.idl> + + + 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 (); +}; + + +}; }; }; }; + +#endif + +/* 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 000000000..b03752873 --- /dev/null +++ b/offapi/com/sun/star/frame/XUrlList.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 . + */ +#ifndef __com_sun_star_frame_XUrlList_idl__ +#define __com_sun_star_frame_XUrlList_idl__ + +#include <com/sun/star/uno/XInterface.idl> + + + +module com { module sun { module star { module frame { + +/** @deprecated +*/ +published interface XUrlList: com::sun::star::uno::XInterface +{ + /** - */ + [attribute] sequence<string> List; +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XWindowArranger.idl b/offapi/com/sun/star/frame/XWindowArranger.idl new file mode 100644 index 000000000..a56e4c133 --- /dev/null +++ b/offapi/com/sun/star/frame/XWindowArranger.idl @@ -0,0 +1,46 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef __com_sun_star_frame_XWindowArranger_idl__ +#define __com_sun_star_frame_XWindowArranger_idl__ + +#include <com/sun/star/uno/XInterface.idl> + + + + module com { module sun { module star { module frame { + +/** @deprecated + */ +published interface XWindowArranger: com::sun::star::uno::XInterface +{ + /** @deprecated + */ + boolean hasArrangeCommand( [in] short nCommand ); + + /** @deprecated + */ + void arrange( [in] short nCommand ); +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/status/ClipboardFormats.idl b/offapi/com/sun/star/frame/status/ClipboardFormats.idl new file mode 100644 index 000000000..ebe56aa59 --- /dev/null +++ b/offapi/com/sun/star/frame/status/ClipboardFormats.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 . + */ +#ifndef __com_sun_star_frame_status_ClipboardFormats_idl__ +#define __com_sun_star_frame_status_ClipboardFormats_idl__ + + + +module com { module sun { module star { module frame { module status { + + +/** contains a list of format IDs and names which are part of the + system clipboard. + + @since OOo 2.0 + */ +struct ClipboardFormats +{ + + /** specifies a sequence of format IDs which are contained in the + system clipboard. + */ + sequence< hyper > Identifiers; + + + /** specifies a sequence of format names which are contained in the + system clipboard. + */ + sequence< string > Names; +}; + + +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/status/FontHeight.idl b/offapi/com/sun/star/frame/status/FontHeight.idl new file mode 100644 index 000000000..7b2d80c6c --- /dev/null +++ b/offapi/com/sun/star/frame/status/FontHeight.idl @@ -0,0 +1,58 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef __com_sun_star_frame_status_FontHeight_idl__ +#define __com_sun_star_frame_status_FontHeight_idl__ + + + +module com { module sun { module star { module frame { module status { + + +/** describes the characteristics of a font. + + <p>For example, this can be used to select a font.</p> + + @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; +}; + + +}; }; }; }; }; + +#endif + +/* 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 000000000..c4c02d56c --- /dev/null +++ b/offapi/com/sun/star/frame/status/ItemState.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 . + */ +#ifndef __com_sun_star_frame_status_ItemState_idl__ +#define __com_sun_star_frame_status_ItemState_idl__ + + + +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. + + <p> + This is normally used if a selection provides more than one state + for a property at the same time. + </p> + */ + 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; +}; + + +}; }; }; }; }; + +#endif + +/* 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 000000000..11772833d --- /dev/null +++ b/offapi/com/sun/star/frame/status/ItemStatus.idl @@ -0,0 +1,51 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef __com_sun_star_frame_status_ItemStatus_idl__ +#define __com_sun_star_frame_status_ItemStatus_idl__ + + +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; +}; + + +}; }; }; }; }; + +#endif + +/* 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 000000000..a65a25d19 --- /dev/null +++ b/offapi/com/sun/star/frame/status/LeftRightMargin.idl @@ -0,0 +1,48 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef __com_sun_star_frame_status_LeftRightMargin_idl__ +#define __com_sun_star_frame_status_LeftRightMargin_idl__ + + + +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; +}; + + +}; }; }; }; }; + +#endif + +/* 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 000000000..ab3756825 --- /dev/null +++ b/offapi/com/sun/star/frame/status/LeftRightMarginScale.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 . + */ +#ifndef __com_sun_star_frame_status_LeftRightMarginScale_idl__ +#define __com_sun_star_frame_status_LeftRightMarginScale_idl__ + + + +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; +}; + + +}; }; }; }; }; + +#endif + +/* 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 000000000..9bb9402ce --- /dev/null +++ b/offapi/com/sun/star/frame/status/Template.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 . + */ +#ifndef __com_sun_star_frame_status_Template_idl__ +#define __com_sun_star_frame_status_Template_idl__ + + + +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 LO 7.2 + */ + string StyleNameIdentifier; +}; + + +}; }; }; }; }; + +#endif + +/* 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 000000000..d1e597b6e --- /dev/null +++ b/offapi/com/sun/star/frame/status/UpperLowerMargin.idl @@ -0,0 +1,48 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef __com_sun_star_frame_status_UpperLowerMargin_idl__ +#define __com_sun_star_frame_status_UpperLowerMargin_idl__ + + + +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; +}; + + +}; }; }; }; }; + +#endif + +/* 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 000000000..bccd46655 --- /dev/null +++ b/offapi/com/sun/star/frame/status/UpperLowerMarginScale.idl @@ -0,0 +1,58 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef __com_sun_star_frame_status_UpperLowerMarginScale_idl__ +#define __com_sun_star_frame_status_UpperLowerMarginScale_idl__ + + + +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; +}; + + +}; }; }; }; }; + +#endif + +/* 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 000000000..0361496b4 --- /dev/null +++ b/offapi/com/sun/star/frame/status/Verb.idl @@ -0,0 +1,60 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef __com_sun_star_frame_status_Verb_idl__ +#define __com_sun_star_frame_status_Verb_idl__ + + + +module com { module sun { module star { module frame { module status { + + +/** describes a command that can be send to an OLE object + + <p>For example, this can be used to select a font.</p> + + @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; +}; + + +}; }; }; }; }; + +#endif + +/* 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 000000000..13618c49e --- /dev/null +++ b/offapi/com/sun/star/frame/status/Visibility.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 . + */ +#ifndef __com_sun_star_frame_status_Visibility_idl__ +#define __com_sun_star_frame_status_Visibility_idl__ + + +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; +}; + + +}; }; }; }; }; + +#endif + +/* 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 000000000..622660c78 --- /dev/null +++ b/offapi/com/sun/star/frame/theAutoRecovery.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/. + */ +#ifndef __com_sun_star_frame_theAutoRecovery_idl__ +#define __com_sun_star_frame_theAutoRecovery_idl__ + +#include <com/sun/star/frame/XDispatch.idl> + +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; + +}; }; }; }; + +#endif + +/* 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 000000000..12c7d7920 --- /dev/null +++ b/offapi/com/sun/star/frame/theDesktop.idl @@ -0,0 +1,47 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef __com_sun_star_frame_theDesktop_idl__ +#define __com_sun_star_frame_theDesktop_idl__ + +#include <com/sun/star/frame/XDesktop2.idl> + + + module com { module sun { module star { module frame { + +/** is the environment for components which can instantiate within frames + + <p> + 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. + </p> + + Prior to LibreOffice 4.3, this singleton was only available as a + (single-instance) Desktop service. + + @since LibreOffice 4.3 + */ +published singleton theDesktop : XDesktop2; + +}; }; }; }; + +#endif + +/* 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 000000000..b802a1385 --- /dev/null +++ b/offapi/com/sun/star/frame/theGlobalEventBroadcaster.idl @@ -0,0 +1,46 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef COM_SUN_STAR_FRAME_GLOBALEVENTBROADCASTER_IDL +#define COM_SUN_STAR_FRAME_GLOBALEVENTBROADCASTER_IDL + +#include <com/sun/star/frame/XGlobalEventBroadcaster.idl> + +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; + +}; }; }; }; + +#endif + +/* 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 000000000..48511b7b5 --- /dev/null +++ b/offapi/com/sun/star/frame/thePopupMenuControllerFactory.idl @@ -0,0 +1,46 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_frame_thePopupMenuControllerFactory_idl__ +#define __com_sun_star_frame_thePopupMenuControllerFactory_idl__ + +#include <com/sun/star/frame/XUIControllerFactory.idl> + +module com { module sun { module star { module frame { + +/** specifies a factory that creates instances of registered popup menu controller. + + <p> + 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. + </p> + + Prior to LibreOffice 4.3, this singleton was only available as a + (single-instance) PopupMenuControllerFactory service. + + @since LibreOffice 4.3 +*/ +singleton thePopupMenuControllerFactory : XUIControllerFactory; + +}; }; }; }; + +#endif + +/* 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 000000000..3fdfb1101 --- /dev/null +++ b/offapi/com/sun/star/frame/theStatusbarControllerFactory.idl @@ -0,0 +1,47 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_frame_theStatusbarControllerFactory_idl__ +#define __com_sun_star_frame_theStatusbarControllerFactory_idl__ + +#include <com/sun/star/frame/XUIControllerFactory.idl> + +module com { module sun { module star { module frame { + +/** specifies a factory that creates instances of registered status bar + controller. + + <p> + 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. + </p> + + Prior to LibreOffice 4.3, this singleton was only available as a + (single-instance) StatusbarControllerFactory service. + + @since LibreOffice 4.3 +*/ +singleton theStatusbarControllerFactory : XUIControllerFactory; + +}; }; }; }; + +#endif + +/* 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 000000000..e60534660 --- /dev/null +++ b/offapi/com/sun/star/frame/theToolbarControllerFactory.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 . + */ +#ifndef __com_sun_star_frame_theToolbarControllerFactory_idl__ +#define __com_sun_star_frame_theToolbarControllerFactory_idl__ + +#include <com/sun/star/frame/XUIControllerFactory.idl> + +module com { module sun { module star { module frame { + +/** specifies a factory that creates instances of registered toolbar controller. + + <p> + A toolbar controller can be registered for a command URL and a model service name. + </p> + + Prior to LibreOffice 4.3, this singleton was only available as a + (single-instance) ToolbarControllerFactory service. + + @since LibreOffice 4.3 +*/ + +singleton theToolbarControllerFactory : XUIControllerFactory; + +}; }; }; }; + +#endif + +/* 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 000000000..7765df701 --- /dev/null +++ b/offapi/com/sun/star/frame/theUICommandDescription.idl @@ -0,0 +1,60 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_frame_theUICommandDescription_idl__ +#define __com_sun_star_frame_theUICommandDescription_idl__ + +#include <com/sun/star/container/XNameAccess.idl> + + +module com { module sun { module star { module frame { + + +/** a singleton which provides information about user interface commands of modules. + + <p> + 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. + </p> + + Provides access to user interface commands of the installed modules. + + <p> + 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. + </p> + + @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; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |