
    cc                     L    d dl mZ ddlmZ d Zd Zd Zd Zd Zd	 Z	d
 Z
d Zy)    )Gdk   )utilities_get_rgba_for_xyc                     t        d| j                  z        }t        d| j                  z        }t        d| j                  z        }|||| j                  gS )zConvert a Gdk.RGBA to an array of values intended to be used directly by
	cairo. Thus the value of alpha between 0 and 1, despite the 3 other values
	being integers between 0 and 255.   )intredgreenbluealpha)gdk_rgbargbs       :/usr/lib/python3/dist-packages/drawing/utilities_colors.py!utilities_gdk_rgba_to_color_arrayr   	   sP     	x||	x~~	x}}		
Aq(..!!    c                 ^    | j                   | j                  | j                  | j                  gS )z9Convert a Gdk.RGBA to an array of values between 0 and 1.r	   r
   r   r   )r   s    r   &utilities_gdk_rgba_to_normalized_arrayr      s!    	x~~x}}hnnEEr   c                 f    |dkD  rt        d      t        j                  | dz  |dz  |dz  |      S )zConvert an array of values (as used by cairo) to a Gdk.RGBA object. The
	values should be integers between 0 and 255, except alpha.      ?zIncorrect value for alphar   r   )	Exceptionr   RGBAr   r   r   as       r   !utilities_color_array_to_gdk_rgbar      s8     G-..QWAG!c'CCr   c                     t        |       t        |      t        |      t        |      f\  } }}}| dz  |z   dz  |z   dz  |z   S )zMethods such as `GdkPixbuf.Pixbuf.fill` wants an hexadecimal integer
	whose format is 0xrrggbbaa so here are ugly binary operators.
	All four values (even alpha!) must be between 0 and 255.   )r   r   s       r   utilities_rgba_to_hexadecimalr       sL     !fc!fc!fc!f,Aq!!VqLQ!
#	)Q..r   c                     | dz  |dz  z   |z   S )zMethods such as `GdkPixbuf.Pixbuf.composite_color_simple` want an
	hexadecimal integer whose format is 0xaarrggbb so here are ugly binary
	operators.   r    )r   r   r   s      r   utilities_rgb_to_hexadecimalr$   &   s     
bQ!Vq  r   c                    t        d| j                  z        }t        d| j                  z        }t        d| j                  z        }t	        t        |||            }t        |      dd }ddt        |      z
  z  |z   }d|z   S )zYReturns a displayable string of the hexadecimal code corresponding to a
	Gdk.RGBA object.r      N0   #)r   r	   r
   r   hexr$   strlen)r   r   r   r   hexa_rawhexa_strings         r   !utilities_gdk_rgba_to_hexadecimalr/   ,   s     	x||	x~~	x}}	,Q1568}QR a#k**+k9kr   c                 T    t        | ||      }|y g |}|dxx   dz  cc<   t        | S )N   r   )r   r   )surfaceevent_xevent_y	rgba_valss       r   utilities_gdk_rgba_from_xyr6   9   s;    &wAy\
1)955r   c                 t   t        |       \  }}}}d}d}|dk(  rt        d      S |dk  r dt        d      t        d|dz  z
        z  z   }||z   |z   }d}|dz  }	|d	k7  r||z  |	z  }|d	k7  r||z  ||z  ||z  g}
ng d
}
|
d	   |	z  dz  }|
d   |	z  dz  }|
d   |	z  dz  }t        ||z
        dk  }|xr t        ||z
        dk  }|xr t        ||z
        dk  }|r:|	dkD  rt        d      }||z   S |	dk  rt        d      }||z   S t        d      }||z   S |
d	   dkD  r5|
d   dkD  r-|
d   dk  r%|dkD  rt        d      }||z   S t        d      }||z   S |
d	   dkD  r=|
d   dk  r5|
d   dk  r-|	dk  r|
d	   dk  rt        d      }||z   S t        d      }||z   S |
d   dkD  r |
d	   dk  r|
d   dk  rt        d      }||z   S |
d   dkD  r |
d	   dk  r|
d   dk  rt        d      }||z   S |
d	   dkD  r8|
d   dkD  r0|
d   dk  r(|
d   dk  rt        d      }||z   S t        d       }||z   S |
d	   dkD  r=|
d   dkD  r5|
d   dk  r-|	d!kD  r|
d   dk  rt        d"      }||z   S t        d#      }||z   S |
d   dkD  r5|
d   dkD  r-|
d	   dk  r%|	dkD  rt        d$      }||z   S t        d%      }||z   S t        d&      }||z   S )'zTo improve accessibility, it is useful to display the name of the colors.
	Sadly, it's a mess to implement, and it's quite approximative. g        Transparentr   z - z%s%% transparentd   g      @r   )Zd;O?r;   r;   r1   r   r&   g{Gz?g?Whiteg?BlackGreyg      ?g?g?gףp=
?OrangeBrowng333333?gffffff?zProbably brownRedGreenBlueYellowg333333?MagentaPurpleCyanzProbably tealzUnknown color name)r   _r   abs)r   r	   r
   r   r   color_stringalpha_stringtotalorange_coefluminrgb_percentsgrey_coef_rgrey_coef_ggrey_coef_bis_greys                  r   utilities_get_rgba_namerT   C   s    DHM#udE	SL	
=	ck-.S53;5F1GGG,	ut			QJUe#+	QJe)U5[$u*5,&, A&*A&*A&*{[()D0<s;45<<s;45<
S[G*<j 
	$%i s{G*<f 
	$%c F)<b 
	$%_ 1oQ# 5,q/C:O4H+<Z 
	$%W G*<V 
	$%S 1oQ# 5,q/C:O
S[\!_s* $%<H 
	$%E E(<D 
	$%C 1oQ# 5,q/C:O7,@ 
	$%? 1oQ# 5,q/C:O6,< 
	$%9 1oQ# 5,q/C:O!_s$%<4 
	$%1 H+<0 
	$%/ 1oQ# 5,q/C:O
S[\!_s*I,<* 
	$%' H+<& 
	$%% 1oQ# 5,q/C:O
S[F)<  
	$% O$< 
	$% '(, 
	$%r   N)gi.repositoryr   utilities_pathsr   r   r   r   r    r$   r/   r6   rT   r#   r   r   <module>rW      s8     6"FD/!	6V&r   