Mini Shell
3
�p5[�h � @ s� d Z dZdZdZdZdZddlZddlZddlZddl m
Z
dd l mZ d
dlm
Z
d
dlmZ d
d
lmZ d
dlmZ d
dlmZ d
dlmZ dZdZdZG dd� d�ZG dd� de�ZG dd� de�ZG dd� de�ZG dd� d�ZdS )z+Provides support for handling input events.z$Id$z
$Revision$z$Date$zQCopyright (c) 2005-2008 Sun Microsystems Inc.Copyright (c) 2011-2016 Igalia, S.L.ZLGPL� N)�Gdk)�GLib� )�debug)�keybindings)�keynames)�messages)�
orca_state)�settingsZkeyboardZbraillezmouse:buttonc @ s$ e Zd Zdd� Zdd� Zdd� ZdS )�
InputEventc C s || _ tj� | _d| _dS )zCCreates a new KEYBOARD_EVENT, BRAILLE_EVENT, or MOUSE_BUTTON_EVENT.r N)�type�time�_clickCount)�selfZ eventType� r �!/usr/lib/python3.6/input_event.py�__init__1 s
zInputEvent.__init__c C s | j S )z9Return the count of the number of clicks a user has made.)r )r r r r �
getClickCount8 s zInputEvent.getClickCountc C s dS )z:Updates the count of the number of clicks a user has made.Nr )r r r r �
setClickCount= s zInputEvent.setClickCountN)�__name__�
__module__�__qualname__r r r r r r r r / s r c sZ e Zd ZdZdZdZdZdZdZdZ dZ
d Zd
ZdZ
dZd
ZdZ� fdd�Zdd� Zdd� Zdd� Zdd� Zdd� Zdd� Zdd� Zdd � Zd!d"� Zd#d$� Zd%d&� Zd'd(� ZdSd*d+�Zd,d-� Zd.d/� Z d0d1� Z!d2d3� Z"d4d5� Z#d6d7� Z$d8d9� Z%d:d;� Z&d<d=� Z'd>d?� Z(d@dA� Z)dBdC� Z*dDdE� Z+dFdG� Z,dTdIdJ�Z-dUdKdL�Z.dMdN� Z/dOdP� Z0dQdR� Z1� Z2S )V�
KeyboardEventr F�unknownZ printableZmodifierZlocking�function�actionZ
navigationZdiacriticalZ
alphabeticZnumericZpunctuation�spacec s� t � jt� |j| _|j| _|j| _|j| _|j| _d| _|j | _ |j
| _
| tjtj
gk| _tj| _d| _tj| _tj| _d| _d| _d| _d| _d| _d| _| jr�| jj| � | jj| _| js�| jjj� | _| jtj @ o�| j o�t!| j�dk�rt"| jd �}|dk �rt#|d �| _| j�r0t$ j%d7 _%ndt$_%d| _&|jt'j(k}y| jj)� }W n d}Y nX |�pv|t'j*k}| j+� �r�t$j,| _&|�o�t-j.| _/�n�| j0� �r�t$j1| _&|�o�t-j2| _/�np| j3� �r�t$j4| _&|�o�t-j5| _/| j6� �r0|t$_7�n<| j8� �rt$j9| _&|�ot-j:| _/�n| j;� �r:t$j<| _&|�o4t-j=| _/n�| j>� �rzt$j?| _&t-j@| _/| j/dk�rjt-jA | _/| j/�ot|| _/n�| jB� �r�t$jC| _&|�o�t-jD�p�t-jE| _/n�| jF� �r�t$jG| _&|�o�t-jH�p�t-jE| _/nb| jI� �r�t$jJ| _&|�o�t-jK�p�t-jE| _/n8| jL� �r"t$jM| _&|�ot-jN�pt-jE| _/nt$jO| _&d| _/| j>� �sJ| j/�oFt-jP| _/| j3� �s\| jQ� tjR�rp|�rpdt$_7t$j7�r�| jtjSO _| jT� \| _| _dS )zxCreates a new InputEvent of type KEYBOARD_EVENT.
Arguments:
- event: the AT-SPI keyboard event
� Nr r � �@ F)U�superr �KEYBOARD_EVENT�idr �hw_code� modifiers�event_string�keyval_name�is_text� timestampr �lastInputEvent�lastNonModifierKeyEvent�is_duplicate�activeScript�_script�_app�activeWindow�_windowZlocusOfFocus�_obj�_handler� _consumer�_should_consume�_consume_reason�_did_consume�_result_reasonZcheckKeyboardEventDataZapp� utilitiesr ZCTRL_MODIFIER_MASK�len�ord�chrr �duplicateCount�keyType�pyatspi�KEY_PRESSED_EVENTZgetRoleZ
ROLE_TERMINAL�isNavigationKey�TYPE_NAVIGATIONr
ZenableNavigationKeys�
shouldEcho�isActionKey�TYPE_ACTIONZenableActionKeys�
isModifierKey�
TYPE_MODIFIERZenableModifierKeys�isOrcaModifier�orcaModifierPressed�
isFunctionKey�
TYPE_FUNCTIONZenableFunctionKeys�isDiacriticalKey�TYPE_DIACRITICALZenableDiacriticalKeys�isLockingKey�TYPE_LOCKINGZpresentLockingKeysZonlySpeakDisplayedText�isAlphabeticKey�TYPE_ALPHABETICZenableAlphabeticKeysZenableEchoByCharacter�isNumericKey�TYPE_NUMERICZenableNumericKeys�isPunctuationKey�TYPE_PUNCTUATIONZenablePunctuationKeys�isSpace�
TYPE_SPACEZenableSpace�TYPE_UNKNOWNZ
enableKeyEchor �bypassNextCommand�ORCA_MODIFIER_MASK�
shouldConsume)r �event�valueZ
_isPressedZroleZ_mayEcho)� __class__r r r T s�
zKeyboardEvent.__init__c C s� t j}t|t� s0|j| jks0| j|j tjkr:d| _dS |j � | _| j
rNdS | jtj
kr^dS | jdk rz| jd7 _dS d| _dS )z:Updates the count of the number of clicks a user has made.r N� )r r* �
isinstancer r% r
r
�doubleClickTimeoutr r r+ r r>