From 940b4d1848e8c70ab7642901a68594e8016caffc Mon Sep 17 00:00:00 2001
From: Daniel Baumann Common examples for such triggers are menu entries or toolbar icons. No assumption is made about any graphical representation:
+ You could have a menu or a toolbox working with the same container
+ describing their entries. Possible elements of the ActionTriggerContainer are
+
+
+
+ This entry type is of interest for components rendering a an
+ ActionTriggerContainer
+
Usually, the XMultiServiceFactory::getSupportedServiceNames() + gives you an ActionTrigger and + optionally ActionTriggerContainer and + ActionTriggerSeparator + + .
+ */ + interface ::com::sun::star::lang::XMultiServiceFactory; + + /** allows to enumerate the elements of the container + */ + [optional] interface ::com::sun::star::container::XEnumerationAccess; + + /** allows foreign components to register themselves as listener for the container + structure. + */ + [optional] interface ::com::sun::star::container::XContainer; +}; +}; }; }; }; +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/ui/ActionTriggerSeparator.idl b/offapi/com/sun/star/ui/ActionTriggerSeparator.idl new file mode 100644 index 000000000..2d4c2f7ce --- /dev/null +++ b/offapi/com/sun/star/ui/ActionTriggerSeparator.idl @@ -0,0 +1,39 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef __com_sun_star_ui_ActionTriggerSeparator_idl__ +#define __com_sun_star_ui_ActionTriggerSeparator_idl__ + +module com { module sun { module star { module ui { + + +/** describes a separator entry. Such entries are of interest + for components rendering an ActionTriggerContainer. +*/ +published service ActionTriggerSeparator +{ + /** determines the type of the separator using constants from + ActionTriggerSeparatorType. + */ + [optional, property] short SeparatorType; +}; + +}; }; }; }; +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/ui/ActionTriggerSeparatorType.idl b/offapi/com/sun/star/ui/ActionTriggerSeparatorType.idl new file mode 100644 index 000000000..dc6b201ec --- /dev/null +++ b/offapi/com/sun/star/ui/ActionTriggerSeparatorType.idl @@ -0,0 +1,43 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef __com_sun_star_ui_ActionTriggerSeparatorType_idl__ +#define __com_sun_star_ui_ActionTriggerSeparatorType_idl__ + +module com { module sun { module star { module ui { + +/** Determines the type of a separator in an ActionTriggerContainer. + */ +published constants ActionTriggerSeparatorType +{ + /** a separator is inserted as a line. + */ + const short LINE = 0; + /** a separator is inserted as a space. + */ + const short SPACE = 1; + /** a line break is inserted. + */ + const short LINEBREAK = 2; + +}; + +}; }; }; }; +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/ui/AddressBookSourceDialog.idl b/offapi/com/sun/star/ui/AddressBookSourceDialog.idl new file mode 100644 index 000000000..b986f3113 --- /dev/null +++ b/offapi/com/sun/star/ui/AddressBookSourceDialog.idl @@ -0,0 +1,51 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_ui_AddressBookSourceDialog_idl__ +#define __com_sun_star_ui_AddressBookSourceDialog_idl__ + +#include+ Configurable user interface elements are: +
+ A configurable user interface element must be initialized using + com::sun::star::lang::XInitialization::initialize() before + it can be used. The following properties must be provided: +
+ If the property #Persistent is `TRUE` changes on the structure of + the user interface element are written back to configuration source. When this property is + changed, afterwards XUIElementSettings::updateSettings() must be called so + the user interface element tries to retrieve its settings from the new user interface + configuration manager. +
+ */ + [property] com::sun::star::ui::XUIConfigurationManager ConfigurationSource; +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/ui/ConfigurationEvent.idl b/offapi/com/sun/star/ui/ConfigurationEvent.idl new file mode 100644 index 000000000..cf8afd226 --- /dev/null +++ b/offapi/com/sun/star/ui/ConfigurationEvent.idl @@ -0,0 +1,50 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_ui_ConfigurationEvent_idl__ +#define __com_sun_star_ui_ConfigurationEvent_idl__ + +#include+ A frame based layout manager supports four different docking areas where + dockable user interface elements can be docked. + + @see com::sun::star::frame::XLayoutManager +
+ + @since OOo 2.0 +*/ + +enum DockingArea +{ + /** the top docking area below the menu bar. + */ + DOCKINGAREA_TOP, + + /** the bottom docking area above the status bar. + */ + DOCKINGAREA_BOTTOM, + + /** the left side docking area. + */ + DOCKINGAREA_LEFT, + + /** the right side docking area. + */ + DOCKINGAREA_RIGHT, + + /** a default docking area. It depends on the implementation + how to treat this value. + */ + DOCKINGAREA_DEFAULT +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/ui/DocumentAcceleratorConfiguration.idl b/offapi/com/sun/star/ui/DocumentAcceleratorConfiguration.idl new file mode 100644 index 000000000..45d85b7d6 --- /dev/null +++ b/offapi/com/sun/star/ui/DocumentAcceleratorConfiguration.idl @@ -0,0 +1,40 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef __com_sun_star_ui_DocumentAcceleratorConfiguration_idl__ +#define __com_sun_star_ui_DocumentAcceleratorConfiguration_idl__ + +#include+ The constants describe bits in a bit field which determine + the current image set of an image manager. +
+ + @since OOo 2.0 + */ +constants ImageType +{ + /** an image with default size. + */ + const short SIZE_DEFAULT = 0; + + /** an image with large size. + */ + const short SIZE_LARGE = 1; + + /** an image with size 32. + @since LibreOffice 5.3 + */ + const short SIZE_32 = 2; + + /** an image with normal colors. + */ + const short COLOR_NORMAL = 0; + + /** an image with high contrast colors. + */ + const short COLOR_HIGHCONTRAST = 4; + +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/ui/ItemDescriptor.idl b/offapi/com/sun/star/ui/ItemDescriptor.idl new file mode 100644 index 000000000..a0c492ada --- /dev/null +++ b/offapi/com/sun/star/ui/ItemDescriptor.idl @@ -0,0 +1,93 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_ui_ItemDescriptor_idl__ +#define __com_sun_star_ui_ItemDescriptor_idl__ + +#includeCommon examples for such elements are: +
See constant definition + ItemType.
+ */ + [property] short Type; + + /** the text of the user interface item. + */ + [property] string Label; + + /** contains the command URL which specifies which action should be accomplished. + */ + [property] string CommandURL; + + /** contains the a URL that points to a help text. + */ + [property] string HelpURL; + + /** different styles which influence the appearance of the item and its behavior. +This property is only valid if the item describes a toolbar or statusbar + item. See ItemStyle for more information about possible styles.
+ */ + [optional, property] short Style; + + /** specifies the pixel distance by which the text of the item is shifted on the x-axis. +This property is only valid if the item describes a statusbar item.
+ */ + [optional, property] short Offset; + + /** specifies an optional sub container. +This property is valid for menus only. It can be used to define sub menus.
+ */ + [optional, property] com::sun::star::container::XIndexAccess ItemDescriptorContainer; + + /** specifies if this item is visible or not. +This property is only valid if the item describes a toolbar or statusbar item.
+ */ + [optional, property] boolean IsVisible; + + /** specifies a pixel width for this item inside the user interface element. +This property is only valid if the item describes a toolbar or statusbar item.
+ */ + [optional, property] short Width; +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/ui/ItemStyle.idl b/offapi/com/sun/star/ui/ItemStyle.idl new file mode 100644 index 000000000..155cfe510 --- /dev/null +++ b/offapi/com/sun/star/ui/ItemStyle.idl @@ -0,0 +1,165 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_ui_ItemStyle_idl__ +#define __com_sun_star_ui_ItemStyle_idl__ + + +module com { module sun { module star { module ui { + +/** + specifies styles which influence the appearance and the behavior of an + user interface item. + +
+ These styles are only valid if the item describes a toolbar or statusbar item.
+ The style values can be combined with the OR operator. Styles which are not valid
+ for an item will be ignored by the implementation.
+ There are two styles where
+ only one value is valid:
+ Alignment:
+
This style is only valid for an item which describes a statusbar item. + Draw item with a left aligned output.
+ */ + const short ALIGN_LEFT = 1; + + /** specifies how the output of the item is aligned in the bounding box of + the user interface element. +This style is only valid for an item which describes a statusbar item. + Draw item with a centered aligned output.
+ */ + const short ALIGN_CENTER = 2; + + /** specifies how the output of the item is aligned in the bounding box of + the user interface element. +This style is only valid for an item which describes a statusbar item. + Draw item with a right aligned output.
+ */ + const short ALIGN_RIGHT = 3; + + /** specifies how the implementation should draw the item. +This style is only valid for an item which describes a statusbar item. + Draw item with an embossed 3D effect.
+ */ + const short DRAW_OUT3D = 4; + + /** specifies how the implementation should draw the item. +This style is only valid for an item which describes a statusbar item. + Draw item with an impressed 3D effect.
+ */ + const short DRAW_IN3D = 8; + + /** specifies how the implementation should draw the item. +This style is only valid for an item which describes a statusbar item. + Draw item without an 3D effect.
+ */ + const short DRAW_FLAT = 12; + + /** specifies whether or not an item is displayed using an external function. +This style is only valid if the item describes a statusbar item.
+ */ + const short OWNER_DRAW = 16; + + /** specifies whether or not the size of the item is set automatically by + the parent user interface element. +This style is only valid if the item describes a toolbar or statusbar item.
+ */ + const short AUTO_SIZE = 32; + + /** determines whether the item unchecks neighbor entries which have also this style set. +This style is only valid if the item describes a toolbar item.
+ */ + const short RADIO_CHECK = 64; + + /** specifies if an icon is placed on left side of the text, like an entry in a taskbar. +This style is only valid if the item describes a toolbar item and visible if + style of the toolbar is set to symboltext.
+ +This style can also be used for custom toolbars and menus, in a + custom toolbar an item's Style setting can used to override the + toolbar container setting, the style can be bitwise OR-ed with + ::com::sun::star::ui::ItemStyle::TEXT to define text, + text+icon or icon only is to be displayed. Similarly for menu items, + an items Style can override the application setting to display either + text or icon (note: for menu an icon only setting interpreted as + icon+text)
+ */ + const short ICON = 128; + + /** specifies that the item supports a dropdown menu or toolbar for additional functions. +This style is only valid if the item describes a toolbar item.
+ */ + const short DROP_DOWN = 256; + + /** indicates that the item continues to execute the command while you click and hold + the mouse button. +This style is only valid if the item describes a toolbar item.
+ */ + const short REPEAT = 512; + + /** indicates that the item only supports a dropdown menu or toolbar for + additional functions. There is no function on the button itself. +This style is only valid if the item describes a toolbar item.
+ */ + const short DROPDOWN_ONLY = 1024; + /** indicates if icon, text or text+icon is displayed for the item. + +This style can be used for custom toolbars and menus, in a custom + toolbar an item's Style setting can used to override the toolbar + container setting, the style can be bitwise OR-ed with + com::sun::star::ui::ItemStyle::ICON to define text, + text+icon or icon only is to be displayed. Similarly for menu items, + an items Style can override the application setting to display either + text or icon (note: for menu an icon only setting interpreted as + icon+text)
+ */ + const short TEXT = 2048; + + /** marks always visible element which can not be removed when statusbar + width is not sufficient. + + @since LibreOffice 6.1 + */ + const short MANDATORY = 4096; +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/ui/ItemType.idl b/offapi/com/sun/star/ui/ItemType.idl new file mode 100644 index 000000000..64a1b5549 --- /dev/null +++ b/offapi/com/sun/star/ui/ItemType.idl @@ -0,0 +1,49 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef __com_sun_star_ui_ItemType_idl__ +#define __com_sun_star_ui_ItemType_idl__ + +module com { module sun { module star { module ui { + +/** Determines the type of an item. + + @since OOo 2.0 + */ +constants ItemType +{ + /** a normal item + */ + const short DEFAULT = 0; + /** a separator is inserted as a line. + */ + const short SEPARATOR_LINE = 1; + /** a separator is inserted as a space. + */ + const short SEPARATOR_SPACE = 2; + /** a line break is inserted. + */ + const short SEPARATOR_LINEBREAK = 3; + +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/ui/LayoutSize.idl b/offapi/com/sun/star/ui/LayoutSize.idl new file mode 100644 index 000000000..98fc05259 --- /dev/null +++ b/offapi/com/sun/star/ui/LayoutSize.idl @@ -0,0 +1,49 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef __com_sun_star_ui_LayoutSize_idl__ +#define __com_sun_star_ui_LayoutSize_idl__ + +module com { module sun { module star { module ui { + +/** Size used for layouting windows. + It specifies a range of valid values and a preferred value. + The values must not violate the relation 0 ≤ Minimum ≤ Preferred ≤ Maximum. + + @param Minimum + Zero or positive. The value itself is included in the valid + range. + @param Maximum + A value larger than or equal to Minimum. + The special value -1 means that there is no upper bound. Every value larger than or + equal to Minimum is valid. + @param Preferred + The preferred size inside the valid range. +*/ +struct LayoutSize +{ + long Minimum; + long Maximum; + long Preferred; +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/ui/ModuleAcceleratorConfiguration.idl b/offapi/com/sun/star/ui/ModuleAcceleratorConfiguration.idl new file mode 100644 index 000000000..532e93fb0 --- /dev/null +++ b/offapi/com/sun/star/ui/ModuleAcceleratorConfiguration.idl @@ -0,0 +1,39 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef __com_sun_star_ui_ModuleAcceleratorConfiguration_idl__ +#define __com_sun_star_ui_ModuleAcceleratorConfiguration_idl__ + +#include+ Every OpenOffice.org module has an amount of commands that can be used by + user interface elements. This service provides access to the user interface + commands that are part of a single OpenOffice.org module, like Writer + or Calc. +
+ + @since OOo 2.0 +*/ + +service ModuleUICategoryDescription +{ + /** provides access to user interface command categories of an installed + module. + ++ An implementation must provide a language dependent string which + can be used by a UI to display the category name. + The key to a user interface command category depends on the specific + implementation. OpenOffice.org uses a pre-defined number of + identifiers defined in ::com::sun::star::frame::CommandGroup. +
+ + @see ::com::sun::star::frame::ModuleManager + @see ::com::sun::star::frame::CommandGroup + */ + + interface com::sun::star::container::XNameAccess; +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/ui/ModuleUICommandDescription.idl b/offapi/com/sun/star/ui/ModuleUICommandDescription.idl new file mode 100644 index 000000000..d4364a329 --- /dev/null +++ b/offapi/com/sun/star/ui/ModuleUICommandDescription.idl @@ -0,0 +1,74 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_ui_ModuleUICommandDescription_idl__ +#define __com_sun_star_ui_ModuleUICommandDescription_idl__ + +#include+ Every OpenOffice.org module has an amount of commands that can be used by + user interface elements. This service provides access to the user interface commands + that are part of a single OpenOffice.org module, like Writer or Calc. +
+ + @since OOo 2.0 +*/ + +service ModuleUICommandDescription +{ + /** provides access to user interface commands of an installed module. + ++ An implementation must provide a com::sun::star::uno::Sequence which + has com::sun::star::beans::PropertyValue as entries. The following + entries a defined: +
+ A module user interface configuration manager supports two layers of configuration settings
+ data:
+ 1. Layer: A module default user interface configuration which describe all user interface
+ elements settings that are used by OpenOffice. It is not possible to insert, remove or change
+ elements settings in this layer through the interfaces.
+ 2. Layer: A module user interface configuration which only contains customized user interface
+ elements and user-defined ones. All changes on user interface element settings are done on
+ this layer.
+
+ A module user interface configuration manager instance needs the following arguments as + com::sun::star::beans::PropertyValue to be in a working state: +
+ Every OpenOffice.org module has an amount of user interface elements that can + be positioned, resized, closed and their style can be changed. This service + provides access to the window based information of available user interface + elements which are part of a single OpenOffice.org module, like Writer or + Calc. +
+ + @since OOo 2.0 +*/ + +service ModuleWindowStateConfiguration +{ + /** provides read/write access to window based information of user interface + elements which are part of single installed module. + ++ An implementation must provide a com::sun::star::uno::Sequence which + has com::sun::star::beans::PropertyValue as entries. The following + entries a defined: +
+ A user interface element consists of a unique identifier and a type specifier. It + provides an interface to retrieve a special purpose interface which depends on + the specific user interface element type. Every user interface must be initialized + before it can be used. +
+ + @since OOo 2.0 +*/ + +service UIElement +{ + /** provides a function to retrieve a special purpose interface which depends on + the specific user interface element type. + */ + interface ::com::sun::star::ui::XUIElement; + + /** interface to initialize a user interface element instance. + + A user interface element must be initialized using + com::sun::star::lang::XInitialization::initialize() before + it can be used. The following property must be provided: ++ A user interface element implementation should check if it has to update its visual + representation. It is up to the implementation if it ignores notifications. +
+ */ + [optional] interface com::sun::star::util::XUpdatable; + + /** controls the life-time of the object. + */ + interface ::com::sun::star::lang::XComponent; +}; + +}; }; }; }; + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/ui/UIElementFactory.idl b/offapi/com/sun/star/ui/UIElementFactory.idl new file mode 100644 index 000000000..1ffcf6afe --- /dev/null +++ b/offapi/com/sun/star/ui/UIElementFactory.idl @@ -0,0 +1,57 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_ui_UIElementFactory_idl__ +#define __com_sun_star_ui_UIElementFactory_idl__ + +#include+ It depends on the implementation which user interface element types can be + created. It is also possible that a factory is only able to create one + special user interface element. User interface element factories must be + registered at the single instance UIElementFactoryManager + service to provide access to itself. +
+ + @since OOo 2.0 +*/ + +service UIElementFactory +{ + /** this interface provides a function to create and initialize new + instances of user interface elements. + + @see XUIElementFactory + */ + interface com::sun::star::ui::XUIElementFactory; +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/ui/UIElementFactoryManager.idl b/offapi/com/sun/star/ui/UIElementFactoryManager.idl new file mode 100644 index 000000000..8a1645141 --- /dev/null +++ b/offapi/com/sun/star/ui/UIElementFactoryManager.idl @@ -0,0 +1,43 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_ui_UIElementFactoryManager_idl__ +#define __com_sun_star_ui_UIElementFactoryManager_idl__ + +#include+ No assumption is made about any graphical representation: + You could have a menu or a toolbar working with the same UIElementSettings + although limitations based on the real user interface element may be visible. +
+ + @since OOo 2.0 +*/ +service UIElementSettings +{ + /** provides access to the structure of the user interface element. + ++ The container contains the items of the user interface element. Every + item is stored as a sequence of com::sun::star::beans::PropertyValue. + The properties insides the sequence are defined by the service com::sun::star::ui::ItemDescriptor. + It depends on the function which provides these service if the container is shareable read-only or exclusive writable. + + @see com::sun::star::ui::ItemDescriptor + @see com::sun::star::ui::ItemType + @see com::sun::star::ui::ItemStyle +
+ */ + interface ::com::sun::star::container::XIndexAccess; + + + /** provides access to an optional factory interface to create sub container. + ++ The factory should be used to create sub container within this user interface element settings. This interface is only + available if the container is exclusive writable. +
+ */ + [optional] interface ::com::sun::star::lang::XSingleComponentFactory; + + /** determine an optional user interface name of the user interface element. + ++ A toolbar can show its user interface name on the window title, when it is in floating mode. +
+ */ + [optional, property] string UIName; +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/ui/UIElementType.idl b/offapi/com/sun/star/ui/UIElementType.idl new file mode 100644 index 000000000..91bf96ded --- /dev/null +++ b/offapi/com/sun/star/ui/UIElementType.idl @@ -0,0 +1,77 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef __com_sun_star_ui_UIElementType_idl__ +#define __com_sun_star_ui_UIElementType_idl__ + +module com { module sun { module star { module ui { + +/** determine the type of a user interface element which is controlled + by a layout manager. + + @since OOo 2.0 + */ +constants UIElementType +{ + /** unknown user interface element type, which can be used as a wildcard + to specify all types. + */ + const short UNKNOWN = 0; + + /** specifies a menu bar. + */ + const short MENUBAR = 1; + + /** specifies a pop-up menu. + */ + const short POPUPMENU = 2; + + /** specifies a toolbar. + */ + const short TOOLBAR = 3; + + /** specifies a statusbar. + */ + const short STATUSBAR = 4; + + /** specifies a floating window, which can also be docked. + */ + const short FLOATINGWINDOW = 5; + + /** specifies a floating window, which can also be docked. + */ + const short PROGRESSBAR = 6; + + /** specifies a tool panel + */ + const short TOOLPANEL = 7; + + /** specifies a window that can be docked. + */ + const short DOCKINGWINDOW = 7; + + /** specifies the number of constants. + */ + const short COUNT = 8; +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/ui/WindowContentFactory.idl b/offapi/com/sun/star/ui/WindowContentFactory.idl new file mode 100644 index 000000000..2f61ebefa --- /dev/null +++ b/offapi/com/sun/star/ui/WindowContentFactory.idl @@ -0,0 +1,49 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_ui_WindowContentFactory_idl__ +#define __com_sun_star_ui_WindowContentFactory_idl__ + +#include+ The specific type of the created window depends on the provided arguments. +
+ + @since OOo 3.1 +*/ + +service WindowContentFactory : com::sun::star::lang::XSingleComponentFactory +{ +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/ui/WindowContentFactoryManager.idl b/offapi/com/sun/star/ui/WindowContentFactoryManager.idl new file mode 100644 index 000000000..bddb5a7f9 --- /dev/null +++ b/offapi/com/sun/star/ui/WindowContentFactoryManager.idl @@ -0,0 +1,41 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef __com_sun_star_ui_WindowContentFactoryManager_idl__ +#define __com_sun_star_ui_WindowContentFactoryManager_idl__ + +#include
+ Such configuration set base on:
+
+ Note further:
+ All changes you made on this configuration access modify the
+ configuration set inside memory only. You have to use
+ the com::sun::star::util::XFlushable interface
+ (which must be available at the same implementation object too), to
+ make it persistent.
+
+ The key events are the "primary keys" of this configuration sets. + Means: Commands are registered for key events. +
+ ++ Such key event can be mapped to its bound command, + using the method getCommandForKeyEvent(). +
+ + @see getCommandForKeyEvent(). + + @return A list of key events. + */ + sequence< com::sun::star::awt::KeyEvent > getAllKeyEvents(); + + /** return the registered command for the specified key event. + +
+ This function can be used to:
+
+ If the specified key event does not already exists inside this + configuration access, it will be created and the command will be + registered for it. +
+ ++ If the specified key event already exists, its command will + be overwritten with the new command. There is no warning nor any error + about that! The outside code has to use the method getCommandForKeyEvent() + to check for possible collisions. +
+ ++ Note: This method can't be used to remove entities from the configuration set. + Empty parameters will result into an exception! + Use the method removeKeyEvent() instead. +
+ + @see removeKeyEvent() + + @param aKeyEvent + specify the key event, which must be updated or new created. + + @param sCommand + the new command for the specified key event. + + @throws ::com::sun::star::lang::IllegalArgumentException + if the key event isn't a valid one. Commands can be + checked only, if they are empty. Because every URL schema can be used + by commands in general, so it's not possible to validate it. + */ + void setKeyEvent( [in] com::sun::star::awt::KeyEvent aKeyEvent, + [in] string sCommand ) + raises(com::sun::star::lang::IllegalArgumentException, + com::sun::star::container::NoSuchElementException); + + /** remove a key-command-binding from this configuration set. + + @param aKeyEvent + the key event, which should be removed. + + @throws ::com::sun::star::container::NoSuchElementException + if the key event does not exists inside this configuration set. + */ + void removeKeyEvent( [in] com::sun::star::awt::KeyEvent aKeyEvent ) + raises(com::sun::star::container::NoSuchElementException); + + /** optimized access to the relation "command-key" instead + of "key-command" which is provided normally by this interface. + ++ It can be used to implement collision handling, if more than one + key event match to the same command. The returned list contains all + possible key events - and the outside code can select a possible one. + Of course - mostly this list will contain only one key event ... +
+ + @param sCommand + the command, where key bindings are searched for. + + @return A list of com::sun::star::awt::KeyEvent structures, + where the specified command is registered for. + + @throws ::com::sun::star::lang::IllegalArgumentException + if the specified command is empty. It can't be checked, if a command + is valid - because every URL schema can be used here. + + @throws ::com::sun::star::container::NoSuchElementException + if the specified command isn't empty but does not + occur inside this configuration set. + */ + sequence< com::sun::star::awt::KeyEvent > getKeyEventsByCommand( [in] string sCommand ) + raises(com::sun::star::lang::IllegalArgumentException , + com::sun::star::container::NoSuchElementException); + + /** optimized function to map a list of commands to a corresponding + list of key events. + ++ It provides a fast mapping, which is e.g. needed by a menu or toolbar implementation. + E.g. a sub menu is described by a list of commands - and the implementation of the menu + must show the corresponding shortcuts. Iteration over all items of this configuration + set can be very expensive. +
+ ++ Instead to the method getKeyEventsForCommand() the returned list contains only + one(!) key event bound to one(!) requested command. If more than one key event + is bound to a command - a selection is done inside this method. + This internal selection can't be influenced from outside. +
+ + @attention Because it's not defined, that any command (e.g. configured inside a menu) + must have an accelerator - we can't reject the call if at least one command + does not occur inside this configuration set ... + We handle it more gracefully - and return an empty item instead of throwing + and exception. + + @param lCommandList + a list of commands + + @return A (non packed!) list of key events, where every item match by index + directly to a command of the specified CommandList. + If a command does not exists inside this configuration set, the + corresponding any value will be empty. + + @throws ::com::sun::star::lang::IllegalArgumentException + if at least one of the specified commands is empty. + It can't be checked, if a command is valid - + because every URL schema can be used here. + */ + sequence< any > getPreferredKeyEventsForCommandList( [in] sequence< string > lCommandList ) + raises(com::sun::star::lang::IllegalArgumentException, + com::sun::star::container::NoSuchElementException); + + /** search for a key-command-binding inside this configuration set, + where the specified command is used. + ++ If such binding could be located, the command will be removed + from it. If as result of that the key binding will be empty, + if will be removed too. +
+ ++ This is an optimized method, which can perform removing of commands + from this configuration set. Because normally Commands are "foreign keys" + and key identifier the "primary keys" - it needs some work to remove + all commands outside this container ... +
+ + @param sCommand + the command, which should be removed from any key binding. + + @throws ::com::sun::star::lang::IllegalArgumentException + if the specified command is empty. + + @throws ::com::sun::star::container::NoSuchElementException + if the specified command isn't used inside this configuration set. + */ + void removeCommandFromAllKeyEvents( [in] string sCommand ) + raises(com::sun::star::lang::IllegalArgumentException , + com::sun::star::container::NoSuchElementException); + + /** specifies a persistence interface which supports to + load/store accelerator configuration data to a storage + and to retrieve information about the current state. + */ + interface com::sun::star::ui::XUIConfigurationPersistence; + + /** connects this configuration to a new storage + which must be used further on subsequent calls of + com::sun::star::util::XConfigurationPersistence.load() + and com::sun::star::util::XConfigurationPersistence.store(). + */ + interface com::sun::star::ui::XUIConfigurationStorage; + + /** supports to notify other implementations about + changes of this accelerator configuration. + */ + interface com::sun::star::ui::XUIConfiguration; + +}; // interface XAcceleratorConfiguration + +}; }; }; }; // com.sun.star + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/ui/XContextChangeEventListener.idl b/offapi/com/sun/star/ui/XContextChangeEventListener.idl new file mode 100644 index 000000000..71b352d76 --- /dev/null +++ b/offapi/com/sun/star/ui/XContextChangeEventListener.idl @@ -0,0 +1,38 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef __com_sun_star_ui_XContextChangeEventListener_idl__ +#define __com_sun_star_ui_XContextChangeEventListener_idl__ + +#includeThe order of removals is arbitrary. It is not necessary to remove the last + registered interceptor first.
+ */ + void releaseContextMenuInterceptor( [in]XContextMenuInterceptor Interceptor); +}; +}; }; }; }; +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/ui/XContextMenuInterceptor.idl b/offapi/com/sun/star/ui/XContextMenuInterceptor.idl new file mode 100644 index 000000000..1be269843 --- /dev/null +++ b/offapi/com/sun/star/ui/XContextMenuInterceptor.idl @@ -0,0 +1,44 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef __com_sun_star_ui_XContextMenuInterceptor_idl__ +#define __com_sun_star_ui_XContextMenuInterceptor_idl__ + +#include+ A docking area acceptor is responsible to control the docking area of a + container window. As OLE for example supports inplace and outplace editing, + there are different parts of code responsible for the container window. + This interface enables developer to make support implementations for these + scenarios. + + @see com::sun::star::frame::XFrame +
+ + @since OOo 2.0 +*/ + + +interface XDockingAreaAcceptor : com::sun::star::uno::XInterface +{ + /** provide the container window where the layout manager can request border + space for docking windows. + ++ Additionally the layout manager uses this window to create its own child + windows for docking purposes. +
+ */ + com::sun::star::awt::XWindow getContainerWindow(); + + /** method to ask an implementation if the provided space for docking windows + is available or not. + ++ The com::sun::star::awt::Rectangle parameter is + filled by the caller with pixel data. The members of + com::sun::star::awt::Rectangle must be filled + as following: +
+ The callee must size its document window so that we have the amount + of space we have provided. The com::sun::star::awt::Rectangle + parameter is filled by the caller with pixel data. The members of + com::sun::star::awt::Rectangle must be filled as + following: +
+ An image manager controls a number of image sets which are specified + by an ImageType. +
+*/ + +interface XImageManager +{ + /** resets the image manager to default data. + ++ This means that all user images of the instance will be removed. +
+ */ + void reset() raises ( com::sun::star::lang::IllegalArgumentException, com::sun::star::lang::IllegalAccessException ); + + /** retrieves the list of command URLs which have images associated. + + @param nImageType + specifies the image type for this operation. + + @return + all command URLs within the images manager that have an image + associated. + */ + sequence< string > getAllImageNames( [in] short nImageType ); + + /** determines if a command URL has an associated image. + + @param nImageType + specifies the image type for this operation. + + @param CommandURL + a command URL that should be checked for an associated image. + + @return + `TRUE` if an image is associated, otherwise `FALSE`. + */ + boolean hasImage( [in] short nImageType, [in] string CommandURL ) raises ( com::sun::star::lang::IllegalArgumentException ); + + /** retrieves the associated images of command URLs. + + @param nImageType + specifies the image type for this association operation. + + @param aCommandURLSequence + a sequence of command URLs for which the images are requested. + + @return + a sequence of graphics object which are associated with the + provided command URLs. If an unknown command URL is provided or + a command URL has no associated image a graphics object with an + empty image is provided. If the sequence + aCommandURLSequence contains an invalid command + URL a com::sun::star::lang::IllegalArgumentException + is thrown. + */ + sequence< ::com::sun::star::graphic::XGraphic > getImages( [in] short nImageType, [in] sequence< string > aCommandURLSequence ) raises ( com::sun::star::lang::IllegalArgumentException ); + + /** replaces the associated images of command URLs. + + @param nImageType + specifies the image type for this association operation. + + @param aCommandURLSequence + a sequence of command URLs for which images should be replaced. + + @param aGraphicsSequence + a sequence of graphic objects which should replace the old images + of the provided command URLs. + ++ If a command URL cannot be found the replace call will be omitted. If + aCommandURLSequence contains an invalid command URL a + com::sun::star::lang::IllegalArgumentException + is thrown. If the image manager is associated with a read-only configuration + manager a com::sun::star::lang::IllegalAccessException + is thrown. +
+ */ + void replaceImages( [in] short nImageType, [in] sequence< string > aCommandURLSequence, [in] sequence< ::com::sun::star::graphic::XGraphic > aGraphicsSequence ) raises ( com::sun::star::lang::IllegalArgumentException, com::sun::star::lang::IllegalAccessException ); + + /** removes associated images to a command URL. + + @param nImageType + specifies the image type for this association operation. + + @param CommandURLs + a sequence of command URLs for which the images should be removed. + ++ If the aCommandURLSequence contains an invalid command URL a + com::sun::star::lang::IllegalArgumentException is + thrown. If the image manager is associated with a read-only configuration + manager a com::sun::star::lang::IllegalAccessException + is thrown. +
+ */ + void removeImages( [in] short nImageType, [in] sequence< string > CommandURLs ) raises ( com::sun::star::lang::IllegalArgumentException, com::sun::star::lang::IllegalAccessException ); + + /** inserts new image/command associations to an image manager. + + @param nImageType + specifies the image type for this association operation. + + @param aCommandURLSequence + a sequence of command URLs which specify which commands get a new image. + + @param aGraphicSequence + a sequence of graphic objects which should be associated with the provided + command URLs. + ++ If an association is already present it is replaced. If + aCommandURLSequence contains an invalid command URL a + com::sun::star::lang::IllegalArgumentException + is thrown. If the configuration manager is read-only a + com::sun::star::lang::IllegalAccessException is + thrown. +
+ */ + void insertImages( [in] short nImageType, [in] sequence< string > aCommandURLSequence, [in] sequence< ::com::sun::star::graphic::XGraphic > aGraphicSequence ) raises ( com::sun::star::container::ElementExistException, com::sun::star::lang::IllegalArgumentException, com::sun::star::lang::IllegalAccessException ); + + /** provides access to persistence functions to load/store images + data from a storage. + */ + interface com::sun::star::ui::XUIConfigurationPersistence; + + /** provides functions to add and remove listeners for changes within an + image manager. + ++ An image manager implementation notifies its listener whenever an image + set has been changed, due to insert, remove or replace operations. To + minimize the overhead for notifications an image manager places all + inserted and/or replaced images into a single notify call. A container + which implements com::sun::star::container::XNameAccess + holds the information. The access key is a command URL and provides a + ::com::sun::star::graphic::XGraphic. This container + is placed into the + com::sun::star::ui::ConfigurationEvent::Element. + The image set which has been changed is put into the + com::sun::star::ui::ConfigurationEvent::aInfo(). +
+ */ + interface com::sun::star::ui::XUIConfiguration; + + /** allows controlling or observing the lifetime of an image manager + instance. + +The owner of the object may dispose of this object using + com::sun::star::lang::XComponent::dispose(). +
+ */ + interface ::com::sun::star::lang::XComponent; + + /** initializes an image manager instance. + + An image manager instance must be initialized using + com::sun::star::lang::XInitialization::initialize() + before it can be used.
+ A module user interface configuration manager supports, unlike a
+ document based ui configuration manager, two layers of configuration
+ settings data:
+ 1. Layer: A module default user interface configuration which
+ describe all user interface elements settings that are
+ used by OpenOffice. It is not possible to insert, remove
+ or change elements settings in this layer through the
+ interfaces.
+ 2. Layer: A module user interface configuration which only contains
+ customized user interface elements and user-defined ones.
+ All changes on user interface element settings are done on
+ this layer. This layer is the same as the document ui
+ configuration manager uses.
+
The following values apply for a status bar item:
+It is allowed for an implementation to return `NULL` here, but in this case some functionality, for instance + automatic positioning of the tool panel, might not be available, and must be implemented by the tool panel itself.
+ */ + [attribute, readonly] ::com::sun::star::awt::XWindow Window; + + /** creates the root of the Accessibility object tree for the tool panel + @param ParentAccessible + the parent object in the Accessibility object tree + */ + ::com::sun::star::accessibility::XAccessible + createAccessible( [in] ::com::sun::star::accessibility::XAccessible ParentAccessible ); +}; + + +}; }; }; }; + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/ui/XUIConfiguration.idl b/offapi/com/sun/star/ui/XUIConfiguration.idl new file mode 100644 index 000000000..f3d419e37 --- /dev/null +++ b/offapi/com/sun/star/ui/XUIConfiguration.idl @@ -0,0 +1,76 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_ui_XUIConfiguration_idl__ +#define __com_sun_star_ui_XUIConfiguration_idl__ + +#include+ The XUIConfiguration interface is provided for user + interface configuration managers which need to broadcast changes + within the container; that means the actions of adding, replacing + and removing elements are broadcast to listeners. +
+ +This can be useful for UI to enable/disable some functions without + actually accessing the data.
+ + @since OOo 2.0 +*/ + +published interface XUIConfiguration : ::com::sun::star::uno::XInterface +{ + /** adds the specified listener to receive events when elements are + changed, inserted or removed. + ++ It is suggested to allow multiple registration of the same + listener, thus for each time a listener is added, it has to be + removed. + + @see XUIConfigurationListener +
+ */ + void addConfigurationListener( [in] ::com::sun::star::ui::XUIConfigurationListener Listener ); + + /** removes the specified listener so it does not receive any events + from this user interface configuration manager. + +It is suggested to allow multiple registration of the same + listener, thus for each time a listener is added, it has to be + removed. + + @see XUIConfigurationListener +
+ */ + void removeConfigurationListener( [in] ::com::sun::star::ui::XUIConfigurationListener Listener ); +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/ui/XUIConfigurationListener.idl b/offapi/com/sun/star/ui/XUIConfigurationListener.idl new file mode 100644 index 000000000..a6637d27e --- /dev/null +++ b/offapi/com/sun/star/ui/XUIConfigurationListener.idl @@ -0,0 +1,70 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_ui_XUIConfigurationListener_idl__ +#define __com_sun_star_ui_XUIConfigurationListener_idl__ + +#include+ This means that all user interface configuration data of the + instance will be removed. A module based user interface + configuration manager removes user defined elements, but set all + other elements back to default. It is not possible to remove + default elements from a module user interface configuration + manager. +
+ */ + void reset(); + + /** retrieves information about all user interface elements within + the user interface configuration manager. + + @param ElementType + makes it possible to narrow the result set to only one type + of user interface elements. If all user interface element + types should be returned com::sun::star::ui::UIElementType::UNKNOWN + must be provided. + + @return + returns all user interface elements within the user interface + configuration manager that meet the given ElementType + specification.The following + com::sun::star::beans::PropertyValue entries + are defined inside the sequence for every user interface element. +
+ + @see UIElementType + */ + sequence< sequence< com::sun::star::beans::PropertyValue > > getUIElementsInfo( [in] short ElementType ) raises ( com::sun::star::lang::IllegalArgumentException ); + + /** creates an empty settings data container. + + @return + an empty user interface element settings data container, which + implements UIElementSettings. + */ + ::com::sun::star::container::XIndexContainer createSettings(); + + /** determines if the settings of a user interface element is part the + user interface configuration manager. + + @param ResourceURL + a resource URL which identifies the user interface element. A + resource URL must meet the following syntax: + "private:resource/$type/$name. It is only allowed to use ASCII + characters for type and name. + + @return + `TRUE` if settings have been found, otherwise `FALSE`. + */ + boolean hasSettings( [in] string ResourceURL ) raises ( com::sun::star::lang::IllegalArgumentException ); + + /** retrieves the settings of a user interface element. + + @param ResourceURL + a resource URL which identifies the user interface element. A + resource URL must meet the following syntax: + "private:resource/$type/$name. It is only allowed to use ASCII + characters for type and name. + + @param bWriteable + must be `TRUE` if the retrieved settings should be a writable. + Otherwise `FALSE` should be provided to get a shareable reference + to the settings data. + + @return + settings data of an existing user interface element, which + implements UIElementSettings. If the settings data + cannot be found a + com::sun::star::container::NoSuchElementException + is thrown. If the \p ResourceURL is not valid or + describes an unknown type a + com::sun::star::lang::IllegalArgumentException + is thrown. + */ + ::com::sun::star::container::XIndexAccess getSettings( [in] string ResourceURL, [in] boolean bWriteable ) raises ( com::sun::star::container::NoSuchElementException, com::sun::star::lang::IllegalArgumentException ); + + /** replaces the settings of a user interface element with new settings. + + @param ResourceURL + a resource URL which identifies the user interface element to + be replaced. If no element with the given resource URL exists a + com::sun::star::container::NoSuchElementException + is thrown. + + @param aNewData + the new settings data of an existing user interface element, which + implements UIElementSettings. + +
+ If the settings data cannot be found a + com::sun::star::container::NoSuchElementException + is thrown. If the \p ResourceURL is not valid or describes + an unknown type a + com::sun::star::lang::IllegalArgumentException + is thrown. If the configuration manager is read-only a + com::sun::star::lang::IllegalAccessException is + thrown. +
+ */ + void replaceSettings( [in] string ResourceURL, [in] ::com::sun::star::container::XIndexAccess aNewData ) raises ( com::sun::star::container::NoSuchElementException, com::sun::star::lang::IllegalArgumentException, com::sun::star::lang::IllegalAccessException ); + + /** removes the settings of an existing user interface element. + + @param ResourceURL + a resource URL which identifies the user interface element settings + to be removed. + ++ If the settings data cannot be found a + com::sun::star::container::NoSuchElementException is + thrown. If the \p ResourceURL is not valid or describes an + unknown type a com::sun::star::lang::IllegalArgumentException + is thrown. If the configuration manager is read-only a + com::sun::star::lang::IllegalAccessException is thrown. +
+ */ + void removeSettings( [in] string ResourceURL ) raises ( com::sun::star::container::NoSuchElementException, com::sun::star::lang::IllegalArgumentException, com::sun::star::lang::IllegalAccessException ); + + /** inserts the settings of a new user interface element. + + @param NewResourceURL + a resource URL which identifies the new user interface element. + + @param aNewData + the settings data of the new user interface element, which implements + UIElementSettings. + ++ If the settings data is already present a + com::sun::star::container::ElementExistException + is thrown. If the \p NewResourceURL is not valid or describes + an unknown type a com::sun::star::lang::IllegalArgumentException + is thrown. If the configuration manager is read-only a + com::sun::star::lang::IllegalAccessException is thrown. +
+ */ + void insertSettings( [in] string NewResourceURL, [in] ::com::sun::star::container::XIndexAccess aNewData ) raises ( com::sun::star::container::ElementExistException, com::sun::star::lang::IllegalArgumentException, com::sun::star::lang::IllegalAccessException ); + + /** retrieves the image manager from the user interface configuration + manager. + ++ Every user interface configuration manager has one image manager + instance which controls all images of a module or document. +
+ + @return + the image manager of the user interface configuration manager. + */ + com::sun::star::uno::XInterface getImageManager(); + + /** retrieves the keyboard short cut manager from the user interface + configuration manager. + ++ Every user interface configuration manager has one keyboard short cut + manager instance which controls all short cuts of a module or document. +
+ + @return + the short cut manager of the user interface configuration manager. + */ + com::sun::star::ui::XAcceleratorConfiguration getShortCutManager(); + + /** retrieves the events manager from the user interface configuration manager. + ++ Every user interface configuration manager has one events manager + instance which controls the mapping of events to script URLs of a module + or document. +
+ + @return + the events manager of the user interface configuration + manager, if one exists. + */ + com::sun::star::uno::XInterface getEventsManager(); +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/ui/XUIConfigurationManager2.idl b/offapi/com/sun/star/ui/XUIConfigurationManager2.idl new file mode 100644 index 000000000..99e7a0429 --- /dev/null +++ b/offapi/com/sun/star/ui/XUIConfigurationManager2.idl @@ -0,0 +1,70 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef __com_sun_star_ui_XUIConfigurationManager2_idl__ +#define __com_sun_star_ui_XUIConfigurationManager2_idl__ + +#includeThe owner of the object may dispose of this object using + com::sun::star::lang::XComponent::dispose(). +
+ */ + interface ::com::sun::star::lang::XComponent; +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/ui/XUIConfigurationManagerSupplier.idl b/offapi/com/sun/star/ui/XUIConfigurationManagerSupplier.idl new file mode 100644 index 000000000..caa4ba2f5 --- /dev/null +++ b/offapi/com/sun/star/ui/XUIConfigurationManagerSupplier.idl @@ -0,0 +1,51 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_ui_XUIConfigurationManagerSupplier_idl__ +#define __com_sun_star_ui_XUIConfigurationManagerSupplier_idl__ + +#include+ It is up to the implementation if it defers the first loading process + until the first data request using XUIConfigurationManager + interface. +
+ */ + void reload() raises ( ::com::sun::star::uno::Exception ); + + /** stores the configuration data to the storage provided by + setStorage() from the storage and initialize the + user interface configuration manager instance with the newly + data. This call can throw an + com::sun::star::io::IOException if + store() cannot store its data into the internal + storage. + */ + void store() raises ( ::com::sun::star::uno::Exception ); + + /** stores the configuration data to the provided storage, ignoring + the previously set storage by setStorage(). Can + be used to make copy of the current user interface configuration + data to another storage. This call will throw an + com::sun::star::io::IOException if the provided + storage is in read-only mode. + + @param Storage + all configuration data will be stored to this storage. + */ + void storeToStorage( [in] ::com::sun::star::embed::XStorage Storage ) raises ( ::com::sun::star::uno::Exception ); + + /** provides the current modify state of the configuration manager + instance. + + @return + `TRUE` if the configuration manager has changed since the + last store() call. `FALSE` if the configuration + manager has not been changed. + */ + boolean isModified(); + + /** provides the current read-only state of the user configuration + manager. Storing a user interface configuration to a read-only storage + is not possible. A read-only configuration manager instance will also + not support any changes to its configuration settings. + + @return + `TRUE` if the configuration manager storage is read-only otherwise + `FALSE`. + */ + boolean isReadOnly(); +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/ui/XUIConfigurationStorage.idl b/offapi/com/sun/star/ui/XUIConfigurationStorage.idl new file mode 100644 index 000000000..7823e6c4e --- /dev/null +++ b/offapi/com/sun/star/ui/XUIConfigurationStorage.idl @@ -0,0 +1,75 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_ui_XUIConfigurationStorage_idl__ +#define __com_sun_star_ui_XUIConfigurationStorage_idl__ + +#include+ This call needs careful usage as data loss can occur. If the + implementation has modified data and a new storage is set the + implementation is not allowed to write back the data to the old + storage. This must be done explicitly with store(). + In general a user interface configuration manager instance is + created and initialize by the document model or the module user + interface configuration supplier. Normally there is no need to + set a storage for a user interface configuration manager. If a + copy of the configuration data to another storage should be made, + use storeToStorage(). +
+ */ + void setStorage( [in] ::com::sun::star::embed::XStorage Storage ); + + /** checks if an instance has already a storage to load/store its data. + + @return + `TRUE` if the instance has a storage otherwise `FALSE`. + */ + boolean hasStorage(); +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/ui/XUIElement.idl b/offapi/com/sun/star/ui/XUIElement.idl new file mode 100644 index 000000000..f67284c0c --- /dev/null +++ b/offapi/com/sun/star/ui/XUIElement.idl @@ -0,0 +1,80 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_ui_XUIElement_idl__ +#define __com_sun_star_ui_XUIElement_idl__ + +#include+ The type of the interface depends on the real type of the user interface + element. A menubar user interface element provides access to its + com::sun::star::awt::XSystemDependentMenuBarPeer + which supports to retrieve the system dependent menu handle. + A floating window or a toolbar user interface element return a + com::sun::star::awt::XWindow + interface. +
+*/ + +interface XUIElement : com::sun::star::uno::XInterface +{ + /** returns an interface to get access to user interface type specific functions. + + @return + a special purpose interface which depends on the type of the user + interface element. + */ + ::com::sun::star::uno::XInterface getRealInterface(); + + /** determines the document frame to which this element is bound to. + +The life time of a user interface element does not explicitly depend on the + frame itself but on the visible component attached to the frame. It is possible + to exchange the visible component of a frame and that will lead to the end of + life of all user interface elements.
+ */ + [readonly, attribute] ::com::sun::star::frame::XFrame Frame; + + /** a resource URL which is a unique identifier of a user interface element. + */ + [readonly, attribute] string ResourceURL; + + /** determines the type of the user interface element. + + @see UIElementType + */ + [readonly, attribute] short Type; +}; + +}; }; }; }; + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/ui/XUIElementFactory.idl b/offapi/com/sun/star/ui/XUIElementFactory.idl new file mode 100644 index 000000000..c87638c0e --- /dev/null +++ b/offapi/com/sun/star/ui/XUIElementFactory.idl @@ -0,0 +1,130 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_ui_XUIElementFactory_idl__ +#define __com_sun_star_ui_XUIElementFactory_idl__ + +#include+ User interface element factories must be registered at a + UIElementFactoryManager service to provide access to itself. + + Currently the following user interface element types are defined: +
+ An implementation is responsible to initialize every newly created user + interface element if the necessary properties are provided. Especially + it must connect a configurable user interface element to the correct user + interface configuration manager. Without this connection the configurable + user interface element cannot retrieve its structure data and changes to + the user interface element structure won't be persistent. It is up to the + implementation to throw an + com::sun::star::lang::IllegalArgumentException + if it cannot create a user interface element with the provided arguments. + + @see ConfigurableUIElement + @see UIElement +
+ */ + ::com::sun::star::ui::XUIElement createUIElement( [in] string ResourceURL, [in] sequence< com::sun::star::beans::PropertyValue > Args ) raises ( com::sun::star::container::NoSuchElementException, com::sun::star::lang::IllegalArgumentException ); +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/ui/XUIElementFactoryManager.idl b/offapi/com/sun/star/ui/XUIElementFactoryManager.idl new file mode 100644 index 000000000..9b41f40ab --- /dev/null +++ b/offapi/com/sun/star/ui/XUIElementFactoryManager.idl @@ -0,0 +1,57 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_ui_XUIElementFactoryManager_idl__ +#define __com_sun_star_ui_XUIElementFactoryManager_idl__ + +#include+ A user interface element factory manager is also a user interface element factory. It + retrieves the responsible user interface element factory from the provided arguments and passes + the arguments to it. + + @see XUIElementFactory +
+ */ + interface XUIElementFactory; + + /** provides functions to query, retrieve, register and deregister user interface element factories. + */ + interface XUIElementFactoryRegistration; +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ 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+ A user interface element factory is registered for a set of three properties. +
+ 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: */ diff --git a/offapi/com/sun/star/ui/XUIElementSettings.idl b/offapi/com/sun/star/ui/XUIElementSettings.idl new file mode 100644 index 000000000..3d0a7b105 --- /dev/null +++ b/offapi/com/sun/star/ui/XUIElementSettings.idl @@ -0,0 +1,88 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_ui_XUIElementSettings_idl__ +#define __com_sun_star_ui_XUIElementSettings_idl__ + +#include+ This is not done automatically as configurable user interface elements + are controlled by layout managers. It is more efficient to let the + responsible layout manager to control the update process in a single + task. +
+ */ + void updateSettings(); + + /** provides a UIElementSettings instance that provides access + to the structure of user interface element if the user interface element + type supports it. + + @param bWriteable + must be `TRUE` if the retrieved settings should be a writable. + Otherwise `FALSE` should be provided to get a shareable reference + to the settings data. + + @return + the current settings of the user interface element. + */ + com::sun::star::container::XIndexAccess getSettings( [in] boolean bWriteable ); + + /** set changes to the structure of the user interface element. + + @param UISettings + new data settings for the configurable user interface element. + + ++ User interface elements cannot be changed directly. The changed structure + data has to be set again. This speeds up the configuration process if many + changes have to be made on the structure. The persistence of changes are + controlled by the boolean property Persistent. + +
+ + @see com::sun::star::ui::UIElementSettings + */ + void setSettings( [in] com::sun::star::container::XIndexAccess UISettings ); +}; + +}; }; }; }; + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/ui/XUIFunctionListener.idl b/offapi/com/sun/star/ui/XUIFunctionListener.idl new file mode 100644 index 000000000..1ee857d3a --- /dev/null +++ b/offapi/com/sun/star/ui/XUIFunctionListener.idl @@ -0,0 +1,53 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef __com_sun_star_ui_XUIFunctionListener_idl__ +#define __com_sun_star_ui_XUIFunctionListener_idl__ + +#includeThe broadcaster who sends such event, must send the dialog as the source.
+ + @see com::sun::star::lang::EventObject +*/ +struct DialogClosedEvent: com::sun::star::lang::EventObject +{ + /** + @param DialogResult + Identifies the result of a dialog. + + @see ExecutableDialogResults + */ + short DialogResult; +}; + + +}; }; }; }; }; + +#endif + +/* 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 000000000..a632953a3 --- /dev/null +++ b/offapi/com/sun/star/ui/dialogs/ExecutableDialogException.idl @@ -0,0 +1,39 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_ui_dialogs_ExecutableDialogException_idl__ +#define __com_sun_star_ui_dialogs_ExecutableDialogException_idl__ + +#includeThese 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.
+ + @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; +}; + + +}; }; }; }; }; + +#endif + +/* 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 000000000..463674813 --- /dev/null +++ b/offapi/com/sun/star/ui/dialogs/FilePicker.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 . + */ + +#ifndef __com_sun_star_ui_dialogs_FilePicker_idl__ +#define __com_sun_star_ui_dialogs_FilePicker_idl__ + +#includeNotes for the implementation of a FileSave dialog: + 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.
+ + @see com::sun::star::ui::dialogs::TemplateDescription + */ + createWithMode([in] short Mode); +}; + + +}; }; }; }; }; + +#endif + +/* 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 000000000..2c834e893 --- /dev/null +++ b/offapi/com/sun/star/ui/dialogs/FilePickerEvent.idl @@ -0,0 +1,49 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_ui_dialogs_FilePickerEvent_idl__ +#define __com_sun_star_ui_dialogs_FilePickerEvent_idl__ + +#includeThe 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.
+ +The application will set the com::sun::star::document::MediaDescriptor + using the interface com::sun::star::beans::XPropertyAccess and then + call XExecutableDialog::execute().
+ +If that method returns ExecutableDialogResults::OK
,
+ 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.
Otherwise, the filter operation is canceled.
+ + @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() + returnsExecutableDialogResults::OK
,
+ the options can be retrieved by calling
+ com::sun::star::beans::XPropertyAccess::getPropertyValues.
+ */
+ interface ::com::sun::star::ui::dialogs::XExecutableDialog;
+};
+
+
+}; }; }; }; };
+
+#endif
+
+/* 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 000000000..a283c6085
--- /dev/null
+++ b/offapi/com/sun/star/ui/dialogs/FolderPicker.idl
@@ -0,0 +1,38 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#ifndef __com_sun_star_ui_dialogs_FolderPicker_idl__
+#define __com_sun_star_ui_dialogs_FolderPicker_idl__
+
+#include 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.
+ + @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 ); +}; + + +}; }; }; }; }; + +#endif + +/* 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 000000000..3fbe3f2aa --- /dev/null +++ b/offapi/com/sun/star/ui/dialogs/XControlInformation.idl @@ -0,0 +1,94 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_ui_dialogs_XControlInformation_idl__ +#define __com_sun_star_ui_dialogs_XControlInformation_idl__ + +#includeRegistered listeners will be notified with a + DialogClosedEvent when a XAsynchronousExecutableDialog is closed.
+ + @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 ); +}; + +}; }; }; }; }; + +#endif + +/* 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 000000000..610a0859d --- /dev/null +++ b/offapi/com/sun/star/ui/dialogs/XExecutableDialog.idl @@ -0,0 +1,58 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_ui_dialogs_XExecutableDialog_idl__ +#define __com_sun_star_ui_dialogs_XExecutableDialog_idl__ + +#includeIf the multi-selection mode is enabled, multiple files + may be selected by the user else only one file selection at a time is possible
+ + @param bMode +A value of `TRUE` enables the multi-selection mode.
+A value of `FALSE` disables the multi-selection mode, this is the default.
+ */ + void setMultiSelectionMode( [in] boolean bMode ); + + /** Sets the default string that appears in the file name box of a FilePicker. + + @param aName +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. +
+ */ + 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 Rfc1738). + + @throws com::sun::star::lang::IllegalArgumentException + if the URL is invalid (doesn't conform to Rfc1738). + */ + 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 Rfc1738. + */ + string getDisplayDirectory(); + + /** Returns a sequence of the selected files including path information in + URL format, conforming to Rfc1738. + +If the user closed the dialog with cancel an empty sequence will be + returned.
+If the dialog is in execution mode and a single file is selected + the complete URL of this file will be returned.
+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.
+ + @returns + The complete path of the file or directory currently selected
+ in URL format. This always returns only the first entry of the sequence.
+
+
Notes for the implementation of a FileSave dialog: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.
+ + @deprecated use com::sun::star::ui::dialogs::XFilePicker2::getSelectedFiles instead + */ + sequence< string > getFiles(); +}; + + +}; }; }; }; }; + + +#endif + +/* 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 000000000..b04517f51 --- /dev/null +++ b/offapi/com/sun/star/ui/dialogs/XFilePicker2.idl @@ -0,0 +1,62 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_ui_dialogs_XFilePicker2_idl__ +#define __com_sun_star_ui_dialogs_XFilePicker2_idl__ + +#includeIf the user closed the dialog with cancel an empty sequence will be returned.
+If the user closed the dialog with OK a list of all selected files will be returned.
+ + @attention ++ Instead to the method getFiles() of base interface XFilePicker the new method return + full qualified URLs for every selected file. +
+ + @returns +A list of all selected file as complete URLs.
+Notes for the implementation of a FileSave dialog: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).
+ */ + sequence< string > getSelectedFiles(); +}; + + +}; }; }; }; }; + +#endif + +/* 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 000000000..d2ee0e2d7 --- /dev/null +++ b/offapi/com/sun/star/ui/dialogs/XFilePicker3.idl @@ -0,0 +1,78 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_ui_dialogs_XFilePicker3_idl__ +#define __com_sun_star_ui_dialogs_XFilePicker3_idl__ + +#includeThis may be useful for automatic test tools for instance.
+ */ + interface com::sun::star::util::XCancellable; + + /** For shutdown and listener support. + */ + interface com::sun::star::lang::XComponent; + +}; + + +}; }; }; }; }; + +#endif + +/* 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 000000000..e50db024c --- /dev/null +++ b/offapi/com/sun/star/ui/dialogs/XFilePickerControlAccess.idl @@ -0,0 +1,136 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_ui_dialogs_XFilePickerControlAccess_idl__ +#define __com_sun_star_ui_dialogs_XFilePickerControlAccess_idl__ + +#includeA FilePicker may contain additional elements according to the needs + of the different applications. These additional elements can be + addressed by this interface.
+ + @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 +If `TRUE` the specified control will be enabled.
+If `FALSE` the specified control will be disabled.
+ + @see com::sun::star::ui::dialogs::CommonFilePickerElementIds + @see com::sun::star::ui::dialogs::ExtendedFilePickerElementIds +*/ +void enableControl( [in] short ControlId, [in] boolean bEnable ); +}; + + +}; }; }; }; }; + + +#endif + +/* 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 000000000..21d82c810 --- /dev/null +++ b/offapi/com/sun/star/ui/dialogs/XFilePickerListener.idl @@ -0,0 +1,100 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_ui_dialogs_XFilePickerListener_idl__ +#define __com_sun_star_ui_dialogs_XFilePickerListener_idl__ + +#includeThe 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.
+*/ + +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( ); +}; + + +}; }; }; }; }; + + +#endif + +/* 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 000000000..9c20dc932 --- /dev/null +++ b/offapi/com/sun/star/ui/dialogs/XFilePickerNotifier.idl @@ -0,0 +1,58 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_ui_dialogs_XFilePickerNotifier_idl__ +#define __com_sun_star_ui_dialogs_XFilePickerNotifier_idl__ + +#includeInvalid interfaces or NULL values will be ignored.
+ */ + 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. +Invalid interfaces or NULL values will be ignored.
+ */ + void removeFilePickerListener( [in] XFilePickerListener xListener ); +}; + + +}; }; }; }; }; + +#endif + +/* 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 000000000..baaa033db --- /dev/null +++ b/offapi/com/sun/star/ui/dialogs/XFilePreview.idl @@ -0,0 +1,122 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_ui_dialogs_XFilePreview_idl__ +#define __com_sun_star_ui_dialogs_XFilePreview_idl__ + +#includeA value of `FALSE` hides the preview window.
+ + @returns + A value of `TRUE` on success. +A value of `FALSE` if the operation fails for any reason or the preview + implementation doesn't support hiding the preview.
+ */ + boolean setShowState( [in] boolean bShowState ); + + /** Returns the current show state of the preview. + + @returns + A value of `TRUE` if the preview window is visible. +A value of `FALSE` if the preview window is invisible.
+ */ + boolean getShowState( ); +}; + + +}; }; }; }; }; + + +#endif + +/* 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 000000000..2776717a5 --- /dev/null +++ b/offapi/com/sun/star/ui/dialogs/XFilterGroupManager.idl @@ -0,0 +1,65 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef __com_sun_star_ui_dialogs_XFilterGroupManager_idl__ +#define __com_sun_star_ui_dialogs_XFilterGroupManager_idl__ + +#includeIt is implementation dependent how the filter groups are presented to the user.
+ 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.
This may be useful for automatic test tools for instance.
+ */ + interface com::sun::star::util::XCancellable; +}; + + +}; }; }; }; }; + +#endif + +/* 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 000000000..7eea2ebd7 --- /dev/null +++ b/offapi/com/sun/star/ui/dialogs/XSLTFilterDialog.idl @@ -0,0 +1,38 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_ui_dialogs_XSLTFilterDialog_idl__ +#define __com_sun_star_ui_dialogs_XSLTFilterDialog_idl__ + +#includeA 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 step.
+ +Sequential navigation in a wizard is done via a Next and a Back 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).
+ +A sequence of steps in a wizard dialog is called a path. A given wizard can support one or multiple paths, + which are declared at the time of construction of the wizard.
+ +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.
+ +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 k of the current path, the potential or conflicting
+ paths are those whose first k 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 ...
indicating that the order of steps is undecided.
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.
+ +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.
+ +The state of the Next 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 Finish 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.
+ + @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 + +Normally, you will want to use this method for the Finish button only: The Next + and Back buttons are usually maintained automatically, the Help and Cancel + buttons are unlikely to ever being disabled.
+ + @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 + +In general, the default button in a wizard is the one which is activated when the user presses + the return key while the focus is in a control which does not handle this key itself (such as + ordinary input controls).
+ +You can use this method, for instance, to make the Next button the default button on all pages + except the last one, where Finish should be defaulted.
+ */ + void setDefaultButton( [in] short WizardButton ); + + /** travels to the next page, if possible + +Calling this method is equivalent to the user pressing the Next 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.
+ */ + boolean travelNext(); + + /** travels to the next page, if possible + +Calling this method is equivalent to the user pressing the Back button in the wizard.
+ */ + boolean travelPrevious(); + + /** enables or disables the given page + +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.
+ +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.
+ + @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. + +For instance, the Next button is disabled if the current page's XWizardPage::canAdvance() + method returns `FALSE`.
+ +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.
+ */ + void updateTravelUI(); + + /** advances to the given page, if possible. + +Calling this method is equivalent to the user repeatedly pressing the Next 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.
+ */ + boolean advanceTo( [in] short PageId ); + + /** goes back to the given page, if possible. + +Calling this method is equivalent to the user repeatedly pressing the Back button, until the + given page is reached.
+ */ + boolean goBackTo( [in] short PageId ); + + /** activates a path + +If the wizard has been created with multiple paths of control flow, then this method allows switching to + another path.
+ +You can only activate a path which shares the first k
pages with the path
+ which is previously active (if any), where k
is the index of the current page within the current
+ path.
Example: Say you have paths, (0,1,2,5)
and (0,1,4,5)
(with
+ the numbers denoting page IDs). This means that after page 1
, you either continue with page
+ 2
or state 4
,and after this, you finish in state 5
.
+ Now if the first path is active, and your current state is 1
, then you can easily switch to the
+ second path, since both paths start with (0,1)
.
+ However, if your current state is 2
, then you can not switch to the second path anymore.
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 k
states with the to-be-activated path.)
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 not conflict.
+ +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.
+ +With the paths in the example above, if you activate the second path, then only steps 0
and
+ 1
are activated, since they are common to both paths. Steps 2
, 4
,
+ and 5
are not reachable, yet.
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.
+ + @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 + +The page titles are displayed in the wizard's roadmap.
+ */ + 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. + +This method allows the controller to do any final checks, and ultimately veto finishing the wizard.
+ */ + boolean confirmFinish(); +}; + + +}; }; }; }; }; + + +#endif + +/* 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 000000000..c7c1be2fa --- /dev/null +++ b/offapi/com/sun/star/ui/dialogs/XWizardPage.idl @@ -0,0 +1,79 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_ui_dialogs_XWizardPage_idl__ +#define __com_sun_star_ui_dialogs_XWizardPage_idl__ + +#includeWithin a wizard, no two pages are allowed to have the same ID.
+ */ + [attribute, readonly] short PageId; + + /** called when the page is activated + */ + void activatePage(); + + /** is called when the page is about to be left + +An implementation can veto the leave by returning `FALSE` here. Usually, the decision about this + depends on the current state of the page.
+ + @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 + +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.
+ +If checked for validity is expensive, or if you prefer giving your user more detailed feedback on validity
+ than a disabled Next
button in the wizard, then move your checks to the commitPage()
+ method.
+ There can only exist one user interface configuration manager for + a module. A user interface configuration manager supports to get and set + user interface configuration data for configurable user interface elements. + + @see ConfigurableUIElement + @see XUIConfigurationManager +
+ + Prior to LibreOffice 4.3, this singleton was only available as a + (single-instance) ModuleUIConfigurationManagerSupplier service. + + @since LibreOffice 4.3 +*/ +singleton theModuleUIConfigurationManagerSupplier : XModuleUIConfigurationManagerSupplier; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/ui/theUICategoryDescription.idl b/offapi/com/sun/star/ui/theUICategoryDescription.idl new file mode 100644 index 000000000..466e3d90d --- /dev/null +++ b/offapi/com/sun/star/ui/theUICategoryDescription.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 . + */ +#ifndef __com_sun_star_ui_theUICategoryDescription_idl__ +#define __com_sun_star_ui_theUICategoryDescription_idl__ + +#include+ OpenOffice.org has an amount of commands that can be used by user + interface elements. Every command is member of a single category. + Categories makes it easier to handle to huge amount of commands + provided by OpenOffice.org. This singleton is normally used by UI + implementations which provides all commands to a user. +
+ + Provides access to user interface command categories of the installed + modules. + ++ To access the user interface command categories of a module, a unique + module specifier must be provided to + com::sun::star::container::XNameAccess::getByName() + function. The module specifier can be retrieved from the + com::sun::star::frame::ModuleManager + service. The interface provides references to + com::sun:star::ui::ModuleUICommandDescription. +
+ + @see com::sun::star::frame::ModuleManager + + Prior to LibreOffice 4.3, this singleton was only available as a + (single-instance) UICategoryDescription service. + + @since LibreOffice 4.3 +*/ +singleton theUICategoryDescription : com::sun::star::container::XNameAccess; + +}; }; }; }; // com.sun.star.ui + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/ui/theUIElementFactoryManager.idl b/offapi/com/sun/star/ui/theUIElementFactoryManager.idl new file mode 100644 index 000000000..d6125776d --- /dev/null +++ b/offapi/com/sun/star/ui/theUIElementFactoryManager.idl @@ -0,0 +1,44 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_ui_theUIElementFactoryManager_idl__ +#define __com_sun_star_ui_theUIElementFactoryManager_idl__ + +#include+ OpenOffice.org has an amount of user interface elements that can be positioned, + resized, closed and their style can be changed. This singleton provides access + to the window based information of available user interface elements which are + part of OpenOffice.org modules, like Writer or Calc. +
+ + Provides access to window based information about user interface elements + of all installed application modules. + ++ To access the window based information of a module, a unique module specifier + must be provided to com::sun::star::container::XNameAccess::getByName() function. + The module specifier can be retrieved from the com::sun::star::frame::ModuleManager + service. The interface provides references to a com::sun:star::ui::ModuleWindowStateConfiguration. +
+ + Prior to LibreOffice 4.3, this singleton was only available as a + (single-instance) WindowStateConfiguration service. + + @see com::sun::star::frame::ModuleManager + + @since LibreOffice 4.3 +*/ + +singleton theWindowStateConfiguration : com::sun::star::container::XNameAccess; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ -- cgit v1.2.3