diff options
Diffstat (limited to 'offapi/com/sun/star/frame/XDocumentTemplates.idl')
-rw-r--r-- | offapi/com/sun/star/frame/XDocumentTemplates.idl | 195 |
1 files changed, 195 insertions, 0 deletions
diff --git a/offapi/com/sun/star/frame/XDocumentTemplates.idl b/offapi/com/sun/star/frame/XDocumentTemplates.idl new file mode 100644 index 000000000..ccac1af0f --- /dev/null +++ b/offapi/com/sun/star/frame/XDocumentTemplates.idl @@ -0,0 +1,195 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef __com_sun_star_frame_XDocumentTemplates_idl__ +#define __com_sun_star_frame_XDocumentTemplates_idl__ + +#include <com/sun/star/frame/XStorable.idl> +#include <com/sun/star/ucb/XContent.idl> + + +module com { module sun { module star { module frame { + +/** provides a high level API to organize document templates + + <p> + Template information is saved as links to the original content + and organized in groups. This data should be persistent and can be + updated by calling special method XDocumentTemplates::update(). + A real implementation of this interface can do that on top of + a ucb content provider. Method XDocumentTemplates::getContent() + force that. + </p> + */ +published interface XDocumentTemplates: com::sun::star::uno::XInterface +{ + /** provides access to the root of internal used hierarchy + + <p> + This content can be used for accessing the groups directly. + </p> + + @return + the ucb content for template configuration + */ + com::sun::star::ucb::XContent getContent(); + + /** creates the template with the given name in the given group using the + data from the storable + + @param GroupName + specifies the group + + @param TemplateName + specifies the template + + @param Storable + specifies the target + + @return + `TRUE` if operation was successful + <br> + `FALSE` otherwise + + @see XDocumentTemplates::addTemplate() + */ + boolean storeTemplate( + [in] string GroupName, + [in] string TemplateName, + [in] XStorable Storable); + + /** creates the template with the given name in the given group using the + given URL + + @param GroupName + specifies the group + + @param TemplateName + specifies the template + + @param SourceURL + specifies the position of template + + @return + `TRUE` if operation was successful + <br> + `FALSE` otherwise + + @see XDocumentTemplates::storeTemplate() + */ + boolean addTemplate( + [in] string GroupName, + [in] string TemplateName, + [in] string SourceURL); + + /** remove a template from specified group + + @param GroupName + specifies the group which include the template + + @param TemplateName + specifies the template for delete + + @return + `TRUE` if operation was successful + <br> + `FALSE` otherwise + */ + boolean removeTemplate( + [in] string GroupName, + [in] string TemplateName); + + /** rename a template inside specified group + + @param GroupName + specifies the group which include the template + + @param OldTemplateName + specifies the template for renaming + + @param NewTemplateName + specifies the new name for the template + + @return + `TRUE` if operation was successful + <br> + `FALSE` otherwise + */ + boolean renameTemplate( + [in] string GroupName, + [in] string OldTemplateName, + [in] string NewTemplateName); + + /** creates a new group + + @param GroupName + the name of the group to be created + + @return + `TRUE` if operation was successful + <br> + `FALSE` otherwise + */ + boolean addGroup( [in] string GroupName ); + + /** remove an existing group + + @param GroupName + the name of the group to be removed + + @return + `TRUE` if operation was successful + <br> + `FALSE` otherwise + */ + boolean removeGroup( [in] string GroupName ); + + /** rename an existing group + + @param OldGroupName + the old name of the group + + @param NewGroupName + the new name of the group + + @return + `TRUE` if operation was successful + <br> + `FALSE` otherwise + */ + boolean renameGroup( + [in] string OldGroupName, + [in] string NewGroupName); + + /** force an update for internal structures + + <p> + Because the templates are well known by links and not as direct content + they can be outdated. An update force actualization of that to find + wrong links. + </p> + */ + void update(); +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |