diff options
author | Frank Schoenheit [fs] <frank.schoenheit@sun.com> | 2010-06-17 23:37:32 +0200 |
---|---|---|
committer | Frank Schoenheit [fs] <frank.schoenheit@sun.com> | 2010-06-17 23:37:32 +0200 |
commit | fc54903531e08fa9c99008f8fa1c87456229a3ea (patch) | |
tree | 8bc8fc824525a240137acf3558aaf1c06af8fb65 /offapi | |
parent | a19d7149cf07cb2a05ac3913e97b8a7de281707b (diff) | |
parent | 9a4b737c86d9a9eb65611a96b1a4c0562c994885 (diff) |
fs33a: merged CWS unoawt2, implicit rebase to m83
Diffstat (limited to 'offapi')
21 files changed, 733 insertions, 18 deletions
diff --git a/offapi/com/sun/star/awt/UnoControlSimpleAnimation.idl b/offapi/com/sun/star/awt/UnoControlSimpleAnimation.idl index 63364622c4ce..cf45f0aea0f0 100644 --- a/offapi/com/sun/star/awt/UnoControlSimpleAnimation.idl +++ b/offapi/com/sun/star/awt/UnoControlSimpleAnimation.idl @@ -45,9 +45,11 @@ /** specifies a simple animation control. <p>The model of an <type>UnoControlSimpleAnimation</type> control must support - the <type>UnoControlSimpleAnimationModel</type> service. + the <type>UnoControlSimpleAnimationModel</type> service.</p> + + @since OOo 2.2 */ -service UnoControlSimpleAnimation +published service UnoControlSimpleAnimation { service com::sun::star::awt::UnoControl; diff --git a/offapi/com/sun/star/awt/UnoControlSimpleAnimationModel.idl b/offapi/com/sun/star/awt/UnoControlSimpleAnimationModel.idl index 1460adaa49d1..ca301483263f 100644 --- a/offapi/com/sun/star/awt/UnoControlSimpleAnimationModel.idl +++ b/offapi/com/sun/star/awt/UnoControlSimpleAnimationModel.idl @@ -45,9 +45,10 @@ <p> </p> @see UnoControlScrollBarModel + @since OOo 2.2 */ -service UnoControlSimpleAnimationModel +published service UnoControlSimpleAnimationModel { service com::sun::star::awt::UnoControlModel; diff --git a/offapi/com/sun/star/awt/UnoControlThrobber.idl b/offapi/com/sun/star/awt/UnoControlThrobber.idl index a798d1d842e2..f5194075019a 100644 --- a/offapi/com/sun/star/awt/UnoControlThrobber.idl +++ b/offapi/com/sun/star/awt/UnoControlThrobber.idl @@ -45,9 +45,11 @@ /** specifies a simple animation control. <p>The model of an <type>UnoControlThrobber</type> control must support - the <type>UnoControlThrobberModel</type> service. + the <type>UnoControlThrobberModel</type> service.</p> + + @since OOo 2.2 */ -service UnoControlThrobber +published service UnoControlThrobber { service com::sun::star::awt::UnoControl; diff --git a/offapi/com/sun/star/awt/UnoControlThrobberModel.idl b/offapi/com/sun/star/awt/UnoControlThrobberModel.idl index 9b2f31853f2d..f2eacad5b76b 100644 --- a/offapi/com/sun/star/awt/UnoControlThrobberModel.idl +++ b/offapi/com/sun/star/awt/UnoControlThrobberModel.idl @@ -45,9 +45,10 @@ <p> </p> @see UnoControlScrollBarModel + @since OOo 2.2 */ -service UnoControlThrobberModel +published service UnoControlThrobberModel { service com::sun::star::awt::UnoControlModel; }; diff --git a/offapi/com/sun/star/awt/XDialogProvider2.idl b/offapi/com/sun/star/awt/XDialogProvider2.idl index 79e4594f65a8..9cd203b7796a 100644 --- a/offapi/com/sun/star/awt/XDialogProvider2.idl +++ b/offapi/com/sun/star/awt/XDialogProvider2.idl @@ -31,6 +31,9 @@ #ifndef __com_sun_star_awt_XDialogProvider_idl__ #include <com/sun/star/awt/XDialogProvider.idl> #endif +#ifndef __com_sun_star_beans_PropertyValue_idl__ +#include <com/sun/star/beans/PropertyValue.idl> +#endif //============================================================================= @@ -107,6 +110,25 @@ interface XDialogProvider2 : ::com::sun::star::awt::XDialogProvider { com::sun::star::awt::XDialog createDialogWithHandler ( [in] string URL, [in] com::sun::star::uno::XInterface xHandler ) raises ( com::sun::star::lang::IllegalArgumentException ); + + /** creates a dialog for the given URL, accepting additional creation parameters + + <p>The arguments accepted so far are + <ul><li><em>ParentWindow</em> - must be a component supporting the <type>XWindowPeer</type> interface, + or a component supporting the <type>XControl</type> interfac, so an <code>XWindowPeer</code> can be + obtained from it. The given window will be used as parent window for the to-be-created dialog.</li> + <li><em>EventHandler</em> - specifies a component handling events in the dialog. See + <member>createDialogWithHandler</member> for a detailed specification of dialog event handling.</li> + </ul> + </p> + */ + + XDialog createDialogWithArguments( + [in] string URL, + [in] sequence< ::com::sun::star::beans::PropertyValue > Arguments + ) + raises ( com::sun::star::lang::IllegalArgumentException + ); }; //============================================================================= diff --git a/offapi/com/sun/star/awt/XSimpleAnimation.idl b/offapi/com/sun/star/awt/XSimpleAnimation.idl index 174e69c8184c..1cfd758590b9 100644 --- a/offapi/com/sun/star/awt/XSimpleAnimation.idl +++ b/offapi/com/sun/star/awt/XSimpleAnimation.idl @@ -43,7 +43,7 @@ /** Controls the animation control. */ -interface XSimpleAnimation: com::sun::star::uno::XInterface +published interface XSimpleAnimation: com::sun::star::uno::XInterface { //------------------------------------------------------------------------- diff --git a/offapi/com/sun/star/awt/XThrobber.idl b/offapi/com/sun/star/awt/XThrobber.idl index 934f85e8aa22..0a4ac133524a 100644 --- a/offapi/com/sun/star/awt/XThrobber.idl +++ b/offapi/com/sun/star/awt/XThrobber.idl @@ -43,7 +43,7 @@ /** Controls the animation control. */ -interface XThrobber: com::sun::star::uno::XInterface +published interface XThrobber: com::sun::star::uno::XInterface { //------------------------------------------------------------------------- diff --git a/offapi/com/sun/star/awt/tree/XTreeControl.idl b/offapi/com/sun/star/awt/tree/XTreeControl.idl index a65b9eece27f..a5341257ba45 100644 --- a/offapi/com/sun/star/awt/tree/XTreeControl.idl +++ b/offapi/com/sun/star/awt/tree/XTreeControl.idl @@ -219,6 +219,17 @@ interface XTreeControl */ XTreeNode getClosestNodeForLocation( [in] long x, [in] long y ); + /** returns the rectangle occupied by the visual representation of the given node + + @param Node + the node whose geometry should be obtained + @throws ::com::sun::star::lang::IllegalArgumentException + if the given node is <NULL/>, or does not belong to the tree's data model + */ + ::com::sun::star::awt::Rectangle + getNodeRect( [in] XTreeNode Node ) + raises( ::com::sun::star::lang::IllegalArgumentException ); + // ------------ // tree editing // ------------ diff --git a/offapi/com/sun/star/chart/ChartDocument.idl b/offapi/com/sun/star/chart/ChartDocument.idl index dd52f2e02ba3..2c5227329778 100644 --- a/offapi/com/sun/star/chart/ChartDocument.idl +++ b/offapi/com/sun/star/chart/ChartDocument.idl @@ -39,9 +39,8 @@ #include <com/sun/star/xml/UserDefinedAttributeSupplier.idl> #endif -// #ifndef com_sun_star_chart2_data_XDataReceiver_idl -// #include <com/sun/star/chart2/data/XDataReceiver.idl> -// #endif +#include <com/sun/star/drawing/XDrawPageSupplier.idl> + //============================================================================= @@ -73,12 +72,7 @@ published service ChartDocument interface ::com::sun::star::chart::XChartDocument; interface ::com::sun::star::beans::XPropertySet; - /** If this interface is implemented, it is possible to connect - data to a chart via the improved data connection method using - an <type scope="com::sun::star::chart2::data">XDataProvider</type>. - */ - // BM: #i32138# XDataReceiver is not yet published -// [optional] interface ::com::sun::star::chart2::data::XDataReceiver; + [optional] interface ::com::sun::star::drawing::XDrawPageSupplier; //------------------------------------------------------------------------- diff --git a/offapi/com/sun/star/drawing/EnhancedCustomShapeHandle.idl b/offapi/com/sun/star/drawing/EnhancedCustomShapeHandle.idl index 7b3f9a223f39..d5e8420fc32f 100644 --- a/offapi/com/sun/star/drawing/EnhancedCustomShapeHandle.idl +++ b/offapi/com/sun/star/drawing/EnhancedCustomShapeHandle.idl @@ -68,6 +68,26 @@ service EnhancedCustomShapeHandle */ [optional, property] ::com::sun::star::drawing::EnhancedCustomShapeParameterPair Polar; + /** RefX, if this attribute is set, it specifies the index of the adjustment + value which is connected to the horizontal position of the handle + */ + [optional, property] long RefX; + + /** RefY, if this attribute is set, it specifies the index of the adjustment + value which is connected to the vertical position of the handle + */ + [optional, property] long RefY; + + /** RefAngle, if this attribute is set, it specifies the index of the adjustment + value which is connected to the angle of the handle + */ + [optional, property] long RefAngle; + + /** RefR, if this attribute is set, it specifies the index of the adjustment + value which is connected to the radius of the handle + */ + [optional, property] long RefR; + /** If the attribute RangeXMinimum is set, it specifies the horizontal minimum range of the handle. */ [optional, property] ::com::sun::star::drawing::EnhancedCustomShapeParameter RangeXMinimum; diff --git a/offapi/com/sun/star/drawing/Shape.idl b/offapi/com/sun/star/drawing/Shape.idl index f57369e87f49..3bf1c6fa15cc 100644 --- a/offapi/com/sun/star/drawing/Shape.idl +++ b/offapi/com/sun/star/drawing/Shape.idl @@ -136,6 +136,14 @@ published service Shape //------------------------------------------------------------------------- /** If this is <FALSE/>, the <type>Shape</type> is not visible + on screen outputs. Please note that the <type>Shape</type> may still + be visible when printed, see <member>Printable</member>. + */ + [optional, property] boolean Visible; + + //------------------------------------------------------------------------- + + /** If this is <FALSE/>, the <type>Shape</type> is not visible on printer outputs. */ [optional, property] boolean Printable; diff --git a/offapi/com/sun/star/text/TextFrame.idl b/offapi/com/sun/star/text/TextFrame.idl index e1ab64c2e674..e43b3d79197c 100644..100755 --- a/offapi/com/sun/star/text/TextFrame.idl +++ b/offapi/com/sun/star/text/TextFrame.idl @@ -112,6 +112,13 @@ published service TextFrame */ [property] short SizeType; //------------------------------------------------------------------------- + /** determines if the text frame should be editable in a read-only document. + (This is usually used in forms.) + + */ + [optional, property] boolean EditInReadonly; + + //------------------------------------------------------------------------- /** determines the interpretation of the width and relative width properties. @@ -119,12 +126,14 @@ published service TextFrame @since OOo 2.4 */ [optional, property] short WidthType; + //----------------------------------------------------------------------------- /** contains the writing direction, as represented by the <type scope="com::sun::star::text">WritingMode2</type> constants */ [optional, property] short WritingMode; + //----------------------------------------------------------------------------- /** controls, if the frame follows the text flow or can leave its layout environment <p>If set, the frame follows the text flow and doesn't leaves the layout diff --git a/offapi/com/sun/star/ui/dialogs/Wizard.idl b/offapi/com/sun/star/ui/dialogs/Wizard.idl new file mode 100644 index 000000000000..4e6b13f44ca2 --- /dev/null +++ b/offapi/com/sun/star/ui/dialogs/Wizard.idl @@ -0,0 +1,75 @@ +/************************************************************************* + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef __com_sun_star_ui_dialogs_Wizard_idl__ +#define __com_sun_star_ui_dialogs_Wizard_idl__ + +#include <com/sun/star/ui/dialogs/XWizard.idl> +#include <com/sun/star/lang/IllegalArgumentException.idl> + +//================================================================================================================== + +module com { module sun { module star { module ui { module dialogs { + +interface XWizardController; + +//================================================================================================================== + +/** provides a framework for implementing a wizard dialog. + */ +service Wizard : XWizard +{ + /** creates a wizard with a single execution path + @param PageIds + the IDs of the pages which constitute the execution path. IDs must be in ascending order. + */ + createSinglePathWizard( + [in] sequence< short > PageIds, + [in] XWizardController Controller + ) + raises ( ::com::sun::star::lang::IllegalArgumentException + ); + + /** creates a wizard with a multiple possible execution paths + + @param PageIds + the IDs of the pages which constitute the execution paths. IDs in each path must be in ascending order. + */ + createMultiplePathsWizard( + [in] sequence< sequence< short > > PageIds, + [in] XWizardController Controller + ) + raises ( ::com::sun::star::lang::IllegalArgumentException + ); +}; + +//================================================================================================================== + +}; }; }; }; }; + +//================================================================================================================== + +#endif diff --git a/offapi/com/sun/star/ui/dialogs/WizardButton.idl b/offapi/com/sun/star/ui/dialogs/WizardButton.idl new file mode 100644 index 000000000000..34c0d8074889 --- /dev/null +++ b/offapi/com/sun/star/ui/dialogs/WizardButton.idl @@ -0,0 +1,60 @@ +/************************************************************************* + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef __com_sun_star_ui_dialogs_WizardButton_idl__ +#define __com_sun_star_ui_dialogs_WizardButton_idl__ + +//================================================================================================================== + +module com { module sun { module star { module ui { module dialogs { + +//================================================================================================================== + +/** denotes the buttons found in a <type>Wizard</type> + */ +constants WizardButton +{ + /// denotes none of the buttons in the wizard + const short NONE = 0; + /// denotes the button used to travel forward through the wizard + const short NEXT = 1; + /// denotes the button used to travel backward through the wizard + const short PREVIOUS = 2; + /// denotes the button used to finish the wizard + const short FINISH = 3; + /// denotes the button used to cancel the wizard + const short CANCEL = 4; + /// denotes the button used to request help + const short HELP = 5; +}; + +//================================================================================================================== + +}; }; }; }; }; + +//================================================================================================================== + +#endif diff --git a/offapi/com/sun/star/ui/dialogs/WizardTravelType.idl b/offapi/com/sun/star/ui/dialogs/WizardTravelType.idl new file mode 100644 index 000000000000..271a006346b7 --- /dev/null +++ b/offapi/com/sun/star/ui/dialogs/WizardTravelType.idl @@ -0,0 +1,54 @@ +/************************************************************************* + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef __com_sun_star_ui_dialogs_WizardTravelType_idl__ +#define __com_sun_star_ui_dialogs_WizardTravelType_idl__ + +//================================================================================================================== + +module com { module sun { module star { module ui { module dialogs { + +//================================================================================================================== + +/** denotes ways to leave a <type>Wizard</type>'s page + */ +constants WizardTravelType +{ + /// indicates the wizard page is left due to forward traveling through the wizard + const short FORWARD = 1; + /// indicates the wizard page is left due to backward traveling through the wizard + const short BACKWARD = 2; + /// indicates the wizard page is left since the wizard is about to be finished + const short FINISH = 3; +}; + +//================================================================================================================== + +}; }; }; }; }; + +//================================================================================================================== + +#endif diff --git a/offapi/com/sun/star/ui/dialogs/XWizard.idl b/offapi/com/sun/star/ui/dialogs/XWizard.idl new file mode 100644 index 000000000000..445f7bbf2a44 --- /dev/null +++ b/offapi/com/sun/star/ui/dialogs/XWizard.idl @@ -0,0 +1,228 @@ +/************************************************************************* + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef __com_sun_star_ui_dialogs_XWizard_idl__ +#define __com_sun_star_ui_dialogs_XWizard_idl__ + +#include <com/sun/star/ui/dialogs/XExecutableDialog.idl> +#include <com/sun/star/util/InvalidStateException.idl> +#include <com/sun/star/container/NoSuchElementException.idl> +#include <com/sun/star/awt/XWindow.idl> + +//================================================================================================================== +module com { module sun { module star { module ui { module dialogs { + +//================================================================================================================== + +interface XWizardPage; + +/** is the main interface implemented by the <type>Wizard</type> services. + + <p>A wizard is a dialog which guides the user through a number of tasks (usually input of data), which the user can + accomplish either sequentially or out-of-order. For this, a wizard is comprised of a number of tab pages, + each page representing a single <em>step</em>.</p> + + <p>Sequential navigation in a wizard is done via a <em>Next</em> and a <em>Back</em> button. Non-sequential navigation + is done via a roadmap, which is displayed on the left hand side of the wizard dialog, lists all available + steps, and allows jumping to a certain step (where the creator of the wizard can restrict the available steps + depending on the current situation in the wizard, see below).</p> + + <p>A sequence of steps in a wizard dialog is called a <em>path</em>. A given wizard can support one or multiple paths, + which are declared at the time of construction of the wizard.</p> + + <p>In the simplest case, where the wizard supports only one path, all available steps are displayed in the roadmap, + and the user can simply travel through them as desired.</p> + + <p>If the wizard is more complex, and supports multiple paths, things become more complicated. In a given situation + of the wizard, where the user is at step <em>k</em> of the current path, the <em>potential</em> or <em>conflicting</em> + paths are those whose first <em>k</em> steps are the same as in the current path. Obviously, there's at least one + potential path in every situation: the current one. If there is more than one, then the future steps in the dialog + are not finally decided. In such a case, the roadmap will display future steps up to the point where the potential + paths diverge, and then an item <quot><code>...</code></quot> indicating that the order of steps is undecided.</p> + + <p>An <type>XWizardController</type> can declare a certain path as active path by calling the <member>activatePath</member> + method. Usually, this is done depending on user input. For instance, your wizard could have radio buttons on the + first page which effectively decide about which path to take in the wizard.</p> + + <p>Single steps in the wizard can be freely enabled and disabled, using the <member>enablePage</member> method. + Disabled pages are skipped during sequential traveling, and not selectable in the roadmap.</p> + + <p>The state of the <em>Next</em> button in the dialog will be automatically maintained in most situations, + depending on the results of calls to the <member>XWizardController::canAdvance</member> and <member>XWizardPage::canAdvance</member> + methods. More sophisticated wizard logic, however, will need manual calls to the <member>enableButton</member> method. + Also, the <em>Finish</em> button needs to be maintained by the wizard's controller, too, as it cannot be decided + generically in which situations it should be enabled or disabled.</p> + + @see XWizardController + @see XWizardPage + */ +interface XWizard +{ + interface XExecutableDialog; + + /** is the help URL of the wizard's main window. + */ + [attribute] string HelpURL; + + [attribute, readonly] ::com::sun::star::awt::XWindow + DialogWindow; + + /** provides access to the current page of the wizard + */ + XWizardPage + getCurrentPage(); + + /** enables or disables a certain button in the wizard + + <p>Normally, you will want to use this method for the <em>Finish</em> button only: The <em>Next</em> + and <em>Back</em> buttons are usually maintained automatically, the <em>Help</em> and <em>Cancel</em> + buttons are unlikely to ever being disabled.</p> + + @param WizardButton + denotes the button to enable or disable, as one of the <type>WizardButton</type> constants. Must not be + <member>WizardButton::NONE</member>. + @param Enable + specifies whether the button should be enabled (<TRUE/>) or disabled (<FALSE/>) + */ + void enableButton( [in] short WizardButton, [in] boolean Enable ); + + /** sets a button in the wizard as default button + + <p>In general, the default button in a wizard is the one which is activated when the user presses + the <em>return</em> key while the focus is in a control which does not handle this key itself (such as + ordinary input controls).</p> + + <p>You can use this method, for instance, to make the <em>Next</em> button the default button on all pages + except the last one, where <em>Finish</em> should be defaulted.</p> + */ + void setDefaultButton( [in] short WizardButton ); + + /** travels to the next page, if possible + + <p>Calling this method is equivalent to the user pressing the <em>Next</em> button in the wizard. Consequently, + the method will fail if in the current state of the wizard, it is not allowed to advance to a next page.</p> + */ + boolean travelNext(); + + /** travels to the next page, if possible + + <p>Calling this method is equivalent to the user pressing the <em>Back</em> button in the wizard.</p> + */ + boolean travelPrevious(); + + /** enables or disables the given page + + <p>You can use this method when not all pages of your wizard are necessarily needed in all cases. For instance, + assume that your first wizard page contains a check box, which the user can check to enter additional data. + If you place this data on the second page, then you will want to enable this second page if and only if the + checkbox is checked.</p> + + <p>If a page is disabled, it can reached neither by clicking the respective item in the wizard's roadmap, + nor by sequential traveling. Still, the page's item is displayed in the roadmap, though disabled.</p> + + @throws ::com::sun::star::container::NoSuchElementException + if there is no page with the given ID + @throws ::com::sun::star::util::InvalidStateException + if the page shall be disabled, but is active currently. + */ + void enablePage( [in] short PageID, [in] boolean Enable ) + raises ( ::com::sun::star::container::NoSuchElementException + , ::com::sun::star::util::InvalidStateException ); + + /** updates the wizard elements which are related to traveling. + + <p>For instance, the <em>Next</em> button is disabled if the current page's <member>XWizardPage::canAdvance</member> + method returns <FALSE/>.</p> + + <p>You usually call this method from within a wizard page whose state changed in a way that it affects the + user's ability to reach other pages.</p> + */ + void updateTravelUI(); + + /** advances to the given page, if possible. + + <p>Calling this method is equivalent to the user repeatedly pressing the <em>Next</em> button, until the + given page is reached. Consequently, the method will fail if one of the intermediate pages does not allow + advancing to the next page.</p> + */ + boolean advanceTo( [in] short PageId ); + + /** goes back to the given page, if possible. + + <p>Calling this method is equivalent to the user repeatedly pressing the <em>Back</em> button, until the + given page is reached.</p> + */ + boolean goBackTo( [in] short PageId ); + + /** activates a path + + <p>If the wizard has been created with multiple paths of control flow, then this method allows switching to + another path.</p> + + <p>You can only activate a path which shares the first <code>k</code> pages with the path + which is previously active (if any), where <code>k</code> is the index of the current page within the current + path.</p> + + <p><strong>Example</strong>: Say you have paths, <code>(0,1,2,5)</code> and <code>(0,1,4,5)</code> (with + the numbers denoting page IDs). This means that after page <code>1</code>, you either continue with page + <code>2</code> or state <code>4</code>,and after this, you finish in state <code>5</code>.<br/> + Now if the first path is active, and your current state is <code>1</code>, then you can easily switch to the + second path, since both paths start with <code>(0,1)</code>.<br/> + However, if your current state is <code>2</code>, then you can not switch to the second path anymore.</p> + + @param PathIndex + the index of the path, as used in the <member>Wizard::createMultiplePathsWizard</member> constructor. + @param Final + <p>If <TRUE/>, the path will be completely activated, even if it is a conflicting path (i.e. there is another + path which shares the first <code>k</code> states with the to-be-activated path.)</p> + + <p>If <FALSE/>, then the new path is checked for conflicts with other paths. If such conflicts exists, the path + is not completely activated, but only up to the point where it does <em>not</em> conflict.</p> + + <p>In this latter case, you need another activatePath method (usually triggered by the user doing some decisions + and entering some data on the reachable pages) before the wizard can actually be finished.</p> + + <p>With the paths in the example above, if you activate the second path, then only steps <code>0</code> and + <code>1</code> are activated, since they are common to both paths. Steps <code>2</code>, <code>4</code>, + and <code>5</code> are not reachable, yet.</p> + + @throws ::com::sun::star::container::NoSuchElementException + if there is no path with the given index + @throws ::com::sun::star::util::InvalidStateException + if the path cannot be activated in the current state of the wizard. + */ + void activatePath( [in] short PathIndex, [in] boolean Final ) + raises ( ::com::sun::star::container::NoSuchElementException + , ::com::sun::star::util::InvalidStateException ); +}; + +//================================================================================================================== + +}; }; }; }; }; + +//================================================================================================================== + +#endif diff --git a/offapi/com/sun/star/ui/dialogs/XWizardController.idl b/offapi/com/sun/star/ui/dialogs/XWizardController.idl new file mode 100644 index 000000000000..6a51a67360fe --- /dev/null +++ b/offapi/com/sun/star/ui/dialogs/XWizardController.idl @@ -0,0 +1,85 @@ +/************************************************************************* + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef __com_sun_star_ui_dialogs_XWizardController_idl__ +#define __com_sun_star_ui_dialogs_XWizardController_idl__ + +#include <com/sun/star/ui/dialogs/XWizardPage.idl> + +//================================================================================================================== + +module com { module sun { module star { module ui { module dialogs { + +//================================================================================================================== + +/** is the interface of a client-provided controller of a custom <type>Wizard</type>. + */ +interface XWizardController +{ + /** creates a page + + <p>Wizard pages are created on demand, when the respective page is reached during traveling through the + wizard. Effectively, this means the method is called at most once for each possible page ID.</p> + + @param ParentWindow + the parent window to use for the page window + @param PageId + the ID of the page. + @return + the requested page. + */ + XWizardPage createPage( [in] ::com::sun::star::awt::XWindow ParentWindow, [in] short PageId ); + + /** provides the title of a page given by ID + + <p>The page titles are displayed in the wizard's roadmap.</p> + */ + string getPageTitle( [in] short PageId ); + + boolean canAdvance(); + + /** called when a new page in the wizard is being activated + */ + void onActivatePage( [in] short PageId ); + + /** called when a page in the wizard is being deactivated + */ + void onDeactivatePage( [in] short PageId ); + + /** called when the wizard is about to be finished. + + <p>This method allows the controller to do any final checks, and ultimatively veto finishing the wizard.</p> + */ + boolean confirmFinish(); +}; + +//================================================================================================================== + +}; }; }; }; }; + +//================================================================================================================== + +#endif 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 000000000000..149f8c14709b --- /dev/null +++ b/offapi/com/sun/star/ui/dialogs/XWizardPage.idl @@ -0,0 +1,86 @@ +/************************************************************************* + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef __com_sun_star_ui_dialogs_XWizardPage_idl__ +#define __com_sun_star_ui_dialogs_XWizardPage_idl__ + +#include <com/sun/star/awt/XWindow.idl> + +//================================================================================================================== + +module com { module sun { module star { module ui { module dialogs { + +//================================================================================================================== + +/** is a single page of a <type>Wizard</type> + */ +interface XWizardPage : ::com::sun::star::lang::XComponent +{ + /** provides read-only access to the window of the page + */ + [attribute, readonly] ::com::sun::star::awt::XWindow Window; + + /** denotes the ID of the page. + + <p>Within a wizard, no two pages are allowed to have the same ID.</p> + */ + [attribute, readonly] short PageId; + + /** called when the page is activated + */ + void activatePage(); + + /** is called when the page is about to be left + + <p>An implementation can veto the leave by returning <FALSE/> here. Usually, the decision about this + depends on the current state of the page.</p> + + @param Reason + is one of the <type>WizardTravelType</type> contants denoting the reason why the page should be + committed. + */ + boolean commitPage( [in] short Reason ); + + /** determines whether it is allowed to travel to a later page in the wizard + + <p>You should base this decision on the state of the page only, not on a global state of the wizard. Usually, + you return <FALSE/> here if and only if not all necessary input on the page has been provided by the user, + or the provided input is not valid.</p> + + <p>If checked for validity is expensive, or if you prefer giving your user more detailed feedback on validity + than a disabled <code>Next</code> button in the wizard, then move your checks to the <member>commitPage</member> + method.</p> + */ + boolean canAdvance(); +}; + +//================================================================================================================== + +}; }; }; }; }; + +//================================================================================================================== + +#endif diff --git a/offapi/com/sun/star/ui/dialogs/makefile.mk b/offapi/com/sun/star/ui/dialogs/makefile.mk index fa11ba35e173..07d762fb0ec6 100644 --- a/offapi/com/sun/star/ui/dialogs/makefile.mk +++ b/offapi/com/sun/star/ui/dialogs/makefile.mk @@ -64,7 +64,13 @@ IDLFILES=\ XControlInformation.idl \ XAsynchronousExecutableDialog.idl \ XDialogClosedListener.idl \ - DialogClosedEvent.idl + DialogClosedEvent.idl \ + XWizard.idl \ + XWizardController.idl \ + Wizard.idl \ + XWizardPage.idl \ + WizardButton.idl \ + WizardTravelType.idl # ------------------------------------------------------------------ diff --git a/offapi/com/sun/star/util/InvalidStateException.idl b/offapi/com/sun/star/util/InvalidStateException.idl new file mode 100644 index 000000000000..7d59abbcbac6 --- /dev/null +++ b/offapi/com/sun/star/util/InvalidStateException.idl @@ -0,0 +1,50 @@ +/************************************************************************* + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef __com_sun_star_util_InvalidStateException_idl__ +#define __com_sun_star_util_InvalidStateException_idl__ + +#include <com/sun/star/uno/Exception.idl> + +//================================================================================================================== + +module com { module sun { module star { module util { + +//================================================================================================================== + +/** is thrown when an object's state does not allow to call requested functionality. + */ +exception InvalidStateException : com::sun::star::uno::Exception +{ +}; + +//================================================================================================================== + +}; }; }; }; + +//================================================================================================================== + +#endif diff --git a/offapi/com/sun/star/util/makefile.mk b/offapi/com/sun/star/util/makefile.mk index 75b5dde890c0..aa0374296ddb 100644 --- a/offapi/com/sun/star/util/makefile.mk +++ b/offapi/com/sun/star/util/makefile.mk @@ -53,6 +53,7 @@ IDLFILES=\ ElementChange.idl \ Endianness.idl \ FileIOException.idl\ + InvalidStateException.idl\ Language.idl\ NumberFormat.idl\ NumberFormatProperties.idl\ |