
    f-                         d dl  d dlZd dlmZ  ej                  dd        ej                  dd       d dlmZ d dlmZ  G d	 d
      Z G d dej                  e      Z	 G d dej                  e      Zedk(  rfd dlmZ d dlmZ d dlZ ej"                  ej$                  ej&                          e	 e             Zej+                          	 ej-                          yy# e$ r  ej0                          Y yw xY w)    )*N)GObjectGtkz3.0Gdk)r   )r   c                   X    e Zd Zd ZddZddZd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zy)AbstractPreferencesUIc                    t        | dd       t        j                         | _        | j	                  | j                  |j
                         | j                  j                  | j                  j                         dk7         | j                  S )Nnotebook   )getattrr   Notebookr
   _populate_settingsgroupsset_show_tabsget_n_pages)selfsettings_managers     E/usr/lib/python3/dist-packages/caribou/settings/preferences_window.pypopulate_settingsz'AbstractPreferencesUI.populate_settings   sg    4T*2LLNDM/?/F/FG##DMM$=$=$?1$DE}}    c                    |dk(  ry|D ]s  }t        j                  t         j                  j                        }|j	                  |t        j
                  |j                               | j                  ||d       u y |j                  d       d }d}|D ]  }t        |t              sr|Wt         j                  j                  ddd      }|j                  d       |j                  d       |j                  |ddd       | j!                  |||       |dz  }d }t        j"                         }|j%                  t         j&                  j(                         t        j
                         }	|	j+                  d	|j                  z         |j-                  |	       t        j                  t         j                  j                        }|j/                  |       |j                  |ddd       | j1                  ||j2                  |d        |j5                  d
| j0                  |d        | j                  |||dz           y )Nr   )orientationlabelr         F   z	<b>%s</b>sensitivity-changed)r   BoxOrientationVERTICALappend_pageLabelr   r   set_border_width
isinstanceSettingsGroupTablenewset_row_spacingsset_col_spacings
pack_start_create_widgetFrameset_shadow_type
ShadowTypeNONE
set_markupset_label_widgetadd_sensitivity_changed_cb	sensitiveconnect)
r   parentsettinglevelsvboxtablerowframer   s
             r   r   z(AbstractPreferencesUI._populate_settings'   s   A: 4ww3??+C+CD""4)AB''a34
 ##A&EC @!!]3} #		aE :..q1..q1))%qA''sA61HC EIIKE))#..*=*=>IIKE$$[177%:;**5177s/G/GHDIIdO%%eUE1=00AKKMII3"::#T+ ++D!UQY?/@r   c                    d }d }d }d }d }	t        |t              rWt        j                  j	                  |j
                        }|j                  |j                         d }| j                  }d}	n	t        j                  d|j
                  z        }|j                  dd       |j                  t        k(  rRt        j                  j                  t        j                   |j                        d         }d }| j"                  }d	}	no|j                  t$        k(  r<t        j&                  j)                  |j                        }d
 }| j*                  }d}	n |j                  t,        k(  rt        j.                         }t        |j                  t0              r#|j3                  d       |j5                  dd       |j7                  |j8                  |j:                         |j=                  |j                         |j?                          d }| j@                  }d}	nX|j                  tB        k(  r_|jD                  rR|jF                  r2tI        |jF                        tI        |jD                        k(  sJ d       d }t        jJ                  jM                  tI        |jD                        tI        |jF                        z   dd      }|jO                  d       |jQ                  d       g }
|jD                  D ]6  \  }}t        jR                  j	                  g |      }|
jU                  |       8 tW        |
dd  |jD                  dd        D ]=  \  }}|jY                  |
d          |d   |j                  k(  s-|j                  d       ? |j[                  dd |
      }d}t]        |
      D ]  \  }}|j[                  d| j^                  ||
|       |ja                  |dd||dz   t        jb                  jd                  t        jb                  jf                  z  t        jb                  jd                  t        jb                  jf                  z  dd	       |dz  }|jF                  s| ji                  |||jF                  |   d       |dz  } n|j                  tj        k(  s|jD                  rt        jl                  jM                         }|jD                  D ]#  }|jU                  to        |d         |d          % |jq                  to        |j                               d }| jr                  }d}	n@t        jt                         }|jw                  |j                         d }| jx                  }d}	||ja                  |dd||dz   t        jb                  jd                  t        jb                  jf                  z  t        jb                  jd                  t        jb                  jf                  z  |d	       |ja                  |dd||dz   t        jb                  jd                  t        jb                  jf                  z  t        jb                  jd                  t        jb                  jf                  z  dd	       n|ja                  |dd||dz   t        jb                  jd                  t        jb                  jf                  z  t        jb                  jd                  t        jb                  jf                  z  |d	       | j{                  ||j|                  ||       |j[                  d| jz                  ||       |r.|	r+|r(|j[                  d||      }|j[                  |	|||       y y y y )Nc                 $    |j                  |      S N)
set_activer:   vws      r   <lambda>z6AbstractPreferencesUI._create_widget.<locals>.<lambda>S   s    q||A r   toggledz%s:r   g        g      ?r   c                 J    |j                  t        j                  |            S rA   )	set_colorr   color_parserC   s      r   rF   z6AbstractPreferencesUI._create_widget.<locals>.<lambda>^   s    AKK0B$C r   z	color-setc                 $    |j                  |      S rA   )set_font_namerC   s      r   rF   z6AbstractPreferencesUI._create_widget.<locals>.<lambda>c   s    1??13E r   zfont-setr   g{Gz?g?c                 $    |j                  |      S rA   )	set_valuerC   s      r   rF   z6AbstractPreferencesUI._create_widget.<locals>.<lambda>n   s    1;;q> r   zvalue-changedzTIf a radio entry has children, they must be equal in quantity to the allowed values.Fr   r   Tc                     || j                   D cg c]  \  }}|	 c}}j                  |         j                  d      S c c}}w )NT)allowedindexrB   )r:   rD   rsabs        r   rF   z6AbstractPreferencesUI._create_widget.<locals>.<lambda>   sE    ()		3 $1  33858==GZ=M 3s   A   c                 6    |j                  t        |            S rA   )set_active_idstrrC   s      r   rF   z6AbstractPreferencesUI._create_widget.<locals>.<lambda>   s    1??3q63J r   changedc                 $    |j                  |      S rA   )set_textrC   s      r   rF   z6AbstractPreferencesUI._create_widget.<locals>.<lambda>   s    1::a= r   zinsert-at-cursorr   )?r%   BooleanSettingr   CheckButtonnew_with_labelr   rB   value_checkbutton_toggled_cbr#   set_alignment
entry_typeENTRY_COLORColorButtonnew_with_colorr   rJ   _colorbutton_changed_cb
ENTRY_FONT
FontButtonnew_with_font_fontbutton_changed_cb
ENTRY_SPIN
SpinButtonfloat
set_digitsset_increments	set_rangeminmaxrN   update_spinner_changed_cbENTRY_RADIOrP   childrenlenr'   r(   r)   r*   RadioButtonappendzip
join_groupr6   	enumerate_radio_changed_cbattachAttachOptionsEXPANDFILLr,   ENTRY_COMBOComboBoxTextrX   rW   _combo_changed_cbEntryr[   _string_changed_cbr4   r5   )r   r<   r=   r8   xpaddingcontrolr   value_changed_cbcontrol_changed_cbcontrol_changed_signalradiosstring	localizedrbradiorP   hidrioptions                       r   r,   z$AbstractPreferencesUI._create_widgetJ   sJ   !!%g~.oo44W]]CGw}}->!%!=!=%."IIEGMM$9:ES)!![0//88OOGMM2157 D !%)%A%A")4&##z1..66w}}E#E %)%@%@")3&##z1..*gmmU3&&q)**45!!'++w{{;!!'--0 #A %)%=%=")8&##{2w##w//0C4HH ===H ))--(3w/?/?+@@!UL((+((+)0 &%FI77IFBMM"%& '*&*gooab6I&J /NE7$$VAY/qzW]]2((./
 oo#N   )& 1 HAuMM)T-C-CW"(#/NNq!QA))0033D3D3I3II))0033D3D3I3II1	
 FA''++GQ,3,<,<Q,?EQ ##{2goo**..0%oo >FNN3vay>6!9=>%%c'--&89#J %)%;%;")2&))+  /#@ %)%<%<");&LL1c37**11C4E4E4J4JJ**11C4E4E4J4JJ!1& LL!QS1W**11C4E4E4J4JJ**11C4E4E4J4JJA
 LL!QS1W**11C4E4E4J4JJ**11C4E4E4J4JJ!1&
 	$$Wg.?.?%*	,-t/K/K	(  6;M///3CWMCOO24F#S* <N 6r   c                 >    ||fD ]  }||j                  |        y rA   )set_sensitive)r   r8   r5   r   r   rE   s         r   r4   z-AbstractPreferencesUI._sensitivity_changed_cb   s'    5! 	+A}	*	+r   c                 v    |j                   |k(  ry |j                  |       ||_         |j                  |       y rA   )r_   handler_blockhandler_unblock)r   r8   r_   
handler_ids       r   _update_settingz%AbstractPreferencesUI._update_setting   s3    ==E!6j)
+r   c                     |j                         sy |j                  |      }| j                  ||j                  |   d   |       y )Nr   )
get_activerQ   r   rP   )r   r   r8   r   r   r   s         r   r}   z'AbstractPreferencesUI._radio_changed_cb   s?    !LLWgooa&8&;ZHr   c                 F    | j                  ||j                         |       y rA   )r   	get_value)r   spinnerr8   r   s       r   rt   z)AbstractPreferencesUI._spinner_changed_cb   s    Wg&7&7&9:Fr   c                 F    | j                  ||j                         |       y rA   )r   r   )r   checkbuttonr8   r   s       r   r`   z-AbstractPreferencesUI._checkbutton_toggled_cb   s    Wk&<&<&>
Kr   c                 b    | j                  ||j                         j                         |       y rA   )r   	get_color	to_string)r   colorbuttonr8   r   s       r   rf   z-AbstractPreferencesUI._colorbutton_changed_cb   s)    Wk&;&;&=&G&G&I'	)r   c                 F    | j                  ||j                         |       y rA   )r   get_font_name)r   
fontbuttonr8   r   s       r   rj   z,AbstractPreferencesUI._fontbutton_changed_cb   s    Wj&>&>&@*Mr   c                 F    | j                  ||j                         |       y rA   )r   get_text)r   entrytextr8   r   s        r   r   z(AbstractPreferencesUI._string_changed_cb   s    Wenn&6
Cr   c                 F    | j                  ||j                         |       y rA   )r   get_active_id)r   combor8   r   s       r   r   z'AbstractPreferencesUI._combo_changed_cb   s     We&9&9&;'	)r   N)r   )__name__
__module____qualname__r   r   r,   r4   r   r}   rt   r`   rf   rj   r   r    r   r   r   r      sG    !@Fv*p+
,IGL)ND)r   r   c                       e Zd Zd Zd Zy)PreferencesDialogc                    t         j                   j                  |        | j                  t        j                  t        j
                  j                         | j                  d       | j                  |j                  j                         | j                  |      }| j                         }|j                  |       y Nr   )r   __init__
add_buttonr   STOCK_CLOSEResponseTypeCLOSEr$   	set_titler   r   r   get_content_arear3   )r   r   r
   r;   s       r   r   zPreferencesDialog.__init__   s      &)9)9)?)?@a '..445))*:;$$&r   Nr   r   r   __gtype_name__r   r   r   r   r   r      s    (Nr   r   c                       e Zd Zd Zd Zy)PreferencesWindowc                     t         j                   j                  |        | j                  d       | j                  |j                  j
                         | j                  |      }| j                  |       y r   )r   r   r$   r   r   r   r   r3   )r   r   r
   s      r   r   zPreferencesWindow.__init__   sX      &a '..445))*:;r   Nr   r   r   r   r   r      s    (Nr   r   __main__)SettingsManager)CaribouSettings)caribou.settings.setting_typesgigi.repositoryr   require_versionr   r   r   Dialogr   Windowr   r   !caribou.settings.settings_managerr   caribou.settingsr   signalSIGINTSIG_DFLrE   show_allrunKeyboardInterrupt	main_quitr   r   r   <module>r      s   * - 	 !   5%     5%    H) H)T

$9 	

$9 	 zA0FMM&--0/+,AJJL	   s   C$ $C=<C=