
    Je/                     H   d Z ddlZddlZddlZddlZddlmZ ddlZ	ddl
mZ ddlmZ ej                  dk(  Zej                   dk(  Z G d d	      Z G d
 de      Z e       Z G d de      Z G d de      Z e       Z e       Z G d de      Z e       Z G d d      Zy)z"Custom stylesheets used in Spyder.    N)parse)OLD_PYQT)QStylePalettedarwinntc                   4    e Zd ZdZd Zd Zd Zd Zd Zd Z	y)	SpyderStyleSheetz"Base class for Spyder stylesheets.c                 j    t         j                  j                         | _        | j	                          y N)	qstylizerstyle
StyleSheet_stylesheetset_stylesheetselfs    9/usr/lib/python3/dist-packages/spyder/utils/stylesheet.py__init__zSpyderStyleSheet.__init__"   s#    $??557    c                     | j                   S r   )r   r   s    r   get_stylesheetzSpyderStyleSheet.get_stylesheet&   s    r   c                 6    | j                   j                         S r   )r   toStringr   s    r   	to_stringzSpyderStyleSheet.to_string)   s    ((**r   c                 ,    t        j                  |       S )zo
        Return a copy of the sytlesheet.

        This allows it to be modified for specific widgets.
        )copydeepcopyr   s    r   get_copyzSpyderStyleSheet.get_copy,   s     }}T""r   c                     t        d      )NzkSubclasses need to implement this method to set the _stylesheet attribute as a Qstylizer StyleSheet object.)NotImplementedErrorr   s    r   r   zSpyderStyleSheet.set_stylesheet4   s    !:
 	
r   c                 "    | j                         S )z`
        Get a string representation of the stylesheet object this class
        holds.
        )r   r   s    r   __str__zSpyderStyleSheet.__str__:   s    
 ~~r   N)
__name__
__module____qualname____doc__r   r   r   r   r   r"    r   r   r	   r	      s#    , +#
 r   r	   c                   4     e Zd ZdZ fdZd Zd Zd Z xZS )AppStylesheetzX
    Class to build and access the stylesheet we use in the entire
    application.
    c                 0    t         |           d | _        y r   )superr   _stylesheet_as_string)r   	__class__s    r   r   zAppStylesheet.__init__K   s    %)"r   c                 p    | j                   | j                  j                         | _         | j                   S )z-Save stylesheet as a string for quick access.)r,   r   r   r   s    r   r   zAppStylesheet.to_stringO   s1    %%-)-)9)9)B)B)DD&)))r   c                 x    t        j                  t              }t        |      | _        | j                          y)zi
        This takes the stylesheet from QDarkstyle and applies our
        customizations to it.
        )paletteN)
qdarkstyleload_stylesheetr   parse_stylesheetr   _customize_stylesheet)r   
stylesheets     r   r   zAppStylesheet.set_stylesheetU   s/    
  //F
+J7 	""$r   c                    | j                   }|d   j                  dd       |d   j                  d       |j                  j                  t        j                         |d   j                  d       |j
                  j                  ddd	       |d
   j                  dd       |d   j                  ddd       |d   j                  ddd       t        r|d   j                  d       |d   j                  d       |j                  j                  d       dD ]  }|d|    j                  d        dD ]  }||    j                  d        dD ]@  }|dk(  rt        j                  }nt        j                  }|d|    j                  |       B |d   j                  d       |d   j                  d        y!)"z+Apply our customizations to the stylesheet.QStackedWidget0px)borderpaddingzQToolButton:pressed)marginbackgroundColorzQMenuBar::item:pressed)r:   )borderBottomr:   spacingz!QMainWindow::separator:horizontal)	marginTopmarginBottomzQMainWindow::separator:vertical3px)
marginLeftmarginRightheightzQMenu::itemz1.4emz0.7emz4px 24px 4px 8px)rE   fontSizer:   z4px 24px 4px 28pxzQMenu#checkbox-padding::item)disabledcheckedzchecked:disabledzQPushButton:)QToolButtonzQToolButton:disabledtransparenthoverpressedrH   zchecked:hoverrL   zQToolButton:zQDialog QPushButtonz3px 15px 3px 15pxz%QDialogButtonBox QPushButton:!defaultz3px 0px 3px 0pxN)
r   	setValuesQMenuBarr   COLOR_BACKGROUND_4QToolBarr   QPushButtonCOLOR_BACKGROUND_2COLOR_BACKGROUND_3)r   cssstateelementcolors        r   r4   z#AppStylesheet._customize_stylesheet`   s`    	'' 	( 	
 	!",, 	- 	

 	)<< 	 	

 	$%// 	0 	

 	 	 	
 	/0:: 	; 	

 	-.88 	9 	
 	M$$& 	% 	
 ((+ )  	*+55' 	6 	

 	!! 	" 	
 A 	E,ug&'11 2 	 ? 	G7)'' - ( 	
 F 	E%88%88,ug&'11 % 2 	 	!",,' 	- 	
 	34>>% 	? 	
r   )	r#   r$   r%   r&   r   r   r   r4   __classcell__r-   s   @r   r)   r)   E   s    
**	%b
r   r)   c                   &    e Zd ZdZdZdZdZdZd Zy)ApplicationToolbarStylesheetz$Stylesheet for application toolbars.z2.7emz0.25emc                    | j                   }|j                  j                  t        j                         |j
                  j                  | j                  | j                  | j                  | j                  dd       dD ]@  }|dk(  rt        j                  }nt        j                  }|d|    j                  |       B |d   j                  d	       y )
Nr<   r8   )widthrE   rC   rD   r9   r:   rK   rL   zQToolBar QToolButton:z$QToolBar QToolButton::menu-indicatornoneimage)r   rQ   rN   r   rP   rI   BUTTON_WIDTHBUTTON_HEIGHTBUTTON_MARGIN_RIGHTCOLOR_BACKGROUND_5COLOR_BACKGROUND_6)r   rU   rV   rX   s       r   r   z+ApplicationToolbarStylesheet.set_stylesheet   s     	)<< 	 	

 	!!##%%//00 	" 	
 F 	E%88%88'w/0:: % ; 	 	23== 	> 	
r   N)	r#   r$   r%   r&   rb   rc   BUTTON_MARGIN_LEFTrd   r   r'   r   r   r\   r\      s     .LM!"
r   r\   c                       e Zd ZdZdZdZd Zy)PanesToolbarStyleSheetzStylesheet for pane toolbars.z2.2emc                     | j                   }|j                  j                  d       |j                  j                  | j                  | j
                  dd       |d   j                  d       y )Nz0.3em)r?   r8   )rE   r^   r9   r;   zQToolButton::menu-indicatorr_   r`   )r   rQ   rN   rI   rc   rb   )r   rU   s     r   r   z%PanesToolbarStyleSheet.set_stylesheet   sv     	 	
 	!!%%##	 	" 	
 	)*44 	5 	
r   N)r#   r$   r%   r&   rb   rc   r   r'   r   r   ri   ri      s    'LM
r   ri   c                   &     e Zd ZdZdZ fdZ xZS )PanesTabBarStyleSheetzStylesheet for pane tabbarsz0.8emc                 d   t         |           | j                         }|j                  j	                  t
        rdnd       |d   j	                  | j                  ddt        rdndt        rdnd       t        r3|j                  j	                  dd	       |d
   j	                  d       n$|j                  j	                  t
        rdnd       |d   j	                  ddt        rdndt        rdnd       dD ]-  }|d|    j	                  ddt        rdndt        rdnd       / |d   j	                  t        rdnd       |d   j	                  t        j                  ddt        j                          dD ]@  }|dk(  rt        j                  }nt        j                  }|d|    j	                  |       B t        s|d   j	                  d        |d!   j	                  d"       |d#   j	                  dd$%       |d&   j	                  dd$t
        rd'       y d'       y )(Nz-3pxz-1px)rC   zQTabBar::tab4px10px)r@   
paddingToppaddingBottompaddingLeftpaddingRightleft)	alignmentrC   zQTabWidget::tab-bar)ru   zQTabBar::tab:hoverrB   9px)rp   rq   rr   rs   )selectedzselected:hoverzQTabBar::tab:zQTabBar::close-buttonz-5pxz-6px)rq   zQTabBar#pane-tabbar QToolButtonr8   z0.3em solid )
backgroundborderRadiusborderRightrK   rL   z QTabBar#pane-tabbar QToolButton:)rx   zQTabBar::scrollerz4.0em)r^   zQTabWidget::pane)	borderTopzQTabWidget::left-cornerz-2px)topbottomzQTabWidget::right-corner)r|   r}   right)r+   r   r   rQ   rN   WIN
TOP_MARGINMACQTabBarr   COLOR_BACKGROUND_1rS   rT   r   )r   rU   rV   rX   r-   s       r   r   z$PanesTabBarStyleSheet.set_stylesheet  s    !!# 	!$v& 	 	
 	N%%oo!$&#&E 	& 	
  KK!! ! " 
 %&00  1 
 KK!!%(6f "  	 !++!$%"%5	 	, 	
 4 	E-w'(22 #%(Ef'*V	 3 	 	#$..$'&V 	/ 	

 	-.88$77&}'G'G&HI 	9 	
 F 	E%88%8825':;EE  F 	 #$.. / 
 	)) 	* 	

 	%&00 	1 	

 	&'11& 	2 	
 &, 	2 	
r   )r#   r$   r%   r&   r   r   rY   rZ   s   @r   rl   rl     s    % Jd
 d
r   rl   c                   F    e Zd ZdZdZerdndZerdndZerdndZerdZ	y
d	Z	y
)DialogStylez1Style constants for tour, about and kite dialogs.g      ?19pt14pt15pt12pt13pt6pxz4px 10pxN)
r#   r$   r%   r&   IconScaleFactorr   TitleFontSizeContentFontSizeButtonsFontSizeButtonsPaddingr'   r   r   r   r     s0    ;O!FvM #fO #fO!UNzNr   r   )r&   r   ossysr1   qstylizer.parserr   r3   qstylizer.styler   spyder.config.guir   spyder.utils.paletter   platformr   namer   r	   r)   APP_STYLESHEETr\   ri   APP_TOOLBAR_STYLESHEETPANES_TOOLBAR_STYLESHEETrl   PANES_TABBAR_STYLESHEETr   r'   r   r   <module>r      s    )  	 
  6  ' . 
llhggo     L}
$ }
@ 
&
#3 &
R
- 
4 67 13 k
2 k
\ 01 2 2r   