
    ը	f                         d Z ddlZddlZddlZddlmc mZ ddlm	Z	 ddl
mZ ddlmZ ddlmZmZmZmZmZmZ  G d dej*                        Zy)	a`  
@package vdigit.preferences

@brief wxGUI vector digitizer preferences dialogs

Classes:
 - preferences::VDigitSettingsDialog

(C) 2007-2011 by the GRASS Development Team

This program is free software under the GNU General Public License
(>=v2). Read the file COPYING that comes with GRASS for details.

@author Martin Landa <landa.martin gmail.com>
    N)ColumnSelect)Units)UserSettings)ButtonCheckBox	FloatSpinSpinCtrl	StaticBox
StaticTextc                       e Zd Z ed      ej
                  fdZd Zd Zd Z	d Z
d Zd Zd	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zy)VDigitSettingsDialogzDigitization settingsc                 
   t         j                  j                  | |t         j                  ||       || _        || _        | j
                  j                  j                  | _        t        j                  | t         j                  t         j                        }| j                  |       | j                  |       | j                  j                          | j                  |       | j                  |       t        | t         j                         }t        | t         j"                        }t        | t         j$                        }|j'                          |j)                  t         j*                  | j,                         |j/                  t1        d             |j'                          |j)                  t         j*                  | j2                         |j/                  t1        d             |j)                  t         j*                  | j4                         |j/                  t1        d             t        j6                  t         j8                        }	|	j;                  |dt         j<                  d       |	j;                  |dt         j<                  d       |	j;                  |dt         j<                  d       t        j6                  t         j>                        }
|
j;                  |d	t         j@                  t         j<                  z  d       |
j;                  |	dt         jB                  d       | j)                  t         jD                  | j4                         | jG                  |
       |
jI                  |        y
)z2Standard settings dialog for digitization purposes)parentidtitlestyle)r   r   r   zApply changes for this sessionz3Close dialog and save changes to user settings filezClose dialog and ignore changesr      
proportionflagborder   N)%wxDialog__init__ID_ANY_gifacer   	MapWindowdigitNotebook
BK_DEFAULT_createGeneralPage_createSymbologyPageSetCategory_createAttributesPage_createQueryPager   ID_APPLYID_CLOSEID_SAVE
SetDefaultBind
EVT_BUTTONOnApply
SetToolTip_OnSaveOnCancelBoxSizer
HORIZONTALAddALLVERTICALEXPANDALIGN_RIGHT	EVT_CLOSESetSizerFit)selfr   gifacer   r   notebookbtnApply	btnCancelbtnSavebtnSizer	mainSizers              3/usr/lib/grass83/gui/wxpython/vdigit/preferences.pyr   zVDigitSettingsDialog.__init__   sN    			4299EQVW[[**00
 ;;dryyN)!!(+

 ""8,h' $,4-	rzz* 	bmmT\\2A>?@R]]DKK01RSTr}}dmm4Q@AB ;;r}}-Y1266!DX!"&&CWBKK,	h1299rvv3EaPh12>>!L		",,.i d    c                    t        j                  |t         j                        }|j                  |t	        d             t        j
                  t         j                        }t        j                  ddd      }|j                  d       i | _	        | j                         D ]g  \  }}t        |t         j                  |      }t        j                  |t         j                  t        j                  dd	|d
g      d      }t        j                  dd	|dg      }	|	?t!        |t         j                  d      }
|
j#                  |	       |
|f| j                  |<   nd}
d|f| j                  |<   |j%                  |dt         j&                         |j%                  |
dt         j(                  t         j*                  z         |j%                  |dt         j,                  t         j*                  z         |j/                  d       j |j%                  |dt         j0                  t         j2                  z  d       |j5                  |       |S )z2Create notebook page concerning symbology settingsr   r   	Symbologypagetext   r   colshgapvgapr   vdigitsymbolcolorgroupkeysubkey)(      )r   coloursizeenabledN )r   label)r   r   r   r   	GetColourr   
   r   )r   Panelr   AddPager/   r2   r6   FlexGridSizerAddGrowableCol	symbology_symbologyDatar   cselColourSelectr   Getr   SetValuer4   ALIGN_CENTER_VERTICALALIGN_CENTERFIXED_MINSIZEr8   SetNamer5   r7   r:   )r<   r>   panelsizer	flexSizerr^   rV   	textLabelrS   	isEnabledr\   s              rD   r#   z)VDigitSettingsDialog._createSymbologyPageR   s   RYY7e!K.9BKK($$!!!<	  #--/ 	'JE3"5"))U;I%%99#''"#w E %((Hc95EI $"5RYYbA  +'.&6s# '+Ums#MM)8P8PMQMMABOOb>N>N,N   MM%ABNNREUEU4UMVMM+&5	'8 			)0B2	NurE   c           
         t        j                  |t         j                        }|j                  |t	        d             t        j
                  t         j                        }t        |t         j                  dt	        d      z        }t        j                  |t         j                        }t        j                  ddd	      }|j                  d
       t        |t         j                  t	        d            }t        |t         j                  dt        j                  ddd      dd      | _        t        |t         j                  dt        j                  ddd      t         j                         }|j#                  |d
t         j$                         |j#                  | j                  d
t         j&                  t         j(                  z         |j#                  |d
t         j*                  t         j(                  z  t         j$                  z  t         j,                  z  d       |j#                  |dt         j.                  t         j0                  z  d       |j#                  |d
t         j.                  t         j0                  z  d       t        |t         j                  dt	        d      z        }t        j                  |t         j                        }t        j                  ddd	      }|j                  d
       t        |t         j                  t	        d            }t3        |t         j                  dt        j                  ddd      ddd      | _        | j4                  j7                  t         j8                  | j:                         | j4                  j7                  t         j<                  | j:                         t        j>                  |t         j                  d t	        d!      t	        d"      g#      | _         	 | j@                  jC                  t        j                  ddd$             | j@                  j7                  t         jD                  | jF                         |j#                  |d
t         j$                         |j#                  | j4                  d
t         j&                  t         j(                  z         |j#                  | j@                  d
t         j*                  t         j(                  z         t        j
                  t         j                        }	tI        |t         j                  t	        d%            | _%        | jJ                  jM                  t        j                  dd&d'             |	j#                  | jJ                  d
t         j0                         | jN                  jP                  jR                  jU                         d   | _+        t        |t         j                  t	        d(      | jX                  j[                         j]                         | jV                  d)z        | _/        |	j#                  | j^                  d
t         j.                  t         j0                  z  d       |j#                  |dt         j0                         |j#                  |	dt         j0                         |j#                  |d
t         j,                  t         j`                  z  t         jb                  z  t         j0                  z  d       t        |t         j                  dt	        d*      z        }t        j                  |t         j                        }t        j
                  t         jd                        }
i | _3        d+D ]  }tI        ||,      }|ji                         | jf                  |<   |jM                  t        j                  dd-|d'g             |
j#                  |d
t         j0                  t         j.                  z  d        |j#                  |
d
t         j0                         t        j                  ddd	      }|j                  d
       t        |t         j                  t	        d.            }t        |t         j                  dt        j                  dd/d      dd      | _5        t        |t         j                  dt        j                  ddd      t         j                         }|j#                  |d
t         j$                         |j#                  | jj                  d
t         j&                  t         j(                  z         |j#                  |d
t         j*                  t         j(                  z  t         j$                  z  t         j,                  z  d       tI        |t         j                  t	        d0            | _6        | jl                  jM                  t        j                  dd1d'             | jl                  jo                  t	        d2             tI        |t         j                  t	        d3            | _8        | jp                  jM                  t        j                  dd4d'             |j#                  |d
t         j0                         |j#                  | jl                  d
t         j0                  t         j.                  z  d       |j#                  | jp                  d
t         j0                  t         j.                  z  d       |j#                  |d
t         j0                  t         j,                  z  t         j`                  z  t         jb                  z  d       t        |t         j                  dt	        d5      z        }t        j                  |t         j                        }tI        |t	        d6      ,      | _9        | jr                  jM                  t        j                  dd7d'             |j#                  | jr                  d
t         j.                  t         j0                  z  d       |j#                  |d
t         j0                  t         j,                  z  t         j`                  z  t         jb                  z  d       t        |t         j                  dt	        d8      z        }t        j                  |t         j                        }tI        |t	        d9      ,      | _:        | jt                  jM                  t        j                  dd:d'             |j#                  | jt                  d
t         j.                  t         j0                  z  d       |j#                  |d
t         j0                  t         j,                  z  t         j`                  z  t         jb                  z  d       t        |t         j                  dt	        d;      z        }t        j                  |t         j                        }tI        |t	        d<      ,      | _;        | jv                  jM                  t        j                  dd=d'             |j#                  | jv                  d
t         j.                  t         j0                  z  d       |j#                  |d
t         j0                  t         j,                  z  t         j`                  z  t         jb                  z  d       |jy                  |       |S #  | j@                  jC                  d
       Y xY w)>z0Create notebook page concerning general settingsrG   GeneralrI    %s Displayr   r   r^   rL   r   rM   r   z
Line width)K   rQ   	lineWidthvaluerT   r       .Ar   r   r[   initialminmax)s   r{   units)r   r   r[   r^   r   r_   ra   r   SnappingzSnapping thresholdsnappingr{      r   r   r[   r}   min_valmax_valdigits}   r{   zscreen pixelsz	map unitsr   r   r[   choicesunitzSnap also to vertexsnapToVertexr\   +Snapping threshold is %(value).1f %(units)sr}   r   zSelect vector featurespointlinecentroidboundary)r   r^   
selectTypezSelect thresholdselectThreshz5Select only features inside of selection bounding boxselectInsidezHBy default are selected all features overlapping selection bounding box zCheck for duplicatescheckForDuplzDigitize lines/boundarieszBreak lines at intersection
breakLineszDigitize areasz'Close boundary (snap to the start node)closeBoundaryzSave changeszSave changes on exit
saveOnExit)=r   rb   r   rc   r/   r2   r6   r
   StaticBoxSizerrd   re   r   r	   r   rj   lineWidthValue
ALIGN_LEFTr4   rl   rm   rn   r8   LEFTr5   r7   r   snappingValuer+   EVT_SPINCTRLOnChangeSnappingValueEVT_TEXTChoicesnappingUnitSetSelection
EVT_CHOICEOnChangeSnappingUnitsr   
snapVertexrk   r   r   MapGetProjInfomapUnitsr   
GetDisplayGetThresholdsnappingInfoRIGHTBOTTOMr3   selectFeatureGetIdselectThreshValueselectInr.   r   	intersectr   saver:   )r<   r>   rp   r   boxrq   rr   rK   r   vertexSizerinSizerfeaturechkboxs                rD   r"   z'VDigitSettingsDialog._createGeneralPage   sD   RYY7e!I,7R[[)
 u&1Y<:OP!!#r{{3$$!!!<	  #299AlOL&yy $$8WU
 yy""{7S--
 	dqr/G/GHABOObFVFV4V 	 	
 	""2"22R5M5MMPRPWPWW	 	 	
 			)0B1	M

5QRVVbii-?
J
 u&1Z=:PQ!!#r{{3$$!!!<	  # 299A>R<ST&yy""z'R
 	1K1KLT-G-GHIIyy';8	
	.**  xZO
 	r}}d.H.HIdqr/G/GH12??REUEU3U 	 	
 	!"..2CSCS2S 	 	
 kk"++."RYYa0E.F
 	  8	R	
 	ABIIF--11==?H&yyAB

--/<<>WX
 	!"&&2992DQ 	 	
 			)			:		+!"))	<

288#bii/"));	 	 	
 RYYfq9Q7R.R
 !!#r{{3++bmm,@ 	QGU':F*0,,.Dw'OO  "gy=Q
 KK1299rvv3EaKP	Q 			'abii	8$$!!!<	  #299A>P<QR!)yy $$N7 	"
 yy""{7S--
 	dqr/G/GH""2#3#33 	 	

 	""2"22R5M5MMPRPWPWW	 	 	
 !yyKL

 	8	R	
 	  Z	
 %RYYa0F.G
 	""8	R	
 			)			:		$--ABII4Fq	Q		$##		BFF8JST	U

RWW$rxx/"));	 	 	
 RYYfq9T7U.U
 !!#r{{3!a8U6VW8iP	
 			$..QRVVbii5GPQ	R

RWW$rxx/"));	 	 	
 u&1EUCV:VW!!#r{{3%"K L
 	##8S	
 			$$$"))9KTU	V

RWW$rxx/"));	 	 	
 u&1^CT:TU!!#r{{3E3I1JK			8iP	
 			$))0B1	M

RWW$rxx/"));	 	 	
 	vy	.**1-s   1|9 9}c           	         t        j                  |t         j                        }|j                  |t	        d             t        j
                  t         j                        }t        |t         j                  dt	        d      z        }t        j                  |t         j                        }| j                  j                  j                  j                         d   }t        |t         j                  t	        d            | _        | j                  j                  t!        j"                  d	d
d             |j%                  | j                  dt         j&                  t         j(                  z  d       |j%                  d       t        j*                  |t         j                  t	        d            | _        | j,                  j/                  t         j0                  | j2                         |j%                  | j,                  dt         j&                  t         j(                  z  d       t        j4                  ddd      }|j7                  d       t9        |t         j                  t	        d            }t        j:                  |t         j                  t	        d      t	        d      g      | _        | j<                  j?                  t!        j"                  d	dd             tA        |t         j                  ddddd      | _!        | jB                  j                  t!        j"                  d	dd             t9        |t         j                  d |z        }	|j%                  |dt         jD                  !       |j%                  | j<                  dt         jF                  t         jH                  z  !       |j%                  | jB                  dt         jF                  t         jH                  z  !       |j%                  |	dt         jD                  !       |j%                  |dt         j&                  t         j(                  z  d       t        j*                  |t         j                  t	        d"            | _%        | jJ                  j/                  t         j0                  | j2                         |j%                  | jJ                  dt         j&                  t         j(                  z  d       t        j4                  ddd      }|j7                  d       t9        |t         j                  t	        d#            }t        j:                  |t         j                  t	        d      t	        d      g      | _&        | jL                  j?                  t!        j"                  d	d$d             tO        |t         j                  dddd%      | _(        | jP                  j                  t!        j"                  d	d$d             t9        |t         j                  d |z        }	|j%                  |dt         jD                  !       |j%                  | jL                  dt         jF                  t         jH                  z  !       |j%                  | jP                  dt         jF                  t         jH                  z  !       |j%                  |	dt         jD                  !       |j%                  |dt         j&                  t         j(                  z  d       t!        j"                  d	d
d&      dk(  r| j,                  j                  d'       n| jJ                  j                  d'       | j3                  d(       |j%                  |dt         j&                  t         j(                  z  d       |jS                  |       |S ))z#Create notebook page for query toolrG   z
Query toolrI   rw   zChoose query toolry   r   zSelect by boxrQ   queryr   rT   r   r   r   )r   r   length   r   rM   zSelect lineszshorter thanzlonger than)r   r   r   queryLengththan-selection)d   r{   r~   r   r   threshz%sr_   danglezSelect danglesqueryDangler   	selectionTN)*r   rb   r   rc   r/   r2   r6   r
   r   r   r   r   r   r   queryBoxrk   r   rj   r4   r5   r7   RadioButtonr   r+   EVT_RADIOBUTTONOnChangeQueryrd   re   r   r   queryLengthSLr   r   queryLengthValuerl   rm   rn   r   queryDangleSLr	   queryDangleValuer:   )
r<   r>   rp   r   r   rq   LocUnitsrr   txtr   s
             rD   r&   z%VDigitSettingsDialog._createQueryPage  s   RYY7e!L/:R[[)
 RYYfq9L7M.M
 !!#r{{3;;((,,88:7C "))1_CUV8G	
 			$--ABFFRYY4Fq	Q		&
 >>299AhKXb00$2D2DE		$""qrvv		7IRS	T$$!!!<	  #"))1^;LMYYRYY>1BAmDT0U
 	''8GWX	
 !*yy!
 	&&8xP	
 %BIITH_Mcab.F.FG12??REUEU3U 	 	
 	!!abooHXHX6X 	 	
 	e0H0HI		)0B1	M
 >>299AhKXb00$2D2DE		$""qrvv		7IRS	T$$!!!<	  #"))1=M;NOYYRYY>1BAmDT0U
 	''8GWX	
 !)RYYYqc!
 	&&8xP	
 %BIITH_Mcab.F.FG12??REUEU3U 	 	
 	!!abooHXHX6X 	 	
 	e0H0HI		)0B1	M(LPQQ%%d+%%d+ 	4 

5QRVVbii-?
JvrE   c           
      f   t        j                  |t         j                        }|j                  |t	        d             t        j
                  t         j                        }t        |t         j                  dt	        d      z        }t        j                  |t         j                        }t        |t         j                  t	        d            | _
        | j                  j                  t        j                  dd	d
             |j                  | j                  dt         j                  t         j                   z  d       t        j"                  ddd      }|j%                  d       t	        d      dft	        d      dft	        d      t	        d      ff}t'        |t         j                  t	        d            }t)        |t         j                  dd      | _        | j*                  j                  t-        t        j                  ddd                   |j                  |dt         j.                         |j                  | j*                  dt         j                   t         j.                  z         t'        |t         j                  t	        d            }t)        |t         j                  t        j                  ddd      dd      | _        t        j                  dd d!      dk7  r| j0                  j3                  d"       |j                  |dt         j.                         |j                  | j0                  dt         j                   t         j.                  z         t'        |t         j                  t	        d#            }t        j4                  |t         j                  d$t	        d      t	        d%      t	        d&      g'      | _        | j6                  j9                  t        j                  dd d!             |j                  |dt         j.                         |j                  | j6                  dt         j                   t         j.                  z         |j                  |dt         j                  t         j                   z  d       |j                  |dt         j                  t         j                   z  d(       t        |t         j                  dt	        d)      z        }t        j                  |t         j                        }t        |t         j                  t	        d*            | _        | j:                  j                  t        j                  dd+d
             |j                  | j:                  dt         j                  t         j                   z  d       |j                  |dt         j<                  t         j>                  z  t         j@                  z  t         j                   z  d(       t        |t         j                  dt	        d,      z        }t        j                  |t         j                        }t        jB                  dd-      }	d.t	        d/      id.t	        d0      id.t	        d1      id2| _"        | jF                  jH                  d   }
	 |
jK                         jM                         }t        j                  ddd      }| jF                  jH                  d   jK                         }| jF                  jP                  }|r|jS                  d4|      }nd3}d}d2D ]  }t        |t         j                  | jD                  |   d.         }|jU                  t         jV                  | jX                         t[        |d56      }|j]                  ||d7d8d9g:       |d0k(  rt_        j`                  d0      }nt_        j`                  d/      }t        j4                  |t         j                  |d;<      }|j                  d"       |r|jc                  |d=      rd>|jc                  |d=      v r||jc                  |d=      d>   v r|j                  d7       |je                  |jc                  |d=      d>   |   d?          |d0k(  rd0}nd/}t_        jf                  ||jc                  |d=      d>   |   d@         }|j9                  |       |s"|j3                  d"       |j3                  d"       |ji                         s|j3                  d"       |jk                         | jD                  |   dA<   |jk                         | jD                  |   d?<   |jk                         | jD                  |   d@<   |	j                  |t         j.                  |dfB       |	j                  ||dfC       |	j                  ||dfC       |dz  } dDjm                  to        jp                  t	        dE      dF            }|	j                  t'        |t         j                  |      dGdHI       |	j%                  d       |j                  |	dt         j                  t         j                   z  d       |j                  |dt         j<                  t         j>                  z  t         j@                  z  t         j                   z  d(       | jU                  t         jV                  | jr                  | j                         | jU                  t         jt                  | jv                  | j6                         | jU                  t         jx                  | jz                  | j*                         |j}                  |       |S # tN        $ r d3}Y w xY w)Jz#Create notebook page for attributesrG   
AttributesrI   rw   zDigitize new featurery   zAdd new record into tablerQ   	addRecordr\   rT   r   r   r      rL   rM   LayerCategoryModezNext to useg     @@)r   r   r   r   layerr}   r_   zCategory numbercategoryg    eg    eA)r   r   r   r   r   categoryModer   FzCategory moder   zManual entryzNo categoryr   r   zDelete existing feature(s)zDelete record from table	delRecordzGeometry attributes)rO   rP   r^   r   area	perimeter)r   r   r   Nmaplayer)   r{   )r   r[   Tintegerzdouble precision)vectorr   
excludeKeytype)x   r{   )r   r   r   r[   rV   geomAttrcolumnr   check)r   pos)r   
zYNote: These settings are stored in the workspace not in the vector digitizer preferences.7   )rL   r   )r   rL   )r   span)?r   rb   r   rc   r/   r2   r6   r
   r   r   r   rk   r   rj   r4   r5   r7   rd   re   r   r	   r   intrl   r   Enabler   r   r   deleteRecordr   r   r   GridBagSizer	geomAttrbr   toolbarsGetLayerGetNameAttributeErrortreeFindItemByDatar+   EVT_CHECKBOXOnGeomAttrbr   InsertColumnsr   GetUnitsListGetLayerInfoSetStringSelectionGetUnitsIndex	IsCheckedr   jointextwrapwrapOnChangeAddRecordr   OnChangeCategoryModer   OnChangeLayerr:   )r<   r>   rp   r   r   rq   rr   settingsrK   	gridSizerdigitToolbar
vectorNamer   mapLayerr   itemrowattrbr   r   r   	win_unitsr   unitsIdxnotes                            rD   r%   z*VDigitSettingsDialog._createAttributesPage  sD	   RYY7e!L/:R[[)
 RYYfq9O7P.P
 !!#r{{3 "RYYa0K.L
 	8YO	
 			$..QRVVbii5GPQ	R$$!!!<	  #wZOa
mQ%7!F)Q}EU9VW299AgJGUryyaSI


  xWWMN	
 	dqr/G/GHJJ1299r7O7O+O 	 	
 299A>O<PQ yy $$8GT
 8T MM  'dqr/G/GHMMR555 	 	
 299Ao<NOIIyy}%q'8!M:JK	
 	&&8T	
 	dqr/G/GHR555 	 	
 			)0B1	M

5QRVVbii-?
J
 RYYfq9U7V.V
 !!#r{{3 %RYYa0J.K
 	""8YO	
 			$##8JST	U

288#bii/"));	 	 	
 RYYfq9N7O.O
 !!#r{{3OO3	(,ai(!1[>2
 {{++H5	%..088:J   xWWM;;''1::<{{&&z8<DD4 <	E$..2G2PE JJr(8(89!Y?F  !!34	 !  ,,V4,,X6		G)I
 NN5!%%d%9$"3"3Dh"3"GGT..t.B:NNt$))%%d%9*EeLXV F?!D#D ..%%d%9*EeLWU &&x0U#e$??$e$-2[[]DNN5!'*.4llnDNN5!(+-6__->DNN5!'*MM%b&>&>S!HMMMM&sAhM/MM)#qM21HCy<	| yyMM#
 	
 	e		>FQW 	 	
 	  #		)0B1	M

288#bii/"));	 	 	
 			"//4#9#94>>J		"--!:!:D<M<MN		"//4#5#5tzzBvM  	J	s    n! !n0/n0c                    t        d      dft        d      dft        d      dft        d      dft        d	      d
ft        d      dft        d      dft        d      dft        d      dft        d      dft        d      dft        d      dft        d      dft        d      dft        d      dft        d      d ft        d!      d"ffS )#zJData for _createSymbologyPage()

        label | checkbox | color
        zDigitize new line segment
newSegmentzDigitize new line/boundarynewLine	Highlight	highlightzHighlight (duplicates)highlightDuplPointr   Liner   zBoundary (no area)
boundaryNozBoundary (one area)boundaryOnezBoundary (two areas)boundaryTwozCentroid (in area)
centroidInzCentroid (outside area)centroidOutzCentroid (duplicate in area)centroidDupzNode (one line)nodeOnezNode (two lines)nodeTwoVertexvertexz!Area (closed boundary + centroid)r   	Direction	direction)r/   )r<   s    rD   rg   z#VDigitSettingsDialog._symbologyData  s     *+\:+,i8{^[)'(/:wZ!vY#$l3$%}5%&6#$l3()=9-.> !9-!"I.x[(#23V<{^[)#
 	
rE   c                 8   |j                         }|j                         }d}t        j                  | j                        D ]  \  }}|d   |k(  s|} n | j                  | j                  |   d         }|r|j                          y|j                  d       y)z-Register geometry attributes (enable/disable)Nr   r   F)r  r   six	iteritemsr   FindWindowByIdr   )r<   eventcheckedr   rV   r  valr   s           rD   r   z VDigitSettingsDialog.OnGeomAttrb  s    //#[[]--7 	JE37|r!	
 $$T^^C%8%BCMMOMM% rE   c                    |j                         }t        j                  ddd|       |dk(  r| j                  j	                  d       n5| j                  j                         r| j                  j	                  d       |dk(  r5| j                  j                         r| j                  j                  d       | j                  j                          | j                  j                  t        j                  dd	d
             y)zChange category moderQ   r   r   rU   rV   rW   r}   r   TFr   r   r}   rT   N)GetSelectionr   Setr   r   	IsEnabledr   r  rk   r   r$   rj   )r<   r.  modes      rD   r	  z)VDigitSettingsDialog.OnChangeCategoryMode  s    !!#{$	
 19MM  &]]$$&MM  '19113NN##E*

 8GL	
rE   c                    |j                         }|dkD  rdt        j                  ddd|       | j                  j	                          | j
                  j                  t        j                  ddd             |j                          y)	zLayer changedr   rQ   r   r}   r2  r   rT   N)	GetIntr   r4  r   r$   r   rk   rj   Skip)r<   r.  r   s      rD   r
  z"VDigitSettingsDialog.OnChangeLayer  sh    198PUVJJ""$MM""  xZP 	

rE   c                      y)z(Checkbox 'Add new record' status changedN r<   r.  s     rD   r  z&VDigitSettingsDialog.OnChangeAddRecord  s    rE   c                 ,   | j                   j                         }|dk  rg| j                  j                  j                  j                         }|d   |d   z   dz  }| j                  j                         j                  |      }nJ| j                  j                         dk(  r|}n*| j                  j                         j                  |      }|dk(  r%| j                  j                  t        d             n|dk  rC| j                  j                  t        d      || j                  j                         d	z         nB| j                  j                  t        d
      || j                  j                         d	z         |j!                          y)z*Change snapping value - update static textr   nsresewresg       @)r}   r   zSnapping disabledzGSnapping threshold is %(value).1f %(units)s (based on comp. resolution)r   r   N)r   GetValuer   r   r   	GetRegionr   r   r   r   r3  r   SetLabelr/   r   lowerr9  )r<   r.  r}   regionres	thresholds         rD   r   z*VDigitSettingsDialog.OnChangeSnappingValue"  sY   ""++-19[[**..88:F'?VG_4;C

--/<<3<GI  --/14!	 JJ113@@u@M	A:&&q)<'=>QY&&2 &0C0C0EF	G &&?@%0C0C0EFG
 	

rE   c                    | j                   j                         }| j                  j                         }| j                  j                         j                  ||      }|dk(  r5| j                  j                  t        d      || j                  dz         n4| j                  j                  t        d      || j                  dz         |j                          y)z+Snapping units change -> update static textr   r   r   N)r   r@  r   r3  r   r   r   r   rB  r/   r   r9  )r<   r.  r}   r   rF  s        rD   r   z*VDigitSettingsDialog.OnChangeSnappingUnitsB  s    ""++-!!..0JJ))+88uE8R	A:&&?@!DMM:;
 &&?@%>?
 	

rE   c                    | j                   j                         rm| j                  j                  d       | j                  j                  d       | j
                  j                  d       | j                  j                  d       y| j                  j                  d       | j                  j                  d       | j
                  j                  d       | j                  j                  d       y)zChange queryTFN)r   r@  r   r   r   r   r   r<  s     rD   r   z"VDigitSettingsDialog.OnChangeQueryU  s    $$&%%d+!!((.%%e,!!((/ %%e,!!((/%%d+!!((.rE   c                 z   | j                          d| j                  j                  d   _        i }t	        j
                  |       t	        j                  d      |d<   t	        j                  |      }| j                  j                  t        d      |z         | j                          |j                          y)zButton 'Save' pressedNrQ   )r  )rU   z-Vector digitizer settings saved to file <%s>.)UpdateSettingsr   r   settingsDialogr   ReadSettingsFilerj   
SaveToFiler   WriteLogr/   Destroyr9  )r<   r.  fileSettingssfiles       rD   r0   zVDigitSettingsDialog.OnSaved  s    8<X&5%%|<!-!1!1!AX''5=>F	
 	

rE   c                 $    | j                          y)zButton 'Apply' pressedN)rJ  r<  s     rD   r-   zVDigitSettingsDialog.OnApplyv  s    rE   c                     d| j                   j                  d   _        | j                          |r|j	                          yy)zButton 'Cancel' pressedNrQ   )r   r   rK  rO  r9  r<  s     rD   r1   zVDigitSettingsDialog.OnCancelz  s3    8<X&5JJL rE   c           
         | j                   j                  j                          t        j                  | j
                        D ]  \  }\  }}|r\t        j                  dd|dg|j                                t        j                  dd|dgt        |j                                      gt        j                  dd|dgt        |j                                       t        j                  dddt        | j                  j                                      t        j                  ddd| j                  j                                t        j                  ddd	| j                  j!                                t        j                  dd
d| j"                  j                                t        j                  ddd| j$                  j                                t        j                  dddt        | j&                  j                                      t        j                  dddt        | j(                  j                                      t        j                  ddd| j*                  j!                                t        j                  ddd| j,                  j                                | j.                  j0                  d   j3                         }| j                   j5                         }|r|j7                  d|      }nd}t        j                  | j8                        D ]&  \  }}| j;                  |d         j                         }| j;                  |d         j                         }	| j;                  |d         j!                         }
|r1|j=                  |d      s|j?                  |ddtA               i       |r=|dk(  r|}nd}tC        jD                  ||
      }|	|d|j=                  |d      d   |<   |s|j=                  |d      s||j=                  |d      d   v s|j=                  |d      d   |= ) | jF                  j                         rt        j                  dddd       nt        j                  dddd       t        j                  ddd | jH                  j                                t        j                  dd!d"| jJ                  j!                                t        j                  dd!d#| jL                  j                                t        j                  dd$d"| jN                  j!                                t        j                  dd$d#t        | jP                  j                                      d%D ]G  }t        j                  dd&|dg| j;                  | jR                  |         j                                I t        j                  dd'dt        | jT                  j                                      t        j                  dd(d| jV                  j                                t        j                  dd)d| jX                  j                                t        j                  dd*d| jZ                  j                                t        j                  dd+d| j\                  j                                t        j                  dd,d| j^                  j                                | j`                  jc                          | j.                  je                         r| j.                  jg                  d       yy)-zSUpdate digitizer settings

        .. todo::
            Needs refactoring
        rQ   rR   r\   r2  rS   r|   r}   r   r   r   r   r   r   r   r   r   r   Nr   r   r   r   r   )rV   r}   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )4r   workspaceChangedemitr+  r,  rf   r   r4  r  tupler`   r   r   r@  r   r   r3  r   r   r   r   r   r   r   r   r   GetLayerTreer   r   r-  r  SetLayerInfodictr   GetUnitsKeyr   r   r   r   r   r   r   r   r   r   r   r   r   r   rJ  IsAutoRenderedOnRender)r<   rV   r\   rS   r  r   r  r0  r/  r   r  r   unitsKeyr   s                 rD   rJ  z#VDigitSettingsDialog.UpdateSettings  s    	%%**,%(]]4>>%B 	!C!'5  " +!++-	   " > 12	   " > 12		, 	d))2245		
 	$$--/		
 	##002		
 	//++-		
 	..**,		
 	djj))+,		
 	dmm,,./		
 	##002		
 	##--/		
 ;;''1::<||((*&&z8<DDdnn5 	OHC))#g,7AACG((X7@@BF**3w<8EEGHD--d-A!!$HZ<P!Q&=D#D ,,T8<$%J!!$H!5jA#F ))$H)=t0080DZPP))$H)=jI#N/	O4 $$&8TUV8qQT]]=T=T=V	
 	#$$113		
 	''002		
 	#$$113		
 	d++4467		
 A 	G +))$*<*<W*EFPPR		 	d,,5578		
 	##--/		
 	--))+		
 	))%%'		
 	..**,		
 	$$..0		
 	

!!# ;;%%'KK  & (rE   N)__name__
__module____qualname__r/   r   DEFAULT_DIALOG_STYLEr   r#   r"   r&   r%   rg   r   r	  r
  r  r   r   r   r0   r-   r1   rJ  r;  rE   rD   r   r      su    
 '(%%2h+ZHTkZ\|
4! 
&

@&/$S'rE   r   )__doc__r  r+  r   wx.lib.colourselectlibcolourselectrh   gui_core.gselectr   
core.unitsr   core.settingsr   gui_core.wrapr   r   r   r	   r
   r   r   r   r;  rE   rD   <module>rk     s<      
 	 " " )  & V Vx'299 x'rE   