
    e=                     H    d dl mZ d dlmZmZ ddlmZ dgZ G d de      Zy)   )	functions)QtCoreQtGui   )UIGraphicsItemGradientLegendc                   4    e Zd ZdZd Zd Zd Zd Zd Zd Z	y)	r   z
    Draws a color gradient rectangle along with text labels denoting the value at specific
    points along the gradient.
    c                    || _         || _        t        j                  |        | j	                  t
        j                  j                  j                         t        j                  t        j                  dddd            | _        t        j                  t        j                  ddd            | _        t        j                  t        j                  ddd            | _        ddd| _        t        j"                         | _        | j$                  j'                  dt        j                  ddd             | j$                  j'                  dt        j                  ddd             | j)                  d       y )N   d       r   )maxmin)sizeoffsetr   __init__setAcceptedMouseButtonsr   QtMouseButtonNoButtonr   QBrushQColorbrushQPenpentextPenlabelsQLinearGradientgradient
setColorAt	setZValue)selfr   r   s      H/usr/lib/python3/dist-packages/pyqtgraph/graphicsItems/GradientLegend.pyr   zGradientLegend.__init__   s    	%$$VYY%:%:%C%CD\\%,,s3s3"?@
::ell1Qq12zz%,,q1"56*--/  ELL1Q$78  ELLQq$9:s    c                 2    || _         | j                          y )N)r   update)r"   gs     r#   setGradientzGradientLegend.setGradient   s    r$   c                 .    |j                         | _        y)zT
        Set displayed gradient from a :class:`~pyqtgraph.ColorMap` object.
        N)getGradientr   )r"   colormaps     r#   setColorMapzGradientLegend.setColorMap   s     !,,.r$   c                    t        ||      D cg c]  }t        j                  |||z
  g|i |! }}t        j                         }t        t        |            D ].  }t        |      t        |      z  }|j                  |||          0 | j                  |       d|vr(| j                  t        |      dt        |      di       y | j                  |d   d   d|d   d   di       y c c}w )Nr   r   r   )rangefnintColorr   r   lenfloatr    r(   	setLabelsstr)	r"   minValmaxValargskargsicolorsr'   xs	            r#   setIntColorScalezGradientLegend.setIntColorScale%   s    INvW]I^_A"++a???__!!#s6{# 	'AaV$ALLF1I&	' 	5 NNCKCK;<NNE(OA.q%/!2DQGH `s   $C-c                 2    || _         | j                          y)zWDefines labels to appear next to the color scale. Accepts a dict of {text: value} pairsN)r   r&   )r"   ls     r#   r3   zGradientLegend.setLabels1   s    r$   c           	         t        j                  | |||       | j                         }|y |j                          |j	                         }|j                  |       |j                         }d}d}| j                  D ]  }	|j                  t        j                  dddd      t        j                  j                  j                  t        j                  j                  j                  z  t        |	            }
t!        ||
j#                               }t!        ||
j%                               } d}|j'                         }|j)                         }|j+                         }|j-                         }| j.                  d   dk  r0|| j.                  d   z   }||z
  d|z  z
  }|| j0                  d   z
  }n/|| j.                  d   z   }|| j0                  d   z   }||z   d|z  z   }| j.                  d   dk  r%|| j.                  d   z   }|| j0                  d   z
  }n$|| j.                  d   z   }|| j0                  d   z   }||||||g| _        |j5                  | j6                         |j9                  | j:                         t        j                  t        j<                  ||z
  ||dz  z
  |z
        t        j<                  ||z   ||dz  z   |z               }|j?                  |       | j@                  jC                  d|       | j@                  jE                  d|       |j9                  | j@                         t        j                  t        j<                  ||      t        j<                  ||            }|j?                  |       |j5                  | jF                         |d|z  z   }|}|}| j                  D ]  }	|| j                  |	   ||z
  z  z
  }|jI                  t        j                  |||dz  z
  ||      t        j                  j                  j                  t        j                  j                  j                  z  t        |	              |jK                          y )Nr   r   r   )&r   paint
getViewBoxsavesceneTransformsetTransformrectr   boundingRectr   QRectFr   AlignmentFlag	AlignLeftAlignVCenterr4   r   widthheightrightlefttopbottomr   r   bsetPenr   setBrushr   QPointFdrawRectr   setStartsetFinalStopr   drawTextrestore)r"   poptwidgetviewtransrE   
labelWidthlabelHeightkrQ   textPaddingxRxLyTyBx3x2x1y2y1txlhlwys                            r#   r@   zGradientLegend.paint6   s   T1c62 <	##%	yy{ 
 	7Av}}Q1a8&)):Q:Q:[:[^d^g^g^u^u  _C  _C  ;C  EH  IJ  EK  LAZ3Jk188:6K	7
 ZZ\YY[XXZ[[] ;;q>Adkk!n$Bj1[=0Bdiil"Bdkk!n$Bdiil"Bj1[=0B;;q>Adkk!n$Bdiil"Bdkk!n$Bdiil"BR2b, 	
	

4::}}NN2+RA-=-KLNN2+RA-=-KL
 	


4 	q"%""1b)	

4==!}}NN2r"NN2r"
 	


4 	
!k/! 	NAT[[^r"u--AJJv}}RRT2r:FII<S<S<]<]`f`i`i`w`w  aE  aE  =E  GJ  KL  GM  N	N 	
		r$   N)
__name__
__module____qualname____doc__r   r(   r,   r<   r3   r@    r$   r#   r   r      s'    
/
I
Gr$   N)	 r   r/   r   r   r   r   __all__r   rt   r$   r#   <module>rw      s$      *
v^ vr$   