+
    Qi  c                  sf   R t ^ RIHt RtRtRtRtRt^ RIH	t	 ^RI
Ht  ^ R	It^ R	It]P                  ! R
R4       ^ RIHt Rt]	'       d   ^ RIHt ]'       d   ^ RIHt M]t ! R R4      t ! R R]4      tR	#   ]]3 d/   tR].t]P,                  ! ]P.                  ]R4       Rt R	tALhR	tAii ; i)z7Module for drawing highlights over an area of interest.)annotationsz$Id$z
$Revision$z$Date$zCopyright (c) 2023 Igalia, S.L.ZLGPL)TYPE_CHECKING)debugNGtkz3.0)r   Tz(HIGHLIGHTER: GtkHighlighter unavailable:F)Anyc                  s    ] tR t^:tRtRtRtRtRtRt	Rt
RtRtRtRtRtRtRtRtR tR!tR"tR R ltR R ltR	 R
 ltR R ltR R ltR R ltR R ltRtR# )#Highlighterz1Base class of all highlighters supported by Orca.	highlight	rectangleZ	underlinec               8    V ^8  d   QhRRRRRRRRR	RR
RRRRR/#    highlight_typeZstrcolorztuple[float, float, float]alphaZfloat	thicknessintpadding
fill_colorz!tuple[float, float, float] | None
fill_alphazfloat | NonereturnNone Zformat   "5/usr/lib/python3.14/site-packages/orca/highlighter.py__annotate__Highlighter.__annotate__P   sZ     ' '' *' 	'
 ' ' 6' !' 
'    c                	s    Wn         W n        W0n        W@n        WPn        W`n        Wpn        V P                  4       V n        R # )N)	_highlight_type_color_alpha
_thickness_padding_fill_color_fill_alpha_create_gui_gui)selfr   r   r   r   r   r   r   s   &&&&&&&&r   __init__ZHighlighter.__init__P   s:      .#%%$$&	r   c                   V ^8  d   QhRR/# r
   r   r   r   r   r   r   r   r   c   s      S r   c                    R# ) Creates the gui for the overlay.Nr   r%      &r   r#   ZHighlighter._create_guic   s     r   c                    V ^8  d   QhRRRR/# r
   painterr   r   r   r   r   r   r   r   r   h   s     E Es Et Er   c                r)   )6Called by highlight to draw a highlight over the item.Nr   r%   r/      &&r   _draw_highlightZHighlighter._draw_highlighth       r   c               r-   r.   r   r   r   r   r   r   k        G Gs Gt Gr   c                r)   z8Called by highlight to draw a rectangle around the item.Nr   r1   r2   r   _draw_rectangleZHighlighter._draw_rectanglek   r4   r   c               r-   r.   r   r   r   r   r   r   n   r5   r   c                r)   z8Called by highlight to draw an underline under the item.Nr   r1   r2   r   _draw_underlineZHighlighter._draw_underlinen   r4   r   c          
     ,    V ^8  d   QhRRRRRRRRRR/# r
   xr   ywidthheightr   r   r   r   r   r   r   r   q   s6     B B3 B3 Bs BC BD Br   c                r)   )3Draws the desired indicator over the specified box.Nr   )r%   r<   r=   r>   r?   s   &&&&&r   r   ZHighlighter.highlightq   r4   r   c               r'   r
   r   r   r   r   r   r   r   r   t   s     % %d %r   c                r)   )Quits the highlighter.Nr   r+   r,   r   quitZHighlighter.quitt   r4   r   )r   r   r"   r!   r$   r   r    r   N)       rE   )rE   rE   rD   )rE   rD   rE   )rD   rD   rE   )      ?rE   rF   )rD   rF   rE   )rD   g      ?g?)rE   rD   rD   )rD   rE   rD   )rF   rD   rE   )rE   rE   rF   )rE   rF   rF   )rE   rE   rE   )rD   rD   rD   )__name__
__module____qualname____firstlineno____doc__	HIGHLIGHT	RECTANGLE	UNDERLINEZREDZBLUEGREENYELLOWZPURPLEZORANGEZPINKZCYANZMAGENTAZLIMEZNAVYZTEALZBLACKZWHITEr&   r#   r3   r7   r9   r   rC   __static_attributes__r   r   r   r   r   :   s    ;III
CDEFFFDDGDDDEE'&
EGGB% %r   r   c                  s   a  ] tR t^xtRt]P                  ]P                  R^^RR3R V 3R llltR R lt	R R	 lt
R
 R ltR R ltR R ltR R ltR R ltRtV ;t# )GtkHighlighterz5Highlighter that uses a GtkWindow to highlight items.g      ?Nc               r   r	   r   r   r   r   r   GtkHighlighter.__annotate__{   sX     ' '!$'2' '  	'
 ' ?' *' 6:'r   c           	     	s   < \         '       g+   R p\        P                  ! \        P                  VR4       R# \        S	V `  WW4WVV4       RV n        R# )z1GTK HIGHLIGHTER: Unavailable. Is Cairo installed?TN)CAIRO_AVAILABLEr   print_message
LEVEL_INFOZsuperr&   _drawing_area)
r%   r   r   r   r   r   r   r   msg	__class__s
   &&&&&&&& r   r&   ZGtkHighlighter.__init__{   sF     EC 0 0#t<'Wab"&r   c               r'   r(   r   r   r   r   r   rS      s      S r   c                s.   \         P                  ! 4       pVP                  R4       VP                  R4       VP	                  R4       VP                  R4       VP                  R4       VP                  4       pVP                  4       pV'       d(   VP                  4       '       d   VP                  V4       \         P                  ! 4       V n        V P                  P                  RV P                  4       VP                  V P                  4       V# )r*   FTZdraw)r   ZWindowZset_decoratedZset_accept_focusZset_app_paintableZset_skip_taskbar_hintZset_skip_pager_hintZ
get_screenZget_rgba_visualZis_compositedZ
set_visualZDrawingArearW   Zconnect_on_drawZadd)r%   ZguiZscreenZvisuals   &   r   r#   ZGtkHighlighter._create_gui   s     jjl% U#d#!!$'%!'')f**,,NN6" __.""64==9""#
r   c               s$    V ^8  d   QhRRRRRR/# )r
   _widgetr   r/   r   r   r   r   r   r   r   rS      s!     * * *c *d *r   c                s   V P                   V P                  8X  d   V P                  V4       R# V P                   V P                  8X  d   V P	                  V4       R# V P                   V P
                  8X  d   V P                  V4       R# R# )z$Signal handler for the 'draw' event.N)r   rL   r3   rM   r7   rN   r9   )r%   r[   r/   s   &&&r   rZ   ZGtkHighlighter._on_draw   si     4>>1  )!!T^^3  )!!T^^3  ) 4r   c               r-   r.   r   r   r   r   r   rS      s     2 2s 2t 2r   c                s`   V P                   f   V P                  V n         V P                  f   RV n        . V P                   OV P                  N5pVP                  ! V!   VP	                  \
        P                  4       VP                  4        VP	                  \
        P                  4       R# )r0   Ng333333?)	r!   rP   r"   set_source_rgbaZset_operatorcairoZOPERATOR_SOURCEZpaintZOPERATOR_OVER)r%   r/   fill   && r   r3   ZGtkHighlighter._draw_highlight   s     ##{{D#"D4!!44#3#34&U223U001r   c               r-   r.   r   r   r   r   r   rS      s      s t r   c                s   V P                   pV P                   pV P                  P                  4       ^V P                   ,          ,
          pV P                  P                  4       ^V P                   ,          ,
          pV P                  ec   V P
                  eU   . V P                  OV P
                  ^,          N5pVP                  ! V!   VP                  W#WE4       VP                  4        . V P                  OV P                  N5pVP                  ! V!   VP                  V P                  4       VP                  W#WE4       VP                  4        R# r6   )r    r$   get_allocated_widthget_allocated_heightr!   r"   r\   r   r^   r   r   set_line_widthr   stroke)r%   r/   r<   r=   r>   r?   r^   lines   &&      r   r7   ZGtkHighlighter._draw_rectangle   s    MMMM		--/!dmm2CC//1A4EE'D,<,<,H>T%%>t'7'7#'=>D##T*aE2LLN**dkk*&t/!.r   c               r-   r.   r   r   r   r   r   rS      s      s t r   c                s   . V P                   OV P                  N5pVP                  ! V!   VP                  V P                  4       VP                  ^ V P                  P                  4       ^,
          4       VP                  V P                  P                  4       V P                  P                  4       ^,
          4       VP                  4        R# r8   )r   r   r\   rb   r   Zmove_tor$   ra   Zline_tor`   rc   )r%   r/   rd   r_   r   r9   ZGtkHighlighter._draw_underline   s     +*dkk*&t/49999;a?@		5579W9W9Y\]9]^r   c          
     r:   r;   r   r   r   r   r   rS      s/     ! !3 !3 !s !C !D !r   c                sZ   RV RV RV RV 2p\         P                  ! \         P                  VR4        V P                  P	                  WP
                  ,
          W P
                  ,
          4       V P                  P                  V^V P
                  ,          ,           V^V P
                  ,          ,           4       V P                  P                  4        R#   \        \        \        \        3 d6   pRT.p\         P                  ! \         P                  TR4        Rp?R# Rp?ii ; i)r@   zGTK HIGHLIGHTER: x:z, y:z, width:z	, height:TzGTK HIGHLIGHTER: Exception:N)r   rU   rV   r$   Zmover    ZresizeZshow_allZ
ValueErrorZ	TypeErrorZAttributeErrorZRuntimeErrorprint_tokens)r%   r<   r=   r>   r?   rX   ZexcZerror_tokenss   &&&&&   r   r   ZGtkHighlighter.highlight   s     $A3d1#XeWIfXNE,,c48	!IINN1}},a--.?@IIUQ%66T]]AR8RS
 II 	 I~|D 	E93?Lu//tDD	Es   BC D*5*D%%D*c               r'   rA   r   r   r   r   r   rS      s      d r   c                s    Rp\         P                  ! \         P                  VR4       V P                  P	                  4        RV n        RV n        R# )rB   zGTK HIGHLIGHTER: Quitting.TN)r   rU   rV   r$   ZdestroyrW   )r%   rX   s   & r   rC   ZGtkHighlighter.quit   s@     +E,,c48		!	r   )rW   r"   r!   r$   )rG   rH   rI   rJ   rK   r   rN   rO   r&   r#   rZ   r3   r7   r9   r   rC   rQ   Z__classcell__)rY   s   @r   rR   rR   x   s[    ? (3'<'<5@5F5F #"# !AE,0' ' (*2(! r   rR   )rK   Z
__future__r    Z__id__Z__version__Z__date__Z__copyright__Z__license__Ztypingr   Z r   r]   ZgiZrequire_versionZgi.repositoryr   rT   ZImportErrorZModuleNotFoundErrorZerrorZtokensre   rV   r   ZGtkTyper   rR   r   r   r   <module>rf      s   2 > #1   	ue$!O 0;% ;%|s[ sU 	() 8%@F	u''6Os   #A9 9	B0$B++B0