
    ZbEm                        d dl Z d dlZ ej                  dd        ej                  dd       d dlmZmZmZmZmZm	Z	 i a
 G d dej                        Z G d	 d
ej                        Z G d dej                        Z G d dej                         Z G d dej                         Z G d dej                         Z G d dej(                        Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d d e      Z G d! d"e      Z G d# d$e      Z G d% d&e      Z G d' d(e      Z G d) d*e      Z  G d+ d,e      Z!y)-    NGtkz3.0XAppz1.0)Gior   GObjectGdkGLibr   c                        e Zd Zdej                  j
                  deffiZ fdZd Z	d Z
d Zd Zd Zd	 Zd
 Zd Zd Z xZS )EditableEntrychangedNc                    t         t        |           | j                  t        j
                  j                         | j                  d       t	        j                         | _	        t	        j                         | _        t	        j                         | _        | j                  j                  dd       | j                  j                  t        j                   j"                         | j%                  | j                  d       | j%                  | j                  d       | j'                  d       d| _        d | _        | j-                          | j                  j/                  d| j0                         | j                  j/                  d| j0                         | j                  j/                  d| j2                         | j                  j/                  d	| j4                         | j                  j/                  d
| j6                         y )N         ?      ?buttonentryFreleasedactivater   zfocus-out-event)superr
   __init__set_transition_typer   StackTransitionType	CROSSFADEset_transition_durationLabellabelEntryr   Buttonr   set_alignment
set_reliefReliefStyleNONE	add_namedset_visible_child_nameeditablecurrent_textshow_allconnect_on_button_clicked_on_entry_validated_on_entry_changed_on_focus_lost)self	__class__s    6/usr/lib/python3/dist-packages/xapp/SettingsWidgets.pyr   zEditableEntry.__init__   s\   mT+-  !8!8!B!BC$$S)YY[
YY[
jjl!!#s+s334t{{H-tzz7+##H- J(?(?@J(?(?@

:t'?'?@

9d&<&<=

,d.A.AB    c                 ~    | j                   j                  |       | j                  j                  |       || _        y N)r   	set_labelr   set_textr%   r,   texts     r.   r3   zEditableEntry.set_text+   s.    d#

D! r/   c                     | j                   j                  | j                         | j                  j	                  | j                         | j                  d       y )NF)r   r2   r%   r   r3   set_editable)r,   widgetevents      r.   r+   zEditableEntry._on_focus_lost0   s@    d//0

D--.% r/   c                 Z    | j                  d       | j                  j                          y NT)r7   r   
grab_focus)r,   r   s     r.   r(   z EditableEntry._on_button_clicked6   s     $

r/   c                     | j                  d       | j                  d|j                                |j                         | _        y )NFr   )r7   emitget_textr%   r,   r   s     r.   r)   z!EditableEntry._on_entry_validated:   s4    % 		)U^^-.!NN,r/   c                 V    | j                   j                  |j                                y r1   )r   r2   r?   r@   s     r.   r*   zEditableEntry._on_entry_changed?   s    enn./r/   c                 j    |r| j                  d       || _        y | j                  d       || _        y )Nr   r   )r#   r$   )r,   r$   s     r.   r7   zEditableEntry.set_editableB   s3    ''0 ! ''1 r/   c                 :    | j                   j                  |       y r1   )r   set_tooltip_text)r,   tooltips     r.   rD   zEditableEntry.set_tooltip_textI   s    $$W-r/   c                     | j                   S r1   )r$   r,   s    r.   get_editablezEditableEntry.get_editableL   s    }}r/   c                 6    | j                   j                         S r1   )r   r?   rG   s    r.   r?   zEditableEntry.get_textO   s    zz""$$r/   )__name__
__module____qualname__r   SignalFlags	RUN_FIRSTstr__gsignals__r   r3   r+   r(   r)   r*   r7   rD   rH   r?   __classcell__r-   s   @r.   r
   r
      s\     	G''114FL
C2!
! -
0!.%r/   r
   c                       e Zd Zd Zy)SettingsStackc                     t         j                  j                  |        | j                  t         j                  j
                         | j                  d       d| _        y )Nr   T)r   Stackr   r   r   SLIDE_LEFT_RIGHTr   expandrG   s    r.   r   zSettingsStack.__init__S   sC    		4   !8!8!I!IJ$$S)r/   N)rJ   rK   rL   r    r/   r.   rT   rT   R   s    r/   rT   c                        e Zd ZddZd Zd Zy)SettingsRevealerNc                    t         j                  j                  |        || _        t        j                  t         j
                  j                  d      | _        t         j                  j                  | | j                         | j                  t         j                  j                         | j                  d       |rt        j                  j                  |      | _        |9|7| j                   j#                  || dt        j$                  j&                         y || _        | j                   j+                  d|z   | j,                         | j-                  | j                   |       y y )N   )orientationspacingr   zreveal-childz	changed::)r   Revealerr   
check_funcBoxOrientationVERTICALboxaddr   RevealerTransitionType
SLIDE_DOWNr   r   SettingsnewsettingsbindSettingsBindFlagsGETvaluesr'   on_settings_changed)r,   schemakeyro   ra   s        r.   r   zSettingsRevealer.__init__Z   s    d#$77s'?'?Ltxx(  !;!;!F!FG$$S)LL,,V4DM~*"4""3nc>S>S>W>WX$%%kC&79Q9QR((< r/   c                 @    | j                   j                  |ddd       y )NFTr   )re   
pack_start)r,   r8   s     r.   rf   zSettingsRevealer.addo   s    FE43r/   c                     |j                  |      j                         }| j                  | j                  || j                  v        y | j                  | j                  || j                               y r1   )	get_valueunpackra   set_reveal_childro   )r,   rk   rr   values       r.   rp   z$SettingsRevealer.on_settings_changeds   sY    ""3'..0??"!!%4;;"67!!$//%"EFr/   NNNN)rJ   rK   rL   r   rf   rp   rY   r/   r.   r[   r[   Y   s    =*4Gr/   r[   c                   "    e Zd Zd ZddZddZy)SettingsPagec                 >   t         j                  j                  |        | j                  t         j                  j
                         | j                  d       | j                  d       | j                  d       | j                  d       | j                  d       y )N   P   r]   )r   rb   r   set_orientationrc   rd   set_spacingset_margin_leftset_margin_rightset_margin_topset_margin_bottomrG   s    r.   r   zSettingsPage.__init__{   sr    S__556R b!Br"r/   Nc                 F    t        ||      }| j                  |ddd       |S NFr   )SettingsSectionrt   )r,   titlesubtitlesections       r.   add_sectionzSettingsPage.add_section   s%    !%2q1r/   c                     t        |      }|t        |||      }|j                  |       ||_        | j	                  |ddd       |S r   )r   r[   rf   	_revealerrt   )r,   r   rq   rr   ro   revealerr   s          r.   add_reveal_sectionzSettingsPage.add_reveal_section   sK    !%('V<HW$%2r/   NNrz   )rJ   rK   rL   r   r   r   rY   r/   r.   r|   r|   z   s    #r/   r|   c                   4    e Zd ZddZd Zd	dZd Zd Zd Zy)
r   Nc                 z   t         j                  j                  | t         j                  j                         | j                  d       d| _        g | _        |s|rt        j                  t         j                  j                        }|j                  d       | j                  |       |rKt        j                         }|j                  d|z         |j                  dd       |j                  |       |rgt        j                         }|j                  |       |j                         j                  d       |j                  dd       |j                  |       t        j                         | _        | j                   j#                  d	       | j                   j%                  t         j&                  j(                         | j                   j                         }|j                  d
       t        j*                         | _        | j,                  j/                  t         j0                  j                         t        j                  t         j                  j                        | _        | j                   j                  | j2                         | j                  | j                          d| _        y )Nr^   
   F   z	<b>%s</b>r   r   z	dim-labelTview)r   rb   r   rc   rd   r   always_show	revealersrf   r   
set_markupr   r3   get_style_context	add_classFrameframeset_no_show_allset_shadow_type
ShadowTypeIN	SizeGroup
size_groupset_modeSizeGroupModere   need_separator)r,   r   r   
header_boxr   subframe_styles          r.   r   zSettingsSection.__init__   s   3??+C+CD HS__-E-EFJ""1%HHZ 		  u!45##As+u%iikX&%%'11+>!!!S)s#YY[


""4(

""3>>#4#45jj224f%--/  !2!2!;!;<77s'?'?@

txx #r/   c                    t        j                  t         j                  j                        }| j                  r=|j                  t        j                  t         j                  j                               t        j                         }|j                  t         j                  j                         t        j                  d      }|j                  |       t        |t              r|j                  d|j                          |j                  |       |j                  |       | j"                  j                  |       | j%                          d| _        y )Nr   F	can_focusrow-activatedT)r   rb   rc   rd   r   rf   	Separator
HORIZONTALListBoxset_selection_modeSelectionModer!   
ListBoxRow
isinstanceSwitchr'   clickedre   update_always_show_state)r,   r8   vboxlist_boxrows        r.   add_rowzSettingsSection.add_row   s    ww3??#;#;<HHS]]s/I/IJK;;=##C$5$5$:$:;nnu-ff%_fnn=ST%%'"r/   c                    t        j                  t         j                  j                        }| j                  r=|j                  t        j                  t         j                  j                               t        j                         }|j                  t         j                  j                         t        j                  d      }	|	j                  |       t        |t              r|j                  d|j                          |j                  |	       |j                  |       |t#        ||||      }||_        |j                  |       | j&                  j                  |       d| _        | j(                  j+                  |       | j,                  s1|j                  d| j.                        |_        | j/                          |S )Nr   Fr   r   Tznotify::child-revealed)r   rb   rc   rd   r   rf   r   r   r   r   r   r!   r   r   r   r'   r   r[   r   re   r   appendr   check_reveal_state	notify_id)
r,   r8   rq   rr   ro   ra   r   r   r   r   s
             r.   add_reveal_rowzSettingsSection.add_reveal_row   s?   ww3??#;#;<HHS]]s/I/IJK;;=##C$5$5$:$:;nnu-ff%_fnn=S'VZHH"TX"h'!)!1!12JDLcLc!dH##%r/   c                     t        j                         }|j                  dd       |j                  |       |j	                  d       | j                  |       |S )Nr   r   T)r   r   r   r   set_line_wraprf   )r,   r5   r   s      r.   add_notezSettingsSection.add_note   sI    		As#D!r/   c                     | j                   ry | j                  j                  d       | j                  j                          d| _         | j                  D ]  }|j                  |j                          y )NFT)r   r   r   r&   r   
disconnectr   )r,   r   s     r.   r   z(SettingsSection.update_always_show_state   s_    

""5)

 	4H 2 23	4r/   c                     | j                   D ]N  }|j                  j                  s| j                  j	                          | j
                  j                           y  | j
                  j                          y r1   )r   propschild_revealedre   r&   r   showhide)r,   argsr   s      r.   r   z"SettingsSection.check_reveal_state   sS     	H~~,,!!#

!		 	

r/   r   )NNNNN)	rJ   rK   rL   r   r   r   r   r   r   rY   r/   r.   r   r      s!    %$N#$6	4r/   r   c                   ,    e Zd ZddZd Zd Zd Zd Zy)SettingsWidgetNc                 D   t         j                  j                  |        | j                  t         j                  j
                         | j                  d       | j                  d       | j                  d       | j                  d       |r| j                  |       y y )N   r   )r   rb   r   r   rc   r   r   set_border_widthr   r   set_dep_key)r,   dep_keys     r.   r   zSettingsWidget.__init__  sz    S__778a R b!W% r/   c                     t         j                  j                  }|d   dk(  r"|dd  }|t         j                  j                  z  }|j	                  d      }t         j
                  j                  |d         }|j                  |d   | d|       y )Nr   !   /	sensitive)r   rm   rn   INVERT_BOOLEANsplitri   rj   rl   )r,   r   flagr   dep_settingss        r.   r   zSettingsWidget.set_dep_key  s~    $$((1:abkGC))888Dc"||''a1%(D+t<r/   c                 :    |j                  | j                         y r1   )
add_widgetcontent_widget)r,   groups     r.   add_to_size_groupz SettingsWidget.add_to_size_group  s    ,,-r/   c                 j    | j                  d       | j                  d       | j                  d       y Nr   )r   r   r   rG   s    r.   fill_rowzSettingsWidget.fill_row  s,    a Qa r/   c                     	 t         |   S #  t        j                  j                  |      t         |<   t         |   cY S xY wr1   )settings_objectsr   ri   rj   )r,   rq   s     r.   get_settingszSettingsWidget.get_settings#  s>    	,#F++	,'*||'7'7'?V$#F++s    1>r1   )rJ   rK   rL   r   r   r   r   r   rY   r/   r.   r   r     s    	&=.!
,r/   r   c                       e Zd ZddZd Zy)SettingsLabelNc                     t         j                  j                  |        |r| j                  |       | j	                  dd       | j                  d       y )Ng        r   T)r   r   r   r2   r   r   r4   s     r.   r   zSettingsLabel.__init__,  sA    		4 NN4 3$4 r/   c                 &    | j                  |       y r1   )r2   r4   s     r.   set_label_textzSettingsLabel.set_label_text4  s    tr/   r1   )rJ   rK   rL   r   r   rY   r/   r.   r   r   +  s    !r/   r   c                   V     e Zd ZdZej
                  j                  Zd fd	Zd Z	 xZ
S )r   activec                 N   t         t        |   |       t        j                  t        j                  j
                        | _        t        |      | _        | j                  | j                  ddd       | j                  | j                  ddd       | j                  |       y )Nr   )valignFr   )r   r   r   r   AlignCENTERr   r   r   rt   pack_endrD   )r,   r   r   rE   r-   s       r.   r   zSwitch.__init__;  sx    fd$W$5!jj		0@0@A"5)


E5!4d))5%;g&r/   c                     | j                         r5| j                  j                  | j                  j                                 y y r1   )is_sensitiver   
set_active
get_activer,   r   s     r.   r   zSwitch.clickedE  s9    **t/B/B/M/M/O+OP r/   )N )rJ   rK   rL   	bind_propr   rm   DEFAULTbind_dirr   r   rQ   rR   s   @r.   r   r   7  s$    I$$,,H'Qr/   r   c                   V     e Zd ZdZej
                  j                  Zd fd	Zd Z	 xZ
S )
SpinButtonry   c
                 V   t         t        |   |       d | _        |r|d|z  z  }t	        |      | _        t        j                         | _        | j                  | j
                  ddd       | j                  | j                  ddd       | j                         }
|d k(  s|d k(  r|
d   }|
d   }n |
t        ||
d         }t        ||
d         }|s|}| j                  j                  ||       | j                  j                  ||       d}|r3dt        |      v r&t!        t        |      j#                  d      d         }| j                  j%                  |       | j                  j'                  d| j(                         | j+                  |	       |r| j-                  |       y y )Nr   z (%s)Fr   r   .value-changed)r   r   r   timerr   r   r   r   rt   r   	get_rangemaxmin	set_rangeset_incrementsrO   lenr   
set_digitsr'   apply_laterrD   r   )r,   r   unitsminimaxisteppager   r   rE   rangedigitsr-   s               r.   r   zSpinButton.__init__M  s~   j$((9
Wu_$E"5)
!nn.

E5!4d))5%; 4<44<8D8DtU1X&DtU1X&DD%%dD1**46SCI%T-a01F&&v.##OT5E5EFg&"":. r/   c                     d }| j                   rt        j                  | j                          t        j                  d||       | _         y )Nc                 d    | j                  | j                  j                                d | _        y r1   )	set_valuer   rv   r  rG   s    r.   applyz%SpinButton.apply_later.<locals>.applyu  s$    NN4..88:;DJr/   ,  r  r   source_removetimeout_addr,   r   r  s      r.   r  zSpinButton.apply_latert  s8    	 ::tzz*%%c5$7
r/   )r   NNr   NNNr   )rJ   rK   rL   r   r   rm   rn   r   r   r  rQ   rR   s   @r.   r   r   I  s$    I$$((H%/N8r/   r   c                   P     e Zd ZdZej
                  j                  Zd fd	Z xZ	S )r   r5   c                    t         t        |   |       t        |      | _        t        j                         | _        | j                  j                  t
        j                  j                         | j                  | j                  ddd       | j                  | j                  ||d       | j                  |       |r| j                  |       y y )Nr   Fr   )r   r   r   r   r   r   r   
set_valignr   r   rt   r   rD   r   )r,   r   expand_widthr   r   rE   r-   s         r.   r   zEntry.__init__  s    eT#G#4"5)
!iik&&syy'7'78

E5!4d))<qIg&"":. r/   FNNr   
rJ   rK   rL   r   r   rm   r   r   r   rQ   rR   s   @r.   r   r   }  s#    I$$,,H/ /r/   r   c                   P     e Zd ZdZej
                  j                  Zd fd	Z xZ	S )TextViewr5   c                    t         t        |   |       | j                  t        j
                  j                         | j                  d       t        j                  j                  |      | _
        | j                  j                  t        j                  j                         t	        j                  d d       | _        | j                  j!                  d|       | j                  j#                  t        j$                  j&                  t        j$                  j&                         | j                  j)                  t        j*                  j,                         t	        j                         | _        | j.                  j1                  d       | j.                  j3                  t        j4                  j6                  	       | j.                  j9                         | _        | j=                  | j                  d
d
d       | j?                  | j                         | j                  j?                  | j.                         d | _         y )Nr      )hadjustmentvadjustment)widthheight)hscrollbar_policyvscrollbar_policy)type   )	wrap_modeFr   )!r   r#  r   r   r   rc   rd   r   r   rj   r   
set_halignr   r   ScrolledWindowscrolledwindowset_size_request
set_policy
PolicyType	AUTOMATICr   r   	ETCHED_INr   r   set_wrap_modeWrapModer!   
get_bufferbind_objectrt   rf   _value_changed_timer)r,   r   r*  r   rE   r-   s        r.   r   zTextView.__init__  s   h&w&7S__556YY]]5)


cii../!00TtT,,2f,E&&9Q9Q9<9Q9Q 	' 	S++1I1I+J!lln,,Q/))CLL4E4E)F..99;

E5!4$$% 3 34$(!r/   )   Nr   r!  rR   s   @r.   r#  r#    s#    I$$,,H) )r/   r#  c                        e Zd ZdZej
                  j                  Zej                  j                  ej                  j                  z  dddf fd	Z xZS )
FontButtonz	font-nameNr   c                    t         t        |   |       t        |      | _        t        j                         | _        | j                  j                  t
        j                  j                         | j                  | j                  ddd       | j                  | j                  ddd       | j                  |       |r| j                  |       |t
        j                  j                  z  s;d }| j                  j!                  |       |t
        j                  j                  z  }| j                  j#                  |       y )Nr   Fr   c                 Z    |j                         j                         }dD ]  }||v s y y)N)bolditalicobliqueFT)get_face_namelower)famface	face_textkeywords       r.   filter_funcz(FontButton.__init__.<locals>.filter_func  s8     ..0668	< %G)+$% r/   )r   r?  r   r   r   r   r   r  r   r   rt   r   rD   r   FontChooserLevelSTYLEset_filter_func	set_level)r,   r   levelr   r   rE   rK  r-   s          r.   r   zFontButton.__init__  s    j$((9"5)
!nn.&&syy'7'78

E5!4d))5%;g&"":.,,222 //< S))///E%%e,r/   )rJ   rK   rL   r   r   rm   r   r   r   rL  rM  SIZEr   rQ   rR   s   @r.   r?  r?    sP    I$$,,H%(%9%9%?%?#BVBVB[B[%[imw{  FH #- #-r/   r?  c                        e Zd ZdZej
                  j                  ej
                  j                  z  Zd fd	Z	d	dZ
d Zd Zd Zd Z xZS )
Rangery   c                 	    t         t           |
        j                  t        j
                  j                          j                  d       | _        | _	        | _
        d  _        d _        | _        | _        t	        j                         }t        j                   j#                  |       _         j$                  j'                  t        j(                  j*                         t	        j                           _        t	        j                           _         j,                  j1                  dd        j.                  j1                  dd        j,                  j3                  d        j.                  j5                  d        j,                  j7                  d|z          j.                  j7                  d|z          j9                         }|d k(  s|d k(  r|d   }|d   }n |t;        ||d         }t=        ||d         }|rXt?        j                  |      }t?        j                  |      } j                  rd  _         d	  _!        n-d
  _         d  _!        n j                  rd  _         d  _!         j                  r|}|dz  }|dz  }|||z
  dz   _"        n|rt?        j                  |      n| _"        t        jF                  jI                  t        j
                  jJ                  || jD                         _&         jL                  jO                  |        jL                  jQ                  |	xr  j                           jL                  jS                          _*         j                  dk7  r"d fd	} jL                  jW                  d|       |r xjD                  dz  c_"        |jY                   j,                  ddd       |jY                   jL                  ddd       |jY                   j.                  ddd        jY                   j$                  ddd        jY                  |ddd        jL                  jW                  d jZ                          jL                  jW                  d j\                         |s8 jD                  dz  dk(  r& jL                  jW                  d j^                          ja                  |       y )Nr   r   r   g      ?   z<i><small>%s</small></i>r   c                 2    dt        j                  |       z  S Nr(  mathlogxs    r.   <lambda>z Range.__init__.<locals>.<lambda>  s    txx{); r/   c                 ,    t        j                  |       S r1   rY  expr[  s    r.   r]  z Range.__init__.<locals>.<lambda>      ! r/   c                 ,    t        j                  |       S r1   rX  r[  s    r.   r]  z Range.__init__.<locals>.<lambda>  ra  r/   c                 ,    t        j                  |       S r1   r_  r[  s    r.   r]  z Range.__init__.<locals>.<lambda>  ra  r/   c                     | dz  S rW  rY   r[  s    r.   r]  z Range.__init__.<locals>.<lambda>  
    QV r/   c                     | dz  S rW  rY   r[  s    r.   r]  z Range.__init__.<locals>.<lambda>  re  r/   r(  g{Gz?r   c                 T    dj                  |j                  j                        S )Nz{0:0.{prec}f}{1})prec)formatr  r  )scalery   datar,   s      r.   format_valuez$Range.__init__.<locals>.format_value  s#    )00

0UUr/   zformat-valueFTzscroll-eventr  zchange-valuer1   )1r   rS  r   r   r   rc   rd   r   rZ  invertflippedr  ry   r  r  rb   r   rj   r   r0  r   r   	min_label	max_labelr   r   r   r   r  r  r  rY  map_getmap_setr  Scalenew_with_ranger   r   set_invertedset_draw_valueget_adjustmentr;  r'   rt   on_scroll_eventr  round_value_to_steprD   )r,   r   ro  rp  r  r  r  rm  rZ  
show_valuer   rE   rn  r  r  hboxr  tmp_minirl  r-   s   `                  r.   r   zRange.__init__  s   eT#G#4S__556


wwyYY]]5)


cii../		$$S$/$$S$/''*&&q)!!"<y"HI!!"<y"HI 4<44<8D8DtU1X&DtU1X&D88D>D88D>D||;444\\+DL+DL<<H"9Db=D<,DI*-4DI!ii66s7Q7QSWY]_c_h_hi((0**:+Jdll:JK..==?::V ''EIIOIua8++T4;ua8

E5!4dD!,##ND4H4HI##OT5E5EFQ!+''8P8PQg&r/   c                     || j                   z  dk7  r5|j                  t        || j                   z        | j                   z         yyNr   TF)r  r  round)r,   r8   scrollry   rk  s        r.   ry  zRange.round_value_to_step1  s>    499!U5499#45		ABr/   c                     d }| j                   rt        j                  | j                          t        j                  d||       | _         y )Nc                    | j                   rM| j                  t        j                  t	        | j
                  j                                            d | _        y | j                  r4| j                  | j
                  j                         dz         d | _        y | j                  | j
                  j                                d | _        y rW  )	rZ  r  rY  r`  absr   rv   rn  r  rG   s    r.   r  z Range.apply_later.<locals>.apply8  s    xxtxxD,?,?,I,I,K(LMN DJ	 <<NN4#6#6#@#@#BR#GH DJ NN4#6#6#@#@#BCDJr/   r  r  r  s      r.   r  zRange.apply_later7  s8    	 ::tzz*%%c5$7
r/   c                     |j                         \  }}}|j                  |j                         || j                  z  z
         yr;   )get_scroll_deltasr  rv   r  )r,   r8   r9   founddelta_xdelta_ys         r.   rx  zRange.on_scroll_eventF  sA    "'"9"9";w 	))+g		.AABr/   c                     | j                   r1| j                  j                  t        j                   |      ||       y | j                  j                  |||       y r1   )rZ  r   add_markrY  )r,   ry   positionmarkups       r.   r  zRange.add_markN  sA    88((%(FK((&Ar/   c                     | j                   s>|| _        | j                  j                  |       | j                  j	                  |       y y r1   )rZ  r  r   set_round_digitsr
  )r,   r  s     r.   set_roundingzRange.set_roundingT  s=    xx DK008**62 r/   )r   r   NNNFFTNr   Fr   r   r1   )rJ   rK   rL   r   r   rm   rn   NO_SENSITIVITYr   r   ry  r  rx  r  r  rQ   rR   s   @r.   rS  rS    sK    I$$((3+@+@+O+OOHV'p8B3r/   rS  c                   N     e Zd ZdZg dddddf fd	Zd Zd Zd Zd Zd Z	 xZ
S )	ComboBoxNr   c                    t         t        |   |       || _        || _        i | _        t        |      | _        t        j                         | _	        t        j                         }| j                  j                  |d       | j                  j                  |dd       | j                  | j                  ddd       | j                  | j                  ddd       | j                  j                  t        j                  j                          | j#                  |       |r%| j                  j%                  | j&                         | j)                  |       |r| j+                  |       y y )Nr   Tr5   r   Fr   )r   r  r   valtype	separator
option_mapr   r   r   r   CellRendererTextrt   add_attributer   r  r   r   set_optionsset_row_separator_funcis_separator_rowrD   r   )
r,   r   optionsr  r  r   r   rE   renderer_textr-   s
            r.   r   zComboBox.__init__]  s   h&w&7""5)
!lln,,.&&}d;))-C

E5!4d))5%;&&syy'7'78!66t7L7LMg&"":. r/   c                     |j                         }|d k7  r3| j                  |   d   | _        | j                  | j                         y y r   )get_active_itermodelry   r  )r,   r8   	tree_iters      r.   on_my_value_changedzComboBox.on_my_value_changedy  sB    **,	I.q1DJNN4::& r/   c                     | j                         | _        	 | j                  j                  | j                  | j                            y #  | j                  j                  d        Y y xY wr1   )rv   ry   r   set_active_iterr  r   s     r.   on_setting_changedzComboBox.on_setting_changed  sQ    ^^%
	6//

0KL	6//5s   2A
 
A)c                 P    | j                   j                  d| j                         y )Nr   r   r'   r  r   s     r.   connect_widget_handlersz ComboBox.connect_widget_handlers  s    ##It/G/GHr/   c                    | j                   | j                   }nt        |d   d         }t        j                  |t              | _        |D ]5  }| j
                  j                  |d   |d   g      | j                  |d   <   7 | j                  j                  | j
                         | j                  j                  d       y )Nr   r   )r  r-  r   	ListStorerO   r  r   r  r   	set_modelset_id_column)r,   r  var_typeoptions       r.   r  zComboBox.set_options  s    <<#||H GAJqM*H]]8S1
 	SF)-):):F1Ivay;Q)RDOOF1I&	S 	%%djj1))!,r/   c                 0    ||   d   | j                   k(  ryyr~  )r  )r,   r  r  s      r.   r  zComboBox.is_separator_row  s    A$..0r/   )rJ   rK   rL   r   r   r  r  r  r  r  rQ   rR   s   @r.   r  r  Z  s7    H&($$SWaeoq /8'6I-r/   r  c                   6     e Zd ZdZd fd	Zd Zd Zd Z xZS )ColorChooserNc                    t         t        |   |       || _        t	        |      | _        t        j                         | _        | j                  j                  d       | j                  | j
                  ddd       | j                  | j                  ddd       | j                  |       |r| j                  |       y y )Nr   TFr   )r   r  r   legacy_stringr   r   r   ColorButtonr   set_use_alphart   r   rD   r   )r,   r   r  r   r   rE   r-   s         r.   r   zColorChooser.__init__  s    lD*7*; +"5)
!oo/))$/

E5!4d))5%;g&"":. r/   c                     | j                         }t        j                         }|j                  |       | j                  j                  |       y r1   )rv   r   RGBAparser   set_rgba)r,   r   color_stringrgbas       r.   r  zColorChooser.on_setting_changed  s9    ~~'xxz

< $$T*r/   c                 P    | j                   j                  d| j                         y )Nz	color-setr  r   s     r.   r  z$ColorChooser.connect_widget_handlers  s    ##K1I1IJr/   c                     | j                   r)| j                  j                         j                         }n(| j                  j	                         j                         }| j                  |       y r1   )r  r   	get_color	to_stringget_rgbar  )r,   r8   r  s      r.   r  z ColorChooser.on_my_value_changed  sQ    ..88:DDFL..779CCEL|$r/   r   )	rJ   rK   rL   r   r   r  r  r  rQ   rR   s   @r.   r  r    s    H/$+K%r/   r  c                   6     e Zd ZdZd fd	Zd Zd Zd Z xZS )FileChooserNc                    t         t        |   |       |rt        j                  j
                  }nt        j                  j                  }t        |      | _        t        j                  |      | _
        | j                  | j                  ddd       | j                  | j                  ddd       | j                  |       |r| j                  |       y y )Nr   )actionFr   )r   r  r   r   FileChooserActionSELECT_FOLDEROPENr   r   FileChooserButtonr   rt   r   rD   r   )r,   r   
dir_selectr   r   rE   r  r-   s          r.   r   zFileChooser.__init__  s    k4)'):**88F**//F"5)
!336B

E5!4d))5%;g&"":. r/   c                 V    | j                  | j                  j                                y r1   )r  r   get_urir   s     r.   on_file_selectedzFileChooser.on_file_selected  s    t**2245r/   c                 V    | j                   j                  | j                                y r1   )r   set_urirv   r   s     r.   r  zFileChooser.on_setting_changed  s    ##DNN$45r/   c                 P    | j                   j                  d| j                         y )Nzfile-set)r   r'   r  r   s     r.   r  z#FileChooser.connect_widget_handlers  s    ##J0E0EFr/   r   )	rJ   rK   rL   r   r   r  r  r  rQ   rR   s   @r.   r  r    s    H/"66Gr/   r  c                   ^     e Zd ZdZej
                  j                  Zdg dddddf fd	Z xZ	S )IconChoosericonNFr   c	                 z   t         t        |   |       t        |      | _        t        j                         | _        | j                  j                  t        j                  j                         | j                  j                         }	|r|	j                  |       |D ]  }
|	j                  |
d   |
d           || j                  j                  |       | j!                  | j                  ddd       | j#                  | j                  ||d       | j%                  |       |r| j'                  |       y y )Nr   nameiconsFr   )r   r  r   r   r   r   IconChooserButtonr   set_icon_sizer   IconSizeBUTTON
get_dialogset_default_iconadd_custom_categoryset_default_categoryrt   r   rD   r   )r,   r   default_iconicon_categoriesdefault_categoryr  r   r   rE   dialogcategoryr-   s              r.   r   zIconChooser.__init__  s   k4)'):"5)
"446))#,,*=*=>$$//1##L1' 	LH&&x'7'9JK	L '445EF

E5!4d))<qIg&"":. r/   r!  rR   s   @r.   r  r    s?    I$$,,H+/VZin{  JN  XZ / /r/   r  c                   ,     e Zd Zd fd	Zd Zd Z xZS )r   c                    t         t        |           || _        || _        t        j                  |      | _        | j                  | j                  ddd       | j                  j                  d| j                         y )N)r   Tr   r   )
r   r   r   r   callbackr   r   rt   r'   r(   )r,   r   r  r-   s      r.   r   zButton.__init__  sc    fd$&
 !jju5++T4;##It/F/FGr/   c                     | j                   | j                  |        y t        | d      r| j                          y t        d| j                  z         y )Non_activatedz!warning: button '%s' does nothing)r  hasattrr  printr   r   s     r.   r(   zButton._on_button_clicked  s@    ==$MM$T>*5

BCr/   c                 H    || _         | j                  j                  |       y r1   )r   r   r2   )r,   r   s     r.   r2   zButton.set_label  s    
%%e,r/   r1   )rJ   rK   rL   r   r(   r2   rQ   rR   s   @r.   r   r     s    HD-r/   r   c                   J     e Zd Zej                  j
                  f fd	Z xZS )Textc                    t         t        |           || _        |t        j
                  j                  k(  rd}t        j                  j                  }nV|t        j
                  j                  k(  rd}t        j                  j                  }nd}t        j                  j                  }t	        j                  ||||      | _        | j                  j                  d       | j                  | j                  ddd       y )Nr   r   r   )halignxalignjustifyT)r   r  r   r   r   r   ENDJustificationRIGHTr   LEFTr   r   r   rt   )r,   r   alignr  justificationr-   s        r.   r   zText.__init__  s    dD"$
CIIMM!F--33Mcii&&&F--44MF--22M!iieFTab))$/++T4;r/   )rJ   rK   rL   r   r   STARTr   rQ   rR   s   @r.   r  r    s    $'IIOO < <r/   r  )"rY  girequire_versiongi.repositoryr   r   r   r   r   r   r   rV   r
   rT   r`   r[   rb   r|   r   r   r   r   r   r   r   r#  r?  rS  r  r  r  r  r   r  rY   r/   r.   <module>r     sT    	   5%     65 ! < < E%SYY E%NCII Gs|| GB377 4ocgg ob$,SWW $,L
CII 
Q^ Q$28 28h/N /&)~ )8'- '-RC3N C3JA~ AF#%> #%JG. G:/. /<-^ -,<> <r/   