
    ?gM4                        d dl mZmZmZ g ej                  ej
                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                   ej"                  ej$                  ej&                  ej(                  ej*                  ej,                  ej.                  ej0                  ej2                  ej4                  ej6                  ej8                  ej:                  ej<                  ej>                  ej@                  ejB                  ejD                  ejF                  ejH                  ejJ                  ejL                  ejN                  ejP                  ejR                  ejT                  Z+ G d dejX                        Z- G d dej\                        Z/y)    )GtkGdkGObjectc                        e Zd Zej                  j
                  deeffej                  j
                  ddfdZdedddej                  j                  fiZ
 fdZd Zd	 Zd
 Zd Zd Zd Zd Zd Z xZS )ButtonKeybindingN accel-editedaccel-clearedaccel-stringaccelerator stringParseable accelerator stringc                    t         t        |           | j                  d       | j	                  d       | j                  d       | j                  t        j                         d | _	        d| _
        t        |       | _        | j                  j                  dd       | j                  j                  d| j                         | j                  j                  d| j                         t!        j"                  d| j                  d	
      }|j                  d       | j%                  |       | j                  j'                  dd       | j)                          | j                  d| j*                         y )NFT )a_widgetg      ?r
   r   bindingr   accel_stringeditablefocus-out-event)superr   __init__set_headers_visibleset_enable_searchset_hover_selectionset_tooltip_textCellRendererKeybindingTOOLTIP_TEXTentry_storer   keybinding_cellset_alignmentconnecton_cell_editedon_cell_clearedr   TreeViewColumnappend_columnset_property
load_modelon_focus_lost)selfcol	__class__s     >/usr/share/cinnamon/cinnamon-settings/bin/KeybindingWidgets.pyr   zButtonKeybinding.__init__=   s&   .0  'u%  &4AAB5tD**2b1$$^T5H5HI$$_d6J6JK  D,@,@qQ"3))*d;&(:(:;    c                 X    || _         | j                  d||       | j                          y )Nr
   r   emitr(   )r*   cellpathr   accel_labels        r-   r#   zButtonKeybinding.on_cell_editedW   s$    (		.,<r.   c                 T    d| _         | j                  d       | j                          y )Nr   r   r0   )r*   r2   r3   s      r-   r$   z ButtonKeybinding.on_cell_cleared\   s     		/"r.   c                 @    | j                         j                          y N)get_selectionunselect_allr*   widgetevents      r-   r)   zButtonKeybinding.on_focus_losta   s    ))+r.   c                    | j                   r| j                   j                          t        j                  t              | _         | j                   j                  | j                  f       | j                  | j                          y r7   )r   clearr   	ListStorestrappendr   	set_modelr*   s    r-   r(   zButtonKeybinding.load_modeld   s]    ""$==-!2!2 45t''(r.   c                 h    |j                   dk(  r| j                  S t        d|j                   z        Nr   zunknown property %snamer   AttributeErrorr*   props     r-   do_get_propertyz ButtonKeybinding.do_get_propertym   /    99&$$$ !6!BCCr.   c                     |j                   dk(  r3|| j                  k7  r#|| _        | j                  j                  |       y y t	        d|j                   z        rE   )rG   r   r    	set_valuerH   r*   rJ   values      r-   do_set_propertyz ButtonKeybinding.do_set_propertys   sT    99&)))$)!$$..u5 * !!6!BCCr.   c                     | j                   S r7   r   rC   s    r-   get_accel_stringz!ButtonKeybinding.get_accel_string{   s       r.   c                 2    || _         | j                          y r7   )r   r(   r*   r   s     r-   set_accel_stringz!ButtonKeybinding.set_accel_string~   s    (r.   )__name__
__module____qualname__r   SignalFlagsRUN_LASTr@   __gsignals__
ParamFlags	READWRITE__gproperties__r   r#   r$   r)   r(   rK   rQ   rS   rV   __classcell__r,   s   @r-   r   r   /   s     ,,55tc3ZH!--66bAL 	-7 ++55	7O<4

,)DD!r.   r   c                   8    e Zd Zej                  j
                  deeeffej                  j
                  deffdZdedddej                  j                  fiZ
 ed      d ed      d ed	      Zd fd
	Zd Zd Zd ZddZd Zd Zd Zd Zd Z xZS )r   Nr	   r   r   r   z#Click to set a new accelerator key.
z4Press Escape or click again to cancel the operation.z1Press Backspace to clear the existing keybinding.c                    t         t        |           | j                  d| j                         d| _        d| _        d| _        || _        || _	        d | _
        d | _        d| _        d| _        d| _        | j                          y )Nzediting-startedr   FTr   )r   r   r   r"   editing_startedrelease_event_idpress_event_idfocus_idr   r   r3   press_eventteachingdefault_valuetext_stringupdate_label)r*   r   r   r,   s      r-   r   zCellRendererKeybinding.__init__   s~    $d46&(<(<= ! (	!r.   c                 h    |j                   dk(  r| j                  S t        d|j                   z        rE   rF   rI   s     r-   rK   z&CellRendererKeybinding.do_get_property   rL   r.   c                     |j                   dk(  r(|| j                  k7  r|| _        | j                          y y t        d|j                   z        rE   )rG   r   rm   rH   rO   s      r-   rQ   z&CellRendererKeybinding.do_set_property   sL    99&)))$)!!!# * !!6!BCCr.   c                    | j                   rt        d      n| j                  }| j                  r~d}| j                  }d|v rd}|j	                  dd      }t        j                  |      \  }}}|)t        |      dkD  rt        j                  d ||d   |      }|r|j	                  dd      }| j                  d	|       y )
N
unassignedF	Above_TabTgraver   `AboveTabtext)
rk   _rl   r   replacer   accelerator_parse_with_keycodelen"accelerator_get_label_with_keycoder'   )r*   rv   restore_atabvalidkeycodesmodss          r-   rm   z#CellRendererKeybinding.update_label   s    "&"4"4q$:J:J L%%Ee##k7;"AA%HC SZ!^==dCqSWX||C4&$'r.   c                 (    | j                  d|       y )Nr   )r'   rU   s     r-   rN   z CellRendererKeybinding.set_value   s    .,7r.   c                    | j                   s|| _        t        j                         }|j	                         t
        j                  j                  k(  r|| _        n|j                         | _        | j                  j                  | j                  j                         t
        j                  j                  dt
        j                  j                   t
        j                  j"                  z  d t
        j$                         |j'                  t)        d             || _        | j*                  j-                  d| j.                        | _        | j*                  j-                  d| j2                        | _        | j*                  j-                  d| j6                        | _        d| _         y | j;                          | j=                          d| _         y )NFzPick an acceleratorzkey-release-eventzkey-press-eventr   T)rj   r3   r   get_current_event_device
get_sourcer   InputSourceKEYBOARDkeyboardget_associated_devicegrabr   
get_windowGrabOwnershipWINDOW	EventMaskKEY_PRESS_MASKKEY_RELEASE_MASKCURRENT_TIMEset_textrw   accel_editabler"   on_key_releaserf   on_key_pressrg   on_focus_outrh   ungrabrm   )r*   rendererr   r3   devices        r-   re   z&CellRendererKeybinding.editing_started   sQ   }}DI113F  "coo&>&>> & & < < >MMt}}7793;L;L;S;SUZ"}};;cmm>\>\\#S%5%57 a 567"*D$($7$7$?$?ATVZViVi$kD!"&"5"5"="=?PRVRcRc"eD //779JDL]L]_DM DMKKM!DMr.   c                 2    d| _         | j                          y )NF)rj   r   r:   s      r-   r   z#CellRendererKeybinding.on_focus_out   s    r.   c                 H    | j                   r|j                         | _        yy)NTF)rj   copyri   r:   s      r-   r   z#CellRendererKeybinding.on_key_press   s    ==$zz|Dr.   c                    | j                          d| _        | j                  y| j                  }|j                         }d}|j                  }|j
                  }|j                  t        j                  k(  r3|t        j                  j                  z  dk7  rt        j                  }d}n{t        j                  j                  |      }d}	d}
|j                  t        j                  j                         }
|j#                  |j$                  ||      \  }}}}}|	rd}|r||
 z  }t        j&                  |      }|t        j(                  k(  rt        j*                  }|t-        j.                         z  }|dk(  r|t        j0                  k(  r&| j3                          d| _        d | _        d | _        y|t        j6                  k(  rCd| _        d | _        | j9                  d        | j;                  d| j4                         d | _        yt-        j<                  d ||j$                  t        j                  |            }t-        j>                  d ||j$                  t        j                  |            }|dk(  s|t        j                  j@                  k(  r|j$                  dk7  rt| jB                  rg|t        jD                  k\  r|t        jF                  k  s|t        jH                  k\  r|t        jJ                  k  sa|t        jL                  k\  r|t        jN                  k  s:|t        jP                  k\  r|t        jR                  k  s|t        jT                  k\  r|t        jV                  k  s|t        jX                  k\  r|t        jZ                  k  s|t        j\                  k\  r|t        j^                  k  s|t        j`                  k\  r|t        jb                  k  s{|t        jd                  k\  r|t        jf                  k  sU|t        jh                  k\  r|t        jj                  k  s/|t        jl                  k\  r|t        jn                  k  s	|tp        v rt-        jr                  d t,        jt                  jv                  t,        jx                  jz                  t,        j|                  j~                  d       }|j                  t        d      t,        j                  j                        }|j                  t        d      t,        j                  j                        }|j                  t,        j                  j                         |j                         j                  t,        j                         |j                  dd	       t        d
      }|t        d      z  }|t        d      z  }|j                  ||z         |j                          |j                         }|j                          |t,        j                  j                  k7  ryd | _        | j9                  |       | j;                  d| j4                  ||       d | _        y)NFTr      r   CancelContinuei     zq
This key combination, '<b>%s</b>' should not be used because it would become impossible to type using this key. zTPlease try again using a modifier key such as Control, Alt or Super (Windows key).

zPContinue only if you are certain this is what you want, otherwise press cancel.
r
   )Nr   rj   ri   get_displaygroupstatekeyvalr   KEY_Sys_ReqModifierType	MOD1_MASK	KEY_PrintKeymapget_for_displayget_modifier_maskModifierIntentSHIFT_GROUPtranslate_keyboard_statehardware_keycodekeyval_to_lowerKEY_ISO_Left_TabKEY_Tabr    accelerator_get_default_mod_mask
KEY_Escaperm   r3   KEY_BackSpacerN   r1   accelerator_name_with_keycoder{   
SHIFT_MASKrk   KEY_aKEY_zKEY_AKEY_ZKEY_0KEY_9KEY_kana_fullstopKEY_semivoicedsoundKEY_Arabic_commaKEY_Arabic_sukunKEY_Serbian_djeKEY_Cyrillic_HARDSIGNKEY_Greek_ALPHAaccentKEY_Greek_omegaKEY_hebrew_doublelowlineKEY_hebrew_tafKEY_Thai_kokaiKEY_Thai_lekkao
KEY_HangulKEY_Hangul_SpecialKEY_Hangul_KiyeogKEY_Hangul_J_YeorinHieuhFORBIDDEN_KEYVALSMessageDialogDialogFlagsDESTROY_WITH_PARENTMessageTypeWARNINGButtonsTypeNONE
add_buttonrw   ResponseTypeCANCELOKset_default_responseget_style_context	add_classSTYLE_CLASS_DESTRUCTIVE_ACTIONset_default_size
set_markupshow_allrundestroy)r*   r;   r<   displayr   r   
accel_modsconsumed_modifierskeymapgroup_mask_disabledshift_group_maskretvaleffective_grouplevel	accel_keyr   r4   dialogbuttonmsgresponses                        r-   r   z%CellRendererKeybinding.on_key_release   s   #  $$&[[

 <<3??*#**444:]]F!"ZZ//8F"' %778J8J8V8VW //0F0F
TYZ GFFOU4F #"#!"'7&77"''/	,,,Ic::<<
?CNN*!!# % 	#' c/// %#' t$		/4995 	88y%J`J`bebrbrs}b~<<T9eNdNdfifvfv  xB  gC  D !OzS-=-=-H-HHeNdNdhiNinr  oA  oA399$Fcii<Osyy(#))@Ssyy(#))@Ss444#JaJa@as333#J^J^@^s222#JcJc@cs888#J]J]@]s;;;#J\J\@\s111#J]J]@]s~~-#J`J`@`s444#JfJf@f"33**4+.??+N+N+.??+B+B+.??+?+?+/	1
  **1X;8H8H8O8OP**1Z=#:J:J:M:MN++C,<,<,C,CD((*44S5W5WX''S1  O  Pqqrrqlmm!!#"34!!::< s//222|$		.$))\;G	r.   c                 0   | j                   j                  t        j                         | j                  dkD  r,| j
                  j                  | j                         d| _        | j                  dkD  r,| j
                  j                  | j                         d| _        | j                  dkD  r,| j
                  j                  | j                         d| _        	 | j
                  j                          | j
                  j                          y #  Y y xY w)Nr   )r   r   r   r   rf   r   
disconnectrg   rh   editing_doneremove_widgetrC   s    r-   r   zCellRendererKeybinding.ungrabT  s    S--.  1$**4+@+@A$%D!"**4+>+>?"#D==1**4==9DM	,,.--/	s   4D Dr7   )rW   rX   rY   r   rZ   r[   r@   r\   r]   r^   r_   rw   r   r   rK   rQ   rm   rN   re   r   r   r   r   r`   ra   s   @r-   r   r      s     ,,55tc3_M!--66sfEL 	-7 ++55	7O $%%J#K#$%[#\#$%X#Y[L$DD("8"2eNr.   r   N)0gi.repositoryr   r   r   KEY_HomeKEY_LeftKEY_Up	KEY_RightKEY_DownKEY_Page_UpKEY_Page_DownKEY_Endr   
KEY_Return	KEY_spaceKEY_Mode_switchKEY_KP_0KEY_KP_1KEY_KP_2KEY_KP_3KEY_KP_4KEY_KP_5KEY_KP_6KEY_KP_7KEY_KP_8KEY_KP_9
KEY_KP_EndKEY_KP_DownKEY_KP_NextKEY_KP_LeftKEY_KP_BeginKEY_KP_RightKEY_KP_Home	KEY_KP_UpKEY_KP_PriorKEY_KP_InsertKEY_KP_Delete
KEY_KP_AddKEY_KP_SubtractKEY_KP_MultiplyKEY_KP_DivideKEY_KP_EnterKEY_Num_Lockr   TreeViewr   CellRendererTextr   r   r.   r-   <module>r     s   , +(LL(LL( JJ( MM	(
 LL( OO( ( KK( KK( NN( MM( ( LL( LL( LL(  LL!(" LL#($ LL%(& LL'(( LL)(* LL+(, LL-(. NN/(0 OO1(2 OO3(4 OO5(6 7(8 9(: OO;(< MM=(> ?(@ A(B C(D NNE(F G(H I(J K(L M(N O( TQs|| Qh`S11 `r.   