Blame idl/controller.didl

Packit 8b6d7a
Packit 8b6d7a
interface org.freestandards.atspi.DeviceEventController {
Packit 8b6d7a
Packit 8b6d7a
	enum <uint32> KeySynthType {
Packit 8b6d7a
		KEY_PRESS=0,
Packit 8b6d7a
		KEY_RELEASE,
Packit 8b6d7a
		KEY_PRESSRELEASE,
Packit 8b6d7a
		KEY_SYM,
Packit 8b6d7a
		KEY_STRING
Packit 8b6d7a
	}
Packit 8b6d7a
Packit 8b6d7a
        /*
Packit 8b6d7a
	  Consumption of events and syncronous event delivery is a sore-thumb.
Packit 8b6d7a
Packit 8b6d7a
	  The client should really have no say over what the DeviceEventController
Packit 8b6d7a
          does with regards to event delivery as such the 'syncronous' flag is redundant.
Packit 8b6d7a
Packit 8b6d7a
	  The 'global' flag is now useless as XEVIE is no longer maintained. As such
Packit 8b6d7a
	  the DeviceEventController will not recieve any device events from applications
Packit 8b6d7a
	  not participating.
Packit 8b6d7a
Packit 8b6d7a
	  The only possibly useful flag is 'preemptive'. However all keyboard events are
Packit 8b6d7a
	  sent as pre-emptive from gail so its debateable whether even this flag is really
Packit 8b6d7a
	  in-use.
Packit 8b6d7a
	 */
Packit 8b6d7a
	struct EventListenerMode {
Packit 8b6d7a
		/* Controller should block while delivering this event. */
Packit 8b6d7a
		boolean syncronous;
Packit 8b6d7a
		/* Clients are allowed to consume this event. */
Packit 8b6d7a
		boolean preemptive;
Packit 8b6d7a
		/* 
Packit 8b6d7a
		 Event notifications should be sent regardless of whether 
Packit 8b6d7a
                 focused application participates in AT-SPI accessibility.
Packit 8b6d7a
                 */
Packit 8b6d7a
		boolean global;
Packit 8b6d7a
	}
Packit 8b6d7a
Packit 8b6d7a
	struct KeyDefinition {
Packit 8b6d7a
		int32  keycode;
Packit 8b6d7a
		int32  keysym;
Packit 8b6d7a
		string keystring;
Packit 8b6d7a
		int32  unused;
Packit 8b6d7a
	}
Packit 8b6d7a
Packit 8b6d7a
	method RegisterKeystrokeListener {
Packit 8b6d7a
		object            listener;
Packit 8b6d7a
		KeyDefinition[]   keys;
Packit 8b6d7a
		uint32            mask;
Packit 8b6d7a
		EventType[]       type;		
Packit 8b6d7a
		EventListenerMode mode;
Packit 8b6d7a
	} reply {
Packit 8b6d7a
		boolean           success;
Packit 8b6d7a
	}
Packit 8b6d7a
Packit 8b6d7a
	method DeregisterKeystrokeListener {
Packit 8b6d7a
		object            listener;
Packit 8b6d7a
		KeyDefinition[]   keys;	
Packit 8b6d7a
		uint32            mask;
Packit 8b6d7a
		EventType[]       type;		
Packit 8b6d7a
	}
Packit 8b6d7a
Packit 8b6d7a
	method RegisterDeviceEventListener {
Packit 8b6d7a
		object      listener;
Packit 8b6d7a
		EventType[] type;
Packit 8b6d7a
	} reply {
Packit 8b6d7a
		boolean     success;
Packit 8b6d7a
	}
Packit 8b6d7a
Packit 8b6d7a
	method DeregisterDeviceEventListener {
Packit 8b6d7a
		object      listener;
Packit 8b6d7a
		EventType[] type;
Packit 8b6d7a
	}
Packit 8b6d7a
Packit 8b6d7a
	method NotifyListenersSync {
Packit 8b6d7a
		DeviceEvent event;
Packit 8b6d7a
	} reply {
Packit 8b6d7a
		boolean     consumed;
Packit 8b6d7a
	}
Packit 8b6d7a
Packit 8b6d7a
	method NotifyListenersAsync {
Packit 8b6d7a
		DeviceEvent event;
Packit 8b6d7a
	}
Packit 8b6d7a
Packit 8b6d7a
	method GenerateKeyboardEvent {
Packit 8b6d7a
		int32        keycode;
Packit 8b6d7a
		string       keystring;
Packit 8b6d7a
		KeySynthType type;
Packit 8b6d7a
	}
Packit 8b6d7a
Packit 8b6d7a
	method GenerateMouseEvent {
Packit 8b6d7a
		int32  x;
Packit 8b6d7a
		int32  y;
Packit 8b6d7a
		string event_name;
Packit 8b6d7a
	}
Packit 8b6d7a
}