From ed5640d8b587fbcfed7dd7967f3de04b37a76f26 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 11:06:44 +0200 Subject: Adding upstream version 4:7.4.7. Signed-off-by: Daniel Baumann --- .../sun/star/ui/XUIElementFactoryRegistration.idl | 159 +++++++++++++++++++++ 1 file changed, 159 insertions(+) create mode 100644 offapi/com/sun/star/ui/XUIElementFactoryRegistration.idl (limited to 'offapi/com/sun/star/ui/XUIElementFactoryRegistration.idl') diff --git a/offapi/com/sun/star/ui/XUIElementFactoryRegistration.idl b/offapi/com/sun/star/ui/XUIElementFactoryRegistration.idl new file mode 100644 index 000000000..7d184485c --- /dev/null +++ b/offapi/com/sun/star/ui/XUIElementFactoryRegistration.idl @@ -0,0 +1,159 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_ui_XUIElementFactoryRegistration_idl__ +#define __com_sun_star_ui_XUIElementFactoryRegistration_idl__ + +#include +#include +#include +#include +#include + + +module com { module sun { module star { module ui { + + +/** is used to query, register and deregister user interface element factories. + +

+ A user interface element factory is registered for a set of three properties. +

    +
  • Typea string that identifies a type of a user interface element.
  • +
  • Namea string that identifies a single user interface element within a type class.
  • +
  • Modulea string that identifies a single module of OpenOffice.
  • +
+ A combination of these three property values can uniquely identify every user interface + element within OpenOffice. + + Currently the following user interface element types are defined: +
    +
  • menubar
  • +
  • popupmenu
  • +
  • toolbar
  • +
  • statusbar
  • +
  • floater
  • +
+

+ + @since OOo 2.0 + */ + +interface XUIElementFactoryRegistration : com::sun::star::uno::XInterface +{ + /** function to retrieve a list of all registered user interface element factories + + @returns + a sequence of sequence of property values which describe every registered + user interface element factory.
+ + The following properties are defined: +
    +
  • Typea string property that identifies the type of the user interface + element which this factory can create.
  • +
  • Namean optional string property which identifies a single user interface + element within a type class which this factory can create. If this property is not + returned, the factory is a generic factory for all user interface elements of the + same type.
  • +
  • Modulean optional string property that specifies to which module this factory is + bound to. If this property is not returned, the factory is a generic factory.
  • +
+ */ + sequence< sequence< com::sun::star::beans::PropertyValue > > getRegisteredFactories(); + + /** function to retrieve a previously registered user interface element factory. + + @returns + a reference to a registered user interface element factory if a factory has been + found. An empty reference when no factory has been found. + The defined search order of factories must be from special to generic ones. + + @param ResourceURL + a resource URL which identifies a user interface element. A resource URL uses the + following syntax: "private:resource/$type/$name". It is only allowed to use ASCII + characters for type and name. + + @param ModuleIdentifier + an optional module identifier. This value can remain empty, if a generic factory is requested. + The module identifier can be retrieved from the com::sun::star::frame::ModuleManager service. + */ + ::com::sun::star::ui::XUIElementFactory getFactory( [in] string ResourceURL, [in] string ModuleIdentifier ); + + /** function to register a user interface element factory. + + @param aType + a string that identifies a type of a user interface element. Currently the following types + are supported: +
    +
  • menubar
  • +
  • toolbar
  • +
  • statusbar
  • +
+ + @param aName + an optional name of a single user interface element. This name must be unique within a user + interface element type class. This value can remain empty if no special factory for a single + user interface element is needed. + + @param aModuleIdentifier + an optional module identifier that can be used to register a factory only for a single module. This value + can remain empty if no special factory for a single module is needed. The module identifier can be retrieved + from the com::sun::star::frame::ModuleManager service. + + @param aFactoryImplementationName + a UNO implementation name that can be used by an implementation to create a factory instance. + */ + void registerFactory( [in] string aType, [in] string aName, [in] string aModuleIdentifier, [in] string aFactoryImplementationName ) raises (com::sun::star::container::ElementExistException); + + /** function to remove a previously defined user interface element factory. + + @param aType + a string that identifies a type of a user interface element. Currently the following types + are supported: +
    +
  • menubar
  • +
  • toolbar
  • +
  • statusbar
  • +
+ + @param aName + an optional name of a single user interface element. This name must be unique within a user + interface element type class. This value can remain empty if no special factory for a single + user interface element should be deregistered. + + @param ModuleIdentifier + an optional module name that can be used to deregister a factory only for a single module. This value + can remain empty if not a module based factory should be deregistered. The module identifier can be retrieved + from the com::sun::star::frame::ModuleManager service. + +

+ Using this function can be very dangerous as other implementation with OpenOffice may not be able to create their + user interface element anymore. + +

+ */ + void deregisterFactory( [in] string aType, [in] string aName, [in] string ModuleIdentifier ) raises (com::sun::star::container::NoSuchElementException); +}; + +}; }; }; }; + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ -- cgit v1.2.3