
/*
  An interface through which a user-actionable UI component can be manipulated.
  
  Typical actions include "click", "press", "release" or "open".
*/
interface org.freestandards.atspi.Action {
	/*
	  Represents a single action.
	*/
	struct Action {
		/* String containing short description of action. */
		string name;
		/* The description of an action may provide information about the result. */
		string description;
		/* A string containing the key-binding or "" if none exists */
		string key_binding;
	}

	property read int32 NActions;

	/* Get the description for the specified action. */
	method GetDescription {
		int32 index;
	} reply {
		string description
	}

	/* Get the name of the specified action */
	method GetName {
		int32 index;
	} reply {
		string name;
	}

	method GetLocalizedName {
		int32 index;
	} reply {
		string name;
	}

	/* Get the key-binding for the specified action. */
	method GetKeyBinding {
		int32 index;
	} reply {
		string key_binding;
	}

	/* Retrieves the actions associated with the object. */
	method GetActions reply {
		Action actions [];
	}

	/* Causes the object to perform the specified action. */
	method GetActions {
		int32 index;
	} reply {
		boolean success;
	}	
}
