
    Tg                     N    d dl mZmZmZmZ d dlZ G d dej                        Zy)    )GLibGtkGObjectGdkNc                       e Zd Zdej                  j
                  eej                  ffiZ	d Z
ddZd ZddZd Zd Zd	 Zd
 Zd ZddZddZddZd Zd Zy)ScreenshotWindow
next-imagec                    t         j                  j                  | t         j                  j                  d|dddt
        j                  j                  d	       | j                  t         j                  j                         t
        j                  j                         | _        | j                  j                         | _        | j                  b| j                  j!                         rH| j#                  | j                         | j%                  d       | j'                  d| j(                         t        j*                         | _        | j/                  | j,                         | j'                  d| j0                         || _        t
        j4                  j7                  t
        j8                  j                         d      | _        |rt
        j4                  j7                  t
        j8                  j                         d      | _        t
        j4                  j7                  t
        j8                  j                         d	      | _        nd | _        d | _        | j'                  d
| j@                         d| _!        t        jD                  dddd      | _#        | j,                  j/                  | jF                         t         jH                  jK                  |       | _&        | jL                  jO                  t         jP                  jR                         | jL                  j'                  d| jT                         | j'                  d| jV                         | j'                  d| jX                         t         jZ                  jK                  | t         j\                  j^                        | _0        | j`                  jO                  t         jP                  jR                         | j`                  j'                  d| jb                         d| _2        d | _3        d | _4        | j                  !| jk                          | jm                          y y )NFTr   )type	decoratedtransient_fordestroy_with_parentskip_taskbar_hintskip_pager_hint	type_hintnamedrawrealizewaitgrabgrabbingzbutton-press-eventi  )homogeneoushhomogeneoustransition_durationno_show_allswipezkey-press-eventzfocus-out-eventscrollr   )7r   Window__init__
WindowTypeTOPLEVELr   WindowTypeHintUTILITYset_positionWindowPositionCENTER_ALWAYSScreenget_defaultscreenget_rgba_visualvisualis_composited
set_visualset_app_paintableconnecton_drawOverlayoverlayaddwindow_realizedmultiple_screenshotsCursornew_from_nameDisplayloading_pointernormal_pointergrabbing_pointeron_button_press_eventbusyStackstackGestureSwipenewswipe_handlerset_propagation_phasePropagationPhaseCAPTUREswipe_or_button_releaseon_key_press_eventon_focus_out_eventEventControllerScrollEventControllerScrollFlagsVERTICALscroll_handleron_scroll_eventprevious_scroll_event_timefirst_image_namelast_image_nameshow_allpresent)selfparentr5   s      3/usr/lib/linuxmint/mintinstall/screenshot_window.pyr   zScreenshotWindow.__init__   s   

D!$!8!8&+*004.2,0&)&8&8&@&@!3 	 	5 	#,,::;jj,,.kk113;;"t{{'@'@'BOODKK(""4(LL.{{}Y 4 45$8!"zz778O8O8QSYZ"%**":":3;;;R;R;TV\"]D$'JJ$<$<S[[=T=T=VXb$cD!"&D$(D!)4+E+EF	YY5,136+/1

 	$ --11$7001E1E1M1MN""7D,H,HI&(?(?@&(?(?@!77;;D#B`B`BiBij11#2F2F2N2NO##Hd.B.BC*+' $#;;"MMOLLN #    Nc                 P    | j                         | _        | j                  d       y )NT)
get_windowwindowset_busy)rS   widgetdatas      rU   r4   z ScreenshotWindow.window_realizedM   s    oo'drV   c                     |r-d| _         | j                  j                  | j                         y d| _         | j                  j                  | j                         y )NTF)r=   rY   
set_cursorr9   r:   )rS   r=   s     rU   rZ   zScreenshotWindow.set_busyQ   sC    DIKK""4#7#78DIKK""4#6#67rV   c                     | j                   rt        j                  S | j                  j	                  | j
                         t        j                  S N)r=   r   
EVENT_STOPrY   r^   r;   EVENT_PROPAGATErS   rY   eventr\   s       rU   r<   z&ScreenshotWindow.on_button_press_eventY   s7    99>>!t445"""rV   c                     | j                   j                         D ]%  }| j                   j                  |d      }||k(  s% y y)Nr   TF)r?   get_childrenchild_get_property)rS   locationimager   s       rU   	has_imagezScreenshotWindow.has_image`   sD    ZZ,,. 	E::00?Dx	 rV   c                 N    t        | j                  j                               dkD  S Nr   )lenr?   rf   )rS   s    rU   
any_imageszScreenshotWindow.any_imagesg   s    4::**,-11rV   c                    |j                   j                         r| j                  d       y |j                          | j                  j                  ||       | j                  || _        n|| _        | j                  |       y NF)	cancellableis_cancelledrZ   showr?   	add_namedrO   rP   
show_image)rS   ri   rh   s      rU   	add_imagezScreenshotWindow.add_imagej   sh    ))+MM% 



UH-  ($,D!#+D !rV   c                 j   | j                   j                          | j                  d       | j                   j                  |       | j                   j	                         }| j                  |j                  |j                         | j                  !| j                          | j                          y y rp   )r?   rs   rZ   set_visible_child_nameget_visible_childresizewidthheightr+   rQ   rR   )rS   image_locationri   s      rU   ru   zScreenshotWindow.show_imagey   sw    

e

)).9

,,.EKK.;;MMOLLN rV   c                 n    | j                  d|      r| j                  d       y | j                  d       y )Nr	   TF)emitrZ   )rS   	directions     rU   emit_next_imagez ScreenshotWindow.emit_next_image   s(    99\9-MM$MM% rV   c                 j   |j                         d   }|t        j                  t        j                  fv rN| j                  j                  t        j                  j                         t        j                  j                  }n|t        j                  t        j                  fv rN| j                  j                  t        j                  j                         t        j                  j                  }n | j                          t        j                   S | j#                  |       t        j                   S )N   )
get_keyvalr   KEY_LeftKEY_KP_Leftr?   set_transition_typer   StackTransitionTypeSLIDE_RIGHTDirectionTypeTAB_BACKWARD	KEY_RightKEY_KP_Right
SLIDE_LEFTTAB_FORWARDhidera   r   )rS   rY   rd   r\   keyvalr   s         rU   rG   z#ScreenshotWindow.on_key_press_event   s    !!#A&cllCOO44JJ**3+B+B+N+NO))66Is'7'788JJ**3+B+B+M+MN))55IIIK>>!Y'~~rV   c                 6   t        j                         j                         }|| j                  k(  s| j                  st
        j                  S |dk  s|dk  rN| j                  j                  t         j                  j                         t         j                  j                  }nM| j                  j                  t         j                  j                         t         j                  j                  }|| _        | j                  |       t
        j                   S rl   )r   get_current_eventget_timerN   r5   r   ra   r?   r   r   r   r   r   r   r   r   rb   )rS   
controllerxdydr\   
event_timer   s          rU   rM   z ScreenshotWindow.on_scroll_event   s    **,557
888@Y@Y>>!6R!VJJ**3+B+B+N+NO))66IJJ**3+B+B+M+MN))55I*4'Y'"""rV   c                 R    t        j                  dd |       t        j                  S )N   c                 "    | j                         S r`   )r   )ws    rU   <lambda>z5ScreenshotWindow.on_focus_out_event.<locals>.<lambda>   s     rV   )r   timeout_addr   ra   rc   s       rU   rH   z#ScreenshotWindow.on_focus_out_event   s    0&9~~rV   c                 ^   | j                   ry | j                  j                  | j                         |dk(  r%|dk(  r t	        j
                  | j                         y | j                  sy |dk  r]| j                  j                  t        j                  j                         | j                  t        j                  j                         y |dkD  r]| j                  j                  t        j                  j                          | j                  t        j                  j"                         y y rl   )r=   rY   r^   r:   r   idle_addr   r5   r?   r   r   r   r   r   r   r   r   r   )rS   handlervxvys       rU   rF   z(ScreenshotWindow.swipe_or_button_release   s    99t2237rQw MM$))$((6JJ**3+B+B+M+MN  !2!2!>!>?!VJJ**3+B+B+N+NO  !2!2!?!?@ rV   c                     |j                  dddd       |j                  t        j                         |j	                          |j                  t        j
                         t        j                  S rl   )set_source_rgbaset_operatorcairoOPERATOR_SOURCEpaintOPERATOR_OVERr   rb   )rS   rY   crs      rU   r0   zScreenshotWindow.on_draw   sO    
1aA&
--.


++,"""rV   r`   )__name__
__module____qualname__r   SignalFlagsRUN_LASTboolr   r   __gsignals__r   r4   rZ   r<   rj   rn   rv   ru   r   rG   rM   rH   rF   r0    rV   rU   r   r      sr    w**33TC<M<M;OPL>@8#2"
! #$A.#rV   r   )gi.repositoryr   r   r   r   r   r   r   r   rV   rU   <module>r      s"   
 2 1 F#szz F#rV   