
    g
f                         d Z dZdZdZdZdZddlmZ ddlmZ dd	lm	Z	 dd
lm
Z
 ddlmZ ddlmZ ddlmZ  G d d      Z e       Zd Zy)zModule for sleep modez$Id$z
$Revision$z$Date$zCopyright (c) 2024 Igalia, S.L.LGPL   )cmdnames)debug)input_event)keybindings)messages)script_manager)AXObjectc                   @    e Zd ZdZd Zd
dZddZd Zd Zd Z	dd	Z
y)SleepModeManagerz#Provides sleep mode implementation.c                 p    | j                  d      | _        t        j                         | _        g | _        y )NT)get_handlers	_handlersr   KeyBindings	_bindings_apps)selfs    9/usr/lib/python3/dist-packages/orca/sleep_mode_manager.py__init__zSleepModeManager.__init__)   s+    **40$002
    c                     |rCd}t        j                  t         j                  |d       | j                          | j                  S | j                  j                         r| j                          | j                  S )z+Returns the sleep-mode-manager keybindings.z(SLEEP MODE MANAGER: Refreshing bindings.T)r   printMessage
LEVEL_INFO_setup_bindingsr   isEmpty)r   refresh
is_desktopmsgs       r   get_bindingszSleepModeManager.get_bindings.   sd     <Cu//d;  " ~~ ^^##%  "~~r   c                     |r7d}t        j                  t         j                  |d       | j                          | j                  S )z(Returns the sleep-mode-manager handlers.z(SLEEP MODE MANAGER: Refreshing handlers.T)r   r   r   _setup_handlersr   )r   r   r   s      r   r   zSleepModeManager.get_handlers:   s:     <Cu//d;  "~~r   c                     |xr t        |      | j                  v }|r)d|g}t        j                  t        j                  |d       |S )z-Returns True if sleep mode is active for app.z!SLEEP MODE MANAGER: Is active forT)hashr   r   printTokensr   )r   appresulttokenss       r   is_active_for_appz"SleepModeManager.is_active_for_appD   sE     0cdjj093?Fe..=r   c                     i | _         t        j                  | j                  t        j
                        | j                   d<   d}t        j                  t        j                  |d       y)z@Sets up and returns the sleep-mode-manager input event handlers.toggle_sleep_modez$SLEEP MODE MANAGER: Handlers set up.TN)	r   r   InputEventHandlerr*   r   TOGGLE_SLEEP_MODEr   r   r   r   r   s     r   r!   z SleepModeManager._setup_handlersM   s[      ))&&**, 	*+
 55++S$7r   c           
      P   t        j                         | _        | j                  j                  t        j                  dt         j
                  t         j                  | j                  j                  d                   d}t        j                  t        j                  |d       y)z8Sets up and returns the sleep-mode-manager key bindings.qr*   z$SLEEP MODE MANAGER: Bindings set up.TN)r   r   r   add
KeyBindingdefaultModifierMaskSHIFT_ALT_CTRL_MODIFIER_MASKr   getr   r   r   r-   s     r   r   z SleepModeManager._setup_bindingsZ   s{     %002""//88""#67	9	: 55++S$7r   Nc                    |r|j                   syt        j                         }| j                  |j                         r| j                  j                  t        |j                                |j                  |j                         }|j                  t        j                  t        j                  |j                         z         |j                  |d       y|j                          |j                  t        j                  t        j                  |j                         z         |j                  |j!                  |j                         d       | j                  j#                  t        |j                                y)zToggles sleep mode.TzSleep mode toggled offzSleep mode toggled on)r%   r	   
getManagerr(   r   remover#   	getScriptpresentMessager   SLEEP_MODE_DISABLED_FORr
   get_namesetActiveScriptclearBrailleSLEEP_MODE_ENABLED_FORgetOrCreateSleepModeScriptappend)r   scriptevent_script_manager
new_scripts        r   r*   z"SleepModeManager.toggle_sleep_modei   s    6::(335!!&**-JJd6::./(226::>J%%0083D3DVZZ3PPR++J8PQh==@Q@QRXR\R\@]]^''(R(RSYS]S](^(?	A

$vzz*+r   )FT)FN)__name__
__module____qualname____doc__r   r   r   r(   r!   r   r*    r   r   r   r   &   s(    -

88r   r   c                      t         S rE   )_managerrJ   r   r   r6   r6      s    Or   N)rI   __id____version____date____copyright____license__ r   r   r   r   r   r	   	ax_objectr
   r   rL   r6   rJ   r   r   <module>rT      sT   * 1       W Wt r   