/*******************************************************************************
* Copyright (c) 2009, 2010, 2012 IBM Corporation, Gerhardt Informatics Kft. and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
* Gerhardt Informatics Kft. - GEFGWT port
*******************************************************************************/
package org.eclipse.swt.accessibility;
import org.eclipse.swt.events.SWTEventListener;
/**
* Classes which implement this interface provide methods that handle
* AccessibleAction events.
* <p>
* After creating an instance of a class that implements this interface it can
* be added to an accessible using the <code>addAccessibleActionListener</code>
* method and removed using the <code>removeAccessibleActionListener</code>
* method.
* </p>
*
* @see AccessibleActionAdapter
* @see AccessibleActionEvent
*
* @since 3.6
*/
public interface AccessibleActionListener extends SWTEventListener {
/**
* Returns the number of accessible actions available in this object.
* <p>
* If there are more than one, the first one (index 0) is considered the
* "default" action of the object.
* </p>
*
* @param e
* an event object containing the following fields:
* <ul>
* <li>[out] count - the number of actions, or zero if there are
* no actions</li>
* </ul>
*/
public void getActionCount(AccessibleActionEvent e);
/**
* Performs the specified action on the object.
*
* @param e
* an event object containing the following fields:
* <ul>
* <li>[in] index - a 0 based index specifying the action to
* perform. If the index lies outside the valid range no action
* is performed.</li>
* <li>[out] result - set to {@link ACC#OK} if the action was
* performed.</li>
* </ul>
*/
public void doAction(AccessibleActionEvent e);
/**
* Returns a description of the specified action.
*
* @param e
* an event object containing the following fields:
* <ul>
* <li>[in] index - a 0 based index specifying which action's
* description to return</li>
* <li>[out] result - a localized string describing the specified
* action, or null if the index lies outside the valid range</li>
* </ul>
*/
public void getDescription(AccessibleActionEvent e);
/**
* Returns a string representing one or more key bindings, if there are any,
* associated with the specified action.
* <p>
* The returned string is of the following form: mnemonic;accelerator for
* example: "C;CTRL+C" for the Copy item in a typical Edit menu.
* </p>
*
* @param e
* an event object containing the following fields:
* <ul>
* <li>[in] index - a 0 based index specifying which action's key
* bindings to return</li>
* <li>[out] result - a semicolon-delimited string of localized
* key bindings (example: "C;CTRL+C"), or null if the index lies
* outside the valid range</li>
* </ul>
*/
public void getKeyBinding(AccessibleActionEvent e);
/**
* Returns the name of the specified action.
* <p>
* There is no need to implement this method for single action controls
* since that would be redundant with
* AccessibleControlListener.getDefaultAction.
* </p>
*
* @param e
* an event object containing the following fields:
* <ul>
* <li>[in] index - a 0 based index specifying which action's
* name to return</li>
* <li>[in] localized - a boolean indicating whether or not to
* return a localized name</li>
* <li>[out] result - the name of the specified action, or null
* if the index lies outside the valid range</li>
* </ul>
*/
public void getName(AccessibleActionEvent e);
}