diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-15 05:54:39 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-15 05:54:39 +0000 |
commit | 267c6f2ac71f92999e969232431ba04678e7437e (patch) | |
tree | 358c9467650e1d0a1d7227a21dac2e3d08b622b2 /offapi/com/sun/star/ui/dialogs | |
parent | Initial commit. (diff) | |
download | libreoffice-267c6f2ac71f92999e969232431ba04678e7437e.tar.xz libreoffice-267c6f2ac71f92999e969232431ba04678e7437e.zip |
Adding upstream version 4:24.2.0.upstream/4%24.2.0
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'offapi/com/sun/star/ui/dialogs')
37 files changed, 2517 insertions, 0 deletions
diff --git a/offapi/com/sun/star/ui/dialogs/AddressBookSourcePilot.idl b/offapi/com/sun/star/ui/dialogs/AddressBookSourcePilot.idl new file mode 100644 index 0000000000..77dd253e83 --- /dev/null +++ b/offapi/com/sun/star/ui/dialogs/AddressBookSourcePilot.idl @@ -0,0 +1,35 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module ui { module dialogs { + +/** + @since LibreOffice 4.1 +*/ +service AddressBookSourcePilot : XExecutableDialog +{ + createWithParent([in] com::sun::star::awt::XWindow ParentWindow); +}; + + +}; }; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/ui/dialogs/CommonFilePickerElementIds.idl b/offapi/com/sun/star/ui/dialogs/CommonFilePickerElementIds.idl new file mode 100644 index 0000000000..999e647117 --- /dev/null +++ b/offapi/com/sun/star/ui/dialogs/CommonFilePickerElementIds.idl @@ -0,0 +1,66 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module ui { module dialogs { + +/** These constants are used to specify common controls of a FilePicker dialog. + + */ + +published constants CommonFilePickerElementIds +{ + /** The control id of the OK button. + */ + const short PUSHBUTTON_OK = 1; + + /** The control id of the Cancel button. + */ + const short PUSHBUTTON_CANCEL = 2; + + /** The filter listbox of a FilePicker dialog. + */ + const short LISTBOX_FILTER = 3; + + /** Is used to refer to the file view of the file picker. This view shows the list of + all files/folders in the currently selected folder. + */ + const short CONTROL_FILEVIEW = 4; + + /** Is used to refer to the edit line where a file or path can be entered by the user. + */ + const short EDIT_FILEURL = 5; + + /** The label of the filter listbox of a FilePicker dialog. + + @since OOo 1.1.2 + */ + const short LISTBOX_FILTER_LABEL = 6; + + /** The label of the file name listbox of a FilePicker dialog. + + @since OOo 1.1.2 + */ + const short EDIT_FILEURL_LABEL = 7; +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/ui/dialogs/ControlActions.idl b/offapi/com/sun/star/ui/dialogs/ControlActions.idl new file mode 100644 index 0000000000..6180418bb4 --- /dev/null +++ b/offapi/com/sun/star/ui/dialogs/ControlActions.idl @@ -0,0 +1,88 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module ui { module dialogs { + +/** Control actions for common and extended controls of a FilePicker. + + @see com::sun::star::ui::dialogs::XFilePickerControlAccess + @see com::sun::star::ui::dialogs::CommonFilePickerElementIds + @see com::sun::star::ui::dialogs::ExtendedFilePickerElementIds + */ + +published constants ControlActions +{ + /** Adds an item to the content of the listbox. The given item has to + be a string. + */ + const short ADD_ITEM = 1; + + /** Adds a sequence of strings to the content of the listbox. + */ + const short ADD_ITEMS = 2; + + /** Removes an item from a listbox. The given value has to be a + position. If the position is invalid an exception will be thrown. + The index of the first position is 0. + The value should be a sal_Int32. + */ + const short DELETE_ITEM = 3; + + /** Removes all items from the listbox. + */ + const short DELETE_ITEMS = 4; + + /** Selects an item in a listbox. The given value has to be a position. + The index of the first position is 0. A value of -1 removes the + selection. + If the given position is invalid an exception will be thrown. + The value should be a sal_Int32. + */ + const short SET_SELECT_ITEM = 5; + + /** Returns all items of the listbox as a sequence of strings. + */ + const short GET_ITEMS = 6; + + /** Returns the currently selected item. The returned item is an empty + string if the listbox is empty or no item is selected. + */ + const short GET_SELECTED_ITEM = 7; + + /** Returns the zero based index of the currently selected item. + If the listbox is empty or there is no item selected -1 will be + returned. The returned value is a sal_Int32. + */ + + const short GET_SELECTED_ITEM_INDEX = 8; + + /** Sets the help URL of a control. + */ + const short SET_HELP_URL = 100; + + /** Retrieves the help URL of a control. + */ + const short GET_HELP_URL = 101; +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/ui/dialogs/DialogClosedEvent.idl b/offapi/com/sun/star/ui/dialogs/DialogClosedEvent.idl new file mode 100644 index 0000000000..49162ccc47 --- /dev/null +++ b/offapi/com/sun/star/ui/dialogs/DialogClosedEvent.idl @@ -0,0 +1,43 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module ui { module dialogs { + + +/** Information of a closed dialog. + + <p>The broadcaster who sends such event, must send the dialog as the source.</p> + + @see com::sun::star::lang::EventObject +*/ +struct DialogClosedEvent: com::sun::star::lang::EventObject +{ + /** + Identifies the result of a dialog. + + @see ExecutableDialogResults + */ + short DialogResult; +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/ui/dialogs/ExecutableDialogException.idl b/offapi/com/sun/star/ui/dialogs/ExecutableDialogException.idl new file mode 100644 index 0000000000..9444eab7ea --- /dev/null +++ b/offapi/com/sun/star/ui/dialogs/ExecutableDialogException.idl @@ -0,0 +1,32 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module ui { module dialogs { + +/** Base class of all XExecutableDialog related exceptions. + */ +published exception ExecutableDialogException: com::sun::star::uno::Exception +{ +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/ui/dialogs/ExecutableDialogResults.idl b/offapi/com/sun/star/ui/dialogs/ExecutableDialogResults.idl new file mode 100644 index 0000000000..16d6bcf83c --- /dev/null +++ b/offapi/com/sun/star/ui/dialogs/ExecutableDialogResults.idl @@ -0,0 +1,41 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module ui { module dialogs { + +/** These constants are used to specify a result of executing a XExecutableDialog. +*/ + +published constants ExecutableDialogResults +{ + /** The user canceled the dialog. + */ + const short CANCEL = 0; + + /** The user acknowledged the dialog. + */ + const short OK = 1; +}; + + +}; }; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/ui/dialogs/ExtendedFilePickerElementIds.idl b/offapi/com/sun/star/ui/dialogs/ExtendedFilePickerElementIds.idl new file mode 100644 index 0000000000..52dadce325 --- /dev/null +++ b/offapi/com/sun/star/ui/dialogs/ExtendedFilePickerElementIds.idl @@ -0,0 +1,57 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module ui { module dialogs { + +/** <p>These constants are used to specify extended controls of a FilePicker dialog. + A FilePicker service may be initialized so that it has additional controls + extending the set of common controls a FilePicker usually supports.</p> + + @see com::sun::star::ui::dialogs::FilePicker + @see com::sun::star::ui::dialogs::XFilePickerControlAccess + @see com::sun::star::ui::dialogs::CommonFilePickerElementIds + */ + +published constants ExtendedFilePickerElementIds +{ + const short CHECKBOX_AUTOEXTENSION = 100; + const short CHECKBOX_PASSWORD = 101; + const short CHECKBOX_FILTEROPTIONS = 102; + const short CHECKBOX_READONLY = 103; + const short CHECKBOX_LINK = 104; + const short CHECKBOX_PREVIEW = 105; + const short PUSHBUTTON_PLAY = 106; + const short LISTBOX_VERSION = 107; + const short LISTBOX_TEMPLATE = 108; + const short LISTBOX_IMAGE_TEMPLATE = 109; + const short CHECKBOX_SELECTION = 110; + const short LISTBOX_VERSION_LABEL = 207; + const short LISTBOX_TEMPLATE_LABEL = 208; + const short LISTBOX_IMAGE_TEMPLATE_LABEL = 209; + const short LISTBOX_FILTER_SELECTOR = 210; + /** @since LibreOffice 6.0 */ const short CHECKBOX_GPGENCRYPTION = 211; + /** @since LibreOffice 6.1 */ const short LISTBOX_IMAGE_ANCHOR = 212; + /** @since LibreOffice 6.1 */ const short LISTBOX_IMAGE_ANCHOR_LABEL = 213; +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/ui/dialogs/FilePicker.idl b/offapi/com/sun/star/ui/dialogs/FilePicker.idl new file mode 100644 index 0000000000..cf0b2d5d7d --- /dev/null +++ b/offapi/com/sun/star/ui/dialogs/FilePicker.idl @@ -0,0 +1,62 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module ui { module dialogs { + + +/** A FilePicker. + + It is <strong>NOT</strong> recommended to cache a reference to a file + picker instance. Due to restrictions by the underlying system there can + be specific limitations possible. To overcome these problems it's + recommended to create a new instance on demand. + + @see XFilePicker +*/ + +published service FilePicker : XFilePicker3 +{ + + /** Provides the ability to choose between different custom templates that + do extend the subset of common controls a FilePicker usually supports. + Implementers may omit this interface if the FileOpen + dialog doesn't support custom templates. In this case a createInstance + will create an ordinary FileOpen dialog with only the common FilePicker + elements. + The client has to provide one of the specified constants in + TemplateDescription. + <br/><br/> + <p><strong>Notes for the implementation of a FileSave dialog:</strong> + The implementation of a FileSave dialog should automatically check + for existence of a file and issue a warning if a file with the same + name already exist.</p> + <p>Note that when creating a file picker, the top window is selected + as the parent window for the file picker. Make sure that it does not get + closed while opening the file picker, as there is a potential race.</p> + + @see com::sun::star::ui::dialogs::TemplateDescription + */ + createWithMode([in] short Mode); +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/ui/dialogs/FilePickerEvent.idl b/offapi/com/sun/star/ui/dialogs/FilePickerEvent.idl new file mode 100644 index 0000000000..53f9561723 --- /dev/null +++ b/offapi/com/sun/star/ui/dialogs/FilePickerEvent.idl @@ -0,0 +1,41 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module ui { module dialogs { + + +/** Context information in case of a FilePicker event. +*/ +published struct FilePickerEvent: com::sun::star::lang::EventObject +{ + /** + Identifies the affected element + + @see com::sun::star::ui::dialogs::CommonFilePickerElementIds + @see com::sun::star::ui::dialogs::ExtendedFilePickerElementIds + */ + short ElementId; +}; + + +}; }; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/ui/dialogs/FilePreviewImageFormats.idl b/offapi/com/sun/star/ui/dialogs/FilePreviewImageFormats.idl new file mode 100644 index 0000000000..a9b4f5148a --- /dev/null +++ b/offapi/com/sun/star/ui/dialogs/FilePreviewImageFormats.idl @@ -0,0 +1,39 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module ui { module dialogs { + +/** These constants are used to specify image formats supported by an implementation + of the interface com::sun::star::ui::dialogs::XFilePreview. + */ + +published constants FilePreviewImageFormats +{ + /** A LibreOffice bitmap which is similar to the device independent bitmap + (DIB) format on windows. + The bitmap data should be provided as a sequence of sal_Int8. + */ + const short BITMAP = 1; +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/ui/dialogs/FilterOptionsDialog.idl b/offapi/com/sun/star/ui/dialogs/FilterOptionsDialog.idl new file mode 100644 index 0000000000..d272233e5a --- /dev/null +++ b/offapi/com/sun/star/ui/dialogs/FilterOptionsDialog.idl @@ -0,0 +1,67 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module ui { module dialogs { + + +/** This service enables a filter developer to register a dialog to query + for user options before the filter operation is performed. + + <p>The user options are stored inside the com::sun::star::document::MediaDescriptor + and can be queried from the com::sun::star::document::MediaDescriptor by + the component that implements com::sun::star::document::XFilter.</p> + + <p>The application will set the com::sun::star::document::MediaDescriptor + using the interface com::sun::star::beans::XPropertyAccess and then + call XExecutableDialog::execute().</p> + + <p>If that method returns <code>ExecutableDialogResults::OK</code>, + the application will retrieve the changed com::sun::star::document::MediaDescriptor + back using the interface com::sun::star::beans::XPropertyAccess. The filter + operation is then continued, using the new com::sun::star::document::MediaDescriptor.</p> + + <p>Otherwise, the filter operation is canceled.</p> + + @since OOo 1.1.2 + */ +published service FilterOptionsDialog +{ + /** this interface is used to set the property values of the + com::sun::star::document::MediaDescriptor before executing + the dialog and to retrieve the changed com::sun::star::document::MediaDescriptor + + afterwards. + */ + interface com::sun::star::beans::XPropertyAccess; + + /** this interface executes a dialog that displays the options + for a filter. + If XExecutableDialog::execute() + returns <code>ExecutableDialogResults::OK</code>, + the options can be retrieved by calling + com::sun::star::beans::XPropertyAccess::getPropertyValues. + */ + interface ::com::sun::star::ui::dialogs::XExecutableDialog; +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/ui/dialogs/FolderPicker.idl b/offapi/com/sun/star/ui/dialogs/FolderPicker.idl new file mode 100644 index 0000000000..e838ec6904 --- /dev/null +++ b/offapi/com/sun/star/ui/dialogs/FolderPicker.idl @@ -0,0 +1,31 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module ui { module dialogs { + +/** A FolderPicker service. +*/ + +published service FolderPicker : XFolderPicker2; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/ui/dialogs/ListboxControlActions.idl b/offapi/com/sun/star/ui/dialogs/ListboxControlActions.idl new file mode 100644 index 0000000000..19b27cc8c0 --- /dev/null +++ b/offapi/com/sun/star/ui/dialogs/ListboxControlActions.idl @@ -0,0 +1,71 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module ui { module dialogs { + +/** These constants are deprecated and should not be used anymore. They're superseded + by ControlActions. + @deprecated + */ + +published constants ListboxControlActions +{ + /** Adds an item to the content of the listbox. The given item has to + be a string. + */ + const short ADD_ITEM = 1; + + /** Adds a sequence of strings to the content of the listbox. + */ + const short ADD_ITEMS = 2; + + /** Removes an item from a listbox. The given value has to be a + position. If the position is invalid an exception will be thrown. + The index of the first position is 0. + The value should be a sal_Int32. + */ + const short DELETE_ITEM = 3; + + /** Removes all items from the listbox. + */ + const short DELETE_ITEMS = 4; + + /** Selects an item in a listbox. The given value has to be a position. + The index of the first position is 0. A value of -1 removes the + selection. + If the given position is invalid an exception will be thrown. + The value should be a sal_Int32. + */ + const short SET_SELECT_ITEM = 5; + + /** Returns all items of the listbox as a sequence of strings. + */ + const short GET_ITEMS = 6; + + /** Returns the currently selected item. The returned item is an empty + string if the listbox is empty or no item is selected. + */ + const short GET_SELECTED_ITEM = 7; +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/ui/dialogs/TemplateDescription.idl b/offapi/com/sun/star/ui/dialogs/TemplateDescription.idl new file mode 100644 index 0000000000..fe3ef6f970 --- /dev/null +++ b/offapi/com/sun/star/ui/dialogs/TemplateDescription.idl @@ -0,0 +1,150 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module ui { module dialogs { + +/** The implementation of a FilePicker service may support the usage of + different templates. The following constants define the currently + specified templates. + + @see com::sun::star::ui::dialogs::FilePicker + */ + +published constants TemplateDescription +{ + /** A FileOpen dialog without any additional controls. + */ + const short FILEOPEN_SIMPLE = 0; + + /** A FileSave dialog without any additional controls. + */ + const short FILESAVE_SIMPLE = 1; + + /** A FileSave dialog with additional controls. + <ul> + <li>A checkbox "Auto Extension"</li> + <li>A checkbox "Password"</li> + </ul> + */ + const short FILESAVE_AUTOEXTENSION_PASSWORD = 2; + + /** A FileSave dialog with additional controls. + <ul> + <li>A checkbox "Auto Extension"</li> + <li>A checkbox "Password"</li> + <li>A checkbox "Filter Options"</li> + </ul> + */ + const short FILESAVE_AUTOEXTENSION_PASSWORD_FILTEROPTIONS = 3; + + /** A FileSave dialog with additional controls. + <ul> + <li>A checkbox "Auto Extension"</li> + <li>A checkbox "Selection"</li> + </ul> + */ + const short FILESAVE_AUTOEXTENSION_SELECTION = 4; + + /** A FileSave dialog with additional controls. + <ul> + <li>A checkbox "Auto Extension"</li> + <li>A listbox "Template" for selecting different templates</li> + </ul> + */ + const short FILESAVE_AUTOEXTENSION_TEMPLATE = 5; + + /** A FileOpen dialog with additional controls. + <ul> + <li>A checkbox "Insert as link" + <li>A checkbox "Show Preview" + <li>A listbox "Image Template" for inserting an image with different styles.</li> + <li>A window for displaying a file preview</li> + </ul> + */ + const short FILEOPEN_LINK_PREVIEW_IMAGE_TEMPLATE = 6; + + /** A FileOpen dialog with additional controls. + <ul> + <li>A push button "Play"</li> + </ul> + */ + const short FILEOPEN_PLAY = 7; + + /** A FileOpen dialog with additional controls. + <ul> + <li>A checkbox "Read only"</li> + <li>A listbox "Version" for selecting a document version</li> + </ul> + */ + const short FILEOPEN_READONLY_VERSION = 8; + + /** A FileOpen dialog with additional controls. + <ul> + <li>A checkbox "Insert as link"</li> + <li>A checkbox "Show Preview"</li> + <li>A window for displaying a file preview</li> + </ul> + */ + const short FILEOPEN_LINK_PREVIEW = 9; + + /** A FileSave dialog with additional controls. + <ul> + <li>A checkbox "Auto Extension"</li> + </ul> + */ + const short FILESAVE_AUTOEXTENSION = 10; + + /** A FileOpen dialog with additional controls. + <ul> + <li>A checkbox "Show Preview"</li> + <li>A window for displaying a file preview</li> + </ul> + + @since LibreOffice 5.3 + */ + const short FILEOPEN_PREVIEW = 11; + + /** A FileOpen dialog with additional controls. + <ul> + <li>A checkbox "Insert as link"</li> + <li>A push button "Play"</li> + </ul> + + @since LibreOffice 5.3 + */ + const short FILEOPEN_LINK_PLAY = 12; + + /** A FileOpen dialog with additional controls. + <ul> + <li>A checkbox "Insert as link" + <li>A checkbox "Show Preview" + <li>A listbox "Image Anchor" for choosing how to anchor the image in Calc.</li> + <li>A window for displaying a file preview</li> + </ul> + + @since LibreOffice 6.1 + */ + const short FILEOPEN_LINK_PREVIEW_IMAGE_ANCHOR = 13; +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/ui/dialogs/Wizard.idl b/offapi/com/sun/star/ui/dialogs/Wizard.idl new file mode 100644 index 0000000000..d54bee1dee --- /dev/null +++ b/offapi/com/sun/star/ui/dialogs/Wizard.idl @@ -0,0 +1,64 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module ui { module dialogs { + +interface XWizardController; + + +/** provides a framework for implementing a wizard dialog. + + @since OOo 3.3 + */ +service Wizard : XWizard +{ + /** creates a wizard with a single execution path + @param PageIds + the IDs of the pages which constitute the execution path. IDs must be in ascending order. + @param Controller + the wizard controller. + */ + createSinglePathWizard( + [in] sequence< short > PageIds, + [in] XWizardController Controller + ) + raises ( ::com::sun::star::lang::IllegalArgumentException + ); + + /** creates a wizard with a multiple possible execution paths + + @param PageIds + the IDs of the pages which constitute the execution paths. IDs in each path must be in ascending order. + @param Controller + the wizard controller. + */ + createMultiplePathsWizard( + [in] sequence< sequence< short > > PageIds, + [in] XWizardController Controller + ) + raises ( ::com::sun::star::lang::IllegalArgumentException + ); +}; + + +}; }; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/ui/dialogs/WizardButton.idl b/offapi/com/sun/star/ui/dialogs/WizardButton.idl new file mode 100644 index 0000000000..dd8f1340d1 --- /dev/null +++ b/offapi/com/sun/star/ui/dialogs/WizardButton.idl @@ -0,0 +1,48 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module ui { module dialogs { + + +/** denotes the buttons found in a Wizard + + @since OOo 3.3 + */ +constants WizardButton +{ + /// denotes none of the buttons in the wizard + const short NONE = 0; + /// denotes the button used to travel forward through the wizard + const short NEXT = 1; + /// denotes the button used to travel backward through the wizard + const short PREVIOUS = 2; + /// denotes the button used to finish the wizard + const short FINISH = 3; + /// denotes the button used to cancel the wizard + const short CANCEL = 4; + /// denotes the button used to request help + const short HELP = 5; +}; + + +}; }; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/ui/dialogs/WizardTravelType.idl b/offapi/com/sun/star/ui/dialogs/WizardTravelType.idl new file mode 100644 index 0000000000..3eab0d9d9b --- /dev/null +++ b/offapi/com/sun/star/ui/dialogs/WizardTravelType.idl @@ -0,0 +1,42 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module ui { module dialogs { + + +/** denotes ways to leave a Wizard's page + + @since OOo 3.3 + */ +constants WizardTravelType +{ + /// indicates the wizard page is left due to forward traveling through the wizard + const short FORWARD = 1; + /// indicates the wizard page is left due to backward traveling through the wizard + const short BACKWARD = 2; + /// indicates the wizard page is left since the wizard is about to be finished + const short FINISH = 3; +}; + + +}; }; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/ui/dialogs/XAsynchronousExecutableDialog.idl b/offapi/com/sun/star/ui/dialogs/XAsynchronousExecutableDialog.idl new file mode 100644 index 0000000000..6dafa4044a --- /dev/null +++ b/offapi/com/sun/star/ui/dialogs/XAsynchronousExecutableDialog.idl @@ -0,0 +1,47 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module ui { module dialogs { + +/** Specifies an interface for an executable dialog in asynchronous mode. +*/ +interface XAsynchronousExecutableDialog: com::sun::star::uno::XInterface +{ + /** Sets the title of the dialog. + + @param aTitle + Set an arbitrary title for the dialog, + may be an empty string if the dialog should not have a title. + */ + void setDialogTitle( [in] string aTitle ); + + /** Executes (shows) the dialog and returns immediately. + + @param xListener + This listener will be called when the dialog is closed. + */ + void startExecuteModal( [in] XDialogClosedListener xListener ); + +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/ui/dialogs/XControlAccess.idl b/offapi/com/sun/star/ui/dialogs/XControlAccess.idl new file mode 100644 index 0000000000..d6b4a3dab9 --- /dev/null +++ b/offapi/com/sun/star/ui/dialogs/XControlAccess.idl @@ -0,0 +1,80 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module ui { module dialogs { + +/** Generic control access interface. + + <p>Use this interface to access user interface controls supported + by the implementing service. The supported controls, control + properties and the appropriate values are documented in the + description of the implementing service.</p> + + @see com::sun::star::ui::dialogs::FilePicker + @see com::sun::star::ui::dialogs::FilePicker + + @since OOo 1.1.2 +*/ +published interface XControlAccess: com::sun::star::uno::XInterface +{ +/** Change a control property. + + @param aControlName + The name of the control. Common control names are for + instance "OkButton" or "CancelButton". + + @param aControlProperty + The control property to manipulate. Common control properties + are for instance "Label" or "State". + + @param aValue + A value appropriated for the property. + + @throws com::sun::star::lang::IllegalArgumentException + when the control is not supported, the control property is invalid or + the value fits not the control action. +*/ +void setControlProperty( [in] string aControlName, [in] string aControlProperty, [in] any aValue ) + raises( com::sun::star::lang::IllegalArgumentException ); + +/** Query for a control property. + + @param aControlName + The name of the control. Common control names are for + instance "OkButton" or "CancelButton". + + @param aControlProperty + The requested control property. Common control properties + are for instance "Label" or "State". + + @returns + the requested value. + + @throws com::sun::star::lang::IllegalArgumentException + when the control is not supported or the control property is invalid. +*/ +any getControlProperty( [in] string aControlName, [in] string aControlProperty ) + raises( com::sun::star::lang::IllegalArgumentException ); +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/ui/dialogs/XControlInformation.idl b/offapi/com/sun/star/ui/dialogs/XControlInformation.idl new file mode 100644 index 0000000000..778075880d --- /dev/null +++ b/offapi/com/sun/star/ui/dialogs/XControlInformation.idl @@ -0,0 +1,86 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module ui { module dialogs { + +/** Interface to query for controls and control properties supported by the + implementing instance. + + @since OOo 1.1.2 +*/ +published interface XControlInformation: com::sun::star::uno::XInterface +{ +/** Query for the supported controls of a service instance. + + @returns + a sequence with the names of the supported controls. +*/ +sequence<string> getSupportedControls( ); + +/** Returns whether the specified control is supported or not. + + @param aControlName + The name of the control. Common control names are for + instance "OkButton" or "CancelButton". + + @returns + `TRUE` if the specified control is supported. + `FALSE` if the specified control is not supported. +*/ +boolean isControlSupported( [in] string aControlName ); + +/** Returns a sequence with properties supported by the specified + control. + + @param aControlName + The name of the control. Common control names are for + instance "OkButton" or "CancelButton". + + @returns + a sequence of control properties supported by the specified control. + + @throws com::sun::star::lang::IllegalArgumentException + when the specified control is not supported. +*/ +sequence<string> getSupportedControlProperties( [in] string aControlName ) + raises( com::sun::star::lang::IllegalArgumentException ); + +/** Returns whether control property is supported by a control. + + @param aControlName + The name of the control. + + @param aControlProperty + The control property to query for. + + @returns + `TRUE` if the specified control action is supported. + `FALSE` if the specified control action is not supported. + + @throws com::sun::star::lang::IllegalArgumentException + when the specified control is not supported. +*/ +boolean isControlPropertySupported( [in] string aControlName, [in] string aControlProperty ) + raises( com::sun::star::lang::IllegalArgumentException ); +}; + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/ui/dialogs/XDialogClosedListener.idl b/offapi/com/sun/star/ui/dialogs/XDialogClosedListener.idl new file mode 100644 index 0000000000..023ad6ee55 --- /dev/null +++ b/offapi/com/sun/star/ui/dialogs/XDialogClosedListener.idl @@ -0,0 +1,46 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +module com { module sun { module star { module ui { module dialogs { + +/** Used to notify listeners about dialog-closed events. + + <p>Registered listeners will be notified with a + DialogClosedEvent when a XAsynchronousExecutableDialog is closed.</p> + + @see XAsynchronousExecutableDialog + @see DialogClosedEvent +*/ + + +interface XDialogClosedListener: com::sun::star::lang::XEventListener +{ + /** A client receives this event if a dialog is closed. + + @param aEvent + of type DialogClosedEvent that describes the event + + @see EndDialogEvent + */ + void dialogClosed( [in] DialogClosedEvent aEvent ); +}; + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/ui/dialogs/XExecutableDialog.idl b/offapi/com/sun/star/ui/dialogs/XExecutableDialog.idl new file mode 100644 index 0000000000..63dfa433d8 --- /dev/null +++ b/offapi/com/sun/star/ui/dialogs/XExecutableDialog.idl @@ -0,0 +1,50 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module ui { module dialogs { + +/** Specifies an interface for an executable dialog. +*/ + + +published interface XExecutableDialog: com::sun::star::uno::XInterface +{ + /** Sets the title of the dialog. + + @param aTitle + Set an arbitrary title for the dialog, + may be an empty string if the dialog should not + have a title. + */ + void setTitle( [in] string aTitle ); + + /** Executes (shows) the dialog. + + @returns + A status code of type ExecutableDialogResults. + */ + short execute(); +}; + + +}; }; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/ui/dialogs/XFilePicker.idl b/offapi/com/sun/star/ui/dialogs/XFilePicker.idl new file mode 100644 index 0000000000..11131cb0bb --- /dev/null +++ b/offapi/com/sun/star/ui/dialogs/XFilePicker.idl @@ -0,0 +1,99 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module ui { module dialogs { + +/** Specifies an interface for a FilePicker +*/ + +published interface XFilePicker: com::sun::star::ui::dialogs::XExecutableDialog +{ + + /** Enable/disable multi-selection mode + + <p>If the multi-selection mode is enabled, multiple files + may be selected by the user else only one file selection at a time is possible</p> + + @param bMode + <p>A value of `TRUE` enables the multi-selection mode.</p> + <p>A value of `FALSE` disables the multi-selection mode, this is the default.</p> + */ + void setMultiSelectionMode( [in] boolean bMode ); + + /** Sets the default string that appears in the file name box of a FilePicker. + + @param aName + <p> Specifies the default file name, displayed when the FilePicker + is shown. The implementation may accept any string, and does not + have to check for a valid file name or if the file really exists. + </p> + */ + void setDefaultName( [in] string aName ); + + /** Sets the directory that the file dialog initially displays. + + @param aDirectory + Specifies the initial directory in URL format. The given URL must + conform to <a href="http://www.w3.org/Addressing/rfc1738.txt">Rfc1738</a>). + + @throws com::sun::star::lang::IllegalArgumentException + if the URL is invalid (doesn't conform to <a href="http://www.w3.org/Addressing/rfc1738.txt">Rfc1738</a>). + */ + void setDisplayDirectory( [in] string aDirectory ) + raises( ::com::sun::star::lang::IllegalArgumentException ); + + /** Returns the directory that the file dialog is currently showing or + was last showing before closing the dialog with Ok. If the user + did cancel the dialog, the returned value is undefined. + + @returns + The directory in URL format, must conform to <a href="http://www.w3.org/Addressing/rfc1738.txt">Rfc1738</a>. + */ + string getDisplayDirectory(); + + /** Returns a sequence of the selected files including path information in + URL format, conforming to <a href="http://www.w3.org/Addressing/rfc1738.txt">Rfc1738</a>. + + <p>If the user closed the dialog with cancel an empty sequence will be + returned.</p> + <br/> + <p>If the dialog is in execution mode and a single file is selected + the complete URL of this file will be returned.</p> + <p>If the dialog is in execution mode and the selected file name is false + or any other error occurs an empty sequence will be returned.</p> + + @returns + <p> The complete path of the file or directory currently selected + in URL format. This always returns only the first entry of the sequence. + <br/> + <p><strong>Notes for the implementation of a FileSave dialog:</strong>If there exists + a checkbox "Automatic File Extension" which is checked and a valid filter is currently selected + the dialog may automatically add an extension to the selected file name.</p> + </p> + @deprecated use com::sun::star::ui::dialogs::XFilePicker2::getSelectedFiles instead + */ + sequence< string > getFiles(); +}; + + +}; }; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/ui/dialogs/XFilePicker2.idl b/offapi/com/sun/star/ui/dialogs/XFilePicker2.idl new file mode 100644 index 0000000000..8b54868315 --- /dev/null +++ b/offapi/com/sun/star/ui/dialogs/XFilePicker2.idl @@ -0,0 +1,55 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module ui { module dialogs { + +/** extends file picker interface to workaround some design problems. +*/ +published interface XFilePicker2 : ::com::sun::star::ui::dialogs::XFilePicker +{ + /** Returns a sequence of the selected files including path information in + URL format, conforming to <a href="http://www.w3.org/Addressing/rfc1738.txt">Rfc1738</a>. + + <p>If the user closed the dialog with cancel an empty sequence will be returned.</p> + <br/> + + <p>If the user closed the dialog with OK a list of all selected files will be returned.</p> + + @attention + <p> + Instead to the method getFiles() of base interface XFilePicker the new method return + full qualified URLs for every selected file. + </p> + + @returns + <p>A list of all selected file as complete URLs.</p> + <br/> + + <p><strong>Notes for the implementation of a FileSave dialog:</strong>If there exists + a checkbox "Automatic File Extension" which is checked and a valid filter is currently selected + the dialog may automatically add an extension to the selected file name(s).</p> + */ + sequence< string > getSelectedFiles(); +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/ui/dialogs/XFilePicker3.idl b/offapi/com/sun/star/ui/dialogs/XFilePicker3.idl new file mode 100644 index 0000000000..974a3209eb --- /dev/null +++ b/offapi/com/sun/star/ui/dialogs/XFilePicker3.idl @@ -0,0 +1,64 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module ui { module dialogs { + + +/** + Provides unified interface for FilePicker service. + + @since LibreOffice 4.1 +*/ +published interface XFilePicker3 +{ + interface XFilePicker2; + + /** Provides the ability to request notifications about changes. + */ + interface XFilePickerNotifier; // extends XEventListener + + /** Provides the ability to add different filter, query for the current + filters and set a current filter + */ + interface XFilterManager; + + /** Provides the ability to show a preview of a selected file + */ + [optional] interface XFilePreview; + + /** An interface which allows manipulation of groups of filters + */ + interface XFilterGroupManager; + + /** For canceling a running dialog instance. + <p>This may be useful for automatic test tools for instance.</p> + */ + interface com::sun::star::util::XCancellable; + + /** For shutdown and listener support. + */ + interface com::sun::star::lang::XComponent; + +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/ui/dialogs/XFilePickerControlAccess.idl b/offapi/com/sun/star/ui/dialogs/XFilePickerControlAccess.idl new file mode 100644 index 0000000000..5093377256 --- /dev/null +++ b/offapi/com/sun/star/ui/dialogs/XFilePickerControlAccess.idl @@ -0,0 +1,129 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module ui { module dialogs { + +/** Provides access to the controls of a FilePicker. + + <p> A FilePicker may contain additional elements according to the needs + of the different applications. These additional elements can be + addressed by this interface.</p> + + @see com::sun::star::ui::dialogs::FilePicker +*/ +published interface XFilePickerControlAccess: com::sun::star::ui::dialogs::XFilePicker +{ + +/** Set the value of an additional element within a FilePicker. + + @param ControlId + Identifies the element which value is to be set. + + @param aControlAction + Specifies an action to perform with the given value. + aControlAction has to be one of the values defined in ControlActions. + Not all of the values are valid for all controls. + To add a new filter to the FilePicker use the interface XFilterManager, but + optionally an implementation may also support adding new filter using this + method. + + @param aValue + The value to set. For checkboxes aValue should be a boolean value that + should be `TRUE` if the checkbox should be checked and `FALSE` otherwise. + + @see com::sun::star::ui::dialogs::CommonFilePickerElementIds + @see com::sun::star::ui::dialogs::ExtendedFilePickerElementIds + @see com::sun::star::ui::dialogs::ControlActions +*/ +void setValue( [in] short ControlId, [in] short aControlAction, [in] any aValue ); + +/** Get the value of an additional element within a FilePicker + + @param aControlId + Identifies the element for which value is requested. + + @param aControlAction + Specifies which value to retrieve. + aControlAction has to be one of the values defined in ControlActions. + Not all of the values are valid for all controls. + + @returns + The value of the specified element. If the specified control + is a checkbox the returned value is a boolean that is `TRUE` + if the checkbox is checked `FALSE` otherwise. + If the specified element doesn't exist or the specified element + doesn't support the specified control action an empty any will be + returned. + + @see com::sun::star::ui::dialogs::CommonFilePickerElementIds + @see com::sun::star::ui::dialogs::ExtendedFilePickerElementIds + @see com::sun::star::ui::dialogs::ControlActions +*/ +any getValue( [in] short aControlId, [in] short aControlAction ); + +/** Set the label of the specified element. If the specified element + doesn't support setting a label, this method has no effect. + + @param aControlId + Identifies the element for which the label should be set. + + @param aLabel + The label to be set. + + @see com::sun::star::ui::dialogs::CommonFilePickerElementIds + @see com::sun::star::ui::dialogs::ExtendedFilePickerElementIds +*/ +void setLabel( [in] short aControlId, [in] string aLabel ); + +/** Returns the label of the specified element. + + @param aControlId + Identifies the element for which the label should be returned. + + @returns + The label of the specified element or an empty string if + the specified element has no or supports no label or the + specified element doesn't exist. + + @see com::sun::star::ui::dialogs::CommonFilePickerElementIds + @see com::sun::star::ui::dialogs::ExtendedFilePickerElementIds +*/ +string getLabel( [in] short aControlId ); + +/** Enables or disables a control. + + @param ControlId + Identifies the control. + + @param bEnable + <p>If `TRUE` the specified control will be enabled.</p> + <p>If `FALSE` the specified control will be disabled.</p> + + @see com::sun::star::ui::dialogs::CommonFilePickerElementIds + @see com::sun::star::ui::dialogs::ExtendedFilePickerElementIds +*/ +void enableControl( [in] short ControlId, [in] boolean bEnable ); +}; + + +}; }; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/ui/dialogs/XFilePickerListener.idl b/offapi/com/sun/star/ui/dialogs/XFilePickerListener.idl new file mode 100644 index 0000000000..966696cafa --- /dev/null +++ b/offapi/com/sun/star/ui/dialogs/XFilePickerListener.idl @@ -0,0 +1,92 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module ui { module dialogs { + + +/** Interface to be implemented by a FilePicker listener. + + <p> The XFilePickerListener interface must be implemented by + the clients of the FilePicker service which need to be informed about + events while the FilePicker service is displayed.</p> +*/ + +published interface XFilePickerListener: com::sun::star::lang::XEventListener +{ + /** A client receives this event if the file selection within the + FilePicker service dialog changes. + + @param aEvent + of type FilePickerEvent that describes the event + + @see com::sun::star::ui::dialogs::FilePickerEvent + */ + void fileSelectionChanged( [in] FilePickerEvent aEvent ); + + + /** A client receives this event if the directory selection within the + FilePicker dialog changes. + + @param aEvent + Of type FilePickerEvent that describes the event. + + @see com::sun::star::ui::dialogs::FilePickerEvent + */ + void directoryChanged( [in] FilePickerEvent aEvent ); + + /** A client receives this event if the F1 key or the help button was + pressed. + + @param aEvent + of type FilePickerEvent that describes the event + + @returns + A help string which the FilePicker dialog should use to display + a help for a specific control. If the returned string is empty it is + undefined how the FilePicker implementation will behave. + It may show a message "no help available" or may show no + help at all. + + @see com::sun::star::ui::dialogs::FilePickerEvent + */ + string helpRequested( [in] FilePickerEvent aEvent ); + + /** A client receives this event if the state of a control within the + FilePicker service dialog changes. + + @param aEvent + of type FilePickerEvent that describes the event. + + @see com::sun::star::ui::dialogs::FilePickerEvent + */ + void controlStateChanged( [in] FilePickerEvent aEvent ); + + /** A client receives this event if the size of the FilePicker dialog + has changed. If the FilePicker dialog contains a preview the client + may ask for the new dimension of the preview area. + */ + void dialogSizeChanged( ); +}; + + +}; }; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/ui/dialogs/XFilePickerNotifier.idl b/offapi/com/sun/star/ui/dialogs/XFilePickerNotifier.idl new file mode 100644 index 0000000000..ff3e011beb --- /dev/null +++ b/offapi/com/sun/star/ui/dialogs/XFilePickerNotifier.idl @@ -0,0 +1,50 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module ui { module dialogs { + + +/** Interface to be implemented in order to support listener management. +*/ +published interface XFilePickerNotifier: com::sun::star::uno::XInterface +{ + /** Interface for clients to register as XFilePickerListener + + @param xListener + The XFilePickerListener interface of the listener that + wants to receive events of type FilePickerEvent. + <p>Invalid interfaces or NULL values will be ignored.</p> + */ + void addFilePickerListener( [in] XFilePickerListener xListener ); + + /** Interface for clients to unregister as XFilePickerListener. + + @param xListener + The XFilePickerListener interface of the listener that + wants to receive events of type FilePickerEvent. + <p>Invalid interfaces or NULL values will be ignored.</p> + */ + void removeFilePickerListener( [in] XFilePickerListener xListener ); +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/ui/dialogs/XFilePreview.idl b/offapi/com/sun/star/ui/dialogs/XFilePreview.idl new file mode 100644 index 0000000000..f648040f05 --- /dev/null +++ b/offapi/com/sun/star/ui/dialogs/XFilePreview.idl @@ -0,0 +1,113 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module ui { module dialogs { + +/** FilePicker that support the preview of various file formats should implement + this interface. +*/ + +published interface XFilePreview: com::sun::star::uno::XInterface +{ + /** The method returns all image formats that the preview supports. + + @returns + A sequence of all supported preview formats + + @see com::sun::star::ui::dialogs::FilePreviewImageFormats + */ + sequence< short > getSupportedImageFormats( ); + + /** The method returns the supported color depth of the target device. + + @deprecated - typically now just returns 0 + + @returns + The color depth in bit, e.g. 8 bit, 16 bit, 32 bit. + */ + com::sun::star::util::Color getTargetColorDepth( ); + + /** The method returns the available width of the preview window + even if the window is invisible or could not be created. + If a service implementation doesn't support a file preview + 0 will be returned. + + @returns + The width of the preview window in pixel. + */ + long getAvailableWidth( ); + + /** The method returns the available height of the preview window + even if the window is invisible or could not be created. + If a service implementation doesn't support a file preview + 0 will be returned. + + @returns + The height of the preview window in pixel. + */ + long getAvailableHeight( ); + + /** Sets a new image. If the preview is currently hidden the + image will be ignored. An empty any will clear the preview window. + + @param aImageFormat + Specifies the format of the data that will be delivered + + @param aImage + The image data, the image format defines how + the image data have to be delivered + + @throws com::sun::star::lang::IllegalArgumentException + If the specified image format is invalid or not + supported by the preview implementation + + @see com::sun::star::ui::dialogs::FilePreviewImageFormats + */ + void setImage( [in] short aImageFormat, [in] any aImage ) + raises( ::com::sun::star::lang::IllegalArgumentException ); + + /** Optionally sets the current show state of the preview. It is possible + that the preview implementation doesn't support hiding the preview. + + @param bShowState + A value of `TRUE` shows the preview window. + <p>A value of `FALSE` hides the preview window.</p> + + @returns + A value of `TRUE` on success. + <p>A value of `FALSE` if the operation fails for any reason or the preview + implementation doesn't support hiding the preview.</p> + */ + boolean setShowState( [in] boolean bShowState ); + + /** Returns the current show state of the preview. + + @returns + A value of `TRUE` if the preview window is visible. + <p>A value of `FALSE` if the preview window is invisible.</p> + */ + boolean getShowState( ); +}; + + +}; }; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/ui/dialogs/XFilterGroupManager.idl b/offapi/com/sun/star/ui/dialogs/XFilterGroupManager.idl new file mode 100644 index 0000000000..a0ece4bb1e --- /dev/null +++ b/offapi/com/sun/star/ui/dialogs/XFilterGroupManager.idl @@ -0,0 +1,58 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +module com { module sun { module star { module ui { module dialogs { + +/** Specifies an interface which allows manipulation of groups of filters + for the FilePicker service. +*/ +published interface XFilterGroupManager : com::sun::star::uno::XInterface +{ + /** Appends a group of filters to the current filter list. + + <p>It is implementation dependent how the filter groups are presented to the user.<br/> + It is not even guaranteed that the groups are visualized: implementations are free to simply + append all the filters separately, with ignoring the group title.</p> + + @param sGroupTitle + The title of the filter group. Usually, the caller should localize this title, as it is to be presented to + the user. + + @param aFilters + The filters which form a group. Every filter consists of two strings, where the first one is a display name + (as for sGroupTitle, it holds that these strings should be localized), and the second one the + semicolon separated list of wildcard expressions for the filter.<br/> + Usually, the expressions are simply extensions (e.g. "*.txt"), but this must no necessarily be the case. + + @throws com::sun::star::lang::IllegalArgumentException + if one or more filters in the given filter list already exist. + + @see com::sun::star::ui::dialogs::XFilterManager + @see com::sun::star::ui::dialogs::FilePicker + */ + void appendFilterGroup( + [in] string sGroupTitle, + [in] sequence< com::sun::star::beans::StringPair > aFilters + ) + raises( com::sun::star::lang::IllegalArgumentException ); +}; + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/ui/dialogs/XFilterManager.idl b/offapi/com/sun/star/ui/dialogs/XFilterManager.idl new file mode 100644 index 0000000000..1014522ddf --- /dev/null +++ b/offapi/com/sun/star/ui/dialogs/XFilterManager.idl @@ -0,0 +1,71 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module ui { module dialogs { + +/** Specifies a filter manager interface for a FilePicker +*/ + +published interface XFilterManager: com::sun::star::uno::XInterface +{ + + /** Adds a filter identified by a title. + + @param aTitle + Specifies the name of the filter as shown in the filter box of the + FilePicker dialog. + + @param aFilter + Specifies the extensions of the filter. Multiple filters should be + semicolon separated. The semicolon may not be used as character in + a filter expression. A typical filter is for instance "*.txt". + + @throws ::com::sun::star::lang::IllegalArgumentException + If a filter with the specified title already exists. + + */ + void appendFilter( [in] string aTitle, [in] string aFilter ) + raises( ::com::sun::star::lang::IllegalArgumentException ); + + /** Sets the current filter. + + @param aTitle + Specifies the name of the filter to be set. + + @throws com::sun::star::lang::IllegalArgumentException + If the specified filter was not found. + */ + void setCurrentFilter( [in] string aTitle ) + raises( ::com::sun::star::lang::IllegalArgumentException ); + + /** Returns the currently selected filter. + + @returns + The name of the selected filter or an empty string if + there is no filter or no filter is currently selected. + */ + string getCurrentFilter( ); +}; + + +}; }; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/ui/dialogs/XFolderPicker.idl b/offapi/com/sun/star/ui/dialogs/XFolderPicker.idl new file mode 100644 index 0000000000..e6c3dd7718 --- /dev/null +++ b/offapi/com/sun/star/ui/dialogs/XFolderPicker.idl @@ -0,0 +1,70 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module ui { module dialogs { + +/** Specifies a FolderPicker interface. +*/ + +published interface XFolderPicker: com::sun::star::ui::dialogs::XExecutableDialog +{ + /** Sets the root directory that the FolderPicker should display. + It is not specified which root directory the FolderPicker + chooses if the specified root directory doesn't exist. + + @param aDirectory + Specifies the root directory in url format, conforming to <a href="http://www.w3.org/Addressing/rfc1738.txt">Rfc1738</a>. + + @throws com::sun::star::lang::IllegalArgumentException + if the given url is invalid. + */ + void setDisplayDirectory( [in] string aDirectory ) + raises( ::com::sun::star::lang::IllegalArgumentException ); + + /** Returns the root directory that the FolderPicker is showing. The + return value is undefined if the client did not choose a root directory + or the previously specified root directory doesn't exist. + + @returns + The directory in url format. + */ + string getDisplayDirectory(); + + /** Returns the selected directory as url conforming to <a href="http://www.w3.org/Addressing/rfc1738.txt">Rfc1738</a>. + + @returns + The selected directory as url if the user did close the dialog with Ok + else the returned value is undefined. + */ + string getDirectory( ); + + /** The implementation may optionally show the given text as a description + for the user within the dialog, e.g. "Please select a directory". + If the client doesn't set a description the dialog may show a default + description. + */ + void setDescription( [in] string aDescription ); +}; + + +}; }; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/ui/dialogs/XFolderPicker2.idl b/offapi/com/sun/star/ui/dialogs/XFolderPicker2.idl new file mode 100644 index 0000000000..9cb4f09f63 --- /dev/null +++ b/offapi/com/sun/star/ui/dialogs/XFolderPicker2.idl @@ -0,0 +1,45 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module ui { module dialogs { + + +/** + Provides a unified interface for the new-style FolderPicker service to implement. + + @since LibreOffice 4.0 +*/ +published interface XFolderPicker2 +{ + /** Provides the ability to execute a FolderPicker dialog and + browse for and select folders. + */ + interface XFolderPicker; + + /** For canceling a running dialog instance. + <p>This may be useful for automatic test tools for instance.</p> + */ + interface com::sun::star::util::XCancellable; +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/ui/dialogs/XSLTFilterDialog.idl b/offapi/com/sun/star/ui/dialogs/XSLTFilterDialog.idl new file mode 100644 index 0000000000..87b0776ebd --- /dev/null +++ b/offapi/com/sun/star/ui/dialogs/XSLTFilterDialog.idl @@ -0,0 +1,31 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module ui { module dialogs { + +/** + @since LibreOffice 4.1 +*/ +published service XSLTFilterDialog : XExecutableDialog; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/ui/dialogs/XWizard.idl b/offapi/com/sun/star/ui/dialogs/XWizard.idl new file mode 100644 index 0000000000..42bd40840f --- /dev/null +++ b/offapi/com/sun/star/ui/dialogs/XWizard.idl @@ -0,0 +1,211 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +module com { module sun { module star { module ui { module dialogs { + + +interface XWizardPage; + +/** is the main interface implemented by the Wizard services. + + <p>A wizard is a dialog which guides the user through a number of tasks (usually input of data), which the user can + accomplish either sequentially or out-of-order. For this, a wizard is comprised of a number of tab pages, + each page representing a single <em>step</em>.</p> + + <p>Sequential navigation in a wizard is done via a <em>Next</em> and a <em>Back</em> button. Non-sequential navigation + is done via a roadmap, which is displayed on the left hand side of the wizard dialog, lists all available + steps, and allows jumping to a certain step (where the creator of the wizard can restrict the available steps + depending on the current situation in the wizard, see below).</p> + + <p>A sequence of steps in a wizard dialog is called a <em>path</em>. A given wizard can support one or multiple paths, + which are declared at the time of construction of the wizard.</p> + + <p>In the simplest case, where the wizard supports only one path, all available steps are displayed in the roadmap, + and the user can simply travel through them as desired.</p> + + <p>If the wizard is more complex, and supports multiple paths, things become more complicated. In a given situation + of the wizard, where the user is at step <em>k</em> of the current path, the <em>potential</em> or <em>conflicting</em> + paths are those whose first <em>k</em> steps are the same as in the current path. Obviously, there's at least one + potential path in every situation: the current one. If there is more than one, then the future steps in the dialog + are not finally decided. In such a case, the roadmap will display future steps up to the point where the potential + paths diverge, and then an item <em><code>...</code></em> indicating that the order of steps is undecided.</p> + + <p>An XWizardController can declare a certain path as active path by calling the activatePath() + method. Usually, this is done depending on user input. For instance, your wizard could have radio buttons on the + first page which effectively decide about which path to take in the wizard.</p> + + <p>Single steps in the wizard can be freely enabled and disabled, using the enablePage() method. + Disabled pages are skipped during sequential traveling, and not selectable in the roadmap.</p> + + <p>The state of the <em>Next</em> button in the dialog will be automatically maintained in most situations, + depending on the results of calls to the XWizardController::canAdvance() and XWizardPage::canAdvance() + methods. More sophisticated wizard logic, however, will need manual calls to the enableButton() method. + Also, the <em>Finish</em> button needs to be maintained by the wizard's controller, too, as it cannot be decided + generically in which situations it should be enabled or disabled.</p> + + @see XWizardController + @see XWizardPage + + @since OOo 3.3 + */ +interface XWizard +{ + interface XExecutableDialog; + + /** is the help URL of the wizard's main window. + */ + [attribute] string HelpURL; + + [attribute, readonly] ::com::sun::star::awt::XWindow + DialogWindow; + + /** provides access to the current page of the wizard + */ + XWizardPage + getCurrentPage(); + + /** enables or disables a certain button in the wizard + + <p>Normally, you will want to use this method for the <em>Finish</em> button only: The <em>Next</em> + and <em>Back</em> buttons are usually maintained automatically, the <em>Help</em> and <em>Cancel</em> + buttons are unlikely to ever being disabled.</p> + + @param WizardButton + denotes the button to enable or disable, as one of the WizardButton constants. Must not be + WizardButton::NONE. + @param Enable + specifies whether the button should be enabled (`TRUE`) or disabled (`FALSE`) + */ + void enableButton( [in] short WizardButton, [in] boolean Enable ); + + /** sets a button in the wizard as default button + + <p>In general, the default button in a wizard is the one which is activated when the user presses + the <em>return</em> key while the focus is in a control which does not handle this key itself (such as + ordinary input controls).</p> + + <p>You can use this method, for instance, to make the <em>Next</em> button the default button on all pages + except the last one, where <em>Finish</em> should be defaulted.</p> + */ + void setDefaultButton( [in] short WizardButton ); + + /** travels to the next page, if possible + + <p>Calling this method is equivalent to the user pressing the <em>Next</em> button in the wizard. Consequently, + the method will fail if in the current state of the wizard, it is not allowed to advance to a next page.</p> + */ + boolean travelNext(); + + /** travels to the next page, if possible + + <p>Calling this method is equivalent to the user pressing the <em>Back</em> button in the wizard.</p> + */ + boolean travelPrevious(); + + /** enables or disables the given page + + <p>You can use this method when not all pages of your wizard are necessarily needed in all cases. For instance, + assume that your first wizard page contains a check box, which the user can check to enter additional data. + If you place this data on the second page, then you will want to enable this second page if and only if the + checkbox is checked.</p> + + <p>If a page is disabled, it can reached neither by clicking the respective item in the wizard's roadmap, + nor by sequential traveling. Still, the page's item is displayed in the roadmap, though disabled.</p> + + @throws ::com::sun::star::container::NoSuchElementException + if there is no page with the given ID + @throws ::com::sun::star::util::InvalidStateException + if the page shall be disabled, but is active currently. + */ + void enablePage( [in] short PageID, [in] boolean Enable ) + raises ( ::com::sun::star::container::NoSuchElementException + , ::com::sun::star::util::InvalidStateException ); + + /** updates the wizard elements which are related to traveling. + + <p>For instance, the <em>Next</em> button is disabled if the current page's XWizardPage::canAdvance() + method returns `FALSE`.</p> + + <p>You usually call this method from within a wizard page whose state changed in a way that it affects the + user's ability to reach other pages.</p> + */ + void updateTravelUI(); + + /** advances to the given page, if possible. + + <p>Calling this method is equivalent to the user repeatedly pressing the <em>Next</em> button, until the + given page is reached. Consequently, the method will fail if one of the intermediate pages does not allow + advancing to the next page.</p> + */ + boolean advanceTo( [in] short PageId ); + + /** goes back to the given page, if possible. + + <p>Calling this method is equivalent to the user repeatedly pressing the <em>Back</em> button, until the + given page is reached.</p> + */ + boolean goBackTo( [in] short PageId ); + + /** activates a path + + <p>If the wizard has been created with multiple paths of control flow, then this method allows switching to + another path.</p> + + <p>You can only activate a path which shares the first <code>k</code> pages with the path + which is previously active (if any), where <code>k</code> is the index of the current page within the current + path.</p> + + <p><strong>Example</strong>: Say you have paths, <code>(0,1,2,5)</code> and <code>(0,1,4,5)</code> (with + the numbers denoting page IDs). This means that after page <code>1</code>, you either continue with page + <code>2</code> or state <code>4</code>,and after this, you finish in state <code>5</code>.<br/> + Now if the first path is active, and your current state is <code>1</code>, then you can easily switch to the + second path, since both paths start with <code>(0,1)</code>.<br/> + However, if your current state is <code>2</code>, then you can not switch to the second path anymore.</p> + + @param PathIndex + the index of the path, as used in the Wizard::createMultiplePathsWizard() constructor. + @param Final + <p>If `TRUE`, the path will be completely activated, even if it is a conflicting path (i.e. there is another + path which shares the first <code>k</code> states with the to-be-activated path.)</p> + + <p>If `FALSE`, then the new path is checked for conflicts with other paths. If such conflicts exists, the path + is not completely activated, but only up to the point where it does <em>not</em> conflict.</p> + + <p>In this latter case, you need another activatePath method (usually triggered by the user doing some decisions + and entering some data on the reachable pages) before the wizard can actually be finished.</p> + + <p>With the paths in the example above, if you activate the second path, then only steps <code>0</code> and + <code>1</code> are activated, since they are common to both paths. Steps <code>2</code>, <code>4</code>, + and <code>5</code> are not reachable, yet.</p> + + @throws ::com::sun::star::container::NoSuchElementException + if there is no path with the given index + @throws ::com::sun::star::util::InvalidStateException + if the path cannot be activated in the current state of the wizard. + */ + void activatePath( [in] short PathIndex, [in] boolean Final ) + raises ( ::com::sun::star::container::NoSuchElementException + , ::com::sun::star::util::InvalidStateException ); +}; + + +}; }; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/ui/dialogs/XWizardController.idl b/offapi/com/sun/star/ui/dialogs/XWizardController.idl new file mode 100644 index 0000000000..3319e6a2a5 --- /dev/null +++ b/offapi/com/sun/star/ui/dialogs/XWizardController.idl @@ -0,0 +1,71 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module ui { module dialogs { + + +/** is the interface of a client-provided controller of a custom Wizard. + + @since OOo 3.3 + */ +interface XWizardController +{ + /** creates a page + + <p>Wizard pages are created on demand, when the respective page is reached during traveling through the + wizard. Effectively, this means the method is called at most once for each possible page ID.</p> + + @param ParentWindow + the parent window to use for the page window + @param PageId + the ID of the page. + @return + the requested page. + */ + XWizardPage createPage( [in] ::com::sun::star::awt::XWindow ParentWindow, [in] short PageId ); + + /** provides the title of a page given by ID + + <p>The page titles are displayed in the wizard's roadmap.</p> + */ + string getPageTitle( [in] short PageId ); + + boolean canAdvance(); + + /** called when a new page in the wizard is being activated + */ + void onActivatePage( [in] short PageId ); + + /** called when a page in the wizard is being deactivated + */ + void onDeactivatePage( [in] short PageId ); + + /** called when the wizard is about to be finished. + + <p>This method allows the controller to do any final checks, and ultimately veto finishing the wizard.</p> + */ + boolean confirmFinish(); +}; + + +}; }; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/ui/dialogs/XWizardPage.idl b/offapi/com/sun/star/ui/dialogs/XWizardPage.idl new file mode 100644 index 0000000000..cbd7ada79b --- /dev/null +++ b/offapi/com/sun/star/ui/dialogs/XWizardPage.idl @@ -0,0 +1,72 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + + +module com { module sun { module star { module ui { module dialogs { + + +/** is a single page of a Wizard + + @since OOo 3.3 + */ +interface XWizardPage : ::com::sun::star::lang::XComponent +{ + /** provides read-only access to the window of the page + */ + [attribute, readonly] ::com::sun::star::awt::XWindow Window; + + /** denotes the ID of the page. + + <p>Within a wizard, no two pages are allowed to have the same ID.</p> + */ + [attribute, readonly] short PageId; + + /** called when the page is activated + */ + void activatePage(); + + /** is called when the page is about to be left + + <p>An implementation can veto the leave by returning `FALSE` here. Usually, the decision about this + depends on the current state of the page.</p> + + @param Reason + is one of the WizardTravelType constants denoting the reason why the page should be + committed. + */ + boolean commitPage( [in] short Reason ); + + /** determines whether it is allowed to travel to a later page in the wizard + + <p>You should base this decision on the state of the page only, not on a global state of the wizard. Usually, + you return `FALSE` here if and only if not all necessary input on the page has been provided by the user, + or the provided input is not valid.</p> + + <p>If checked for validity is expensive, or if you prefer giving your user more detailed feedback on validity + than a disabled <code>Next</code> button in the wizard, then move your checks to the commitPage() + method.</p> + */ + boolean canAdvance(); +}; + + +}; }; }; }; }; + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |