
    ?g+Z                     L   d dl Z d dlZd dlZ ej                  dd       d dlmZmZ d dlmZ d dl	  G d d      Z
 G d	 d
e      Z G d d      Z G d de      Z G d dee      Z G d dee      Z G d dee      Z G d dee      Z G d dee      Z G d dee      Zy)    NGtkz3.0)r   Gdk)SidePage)*c                       e Zd Zd Zd Zy)Monitorc                 <    d| _         d| _        d| _        d| _        y )N)topbottomrightleftselfs    9/usr/share/cinnamon/cinnamon-settings/modules/cs_panel.py__init__zMonitor.__init__   s    
	    c                     |dk(  r| j                   dk7  S |dk(  r| j                  dk7  S |dk(  r| j                  dk7  S |dk(  r| j                  dk7  S y )Nr   r
   r   r   r   )r   r   r   r   )r   positions     r   position_usedzMonitor.position_used   sa    u88r>!!;;"$$99?" ::## !r   N)__name__
__module____qualname__r   r    r   r   r   r      s    $r   r   c                   $     e Zd Z fdZd Z xZS )PanelSettingsPagec                    t         t        |           | j                  d       | j	                  d       | _        || _        t        d      }|dv r"t        d      }t        d      }t        d      }n!t        d      }t        d      }t        d	      }fd
}t        t        d            }	| j                  |	       t        j                  j                  t        j                  j                        | _        dt        d      gdt        d      gdt        d      gg}
t!        t        d      dd| j
                  |
| j                        }|	j#                  |       t%        t        d      dd| j
                  t        d      dddd	      }|	j'                  |dd|       t%        t        d      dd| j
                  t        d      dddd	      }|	j'                  |dd|       t        t        d            }	| j                  |	       t)        |dd | j
                  t        d!      t        d"      d#d$dd%d&'      }|j+                  d       |	j#                  |       t        t        d(            }	| j                  |	       t-               }|j/                          t        j0                  t        j2                  j4                  d)*      }t        j0                  t        j2                  j4                  d)+      }t        j6                  t        j8                  j:                  d,-      }t        j<                  |t        j>                  j@                  .      }|	j#                  |       |jC                         jE                  d/       |jG                  |d/d/d       |jG                  |d/d/d       |d0g|d1g|d2gg}d0|gd1|gd2|gfD ]9  \  }}| jI                  |      }|jK                          |jM                  |||       ; |	j#                  |       |jC                         jE                  d/       |jO                  d0       | jK                          y )3Nr   zCenter Zone)r   r   zPanel height:z	Left Zonez
Right ZonezPanel width:zTop ZonezBottom Zonec                 t    | D ]2  }|j                  d      d   k(  s|j                  d      d   dk7  c S  y )N:r      false)split)vlistpossibleitempanel_ids      r   can_showz,PanelSettingsPage.__init__.<locals>.can_show1   s?     9::c?1%1::c?1-889r   zPanel VisibilitytruezAuto hide panelr!   zAlways show panelintelzIntelligently hide panelzAuto-hide panelorg.cinnamonzpanels-autohide)
size_groupz
Show delayzpanels-show-delaymillisecondsi  2      )
check_funcz
Hide delayzpanels-hide-delay	Customizezpanels-heightSmallerLarger   <   g      ?T)minimaxidigitsstep
show_valuezPanel appearance   )orientationborder_width)r;   spacing   )transition_typetransition_duration)stackhalignFr   centerr   )(superr   r   set_margin_topset_margin_bottomr&   settings_SettingsSectionaddr   	SizeGroupnewSizeGroupMode
HORIZONTALr+   PanelComboBoxadd_rowPanelSpinButtonadd_reveal_row
PanelRangeset_roundingSettingsWidgetfill_rowBoxOrientationVERTICALStackStackTransitionTypeSLIDE_LEFT_RIGHTStackSwitcherAlignCENTER
get_parentset_activatable
pack_startcreate_zone_pageshow_all
add_titledset_visible_child_name)r   r&   rG   r   center_switcher_labeldimension_textleft_switcher_labelright_switcher_labelr'   sectionoptionswidgetzone_switcherswitcher_box	zones_boxrA   switcher
zone_infoszonelabelpage	__class__s    `                   r   r   zPanelSettingsPage.__init__   s   /1Aq!   !- 0((/N"#K.#$\? ~.N"#J-#$]#3 	9
 "!$6"78--++C,=,=,H,HIA/01GQ?R=S3TW^`ab|`}V~q!23^EVX\XeXegn{  |K  |K  L <.BUW[WdWdfghvfwyz  }A  CE  GJ  Kv~7HU]^ <.BUW[WdWdfghvfwyz  }A  CE  GJ  Kv~7HU]^!!K.1NNOT]]\]^g\hjkltju|~  FH  QR  Y\  im  nA!!$6"78&( ww3??+C+CRSTGG(@(@!L			#*A*A*R*Rhkl$$59I9IJ%!11%8%:UE5!4 !&)"H-!7+

  &':;')>?&(<=? 	0MT5 ((.DMMOT4/	0 		"..u5$$V,r   c                    t        j                  t         j                  j                        }dt	        d      gg}d}|dk  r!|j                  |d|z  g       |dz  }|dk  r!t        t	        d      d	d
| j                  ||t        | j                        }|j                  |ddd       dt	        d      gdt	        d      gddgddgddgddgddgg}t        t	        d      d	d| j                  ||t        | j                        }|j                  |ddd       t        t	        d      d	d| j                  |t	        d      dd d!d
      }|j                  |ddd       |S )"N)r;   r   z"Allow theme to determine font sizeg      @g      0@z%.1fptg      ?z	Font sizer*   zpanel-zone-text-sizes)valtyper+   Fr
   zScale to panel size exactlyzScale to panel size optimally   16px   22px   24px    32px0   48pxzColored icon sizezpanel-zone-icon-sizeszSymbolic icon sizezpanel-zone-symbolic-icon-sizespx
   r-   r    )r   rW   rX   rY   rH   appendPanelJSONComboBoxr&   floatr+   rb   intPanelJSONSpinButton)r   rs   	zone_pagetext_optionspointsrm   fullcolor_optionss          r   rc   z"PanelSettingsPage.create_zone_pages   s   GG(@(@A	 678
 nF): ;<cMF n #1[>%35L%)]]D,PUbfbqbqs 	VUE15 012123LLLLL
 #1%8#9#13J#'==$8ISVcgcrcrt 	VUE15$Q';%<%35U%)]]D!D'2r1aQ 	VUE15r   )r   r   r   r   rc   __classcell__rv   s   @r   r   r      s    Rh%r   r   c                   \    e Zd ZdZdZ ed      Zd Zd ZddZ	d Z
d	 Zd
 Zd Zd Zd Zy)ModulepanelprefszManage Cinnamon panel settingsc                 V    t        d      }t        t        d      d|||       | _        y )Nz2panel, height, bottom, top, autohide, size, layoutPanelzcs-panel)module)rH   r   sidePage)r   content_boxkeywordss      r   r   zModule.__init__   s&    IJ 7Z;W[\r   c                 D	   | j                   s8t        d       t        j                  j	                  d      | _        	 t        t        j                        dkD  rt        j                  d   | _	        n5| j
                  j                  d      d   j                  d      d   | _	        g | _        d| _        t        j                  t!        d	            | _        t        j                  t!        d
            | _        t'               }|j)                          |j+                  | j"                  ddd       |j-                  | j$                  ddd       | j"                  j/                  d| j0                         | j$                  j/                  d| j2                         t5               | _        t9               }|j;                  |       |j=                  d       | j6                  j;                  |       | j>                  jA                  | j6                         t        jB                         | _"        | jD                  jG                  d       | j6                  j;                  | jD                         t9               }| j>                  jA                  |       |jI                  t!        d            }t'               }t        j                  t!        d            | _%        |j+                  | jJ                  ddd       t        jL                  t!        d            }| j
                  jO                  d|dt        jP                  jR                         |j-                  |ddd       |jU                  |       |jU                  tW        t!        d      dd             | jJ                  jY                  d       | j
                  j/                  d| jZ                         d | _.        	 t        j^                  ja                  t        jb                  jd                  t        jf                  jh                  d dddd | jj                  d 	       | j[                          y #  d| _	        Y xY w# tl        jn                  $ r&}t        |jp                         d | _.        Y d }~Td }~ww xY w)NzLoading Panel moduler*   r    panels-enabledr   r    FzPrevious panelz
Next panelclickedr>   zGeneral Panel OptionszAdd new panel)rt      zPanel edit modezpanel-edit-modeactivez5Allow the pointer to pass through the edges of panelszno-adjacent-panel-barrierszchanged::panels-enabledzorg.Cinnamonz/org/Cinnamon)9loadedprintGioSettingsrL   rG   lensysargvr&   get_strvr"   panelsupdatingr   ButtonrH   previous_buttonnext_buttonrU   rV   rb   pack_endconnecton_previous_panelon_next_panelSettingsRevealerrevealerSettingsPagerJ   rF   r   
add_widgetrZ   config_stackset_transition_durationadd_sectionadd_panel_buttonToggleButtonbindSettingsBindFlagsDEFAULTrP   GSettingsSwitchset_sensitiveon_panel_list_changedproxy	DBusProxynew_for_busBusTypeSESSIONDBusProxyFlagsNONE_on_proxy_readyGLibErrormessage)r   
controllerru   rk   buttonstoggle_buttones          r   on_module_selectedzModule.on_module_selected   su   {{()LL,,^<DM#sxx=1$$'HHQKDM$(MM$:$:;K$LQ$O$U$UVY$Z[\$]DM DK!DM#&::a0@.A#BD "zz!L/:D')J!!!$"6"6uaH 0 0%B  ((D4J4JK$$Y0B0BC,.DM>DHHZ ""1%MMd#MM$$T]]3 #		D55c:MMd//0>DMM$$T*&&q)@'ABG$&G$'JJQ5G$HD!t44eUAF,,15F3GHMMM0-3K`K`KhKhi]E5!<OOG$OOOA.e,fhv  yU  V  W!!//6MM!!";T=W=WXDJ"))#++*=*=s?Q?Q?V?VX\*8/>[_aeauauw{} 	""$s# "h :: "aii !

"s%   A*Q %A!Q& 	Q#&R9RRNc                    t         j                  j                  |      | _        | j                  j	                         sd | _        | j                  r| j
                  j                  d| j                         | j
                  j                  d| j                         | j                  j                  d| j                         | j                  1| j                  j                  dt        | j                        d       y y y )Nunmapdestroyr   (ib)T)r   r   new_for_bus_finishr   get_name_ownerr   r   restore_panelsr   on_add_panelr&   highlightPanelr   )r   objectresultdatas       r   r   zModule._on_proxy_ready   s    ]]55f=
zz((*DJ::MM!!'4+>+>?MM!!)T-@-@A!!)))T5F5FG}}(

))&#dmm2DdK ) r   c                 R    | j                   r| j                   j                          y y N)r   addPanelQueryr   rm   s     r   r   zModule.on_add_panel   s    ::JJ$$& r   c                    | j                   r<| j                  r0| j                  j                  dt        | j                         d       | j                  j                  | j                        }|dz
  dk\  r3| j                  |dz
     | _        | j                  j                   | _         nE| j                  t        | j                        dz
     | _        | j                  j                   | _         | j                  j                  t        j                  j                         | j                  r0| j                  j                  dt        | j                         d       | j                  j                  | j                         y Nr   Fr    r   T)r&   r   r   r   r   indexcurrent_panelr   r   set_transition_typer   r[   SLIDE_RIGHTset_visible_childr   rm   currents      r   r   zModule.on_previous_panel   s   ==TZZJJ%%fc$--.@%H++##D$6$67Q;!!%Wq[!9D ..77DM!%S-=-A!BD ..77DM--c.E.E.Q.QR::JJ%%fc$--.@$G++D,>,>?r   c                     | j                   r<| j                  r0| j                  j                  dt        | j                         d       | j                  j                  | j                        }|dz   t        | j                        k  r3| j                  |dz      | _        | j                  j                   | _         n/| j                  d   | _        | j                  j                   | _         | j                  j                  t        j                  j                         | j                  r0| j                  j                  dt        | j                         d       | j                  j                  | j                         y r   )r&   r   r   r   r   r   r   r   r   r   r   r[   
SLIDE_LEFTr   r   s      r   r   zModule.on_next_panel  s   ==TZZJJ%%fc$--.@%H++##D$6$67Q;T[[))!%Wq[!9D ..77DM!%QD ..77DM--c.E.E.P.PQ::JJ%%fc$--.@$G++D,>,>?r   c                     |D ]K  }|j                   |k(  rt        d|||fz          y||   j                  |      s:t        d|||fz          y y)Nz`cs_panel: Ignoring panel definition with an already-used ID: (ID: %s, Monitor: %d, Position: %s)Tzncs_panel: Ignoring panel definition with an already-used monitor:position: (ID: %s, Monitor: %d, Position: %s)F)r&   r   r   )r   kept_panelsmonitor_layoutr&   
monitor_idr   keepers          r   id_or_monitor_position_usedz"Module.id_or_monitor_position_used$  s    ! 	F(*x  }E  GQ  S[  |\  \  ]j)77A  G  KS  U_  ai  Jj  j  k	 r   c                 
   | j                   ry d| _         t        | j                        dkD  r!| j                  D ]  }|j                           g | _        g }| j                  j                  d      }t        j                  j                         j                         }t        |      D ]  }|j                  t                       d}g }g }	|D ]  }
|
j                  d      \  }}}t        |      }||k\  rt        d|||fz         n'| j!                  |||||      r|	j                  |
       bt#        || j                  |      }| j$                  j'                  ||       |j                  |       || j(                  k(  r$d}|| _        | j$                  j-                  |       ||k  sd|v r|||   _        d|v r|||   _        d	|v r|||   _        |||   _         |	r?t        d
       |	D ]  }
|j7                  |
        | j                  j9                  d|       |D ]V  }|j.                  |j0                  |j2                  |j4                  fD ]#  }|dk7  s	| j                  j                  |       % X t        | j                        dk(  r| j:                  j=                          | j>                  j=                          | j$                  j=                          | j@                  jC                  d       d | _        d | _        d| _         y | j$                  jE                          | j:                  jE                          | j>                  jE                          t        | j                        dk(  r7| j:                  jC                  d       | j>                  jC                  d       n6| j:                  jC                  d       | j>                  jC                  d       |sT| j                  d   | _        | j*                  j(                  | _        | j$                  j-                  | j*                         | jF                  jI                  t        | j                        dk7         d}|D ]6  }d|j.                  |j0                  |j2                  |j4                  fv s4d} n | j@                  jC                  |       	 | j                  jK                  | j(                        }d| _         | jL                  r1| jL                  jO                  dt        | j(                        d       y y #  d}Y KxY w)NTr   r   Fr   zdcs_panel: Ignoring panel definition with a monitor out of range: (ID: %s, Monitor: %d, Position: %s)r   r   r   z.Cleaning up conflicting defs in panels-enabledr
   r    r   )(r   r   r   r   rG   r   r   Screenget_defaultget_n_monitorsranger   r   r"   r   r   r   r   r   	add_namedr&   r   r   r   r   r   r   removeset_strvr   hider   r   r   showr   set_reveal_childr   r   r   )r   argsr   r   
panel_defsn_monsicurrent_foundalready_defined_panelsremovalsdef_r&   r   r   
panel_pagemonitorcan_addcurrent_idxs                     r   r   zModule.on_panel_list_changed.  s   ==t{{a    ]]++,<=
'')88:v 	-A!!'),	- !#  	BD-1ZZ_*Hj(ZJV#|  AI  KU  W_  @`  `  a112H.Zbdnpxy%*8T]]HMJ''
H="))*5 4==( $%/"!!33J?
 F"H$5?N:.2)8BN:.5x'6@N:.37AN:.4A 	BD BC  (!!$'(MM""#3Z@ & 	3G&{{GNNGLL'--X 3
#KK&&z23	3 t{{q !!#  %%'""$!!//5!%D DM!DM !!# t{{q **51  ..u5**40  ..t4!%QD ..77DM//0B0BC&&s4;;'71'<= % 	Ggkk7>>7<<OO	
 	++G4	++++DMM:K ::JJ%%fc$--.@$G 	Ks   %T9 9T?c                     | j                   j                          | j                  r1| j                   j                  dt	        | j                        d       y y )Nr   F)r   destroyDummyPanelsr&   r   r   r   s     r   r   zModule.restore_panels  s=    

%%'==JJ%%fc$--.@%H r   r   )r   r   r   namecategoryrH   commentr   r   r   r   r   r   r   r   r   r   r   r   r   r      sN    DH01G]D%LL'@(@(tHlIr   r   c                   *    e Zd Zd Zd Zd Zd Zd Zy)PanelWidgetBackendc                    || _         t        j                  j                  |      | _        | j                  j                  d| j                   z   | j                        | _        | j                  d| j                         | j                          | j                  *| j                  t        j                  j                  z  dk(  r| j                          y y )Nz	changed::r   r   )keyr   r   rL   rG   r   on_setting_changedsettings_changed_id
on_destroybind_dirr   GETconnect_widget_handlers)r   schemar  s      r   connect_to_settingsz&PanelWidgetBackend.connect_to_settings  s    ((0#'==#8#8TXX9MtOfOf#g Y0!
 == T]]S5J5J5N5N%NRS%S((* &Tr   c                 @   | j                   | j                     }g }|D ]e  }|j                  d      d   | j                  k(  r1|j	                  | j                  dz   | j                  |      z          U|j	                  |       g || j                   | j                  <   y )Nr   r   )rG   r  r"   r&   r   	stringify)r   valuevalsnewvalsvals        r   	set_valuezPanelWidgetBackend.set_value  s    }}TXX& 	$Cyy~a DMM1t}}s2T^^E5JJKs#		$
 #*dhhr   c                     | j                   | j                     }|D ]8  }|j                  d      \  }}|| j                  k(  s'| j	                  |      c S  y )Nr   )rG   r  r"   r&   unstringify)r   r  r  pidr  s        r   	get_valuezPanelWidgetBackend.get_value  sQ    }}TXX& 	/C99S>LS%dmm#''..	/r   c                     t        |      S r   )strr   r  s     r   r  zPanelWidgetBackend.stringify      5zr   c                 N    | j                   j                  | j                         y r   )rG   
disconnectr  r   r   s     r   r  zPanelWidgetBackend.on_destroy  s      !9!9:r   N)r   r   r   r  r  r#  r  r  r   r   r   r  r    s    +*/;r   r  c                   <     e Zd Z fdZd Zd Zd Zd Zd Z xZ	S )PanelSwitchc                 f    || _         t        t        |   |g|i | | j	                  ||       y r   )r&   rD   r,  r   r  r   rt   r  r  r&   r   kwargsrv   s          r   r   zPanelSwitch.__init__  s3     k4)%A$A&A  -r   c                     |rdS dS )Nr(   r!   r   r&  s     r   r  zPanelSwitch.stringify  s    v+G+r   c                     |dk7  S )Nr!   r   r&  s     r   r!  zPanelSwitch.unstringify  s    r   c                     | j                         }|| j                  j                         k7  r| j                  j                  |       y y r   )r#  content_widget
get_active
set_activer   r   r  s      r   r  zPanelSwitch.on_setting_changed  s>     D''2244**51 5r   c                 P    | j                   j                  d| j                         y )Nznotify::active)r3  r   on_my_value_changedr*  s     r   r  z#PanelSwitch.connect_widget_handlers  s    ##$4d6N6NOr   c                     | j                   j                         }| j                         |k7  r| j                  |       y y r   )r3  r4  r#  r  )r   r   r   s      r   r8  zPanelSwitch.on_my_value_changed  s6    $$//1>>v%NN6" &r   )
r   r   r   r   r  r!  r  r  r8  r   r   s   @r   r,  r,    s"    ., 2
P#r   r,  c                   6     e Zd Z fdZd Zd Zd Zd Z xZS )rQ   c                     || _         t        t        |   |g|i | | j                  j                  d       | j                  ||       y )Nr   )r&   rD   rQ   r   r3  r  r  r.  s          r   r   zPanelSpinButton.__init__  sG     ot-eEdEfE%%a(  -r   c                      y r   r   r   s    r   	get_rangezPanelSpinButton.get_range      r   c                 *    t        t        |            S r   r%  r   r&  s     r   r  zPanelSpinButton.stringify      3u:r   c                     t        |      S r   r   r&  s     r   r!  zPanelSpinButton.unstringify  r'  r   c                     | j                         }|C|t        | j                  j                               k7  r| j                  j                  |       y y y r   )r#  r   r3  r  r6  s      r   r  z"PanelSpinButton.on_setting_changed  sL     #d.A.A.K.K.M*N!N))%0 "Or   	r   r   r   r   r=  r  r!  r  r   r   s   @r   rQ   rQ     s    .
1r   rQ   c                   B     e Zd Z fdZd Zd Zd Zd Zd Zd Z	 xZ
S )r   c                 t    || _         || _        t        t        |   |g|i | | j                  ||       y r   )r&   rs   rD   r   r   r  	r   rt   r  r  r&   rs   r   r/  rv   s	           r   r   zPanelJSONSpinButton.__init__  s;     	!41%I$I&I  -r   c                      y r   r   r   s    r   r=  zPanelJSONSpinButton.get_range	  s    r   c                 *    t        t        |            S r   r@  r&  s     r   r  zPanelJSONSpinButton.stringify  rA  r   c                     t        |      S r   rC  r&  s     r   r!  zPanelJSONSpinButton.unstringify  r'  r   c                 V    | j                   j                  | j                                y r   )r3  r  r#  r*  s     r   r  z&PanelJSONSpinButton.on_setting_changed  s    %%dnn&67r   c                 h   t        j                  | j                  | j                           }|D ]U  }|d   t	        | j
                        k7  r|j                         D ]$  \  }}|| j                  k(  st	        |      ||<    U W t        j                  |      | j                  | j                  <   y NpanelId)	jsonloadsrG   r  r   r&   itemsrs   dumpsr   r  r  objr  r  s         r   r  zPanelJSONSpinButton.set_value  s    zz$--12 	C9~T]]!33IIK S$))#"5zCH	 #'**T"2dhhr   c                    | j                   | j                     }t        j                  |      }|D ]T  }|d   t	        | j
                        k7  r|j                         D ]#  \  }}|| j                  k(  st	        |      c c S  V y)NrO  r   )rG   r  rP  rQ  r   r&   rR  rs   r   r  rU  r  r  s        r   r#  zPanelJSONSpinButton.get_value#  s|    }}TXX&zz$ 	$C9~T]]!33IIK $S$))#s8O$	$ r   )r   r   r   r   r=  r  r!  r  r  r#  r   r   s   @r   r   r     s&    .
8
3	r   r   c                   *     e Zd Z fdZd Zd Z xZS )rO   c                 f    || _         t        t        |   |g|i | | j	                  ||       y r   )r&   rD   rO   r   r  r.  s          r   r   zPanelComboBox.__init__/  s3     mT+ECDCFC  -r   c                     |S r   r   r&  s     r   r  zPanelComboBox.stringify5      r   c                     |S r   r   r&  s     r   r!  zPanelComboBox.unstringify8  r[  r   )r   r   r   r   r  r!  r   r   s   @r   rO   rO   .  s    .r   rO   c                   6     e Zd Z fdZd Zd Zd Zd Z xZS )r   c                 t    || _         || _        t        t        |   |g|i | | j                  ||       y r   )r&   rs   rD   r   r   r  rH  s	           r   r   zPanelJSONComboBox.__init__<  s;     	/GGG  -r   c                     |S r   r   r&  s     r   r  zPanelJSONComboBox.stringifyC  r[  r   c                     |S r   r   r&  s     r   r!  zPanelJSONComboBox.unstringifyF  r[  r   c                 t   t        j                  | j                  | j                           }|D ][  }|d   t	        | j
                        k7  r|j                         D ]*  \  }}|| j                  k(  s| j                  |      ||<    [ ] t        j                  |      | j                  | j                  <   y rN  )
rP  rQ  rG   r  r   r&   rR  rs   rx   rS  rT  s         r   r  zPanelJSONComboBox.set_valueI  s    zz$--12 	C9~T]]!33IIK S$))##||E2CH	 #'**T"2dhhr   c                    | j                   | j                     }t        j                  |      }|D ]Z  }|d   t	        | j
                        k7  r|j                         D ])  \  }}|| j                  k(  s| j                  |      c c S  \ y rN  )	rG   r  rP  rQ  r   r&   rR  rs   rx   rW  s        r   r#  zPanelJSONComboBox.get_valueU  s}    }}TXX&zz$ 	-C9~T]]!33IIK -S$))#<<,,-	-r   )	r   r   r   r   r  r!  r  r#  r   r   s   @r   r   r   ;  s    .
3-r   r   c                   6     e Zd Z fdZd Zd Zd Zd Z xZS )rS   c                 f    || _         t        t        |   |g|i | | j	                  ||       y r   )r&   rD   rS   r   r  r.  s          r   r   zPanelRange.__init__`  s3     j$(@@@  -r   c                      y r   r   r   s    r   r=  zPanelRange.get_rangee  r>  r   c                 *    t        t        |            S r   r@  r&  s     r   r  zPanelRange.stringifyj  rA  r   c                     t        |      S r   rC  r&  s     r   r!  zPanelRange.unstringifym  r'  r   c                     | j                         }|C|t        | j                  j                               k7  r| j                  j                  |       y y y r   )r#  r   bind_objectr  r6  s      r   r  zPanelRange.on_setting_changedp  sL     #d.>.>.H.H.J*K!K&&u- "Lr   rE  r   s   @r   rS   rS   _  s    .

.r   rS   )r   rP  girequire_versiongi.repositoryr   r   SettingsWidgetsr   xapp.GSettingsWidgetsr   r   r   r   r   r  Switchr,  
SpinButtonrQ   r   ComboBoxrO   r   RangerS   r   r   r   <module>rs     s      	   5%   " $ #$ $"z zxMI MI^#; #;J#&, #41j"4 12+*&8 +ZH0 "-"4 "-H.* .r   