1d1766043SAndrew Rist/************************************************************** 2cdf0e10cSrcweir * 3d1766043SAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 4d1766043SAndrew Rist * or more contributor license agreements. See the NOTICE file 5d1766043SAndrew Rist * distributed with this work for additional information 6d1766043SAndrew Rist * regarding copyright ownership. The ASF licenses this file 7d1766043SAndrew Rist * to you under the Apache License, Version 2.0 (the 8d1766043SAndrew Rist * "License"); you may not use this file except in compliance 9d1766043SAndrew Rist * with the License. You may obtain a copy of the License at 10d1766043SAndrew Rist * 11d1766043SAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 12d1766043SAndrew Rist * 13d1766043SAndrew Rist * Unless required by applicable law or agreed to in writing, 14d1766043SAndrew Rist * software distributed under the License is distributed on an 15d1766043SAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16d1766043SAndrew Rist * KIND, either express or implied. See the License for the 17d1766043SAndrew Rist * specific language governing permissions and limitations 18d1766043SAndrew Rist * under the License. 19d1766043SAndrew Rist * 20d1766043SAndrew Rist *************************************************************/ 21d1766043SAndrew Rist 22d1766043SAndrew Rist 23cdf0e10cSrcweir 24cdf0e10cSrcweir#ifndef __offapi_com_sun_star_form_runtime_XFormController_idl__ 25cdf0e10cSrcweir#define __offapi_com_sun_star_form_runtime_XFormController_idl__ 26cdf0e10cSrcweir 27cdf0e10cSrcweir#include <com/sun/star/awt/XTabController.idl> 28cdf0e10cSrcweir#include <com/sun/star/container/XChild.idl> 29cdf0e10cSrcweir#include <com/sun/star/lang/XComponent.idl> 30cdf0e10cSrcweir#include <com/sun/star/container/XIndexAccess.idl> 31cdf0e10cSrcweir#include <com/sun/star/container/XEnumerationAccess.idl> 32cdf0e10cSrcweir#include <com/sun/star/util/XModifyBroadcaster.idl> 33cdf0e10cSrcweir#include <com/sun/star/util/XModeSelector.idl> 34cdf0e10cSrcweir#include <com/sun/star/form/XConfirmDeleteBroadcaster.idl> 35cdf0e10cSrcweir#include <com/sun/star/sdb/XSQLErrorBroadcaster.idl> 36cdf0e10cSrcweir#include <com/sun/star/sdb/XRowSetApproveBroadcaster.idl> 37cdf0e10cSrcweir#include <com/sun/star/form/XDatabaseParameterBroadcaster2.idl> 38cdf0e10cSrcweir#include <com/sun/star/form/XFormControllerListener.idl> 39cdf0e10cSrcweir#include <com/sun/star/task/XInteractionHandler.idl> 40cdf0e10cSrcweir#include <com/sun/star/lang/IllegalArgumentException.idl> 41cdf0e10cSrcweir#include <com/sun/star/form/runtime/XFilterController.idl> 42cdf0e10cSrcweir 43cdf0e10cSrcweir//============================================================================= 44cdf0e10cSrcweir 45cdf0e10cSrcweirmodule com { module sun { module star { module form { module runtime { 46cdf0e10cSrcweir 47cdf0e10cSrcweirinterface XFormOperations; 48cdf0e10cSrcweirinterface XFormControllerContext; 49cdf0e10cSrcweir 50cdf0e10cSrcweir//============================================================================= 51cdf0e10cSrcweir 52cdf0e10cSrcweir/** specifies a component controlling the interaction between the user and form functionality. 53cdf0e10cSrcweir 54cdf0e10cSrcweir <p>As soon as a form (containing controls) is to be presented to the user, 55cdf0e10cSrcweir there is a need for an instance controlling the user interaction.<br/> 56cdf0e10cSrcweir Such a <code>FormController</code> is responsible for dialog processing, 57cdf0e10cSrcweir like controlling the tab order and the grouping of controls.</p> 58cdf0e10cSrcweir 59cdf0e10cSrcweir <p>As a form may contain one or many subforms, a <type>FormController</type> may 60cdf0e10cSrcweir contain one or more other <type>FormController</type>s, so the form model structure or hierarchy 61cdf0e10cSrcweir is reflected in the structure of <type>FormController</type>s. That is, retrieving the parent of 62cdf0e10cSrcweir the model of a controller will give you the same object as retrieving the model of the parent of 63cdf0e10cSrcweir the controller. Similarly, retrieving the model of the <code>n</code><sup>th</sup> child of 64cdf0e10cSrcweir a controller gives you the same object as retrieving the <code>n</code><sup>th</sup> child of 65cdf0e10cSrcweir the model of the controller.</p> 66cdf0e10cSrcweir 67cdf0e10cSrcweir <p>A controller is called <em>active</em> if one of the controls it is responsible for has the focus, 68cdf0e10cSrcweir else inactive. To be notified whenever this activation state of a given controller changes, you can 69cdf0e10cSrcweir add listeners.</p> 70cdf0e10cSrcweir 71cdf0e10cSrcweir <p>This interface supersedes the <type scope="com::sun::star::form">FormController</type>.</p> 72cdf0e10cSrcweir 73cdf0e10cSrcweir <h3>Responsibilities</h3> 74cdf0e10cSrcweir <p>A <type>FormController</type> is responsible for a <type scope="com::sun::star::awt">UnoControlContainer</type>, 75cdf0e10cSrcweir and all controls therein.</p> 76cdf0e10cSrcweir 77cdf0e10cSrcweir <p>Furthermore, a form controller is responsible for preventing invalid user input. That is, if the form 78cdf0e10cSrcweir contains controls bound to a database, or to an external validator, then the form controller will 79cdf0e10cSrcweir check their current value when the current record is to be saved to the database.</p> 80cdf0e10cSrcweir 81cdf0e10cSrcweir <p>First, it will check whether any controls with an external validator exist. If so, those validators 82cdf0e10cSrcweir will be asked to validate the current control content. If this fails, the message provided by the validator 83cdf0e10cSrcweir is displayed to the user, the control is focused, and the update of the record is vetoed.</p> 84cdf0e10cSrcweir 85cdf0e10cSrcweir <p>Second, the controls are examined for NULL values. If a control is bound to a database field which 86cdf0e10cSrcweir is declared to be <code>NOT NULL</code>, no auto-increment field, but still <NULL/>, then an error 87cdf0e10cSrcweir message is shown to the user saying that input is required, the respective control is focused, and 88cdf0e10cSrcweir the update of the record is vetoed.</p> 89cdf0e10cSrcweir 90cdf0e10cSrcweir <p>Note that you can precent the second check - for database fields containing <NULL/> values - on 91cdf0e10cSrcweir a per-form and a per-database basis.<br/> 92cdf0e10cSrcweir For the former, you need to add a boolean property <code>FormsCheckRequiredFields</code> to the form 93cdf0e10cSrcweir (aka the <code>FormController</code>'s model), using its 94cdf0e10cSrcweir <member scope="com::sun::star::beans">XPropertyContainer::addProperty</member> method, with a value 95cdf0e10cSrcweir of <FALSE/>.<br/> 96cdf0e10cSrcweir For the latter, you need to set the respective property of the data source's <code>Settings</code> 97cdf0e10cSrcweir (also named <code>FormsCheckRequiredFields</code>) to <FALSE/>.</p> 98cdf0e10cSrcweir 99cdf0e10cSrcweir <p>Alternatively, you can prevent the check on a per-control basis, using the 100cdf0e10cSrcweir <member>DataAwareControlModel::InputRequired</member> property of a single control model.</p> 101cdf0e10cSrcweir 102cdf0e10cSrcweir <p>If a control which the controller is responsible for supports the <type scope="com::sun::star::frame">XDispatchProviderInterception</type> 103cdf0e10cSrcweir interface, the controller registers a dispatch interceptor. Then, the control can try to delegate part of its 104cdf0e10cSrcweir functionality to the controller by querying the dispatch interceptor for it.</p> 105cdf0e10cSrcweir 106cdf0e10cSrcweir <p>Below, there's a list of URLs which have a defined meaning - if an implementation supports one of them, 107cdf0e10cSrcweir there must be a guaranteed semantices. However, concrete implementations may support an arbitrary sub or super 108cdf0e10cSrcweir set of these URLs.</p> 109cdf0e10cSrcweir 110cdf0e10cSrcweir <p>In general, all URLs start with the same prefix, namely <em>.uno:FormController/</em>. To this, a suffix is 111cdf0e10cSrcweir appended which describes the requested functionality.<br/> 112cdf0e10cSrcweir Example: The URL suffix for deleting the current record is <em>deleteRecord</em>, so the complete URL for 113cdf0e10cSrcweir requesting a dispatcher for this functionality is <em>.uno:FormController/deleteRecord</em>.</p> 114cdf0e10cSrcweir 115cdf0e10cSrcweir <p>Some URLs may require parameters. For this, the sequence of <type scope="com::sun::star::beans">PropertyValue</type>s 116cdf0e10cSrcweir passed to the <member scope="com::sun::star::frame">XDispatch::dispatch</member> call is used - every property value is 117cdf0e10cSrcweir used as one named parameter.</p> 118cdf0e10cSrcweir 119cdf0e10cSrcweir <p>For all URLs, interested parties can register as status listeners (<type scope="com::sun::star::frame">XStatusListener</type>) 120cdf0e10cSrcweir at the dispatchers, and be notified whenever the functionality associated with the URL becomes enabled or 121cdf0e10cSrcweir disabled.<br/> 122cdf0e10cSrcweir For instance, the URL with the suffix <em>moveToFirst</em> is associated with moving the form to the first 123cdf0e10cSrcweir record, and it will be disabled in case the form is already positioned on the first record.</p> 124cdf0e10cSrcweir 125cdf0e10cSrcweir <table style="width:100%;" border="0" cellpadding="2" cellspacing="2"><tbody> 126cdf0e10cSrcweir 127cdf0e10cSrcweir <tr style="vertical-align: top;"> 128cdf0e10cSrcweir <td><b>URL suffix</b></td> 129cdf0e10cSrcweir <td><b>functionality</b></td> 130cdf0e10cSrcweir </tr> 131cdf0e10cSrcweir 132cdf0e10cSrcweir <tr style="vertical-align: top;"> 133cdf0e10cSrcweir <td><em>positionForm</em></td> 134cdf0e10cSrcweir <td>positions the form on a record given by absolute number.<br/> 135cdf0e10cSrcweir There's one parameter for this functionality, named <em>Position</em>, which must be a long 136cdf0e10cSrcweir value specifying the absolute position to which the form should be moved</td> 137cdf0e10cSrcweir </tr> 138cdf0e10cSrcweir 139cdf0e10cSrcweir <tr style="vertical-align: top;"> 140cdf0e10cSrcweir <td><em>RecordCount</em></td> 141cdf0e10cSrcweir <td>This is a passive functionality: It cannot be dispatched, instead, interested parties may 142cdf0e10cSrcweir use the dispatcher to add as <type scope="com::sun::star::frame">XStatusListener</type>, and be 143cdf0e10cSrcweir notified when the record count changes.<br/> 144cdf0e10cSrcweir The status value which is being notified (<member scope="com::sun::star::frame">FeatureStateEvent::State</member>) 145cdf0e10cSrcweir is a string which can be used to display the record count. In particular, if the record count is not yet known 146cdf0e10cSrcweir (<member scope="com::sun::star::sdb">RowSet::IsRowCountFinal</member> is <FALSE/>), this is indicated in the 147cdf0e10cSrcweir string, too.</td> 148cdf0e10cSrcweir </tr> 149cdf0e10cSrcweir 150cdf0e10cSrcweir <tr style="vertical-align: top;"> 151cdf0e10cSrcweir <td><em>moveToFirst</em></td> 152cdf0e10cSrcweir <td>moves the form to the first record</td> 153cdf0e10cSrcweir </tr> 154cdf0e10cSrcweir 155cdf0e10cSrcweir <tr style="vertical-align: top;"> 156cdf0e10cSrcweir <td><em>moveToPrev</em></td> 157cdf0e10cSrcweir <td>moves the form to the record preceding the current one</td> 158cdf0e10cSrcweir </tr> 159cdf0e10cSrcweir 160cdf0e10cSrcweir <tr style="vertical-align: top;"> 161cdf0e10cSrcweir <td><em>moveToNext</em></td> 162cdf0e10cSrcweir <td>moves the form to the record after the current one</td> 163cdf0e10cSrcweir </tr> 164cdf0e10cSrcweir 165cdf0e10cSrcweir <tr style="vertical-align: top;"> 166cdf0e10cSrcweir <td><em>moveToLast</em></td> 167cdf0e10cSrcweir <td>moves the form to the last record</td> 168cdf0e10cSrcweir </tr> 169cdf0e10cSrcweir 170cdf0e10cSrcweir <tr style="vertical-align: top;"> 171cdf0e10cSrcweir <td><em>moveToNew</em></td> 172cdf0e10cSrcweir <td>moves the form to the virtual "insert row", where new records can be inserted</td> 173cdf0e10cSrcweir </tr> 174cdf0e10cSrcweir 175cdf0e10cSrcweir <tr style="vertical-align: top;"> 176cdf0e10cSrcweir <td><em>saveRecord</em></td> 177cdf0e10cSrcweir <td>Commits any potentially pending changes in the current control, and saves the current record to 178cdf0e10cSrcweir the database, or inserts a new record if the form is currently positioned on the virtual insertion row.</td> 179cdf0e10cSrcweir </tr> 180cdf0e10cSrcweir 181cdf0e10cSrcweir <tr style="vertical-align: top;"> 182cdf0e10cSrcweir <td><em>undoRecord</em></td> 183cdf0e10cSrcweir <td>reverts the changes done to the current record. Basically, this means refreshing the 184cdf0e10cSrcweir current row from the database, and updating all controls with the new content.</td> 185cdf0e10cSrcweir </tr> 186cdf0e10cSrcweir 187cdf0e10cSrcweir <tr style="vertical-align: top;"> 188cdf0e10cSrcweir <td><em>deleteRecord</em></td> 189cdf0e10cSrcweir <td>deletes the current record, after asking the user for confirmation.</td> 190cdf0e10cSrcweir </tr> 191cdf0e10cSrcweir 192cdf0e10cSrcweir <tr style="vertical-align: top;"> 193cdf0e10cSrcweir <td><em>refreshForm</em></td> 194cdf0e10cSrcweir <td>reloads the complete form. After this, the form is positioned on the first record</td> 195cdf0e10cSrcweir </tr> 196cdf0e10cSrcweir 197cdf0e10cSrcweir <tr style="vertical-align: top;"> 198cdf0e10cSrcweir <td><em>sortUp</em></td> 199cdf0e10cSrcweir <td>Adds an order clause to the form, to sort it ascending by the field which the current control is bound to, 200cdf0e10cSrcweir and then reloads the form.</td> 201cdf0e10cSrcweir </tr> 202cdf0e10cSrcweir 203cdf0e10cSrcweir <tr style="vertical-align: top;"> 204cdf0e10cSrcweir <td><em>sortDown</em></td> 205cdf0e10cSrcweir <td>Adds an order clause to the form, to sort it descending by the field which the current control is bound to, 206cdf0e10cSrcweir and then reloads the form.</td> 207cdf0e10cSrcweir </tr> 208cdf0e10cSrcweir 209cdf0e10cSrcweir <tr style="vertical-align: top;"> 210cdf0e10cSrcweir <td><em>sort</em></td> 211cdf0e10cSrcweir <td>opens an dialog, which allows the user to manipulate the current sorting order of the form. If the dialog 212cdf0e10cSrcweir is closed with OK, the form is reloaded after setting the new sorting order.</td> 213cdf0e10cSrcweir </tr> 214cdf0e10cSrcweir 215cdf0e10cSrcweir <tr style="vertical-align: top;"> 216cdf0e10cSrcweir <td><em>autoFilter</em></td> 217cdf0e10cSrcweir <td>creates, from the current control, a filter for the form. This is, if the current control is bound to 218cdf0e10cSrcweir the field, say, "customer", and contains the value "Furs, Inc.", then a filter "customer = 'Furs, Inc.'" 219cdf0e10cSrcweir is created and set at the form. After this, the form is reloaded.</td> 220cdf0e10cSrcweir </tr> 221cdf0e10cSrcweir 222cdf0e10cSrcweir <tr style="vertical-align: top;"> 223cdf0e10cSrcweir <td><em>filter</em></td> 224cdf0e10cSrcweir <td>opens an dialog, which allows the user to manipulate the current filter of the form. If the dialog 225cdf0e10cSrcweir is closed with OK, the form is reloaded after setting the new filter.</td> 226cdf0e10cSrcweir </tr> 227cdf0e10cSrcweir 228cdf0e10cSrcweir <tr style="vertical-align: top;"> 229cdf0e10cSrcweir <td><em>applyFilter</em></td> 230cdf0e10cSrcweir <td><p>Toggles the <member scope="com::sun::star::sdb">RowSet::ApplyFilter</member> property 231cdf0e10cSrcweir of the form.</p> 232cdf0e10cSrcweir <p>Additionally, status listeners will be provided with the current (boolean) state of this property 233cdf0e10cSrcweir in the <member scope="com::sun::star::frame">FeatureStateEvent::State</member> member of the event 234cdf0e10cSrcweir notified by the dispatcher.</p></td> 235cdf0e10cSrcweir </tr> 236cdf0e10cSrcweir 237cdf0e10cSrcweir <tr style="vertical-align: top;"> 238cdf0e10cSrcweir <td><em>removeFilterOrder</em></td> 239cdf0e10cSrcweir <td>completely removes any filter and sorting order from the form, and reloads it.</td> 240cdf0e10cSrcweir </tr> 241cdf0e10cSrcweir 242cdf0e10cSrcweir </tbody></table> 243cdf0e10cSrcweir 244cdf0e10cSrcweir @see ::com::sun::star::form::component:Form 245cdf0e10cSrcweir @see ::com::sun::star::form::binding::BindableControlModel 246cdf0e10cSrcweir @see ::com::sun::star::sdb::DataSource::Settings 247cdf0e10cSrcweir 248*96af39f7SJürgen Schmidt @since OpenOffice 3.3 249cdf0e10cSrcweir */ 250cdf0e10cSrcweirinterface XFormController 251cdf0e10cSrcweir{ 252cdf0e10cSrcweir /** is used for tab controlling and grouping of the controls. 253cdf0e10cSrcweir 254cdf0e10cSrcweir <p>The model obtained via <member scope="com::sun::star::awt">XTabController::getModel</member> is the form for which the 255cdf0e10cSrcweir controller is responsible.</p> 256cdf0e10cSrcweir */ 257cdf0e10cSrcweir interface ::com::sun::star::awt::XTabController; 258cdf0e10cSrcweir 259cdf0e10cSrcweir /** allows access to the parent controller. 260cdf0e10cSrcweir */ 261cdf0e10cSrcweir interface ::com::sun::star::container::XChild; 262cdf0e10cSrcweir 263cdf0e10cSrcweir /** allows access to the sub controllers. 264cdf0e10cSrcweir */ 265cdf0e10cSrcweir interface ::com::sun::star::container::XIndexAccess; 266cdf0e10cSrcweir 267cdf0e10cSrcweir /** allows enumerating sub controllers 268cdf0e10cSrcweir */ 269cdf0e10cSrcweir interface ::com::sun::star::container::XEnumerationAccess; 270cdf0e10cSrcweir 271cdf0e10cSrcweir /** allows life time control of the controller. 272cdf0e10cSrcweir */ 273cdf0e10cSrcweir interface ::com::sun::star::lang::XComponent; 274cdf0e10cSrcweir 275cdf0e10cSrcweir /** allows to register as listener for modifications in the controls which the controller is responsible 276cdf0e10cSrcweir for. 277cdf0e10cSrcweir */ 278cdf0e10cSrcweir interface ::com::sun::star::util::XModifyBroadcaster; 279cdf0e10cSrcweir 280cdf0e10cSrcweir /** used to notify deletions of data in the form before they happen. 281cdf0e10cSrcweir 282cdf0e10cSrcweir <p>A form controller listens for deletion events at the form it is responsible for. If and only if no 283cdf0e10cSrcweir <type scope="com::sun::star::form">XConfirmDeleteListener</type> is registered at 284cdf0e10cSrcweir the controller, it uses an own dialog to ask the user for confirmation.</p> 285cdf0e10cSrcweir */ 286cdf0e10cSrcweir interface ::com::sun::star::form::XConfirmDeleteBroadcaster; 287cdf0e10cSrcweir 288cdf0e10cSrcweir /** is used to notify errors which happen in the form the controller is responsible for. 289cdf0e10cSrcweir 290cdf0e10cSrcweir <p>A form controller listens for error events at the form it is responsible for. If and only if no 291cdf0e10cSrcweir <type scope="com::sun::star::sdb">XSQLErrorListener</type> is registered at the controller, it 292cdf0e10cSrcweir uses an own dialog to notify the user of the error.</p> 293cdf0e10cSrcweir 294cdf0e10cSrcweir */ 295cdf0e10cSrcweir interface ::com::sun::star::sdb::XSQLErrorBroadcaster; 296cdf0e10cSrcweir 297cdf0e10cSrcweir /** is used for multiplexing row set events happening on the form which the controller is responsible for. 298cdf0e10cSrcweir */ 299cdf0e10cSrcweir interface ::com::sun::star::sdb::XRowSetApproveBroadcaster; 300cdf0e10cSrcweir 301cdf0e10cSrcweir /** is used broadcasting parameter events in the form. 302cdf0e10cSrcweir 303cdf0e10cSrcweir <p>A form controller listens for parameter events at the form it is responsible for. If and only if no 304cdf0e10cSrcweir <type scope="com::sun::star::form">XDatabaseParameterListener</type> is registered at the controller, it 305cdf0e10cSrcweir uses an own dialog to ask the user for parameter values.</p> 306cdf0e10cSrcweir */ 307cdf0e10cSrcweir interface ::com::sun::star::form::XDatabaseParameterBroadcaster2; 308cdf0e10cSrcweir 309cdf0e10cSrcweir /** allows switching the form controller to different operation modes. 310cdf0e10cSrcweir 311cdf0e10cSrcweir <a name="mode_selector"></a> 312cdf0e10cSrcweir <p>The two modes usually (but not necessarily) supported by a form controller are the <code>DataMode</code> 313cdf0e10cSrcweir and the <code>FilterMode</code>, where the former is the usual modus operandi for displaying and modifying 314cdf0e10cSrcweir data, and the latter is a special mode to enter a filter for the database form which the controller is 315cdf0e10cSrcweir responsible for.</p> 316cdf0e10cSrcweir */ 317cdf0e10cSrcweir interface ::com::sun::star::util::XModeSelector; 318cdf0e10cSrcweir 319cdf0e10cSrcweir /** allows controlling the filter mode. 320cdf0e10cSrcweir 321cdf0e10cSrcweir <p>If the form controller supports a <a href="#mode_selector">form based filter mode</a>, then it shall also 322cdf0e10cSrcweir support the <type>XFilterController</type> interface, which allows controlling this mode.</p> 323cdf0e10cSrcweir */ 324cdf0e10cSrcweir [optional] interface XFilterController; 325cdf0e10cSrcweir 326cdf0e10cSrcweir /** denotes the instance which is used to implement operations on the form which the controller 327cdf0e10cSrcweir works for. 328cdf0e10cSrcweir 329cdf0e10cSrcweir <p>This instance can be used, for instance, to determine the current state of certain form features.</p> 330cdf0e10cSrcweir */ 331cdf0e10cSrcweir [attribute, readonly] XFormOperations FormOperations; 332cdf0e10cSrcweir 333cdf0e10cSrcweir /** provicdes access to the currently active control 334cdf0e10cSrcweir */ 335cdf0e10cSrcweir [attribute, readonly] ::com::sun::star::awt::XControl CurrentControl; 336cdf0e10cSrcweir 337cdf0e10cSrcweir /** allows to delegate certain tasks to the context of the form controller 338cdf0e10cSrcweir */ 339cdf0e10cSrcweir [attribute] XFormControllerContext Context; 340cdf0e10cSrcweir 341cdf0e10cSrcweir /** used (if not <NULL/>) for user interactions triggered by the form controller. 342cdf0e10cSrcweir */ 343cdf0e10cSrcweir [attribute] ::com::sun::star::task::XInteractionHandler InteractionHandler; 344cdf0e10cSrcweir 345cdf0e10cSrcweir /** adds the specified listener to receive notifications whenever the activation state of 346cdf0e10cSrcweir the controller changes. 347cdf0e10cSrcweir */ 348cdf0e10cSrcweir void addActivateListener( [in] ::com::sun::star::form::XFormControllerListener _Listener ); 349cdf0e10cSrcweir 350cdf0e10cSrcweir /** removes the specified listener from the list of components to receive notifications whenever the activation 351cdf0e10cSrcweir state of the controller changes. 352cdf0e10cSrcweir */ 353cdf0e10cSrcweir void removeActivateListener( [in] ::com::sun::star::form::XFormControllerListener _Listener ); 354cdf0e10cSrcweir 355cdf0e10cSrcweir /** adds a controller to the list of child controllers 356cdf0e10cSrcweir @throws ::com::sun::star::lang::IllegalArgumentException 357cdf0e10cSrcweir if the given controller is <NULL/>, or cannot rightfully be a child controller. Since controllers 358cdf0e10cSrcweir mirror the hierarchy of the forms the are responsible for, this means that the form of the given 359cdf0e10cSrcweir child controller must be a child of the controller at which the method is invoked. 360cdf0e10cSrcweir */ 361cdf0e10cSrcweir void addChildController( [in] XFormController _ChildController ) 362cdf0e10cSrcweir raises ( ::com::sun::star::lang::IllegalArgumentException ); 363cdf0e10cSrcweir}; 364cdf0e10cSrcweir 365cdf0e10cSrcweir//============================================================================= 366cdf0e10cSrcweir 367cdf0e10cSrcweir}; }; }; }; }; 368cdf0e10cSrcweir 369cdf0e10cSrcweir//============================================================================= 370cdf0e10cSrcweir 371cdf0e10cSrcweir#endif 372