	  #!/bin/bash
	  # lanso de la interpretatoro wish\
	  exec wish "$0" "${1+"$@"}"
	  
	  
	  #_______________________________________________________________________________
	  #									VORTEKO - Lenadi MOUCINA   
	  #  										versiono 1.1  Agosto 2009
	 #                     										versiono 2.3 decembro 2011
	 #										versiono 2.3w Marto 2012
	 #										versiono 3.1 Julio 2025
	  # ____________________________________________________
	  
	  # VORTEKO es un editatoro de texto por Ido-linguo, skribesas en TCL-TK
	  # autoro : Lenadi MOUCINA
	   
	  	 # ta editator bazigas sur la *kodo dil programo Vorteko, plu anciena, da la autoro ipsa.
		 # TA PROGRAMO ES TOTE LIBERA : do vu povas uzar, kopiar, difuzar, chanjar ol se vu volas to.
	
	# Posible ke kelka nomi di variebli es francatra, nam la unesma programo skribesis en Franca linguo.
	# ma la autoro esforsis donar  nomi plu similanta Idolinguo a la variebli.
	# Ne tote la komenti esas ja tradukita aden Idolinguo.
	# Kelka "proc" ne ja enplantacata en Vorteko esas komentigata, ma ne suprimata, nam, 
	# forsan oli povus esar uzota plu tarde por plubonigar ta programo. 
	  
######################################################################################	  
#	  #------------------------------------------------------------------------------------------																		 
#	  
#	 # Ce programme est un logiciel libre : sans obligation ni pour vous ni pour moi										
#	 # Ta programo es tote libera : vu povas uzar, kopiar, difuzar, modifikar lu .
#	 # programo sen obligi, nek por me, nek por vu!
#	
#	 #comme une partie du code doit être sous licence GNU, je suppose que 
#	 # vous pouvez le redistribuer et/ou le modifier conformément aux dispositions
#	 # de la Licence Publique Générale GNU,
#	 # telle que publiée par la Free Software Foundation ; version 2 de la licence,
#	  
#		  # Ce programme est distribué dans l'espoir qu'il sera utile,
#		  # mais SANS AUCUNE GARANTIE ;
#		  # sans même la garantie implicite de COMMERCIALISATION ou
#		  # D'ADAPTATION A UN OBJET PARTICULIER.
#		  # Pour plus de détail, voir la Licence
#		  # Publique Générale GNU.
#	
#	# Vorteko est basé pour partie sur Tikeditor° et JVSeditor :	
#	#Tikeditor°version 1.0 - mai 2004 / novembre 2004 - daniel MACOUIN
#	#Tikeditor°version 3.x - décembre 2005  - daniel MACOUIN
#	# JVSeditor version 1.4 / Fevrier 2008 - daniel MACOUIN
#	
#	# Vorteko versiono Beta_2 junio 2009 - Lenadi MOUCINA
#	   # Vorteko versiono 1.1  31 agosto 2009  - Lenadi MOUCINA
#	  	# Vorteko versiono 1.2 februaro 2011
######################################################################################	 
	
	#<Versiono>
	global versiono
		set versiono "3.1"
	 #-------------------------------------------------------------------------------------------
	  
	# la lineo sequanta [package require Tk] uzesas por probar ta programo per Tcl, se vu ne uzas Wish. 
		package require Tk
		
		
		global Voyo
	
	set Voyo(abs) [pwd]
	  set SkriboNomo [info script]
	  set Voyo(rel) [file dirname $SkriboNomo]
		
	# kargar pixane pri la imaji 
	# catch [load [file join $Voyo(rel) libpixane.so ] ]
 
  #supresar la "bind-i" ja ligata da la operativa-sistemo sur la text-zono
	bind . <Control-w> {break}

	#-------------------------------------------------------------------------------------------
	
	# lanco de la fenestro por esperar la kargo de la codi di Vorteko
	
	toplevel .inicio -background bisque -borderwidth 5 -relief raise -cursor watch 
	wm  geometry .inicio 200x550+400+150
	wm overrideredirect .inicio 1
		raise .inicio
		update	
		
	text .inicio.t -foreground grey -font {times 17} -wrap char -width 15 -height 50 -bg blue -cursor watch
	pack .inicio.t  -expand true -fill both
	.inicio.t insert end "Vorteko\n \npor skribar \nen Idolinguo\n" 
	
  	set tikimg [image create photo -file  [ file join "$Voyo(rel)" imaji medalo_idolinguo.GIF] ]
 	.inicio.t image create end -image $tikimg -align center
	.inicio.t tag configure init -background green -foreground red -font { times 15 }	

	.inicio.t insert end "Vorteko\nkargas dicionarii.\nPrego, \nvartez paciente\nkelka momenti\n\n"
	update
		
	#------------------------------------------------------------------------------------------
	# facar la ligato inter dico(xx) ed dico(P_xx)
	global dico 
	global meaVortaro 
	set meaVortaro 0
	
	global tempovortaro
	set tempovortaro ""
		
 	source [ file join "$Voyo(rel)"  Dici.tcl ] ; # dicionario generala >> dico(xx)
		
#<Variebli_global>

	# kargo de la ficheri anexita 
								
		global Home
		global Url
		
		global Size
		set Size 10
		
		# por la numeri di linei ed surlineago suplementa
		source [file join "$Voyo(rel)" ctext.tcl ]
				
		global MarkoNumero
		set MarkoNumero "0"
		
		global MaskoNumero 
		set MaskoNumero "0"
		
		global sistemo
		set sistemo $tcl_platform(platform)
		
		set i 0
		while {$i <100} {
		global selektaLinei$i 
		set  selektaLinei$i [list 10 20 30 40 55]
		incr i
		}
		
		global paginoFenestro
		set paginoFenestro 0
		
		global repertorio
		set repertorio "" 
	
		global selecteur
		set selecteur R 
		
		global meaVorti
		set meaVorti "" 
		
		global AdjuntitaVorti
		set AdjuntitaVorti ""
		
		global koloroMeaVorti
		set koloroMeaVorti SteelBlue 
		global koloroFondoVorti 
		set koloroFondoVorti  orange 
			
	  set NumeroPagino 0
	  global textofenestro
	  set textofenestro .$NumeroPagino
	  global textiListo
	  global numeroPagino
 	  namespace eval Vorteko {
		
		#variebli totala (global)
 		global NumeroPagino
		global textiListo
			set textiListo [list "page : $NumeroPagino"]
		global textofenestro
			set textofenestro initial
		global SkriboNomo
			set SkriboNomo [info script]
		global Voyo(rel)
			set Voyo(rel) [file dirname $SkriboNomo]
		 global numeroPagino
			set numeroPagino 1
		global flagNumero
		global indexProc1
		global indexProc2
		
		global police
		global staturoLiteri	
		
		variable balises 
		set balises 0	
		variable selektaLinei ""	
		variable programo "VORTEKO"
		variable vortoSerchata
		variable fichero
		variable types {
		  { {dokumento Texto} {.ido}} {{datumi text} {.txt}} {{Omna datumi} {.*}}
		}
				
		variable langage
		variable listLang
		variable vorticles
		variable indexArmoro 0
		
		variable eroro 0
		
		
#<vortoCLES>	 
		
		variable debut
		variable fin
		variable koloro
		
				
		# fondo
		set koloro(fond) white
		
		# koloro di kursoro
		set koloro(curseur) black
		
		# staturo di la literi 
		set staturoLiteri 10
		
		#nomo di la modelo di literi 
		set police helvetica
		
		variable ListoRecenta {}
		variable ListoOkurensi {}
		
		
	  }
	

proc Vorteko::Dikinicio {} {
global dico 
global Voyo	
global meaVortaro 

	switch $meaVortaro {
	0 { tk_messageBox -message "Apertez la datumaro ube esas la vortari \nquin vu volas adjuntar en la memoro di la komputoro"}
	1 {  tk_messageBox -message  " Vu ja kargabis un specala vortaro !"		}
	default {  tk_messageBox -message  " Vu ja kargabis $meaVortaro specala vortari !"		}
	}
	
	set fichero  [ tk_getOpenFile -defaultextension tcl -title "Apertar specala dicionari" ] 
	source $fichero ; # personala o specala  dicionario >> dico(P_xx)
		set nomoDico [array names dico]

		foreach kodexo $nomoDico {
			if {[ string match  [string index $kodexo 0]  P ] == 1 } { 
 			if { [catch {set   dico([string range $kodexo 2 3])  [concat $dico([string range $kodexo 2 3]) $dico($kodexo) ] } ] == 1} {
				set   dico([string range $kodexo 2 3]) $dico($kodexo)  } else {
				set   dico([string range $kodexo 2 3])  [concat $dico([string range $kodexo 2 3]) $dico($kodexo) ] }
			}
			}
	incr meaVortaro 
	tk_messageBox -message "Vua $meaVortaro esma propra vortaro es nun kargita." 
}

	
proc Vorteko::TempoDikinicio { } {
global dico 
global Voyo	
global meaVortaro 
	 global tempovortaro
	global AdjuntitaVorti
	
	if { [catch { toplevel .tempo ; wm geometry .tempo 250x380+250+250 }  tantpis ] == 1 } {destroy .tempo ; toplevel .tempo ; wm geometry  .tempo 250x380+250+250 }	
	
	.tempo configure -bg sienna  
	label .tempo.l -text "Despermanenta  vorti\n***\n Vu povas enirigar vorti\n ne ja konocita da Vorteko\npor ne redigor li \nlor la ortografikontrolo" -fg DarkRed  -bg RosyBrown 
	pack .tempo.l -expand true -fill both
	text .tempo.t  -background lavender   	-height 15 -width 20 -wrap word -relief groove 	
	pack .tempo.t -expand true -fill both 
	 wm overrideredirect .tempo 0
	bind .tempo.t <3> { set tempovortaro [.tempo.t get 1.0 end] ; destroy .tempo ; destroy .supreso }
			
	.tempo.t insert end $tempovortaro
	
	button .tempo.b -fg darkgreen -bd 5 -relief raised -text "Adjuntar ta vorti \na la dicionario interna " -command { 
				set tempovortaro [ .tempo.t get 1.0 end ] 
				#slingo por despermanenta vortari 
				set tempoListo [ split $tempovortaro ]  
				set nomoDico [array names dico] 
				foreach vorto $tempoListo {
				set tab [string tolower [string range $vorto 0 1] ]

					if { [catch { set dico($tab) [  concat $dico($tab) [list [ string tolower $vorto ] ] ] } ] == 1 } {
					set dico($tab) [ string tolower [list $vorto ] ]
					} 
					set dico($tab) [lsort -dictionary $dico($tab) ]
				}
			# adjuntar la nova vorti a la listo AdjuntitaVorti por memorigar li 
			set AdjuntitaVorti "[lsort -dictionary -unique [ concat $AdjuntitaVorti $tempoListo] ]"
			
			destroy .tempo
			tk_messageBox -message "La dicionarii interna esas nun modifikita " -icon info 
			}
			
	pack .tempo.b -side bottom -expand true 
}


proc Vorteko::SupresarVorti { } {
	global AdjuntitaVorti
	global dico
	global textofenestro
	
		
	if {$AdjuntitaVorti == ""} {
	set responso  [tk_messageBox -message  "Vu ne ja eniris nova vorti.\nKad vu volas supresor altra vorti?" -icon warning  -type yesno -default no ]
	switch $responso {
			no return
			}
	}

	toplevel .supreso -bg brown -relief raised 
	wm geometry .supreso 250x350+250+250
	label .supreso.l -bg brown -fg ivory -text "Selektez ek ta listo sube \nla vorti quin vu volas supresar\nde la temporala memoro \nod adjuntez vorti."
	pack .supreso.l -expand true -fill y
	text .supreso.t  -bg orange -width 20 -height 15
	pack .supreso.t -expand true -fill both 
	.supreso.t insert end $AdjuntitaVorti
	button .supreso.b -bd 5 -relief raised -text "Konfirmar la supreso de ta vorti " -command {
 		set supresi [	.supreso.t get 1.0 end]
				foreach vorto $supresi {
						set vorto [string tolower $vorto]
						set tab  [string range $vorto 0 1 ]  
						set indexo [lsearch  $dico($tab) $vorto ]
						set dico($tab) [ lreplace $dico($tab) $indexo $indexo ]
							for {set i 0 } { $i< [llength $AdjuntitaVorti ]} { incr i} {
								if { [string match -nocase $vorto [ lindex $AdjuntitaVorti $i ]] ==1} {
								set AdjuntitaVorti  [ lreplace $AdjuntitaVorti $i $i ""]
								}
							}
					set AdjuntitaVorti [lsort -unique $AdjuntitaVorti ]		
					}
						
			tk_messageBox -message "Vorti nun supresita : \n $supresi"
			 destroy .supreso ; 
	}	
	
	pack .supreso.b -expand false 
	bind .supreso.t <3> { destroy .supreso; }
	
	
}

proc Vorteko::Netigar { } {
global dico

array unset  dico
tk_messageBox -message "Nun, Vorteko ne plu havas dicionario en olua memoro! "
}



proc Vorteko::VidarAdjuntitaVorti { } { 
	global AdjuntitaVorti
		
	tk_messageBox -message " $AdjuntitaVorti " -icon info -title "Listo de vorti adjuntita en la dicionario interna"
	
} 
 
proc Vorteko::AficharBitokti { textofenestro etiquette } {
global NumeroPagino
		global textiListo
 		global textofenestro
		variable koloro
		global police
		global staturoLiteri
		variable fichero

		$etiquette configure -text "[ file size $fichero ] oktobitari"
	  }
	  
	
#<PAGES_BiScrolling_numeroPagino>
	#	double scrollText
	# les fonctions de scrolling

	# la fonction appelée par les widgets scroolés
proc yset  {args} {	
global numeroPagino

		eval [linsert $args 0 .ftext.sy$numeroPagino set ]
		yview moveto [lindex [.ftext.sy$numeroPagino get ] 0]
	}
	
	
	# la fonction appelée par la scrollbar OK
proc yview  {args} {
global numeroPagino

	eval [linsert $args 0 .ftext.$numeroPagino yview]
		}
		

	
proc Vorteko::NovaPagino {selektajo} {
		global NumeroPagino
		global textiListo
		global textofenestro
		variable koloro
		global police
		global staturoLiteri
		global numeroPagino
		
		# désaffichage de la fenetre précédente
		for {set i 0} {$i < $NumeroPagino} {incr i} {
		  pack forget .ftext.$i
		  pack forget .ftext.sy$i
		  pack forget .ftext.sx$i
		}

	  
		
# la interfacio

	ctext .ftext.$NumeroPagino -bg $koloro(fond)  -wrap word -tabs {1c}\
			-xscrollcommand ".ftext.sx$NumeroPagino set" -yscrollcommand yset -undo 1 
			
		scrollbar .ftext.sx$NumeroPagino -orient horizontal -command ".ftext.$NumeroPagino xview"
 		scrollbar .ftext.sy$NumeroPagino -orient vertical -command  yview
		
		pack .ftext.sx$NumeroPagino -fill x -side bottom
		pack .ftext.sy$NumeroPagino -fill y -side right
		pack .ftext.$NumeroPagino 	-fill both	-expand true -side left
		
		# on atribuas la normo di la literi a la nuna fenestro
		 .ftext.$NumeroPagino configure -font  "[list $police]  $staturoLiteri"
				
		set textiListo [lappend textiListo "page : $selektajo" ]
				
		# on atribuas la nova valoro a la varieblo "textofenestro" por indikar la nuna texto
		set textofenestro ".ftext.$NumeroPagino"
		
 		set numeroPagino [lindex [split $textofenestro \. ] 2 ] 
						
		# on "bind" la pagino sur la butono3 po afishigar la menuo "editar"
		bind $textofenestro <3> { tk_popup .menubar.mRedaktar %X %Y }
		
		# on aktualigas la menuo Pagini
		.menubar.mPagini	 add radio -label "page : $selektajo"  -command " Vorteko::Afichar  $NumeroPagino {$selektajo} "
						
		# on *inkrementas la numero di pagino por la nexta pagino a apertar
		incr NumeroPagino
		
		.fetat.fichero configure -text "$selektajo"
		
		# Desafishigar la marki di la nuna texto por afishigar la marki di la texto quan on volas afishigar.
			 Vorteko::MenuMarki $textofenestro
		
	  }
	
  
	  
proc Vorteko::Afichar { num nomfichero} {

		global NumeroPagino
		global textofenestro
		variable fichero
 		global numeroPagino
		
		variable selektaLinei $textofenestro 1
			
		for {set i 0} {$i <= $NumeroPagino} {incr i} {
		  pack forget .ftext.$i
		 destroy  .ftext.sy$i
		 destroy .ftext.sx$i
		}
		
		if { $num > 0 } {
		scrollbar .ftext.sx$num -orient horizontal -command ".ftext.$NumeroPagino xview"
		scrollbar .ftext.sy$num -orient vertical -command  yview
		
		pack .ftext.sx$num -fill x -side bottom
		pack .ftext.sy$num -fill y -side right
		
		pack .ftext.$num 	-fill both	-expand true -side left
		}
		
		set textofenestro .ftext.$num
 		set numeroPagino $num
		set fichero 	{$nomfichero}
		.fetat.fichero configure -text "$nomfichero"
		
			bind $textofenestro <3> { tk_popup .menubar.mRedaktar %X %Y }
			
			# Desafishigar la marki di la nuna texto por afishigar la marki di la texto quan on volas afishigar.
			 Vorteko::MenuMarki $textofenestro
	  }
	
  	  
	  
proc Vorteko::Nova {} {
		global Voyo
		variable programo
		variable fichero
		variable types
		global textofenestro
		global NumeroPagino
		
		if {[string compare $textofenestro .ftext.0 ]!=0} {
		  set dialogue [tk_dialog .top "nova..." "Vu devus salvar ta dokumento.\nSalvar?" questhead 0 YES Ne Nihiligar]
		  
		  
		  switch $dialogue {
			0 { Vorteko::Salvar $textofenestro 1}
			1 {}
			2 {return}
		  }
		}
		
		Vorteko::NovaPagino "PaginoNova.$NumeroPagino"
	  }
	  
proc Vorteko::Apertar {} {
		global Voyo
		global NumeroPagino
		variable programo
		variable fichero
		variable types
		global textofenestro
		
		
		if { [string compare  [set selektajo [ tk_getOpenFile -title "$programo : Apertar "\
			-initialdir $Voyo(rel) -filetypes $types] ] "" ]== 0} {
						tk_messageBox -message "Vu ne ja apertis dokumento"
						; return
		}
		
		#aperto de nova fenestro 
		Vorteko::NovaPagino $selektajo
		
		if [ string compare $selektajo "" ] {
		  set resultat [ Vorteko::KargarTexto $textofenestro $selektajo ]
		  if { $resultat == 0 } {
			set fichero $selektajo
			Vorteko::Recenta $selektajo
			Vorteko::Aktualizar $textofenestro
		  }
		}
		.fetat.fichero configure -text $selektajo
		
	  }
	  
	  
proc Vorteko::Klozar { textofenestro } {

				
		#on serchas en la nomi-kateno la numero di la fenestro
		set splittextofenestro [split $textofenestro .]
		set num [lindex $splittextofenestro 2]
		
		# on destruktas la nuna  fenestro 
		if {$num > 0} {
		  destroy $textofenestro
		
		  
		  # on klesos pose la "scrollbars" di ta texto-fenestro
		  # on nunigas la menuo Pagini
		  .menubar.mPagini entryconfigure $num -state disabled
		  
		  Vorteko::Afichar 0 defaut
		  
		} 
	  }
	  
proc Vorteko::Salvar { textofenestro flag } {
		global Voyo
		variable programo
		variable fichero
		variable types
		#flag :1 salvar kom
		
		#on obtenas la numero di la fenestro
		set splittextofenestro [split $textofenestro .]
		set pageIndex [lindex $splittextofenestro 2]
		
		
		
		if {$flag==1} {
		  set selektajo [ tk_getSaveFile \
		-title "$programo : Salvar kom ..." -defaultextension .ido -filetypes $types] ;
		set fichero $selektajo
		} else {
		  if [catch {set selektajo $fichero}] {
			tk_messageBox -type ok -icon warning \
				-message "Nulo dokumento ja salvito. Uzez :\n\"Salvar\
				kom\"."
			return
		  }
		}
		
		if {$selektajo==""} {
		  tk_messageBox -type ok -icon warning \
			  -message "Erora skribo ... la dokumento ne memorigesis."
		} else {
			
			set dosiero [string match "$Voyo(rel)*" $selektajo	]
		 	if {$dosiero == 1} {
		
			set responso [tk_messageBox  -icon warning  -type yesno  -default no \
			-message  "Atencez! \nVu volas memorigar en la dosiero \n$Voyo(rel) \nTo es la dosiero dil nuna programo. \nKa vu volas vere facar to?." ]  
			switch $responso {
			no return
			}
		}
		
		  set idf [open $selektajo w]
		  set contenu [ $textofenestro get 1.0 end ]
		  puts -nonewline $idf $contenu
		  close $idf
		  set fichero $selektajo
		  
		  if {$flag==1} {
			Vorteko::Aktualizar $textofenestro
			.fetat.fichero configure -text $selektajo
			# on modernigas la menuo Pagini
			
			.menubar.mPagini	 delete [expr $pageIndex+1 ]
			.menubar.mPagini insert [expr $pageIndex+1 ] radiobutton -label "pagino : $selektajo"  -command " Vorteko::Afichar  $pageIndex $selektajo "
			
			
		  }
		}
		
		
	  }
	  
	  
proc Vorteko::Aktualizar { textofenestro } {
		variable programo
		global versiono
		variable fichero
		variable langage
		
		set langage [ string range [file extension $fichero] 1 end]
		wm title . "$programo versiono $versiono "
		Vorteko::ApertarFicLang
		Vorteko::NombroLinei $textofenestro .fetat.nombroLinei
	  }
	  
proc Vorteko::KargarTexto { textofenestro selektajo } {
		variable programo
		variable vorticles
		if [ catch { open $selektajo } FIC ] {
		  tk_messageBox -type ok -icon warning \
			  -message "Neposibla apertar la dokumento $selektajo"
		  return 1
		} else {
		  $textofenestro delete 0.0 end
		  set contenu [ read -nonewline $FIC ]
		  regsub -all {\ {4}} $contenu "\t" contenu
		  $textofenestro insert 0.0 $contenu
		   		
		  close $FIC
		  return 0
		}
		
		.fetat.fichero configure -text $selektajo
	  }
	  
  
proc Vorteko::Imprimar { textofenestro} {
global sistemo

		
	# imprimo de bloko selektata 
	# o de la tota texto se neselekto
	
	set ranges [ $textofenestro tag ranges sel ]
	
	if { [llength $ranges] == 0 } { 
			set contenu [$textofenestro get 1.0 end]
	}   else {		
	set i1 [ lindex $ranges 0 ]
	set i2 [ lindex $ranges 1 ]
	set contenu [ $textofenestro get $i1 $i2 ]
	}
		
	# la komando di Unix "lpr" imprimas un dokumento ja memorigita
	# on bezonas salvar momente la kontenajo di la texto en un datumaro
	# imprimar ol
	# fine destruktar ol .

	set tempo [open "[pwd]/temp.txt" w+ ]
	puts $tempo $contenu 
	close $tempo
	
	# komando de selekto inter Unix od Windows
	switch $sistemo unix {
		exec lpr "[pwd]/temp.txt" }
	switch $sistemo windows {
		 tk_messageBox -message "Vorteko ne konocas vua imprimilo,\ndo vua texto afishigesos en la WindowsPad \n Lor, uzez lua fonktiono  \"imprimar\" " 
		exec notepad	"[pwd]/temp.txt"} 
		
 	file delete "[pwd]/temp.txt"
	
	}
		
	
proc Vorteko::ToteSelektar { textofenestro } {
		$textofenestro tag add sel 0.0 end
	  }
	  
proc Vorteko::Desfacar { textofenestro } {
		catch {$textofenestro edit undo}
	  }
	  
	  
proc Vorteko::Rifacar { textofenestro } {
		catch {$textofenestro edit redo}
	  }
	  
	  
proc Vorteko::Kopiar { textofenestro } {
		set ranges [ $textofenestro tag ranges sel ]
		if { [llength $ranges] == 0 } { return }
		set i1 [ lindex $ranges 0 ]; set i2 [ lindex $ranges 1 ]
		set texto [ $textofenestro get $i1 $i2 ]
		clipboard clear
		clipboard append $texto
		return [list $i1 $i2]
	  }
	
	
	  
proc Vorteko::Glutinar { textofenestro } {
		if [ catch { selection get -selection CLIPBOARD } texto ] { return }
		set longeso [string length $texto]
		set debuto [$textofenestro index insert]
		set fino "$debuto+$longeso char"
		$textofenestro insert insert $texto
		# lansar la ortografio-korektigilo nur por la parto nun glutinita
		Vorteko::Bloko $debuto $fino
	  }
	
proc Vorteko::GlutinarBindala { textofenestro } {
	# on bezonas ta proc nam la klefi <control+v> insertas la selekto antee lansar la proc glutinar
	# do la indici ne povas esar sama.
		if [ catch { selection get -selection CLIPBOARD } texto ] { return }
		set longeso [string length $texto]
		set fino [$textofenestro index insert]
		set debuto "$fino-$longeso char"
		# lansar la ortografo-korektatoro nur por la parto nun glutinita
		Vorteko::Bloko $debuto $fino
	  }
	
proc Vorteko::Sekar { textofenestro } {
		set coupeZono [ $textofenestro tag ranges sel ]
		if { [llength $coupeZono] == 0 } { return }
		set i1 [ lindex $coupeZono 0 ]; set i2 [ lindex $coupeZono 1 ]
		$textofenestro delete $i1 $i2
	  } 

	#___________________________
	
		
#<proc_marki>

global numeroMarki
global nunaMarki
global gravitation
		set  nunaMarki {"" virtualaMarko}
		

	  
proc Vorteko::SelektarMarki {textofenestro} { 

		# ta proc kreas un fenestrobjekto komposata precipue de un "spinbox" por furnisar nomo a nova marko  ;
		global numeroMarki
		incr numeroMarki
		
		global nunaMarki
		set  nunaMarki {"" ""}
		
		global gravitation
		set gravitation right

		foreach i  [$textofenestro dump -mark 1.0 end] {
		switch -glob --  $i anchor {set nomMarki "" ;lappend  nunaMarki $nomMarki}
		switch -glob --  $i insert {set nomMarki "" ;lappend  nunaMarki $nomMarki}
		switch -glob --  $i MK_* {set nomMarki [string trim $i  "MK_" ] ; lappend  nunaMarki $nomMarki;}
		switch  -glob -- $i  *.* {	set nomMarki ""  ; lappend  nunaMarki $nomMarki} 
		
		}
		
		set nunaMarki [lsort -unique $nunaMarki ] 
	

		# aperto de buxo de eniro
			
		destroy .eniroMarki 
		toplevel .eniroMarki 
		wm geometry .eniroMarki 250x120+250+250
		frame .eniroMarki.f
		pack .eniroMarki.f
		label .eniroMarki.f.etiketo -text "Enirez nomo por \nla nova marko ($numeroMarki esma) : \n"
		spinbox .eniroMarki.f.nomMarki -textvariable novaMarki -values $nunaMarki
		button .eniroMarki.f.ok -text "Konfirmar" -relief  raised -bd 3\
			 -command { 	if { $novaMarki == ""} {
						 set novaMarki "marko$numeroMarki"
						 set nomMarki MK_$novaMarki ; 
						Vorteko::Markizar $textofenestro $nomMarki $gravitation ;
						set novaMarki ""  } else {
						
						if {[string match "* *" $novaMarki]==1 } { 
							tk_messageBox -icon warning -message "La nomo di la marko ne povas kontenar *espaci!"} else {
						
					   set nomMarki MK_$novaMarki ; 
					   Vorteko::Markizar $textofenestro $nomMarki $gravitation ;
					   set novaMarki "" } } }
					
		pack .eniroMarki.f.etiketo .eniroMarki.f.nomMarki  -side top
		pack .eniroMarki.f.ok -side bottom -expand  false 

		bind .eniroMarki.f <3> { destroy .eniroMarki }
		bind .eniroMarki.f.etiketo <3> { destroy .eniroMarki }
		bind .eniroMarki.f.nomMarki <3> { destroy .eniroMarki }
		bind .eniroMarki.f.ok <3> { destroy .eniroMarki }
		}
		
proc Vorteko::Markizar {textofenestro novaMarki gravitation} {
	
		$textofenestro mark set $novaMarki insert 
		$textofenestro mark gravity  $novaMarki  $gravitation
					
	#<Butono_marki>  
	# insertar markbutono en la stango di marki (sub la texto)
		 
	foreach i  [$textofenestro dump -mark 1.0 end] {
		switch -glob --  $i MK_* {set numLineoMarki $i }
		}
		pack [button .stangoMarki.m$novaMarki \
		 -text $novaMarki -command "Vorteko::IrMarki $textofenestro $numLineoMarki" -bg yellow] -side left
					
		Vorteko::MenuMarki $textofenestro 
	}
		
proc Vorteko::MenuMarki {textofenestro } {		
	global nunaMarki
	set nunaMarki {"" ""}

		set nomMarki ""
		
	# On aktualigas la menuo di la marki
	# dum la afishigo di un pagino, per la supreso de la itemi di la antea pagino
	# on celas (pack forget) la butoni di marki
	# por nur afishigar la butoni qui korespondas a la texto nuna.
	
		# supreso de la itemp do marki en la menuo "marki" e celo de la butoni MK_xxx en la stango di marki 
		.menubar.mMarki add radiobutton -label n2				
		.menubar.mMarki delete 4 end
 		set Lmarki [pack slaves .stangoMarki ] 

	
		 for {set i 0} {$i<= [llength $Lmarki]} {incr i} {
			set markido [lindex $Lmarki $i]
 			destroy $markido
			}
		
		# riafishigo de la marki en la menuo e la stango di la ikoni		
		foreach i  [$textofenestro dump -mark 1.0 end] {
		switch -glob --  $i anchor {set nomMarki "" }
		switch -glob --  $i insert {set nomMarki "" }
		switch -glob --  $i MK_* {set nomMarki $i }
		switch  -glob -- $i  *.* {	 if { [lindex $nomMarki] >0 } {
						.menubar.mMarki add radiobutton -label "$nomMarki $i"\
							-command "Vorteko::IrMarki $textofenestro $i"
 						pack [button  .stangoMarki.m$nomMarki  -text $nomMarki \
							 -command "Vorteko::IrMarki $textofenestro $nomMarki" -background yellow] -side left 
							 
 							set nomMarki ""
						}

					}
		}
		destroy .eniroMarki 
	}
	
	
proc Vorteko::SupresarMarki {textofenestro } {		
	
		global nunaMarki
		set  nunaMarki {"" ""}
		

		foreach i  [$textofenestro dump -mark 1.0 end] {
		switch -glob --  $i anchor {set nomMarki "" ;lappend  nunaMarki $nomMarki}
		switch -glob --  $i insert {set nomMarki "" ;lappend  nunaMarki $nomMarki}
		switch -glob --  $i MK_* {set nomMarki [string trim $i  "MK_" ] ; lappend  nunaMarki $nomMarki;}
		switch  -glob -- $i  *.* {	set nomMarki ""  ; lappend  nunaMarki $nomMarki} 
		
		}
		
		set nunaMarki [lsort -unique $nunaMarki ] 
	

		#aperturo de buxo por enirar la marko nova
		destroy .supresarMarki 
		toplevel .supresarMarki
			wm geometry .supresarMarki 250x120+250+250
		frame .supresarMarki.f
		pack .supresarMarki.f
		label .supresarMarki.f.etiketo -text "Supresar la marko : \n"
		spinbox .supresarMarki.f.nomMarki -textvariable texteMarki -values $nunaMarki
			
		button .supresarMarki.f.ok -text "Konfirmar" -command {		set nomMarki MK_$texteMarki ; 
												$textofenestro mark unset  $nomMarki
												 $textofenestro tag remove "tagLineo" 1.0 end
												Vorteko::MenuMarki $textofenestro 
												destroy .stangoMarki.m$nomMarki
												destroy .supresarMarki 
												}
		pack .supresarMarki.f.etiketo .supresarMarki.f.nomMarki .supresarMarki.f.ok -side top
		
		bind .supresarMarki.f <3> { destroy .supresarMarki  }
		bind .supresarMarki.f.etiketo <3> { destroy .supresarMarki }
		bind .supresarMarki.f.nomMarki <3> { destroy .supresarMarki }
		bind .supresarMarki.f.ok <3> { destroy .supresarMarki }
	

}

proc Vorteko::SupresarMarkiKunTexto {textofenestro } {		
	
		global nunaMarki
		set  nunaMarki {"" "" }
		

		foreach i  [$textofenestro dump -mark 1.0 end] {		
		switch -glob --  $i MK_* {	$textofenestro mark unset  $i
						  destroy .stangoMarki.m$i }
		}
		
	}
			  

	
proc Vorteko::IrMarki {textofenestro lineo} {

		  $textofenestro see $lineo
		  $textofenestro tag remove "tagLineo" 1.0 end
		  $textofenestro tag configure "tagLineo" -background Yellow
		  $textofenestro tag add "tagLineo" $lineo  "$lineo lineend" 
		  $textofenestro tag bind "tagLineo" <KeyPress> {$textofenestro tag remove "tagLineo" 1.0 end}

	  }
	
proc Vorteko::NoMarki {textofenestro } {
 $textofenestro tag remove "tagLineo" 1.0 end
}
	
		  
	  ####################

	
	#___________________________
						
						
proc Vorteko::MaskarSelekto {textofenestro} { 
		global Voyo
		global MaskoNumero 

		# kreajo di la butono di starto 
		set imgDemasquer [image create photo -file [file join "$Voyo(rel)" imaji masque.png]]
	
		#maskajo di la texto selektita 		
		set ranges [ $textofenestro tag ranges sel ]
		if { [llength $ranges] == 0 } { return
		 } else {
		set i1 [ lindex $ranges 0 ]
		set i2 [ lindex $ranges 1 ]

		$textofenestro tag add masque$MaskoNumero  $i1 $i2 
		$textofenestro tag configure masque$MaskoNumero -elide true 
		set numMasque $MaskoNumero

		# kreo di la butono de desmasko 
		button $textofenestro.butonoDemasquer$numMasque -image $imgDemasquer  -relief raise -command "Vorteko::DesmaskarSelekto $textofenestro $numMasque $i1 $i2" -background red	-bd 2 -activebackground green
		bind $textofenestro.butonoDemasquer$numMasque   <Enter> "after 50 ; .fetat.mesajo configure -text {>>Desmaskar la texto celata} "
		bind $textofenestro.butonoDemasquer$numMasque   <Leave> " ; .fetat.mesajo configure -text {} "

		# inserto di butono de desmasko
		$textofenestro window create $i1 -window $textofenestro.butonoDemasquer$MaskoNumero -padx 5
		incr MaskoNumero
		
		}
		
		return [list $i1 $i2]
}	

proc Vorteko::DesmaskarSelekto {textofenestro numMasque i1 i2} { 

$textofenestro tag remove masque$numMasque $i1 $i2
destroy  $textofenestro.butonoDemasquer$numMasque   
.fetat.mesajo configure -text {} 
}

proc Vorteko::AutoDentizito { textofenestro } {
		set loko [expr {int([$textofenestro index insert])-1}]
		set indice [$textofenestro search -forwards -count long\
			-regexp (\\t)* ${loko}.0 ${loko}.end]
		if {[info exists long]==0} {return}
		set espace ""
		for {set i 1} {$i<=$long} {incr i} {
		  append espace "\t"
		}
		$textofenestro insert  [$textofenestro index insert] $espace
	  }
	
#<RECENTA> 
	  
proc Vorteko::Livar {} {
# Vorteko::SalvarFigurizo
		Vorteko::SalvarListoRecenta
		destroy .
		exit
	  }

	  
proc Vorteko::Recenta {fic} {
		variable ListoRecenta
		global Voyo
		variable fichero
		variable types
		global textofenestro
		
		if {[lsearch $ListoRecenta $fic]!=-1} {return}
		
		set liste [list $fic]
		foreach el $ListoRecenta {
		  lappend liste $el
		}
		set ListoRecenta [lrange $liste 0 9]
		
		Vorteko::MaJMenuRecenta
	  }
	  
	  
proc Vorteko::SalvarListoRecenta { } {
		global Voyo
		variable ListoRecenta
		catch {
		set fichero [open [file join "$Voyo(rel)" VortekoRecenta.rc] w]
		foreach fic $ListoRecenta {
		  puts $fichero $fic
		}
		close $fichero 	}
	  }
	  
	  
proc Vorteko::LektarListoRecenta { } {
		global Voyo
		variable ListoRecenta
		
		if {![catch {set fichero [open [file join "$Voyo(rel)" VortekoRecenta.rc] r]}]} {		
		  while {![eof $fichero]} {
			set capture [gets $fichero]

			if {$capture!=""} {
			  append ListoRecenta " [list $capture]"
			}
			
		  }
		  close $fichero
		}
	  }
	  
	  
proc Vorteko::MaJMenuRecenta {} {
		variable ListoRecenta
		global textofenestro
		set Dokumenti .menubar.mDokumenti
		
		$Dokumenti.lRecenta delete 0 end
		foreach el $ListoRecenta {
		  $Dokumenti.lRecenta  add command -label $el\
			  -command "Vorteko::ApertarRecenta {$el}"
		}
		Vorteko::SalvarListoRecenta
		
	  }
	  
proc Vorteko::PurgarRecenta {} {
		variable ListoRecenta
		global textofenestro
		set Dokumenti .menubar.mDokumenti
		
		$Dokumenti.lRecenta delete 0 end
		set ListoRecenta ""
		Vorteko::SalvarListoRecenta
	  }
	
	proc Vorteko::KlikRecenta { } {
	tk_popup  .menubar.mDokumenti.lRecenta 150 150

}
	  
	  
proc Vorteko::ApertarRecenta { selektajo } {
		variable fichero
		global textofenestro
		
		# apertajo de nova fenestro 
		Vorteko::NovaPagino $selektajo
		
		set resultat [ Vorteko::KargarTexto $textofenestro $selektajo ]
		if { $resultat == 0 } {
		  set fichero $selektajo
		  Vorteko::Aktualizar $textofenestro
		}
		.fetat.fichero configure -text $selektajo
		
	  }
	
#===========================================================
#<ListoDicionarii>

proc Vorteko::KargeblaDicionarii {}  {

	global Voyo
	global repertorio
	global selecteur
	
	toplevel .k
	bind  .k  <3> { destroy .k}


wm title .k "VORTEKO : Kargebla dicionarii"

global couleurBouton 
set couleurBouton blue

option add .k.Button.activeBackground azure

pack [frame .k.fa] -side left -expand true -fill both
pack [frame .k.fc] -side left -expand true -fill both
pack [frame .k.fb] -side left -expand true -fill both
	
pack [label .k.fa.label1 -text "Dokumenti en la dosiero" -font {helvetica 10 bold } -fg blue  -bg #00ffff -relief raise -bd 3] -side top -expand true -fill x
pack [text .k.fa.repertorio -relief groove -bd 5 -width 30 -cursor hand1 -bg ivory -yscrollcommand ".k.fa.y set " ]  -side right -after .k.fa.label1 -expand true -fill both
pack [scrollbar .k.fa.y -orient v -command { .fa.repertorio yview }] -side right -expand true -fill y 
		
pack [label .k.fb.label1 -text "Listo de dicionarii auto-kargebla" -font {helvetica 10 bold} -fg blue -bg #00ffff -relief raise -bd 3] -side top -expand true -fill x
pack [text .k.fb.repR -relief groove -bd 5 -width 40 -bg ivory   -fg  HotPink  -yscrollcommand ".k.fb.y set "  -undo 1] -side left  -after .k.fb.label1 -expand true -fill both
pack [scrollbar .k.fb.y -orient v -command { .k.fb.repR yview }] -side left -expand true -fill y

pack [message .k.fc.m1 -text "LISTAR LA \nDICIONARII\nAUTO-KARGEBLA" -fg red -bg #00ffff   -relief raise -bd 5 -pady 30 -font {helvetica  12 bold} ] -side top -expand true -fill both
pack [button .k.fc.b1 -bg green -text ">>> Apertez dosiero kontenante dicionario por Vorteko" \
	-command { Vorteko::IrarDosiero ; raise .k}	]  -side top  -expand true -fill x
pack [label .k.fc.l1 -textvariable repertorio  -bg white -fg red ] -expand true -fill x -side top -after .k.fc.b1
pack [button .k.fc.b2 -bg green -text "Salvar la listo   <<<" -command { Vorteko::SalvarListoAKD } ]  -side top -expand true -fill x 
pack [label .k.fc.label2 -textvariable dosieroDico  -bg white -fg red ] -expand true -fill x -side top -after .k.fc.b2
pack [button .k.fc.bAide -text "  Helpo   " -bg yellow -relief raise  -command { tk_messageBox -message " Ne ja enplantacata" ; raise .k } ] -side right -expand true  

pack [frame .k.fc.fChoixReduc  ] -expand true -fill x -side top -after .k.fc.bAide 

pack [frame .k.fc.fbouton] -expand true -fill x -side bottom
}



#===========================================================


	  
 # PROC NE ANKOR EN VORTEKO 
	proc Vorteko::ApertarFicLang { } {
		global Voyo
		variable langage
		variable listLang
				
		if { $langage=="ido" } {
		  set listLang {adjektivi nomi prepozisioni adverbi}
		}
		
	  }
	  
	  ###############################################"
	  ### RUTINI koloro
	  ###############################################
	  
	
	# "zonokolorigo" es la funciono qua permisas de selektar la parto de texto por la ortografikontrolo : sive tote la texto, sive texto ja selektata 
	  
proc Vorteko::ZonoKolorigo {textofenestro flip} { 
		variable debut
		variable fin
		variable tailleBloc
		
		if {$flip == 1} {
		  set debut 1.0
		  set fin end
		} else {
		  set indices [ $textofenestro tag ranges sel ]
		  if { [llength $indices] == 0  } {
			set debut [$textofenestro index "insert linestart"]
			set fin [$textofenestro index "insert lineend"]
		  } else {
			set debut [$textofenestro index  [lindex $indices 0]]
			set fin [$textofenestro index  [lindex $indices 1]]
			set tailleBloc [expr $fin - $debut ]
			puts $tailleBloc
		  }
		  
		}
	  }
	  
####################################################### 	  
#<ORTOGRAFIO>
#######################################################
 
# proc por kolorigar la vorti qui ne esas bona vorti di Idolinguo. 
# la erora vorti kolorigesor reda .

#ta proc OrtografioKlavaro funcionas kun la klaviero, kande la clavo espacio o la clavo "ritornar" basigesas. 

proc Vorteko::OrtografioKlavaro { } {

global dico
global textofenestro

$textofenestro tag configure  orto -foreground red  -underline true
# selektar la texto
set texto [$textofenestro get  "insert-1c linestart" "insert lineend" ]
# eliminar la nuna tagi
 $textofenestro tag remove orto "insert-1c linestart" "insert lineend" 
#eliminar virtuale la tireti, la hoketi, ed altra signi
regsub -all \\W $texto " " texto 

# lansar la slingo de verifiko de irga vorto 
set indico 1.0
foreach vorto $texto { 
	set indico [$textofenestro search $vorto $indico] 

# on regardas la du unesma literi di la vorto por serchar nur en un parto di la dicionario. 
				
	set alfa1 "[string tolower [ string index $vorto 0] ]"			
	set alfa2 "[ string tolower [string index $vorto 1] ]"	
	if { [ catch { set dicoAlfa $dico($alfa1$alfa2) 	} absento ]} {
		$textofenestro tag add orto $indico "$indico wordend" } else {
		if { [ lsearch $dico($alfa1$alfa2)  [string tolower $vorto ] ] == -1} { 	
		# serchar se on havas prefixi konocata ed rifacar sercho en la dicionarii pos eliminar la prefixo 
		regsub (ne|ad|ab|ca|en|ek|ri|ta|des|dis|min|mis|par|plu|pre|sam|sen|sub|sur|tra|tro|para|arki|inter|trans|kontre) [string tolower $vorto] "" vorto
		set alfa1 "[string tolower [ string index $vorto 0] ]"			
		set alfa2 "[ string tolower [string index $vorto 1] ]"	
		if { [ catch { set dicoAlfa $dico($alfa1$alfa2) 	} absento ]} {
		$textofenestro tag add orto $indico "$indico wordend" } else {
		if { [ lsearch $dico($alfa1$alfa2)  [string tolower $vorto ] ] == -1} { 			
		$textofenestro tag ad orto $indico "$indico wordend" 
		}
		}			
		}
	} 
	# augmentar la indico por ke irga okurenco di plura sama vorti eroroza esos kolorigata
	set indico "$indico+1c"
}

}


#----------------------------------------------------------------------------------
# ta proc uzesas por kolorigar la erori di la tota texto.
 # on povus nure krear un proc, e donar parametri. 
 #TAMEN, EN LA FUTURO, LA DU POVUS ESAR NE-SAMA, por acelerar la serchadi en granda dokumenti. 

proc Vorteko::Bloko {args} {
global textofenestro

#definar la zono di la verifiko : tote texto o selektata texto o texto glutinata
	# se la proc es lansata da la proc glutinar, on havas 2 argumenti  : debuto ed fino di la bloko.
	
	if {[llength $args] >0} {
		foreach {debuto fino} $args {
		set debuto $debuto
		set fino $fino
		}} else {	
	if { [ $textofenestro tag ranges sel ] == ""} {
		  set debuto 1.0
		  set fino end
		} else {
		  set indices [ $textofenestro tag ranges sel ]
			set debuto [$textofenestro index  [lindex $indices 0]]
			set fino [$textofenestro index  [lindex $indices 1]]
		  } }

		Vorteko::OrtografioTotala $debuto $fino

}

proc Vorteko::OrtografioTotala {debuto fino } {
global dico
global textofenestro

 $textofenestro tag configure  orto -foreground red  -underline true

# eliminar la nuna tagi
$textofenestro tag remove orto $debuto $fino
# selektar la texto
set texto [$textofenestro get $debuto $fino ]

#eliminar virtuale la tireti, la hoketi, ed altra signi
regsub -all \\W $texto " " texto 

# lansar la slingo de verifiko de irga vorto 
set indico $debuto
foreach vorto $texto { 
	set indico [$textofenestro search $vorto $indico] 
	
# on regardas la du unesma literi di la vorto por serchar nur en un parto di la dicionario. 
				
	set alfa1 "[string tolower [ string index $vorto 0] ]"			
	set alfa2 "[ string tolower [string index $vorto 1] ]"	
	if { [ catch { set dicoAlfa $dico($alfa1$alfa2) 	} absento ]} {
		$textofenestro tag add orto $indico "$indico wordend" } else {
		if { [ lsearch $dico($alfa1$alfa2)  [string tolower $vorto ] ] == -1} { 	
		# serchar se on havas prefixi konocata ed rifacar sercho en la dicionarii pos eliminar la prefixo 
		regsub (ne|ad|ab|ca|en|ek|ri|ta|des|dis|min|mis|par|plu|pre|sam|sen|sub|sur|tra|tro|para|arki|inter|trans|kontre) [string tolower $vorto] "" vorto
		set alfa1 "[string tolower [ string index $vorto 0] ]"			
		set alfa2 "[ string tolower [string index $vorto 1] ]"	
		if { [ catch { set dicoAlfa $dico($alfa1$alfa2) 	} absento ]} {
		$textofenestro tag add orto $indico "$indico wordend" } else {
		if { [ lsearch $dico($alfa1$alfa2)  [string tolower $vorto ] ] == -1} { 			
		$textofenestro tag ad orto $indico "$indico wordend" 
		}
		}			
		}
	}
}
}

proc Vorteko::DesRedigo {args} {
	global textofenestro

#definar la zono di la verifiko : tote texto o selektata texto o texto glutinata
	# se la proc es lansata da la proc glutinar, on havas 2 argumenti  : debuto ed fino di la bloko.
	
	if {[llength $args] >0} {
		foreach {debuto fino} $args {
		set debuto $debuto
		set fino $fino
		}} else {	
	if { [ $textofenestro tag ranges sel ] == ""} {
		  set debuto 1.0
		  set fino end
		} else {
		  set indices [ $textofenestro tag ranges sel ]
			set debuto [$textofenestro index  [lindex $indices 0]]
			set fino [$textofenestro index  [lindex $indices 1]]
		  } }

	$textofenestro tag remove orto $debuto $fino

}
# fino di la proceduri pri la ortografio-kontrolo
#-------------------------
	
proc Vorteko::StandoStingo {loko } {
		global textofenestro
		switch $loko {
		  "alto" {pack .fetat  -before .ftext -fill both}
		  "bazo" {pack .fetat  -after .ftext -fill both}
		} }
	  
proc Vorteko::RetroiroLineo  {wrap } {
		global textofenestro
		switch $wrap {
		  "none" {$textofenestro configure -wrap none -background  white }
		  "word" {$textofenestro configure -wrap word -background ivory}
		  "char" {$textofenestro configure -wrap char -background #bcc0e0	   }
		} }
	  
proc Vorteko::PolicePlus {textofenestro} {

	global staturoLiteri
		
		set i "[lindex [$textofenestro cget -font] 1 ]"
		set j "[ list [lindex [$textofenestro cget -font] 0 ] ]"
		incr i
		$textofenestro configure -font "$j $i"
		
		set staturoLiteri $i
	  }
	  
proc Vorteko::PoliceMoins {textofenestro} {
		
	global staturoLiteri
	
		set i "[lindex [$textofenestro cget -font] 1]"
		set j "[ list [lindex [$textofenestro cget -font] 0 ] ]"
		incr i -1
		if {$i <2} { set i 2}
		
		$textofenestro configure -font "$j $i  "
		
		set staturoLiteri $i
	  }
	
proc Vorteko::SelektoFonte {} {
		global police
		global staturoLiteri
		global textofenestro
		
		destroy .fonte
		toplevel .fonte
		wm title .fonte "Literi di Vorteko"
	
		wm resizable .fonte false false
		
		
		frame .fonte.f  -relief raised 
		frame .fonte.f.ico -bg SteelBlue
		
		pack .fonte.f  -expand false -fill y
		pack .fonte.f.ico -fill x
		
		button .fonte.f.ico.plus -text "+" -command { incr staturoLiteri ; .fonte.f.tp configure -font "[list $police]  $staturoLiteri " } -font {-size 12}
		button .fonte.f.ico.moins -text "-" -command { incr staturoLiteri  -1; .fonte.f.tp configure -font "[list $police]  $staturoLiteri "  } -font {-size 12}
		button .fonte.f.ico.okT  -text konfirmar -command { $textofenestro configure -font "[list $police]  $staturoLiteri " } -font {-size 12}
		
#£ 		spinbox .fonte.f.ico.nomFonte -text "nom de fonte" -relief raised -bd 3  -values "helvetica times courier [font families]"\
#£ 			-textvariable police -command  {.fonte.f.tp configure -font "[list $police]  $staturoLiteri "}  -font {-size 12}
#£ 		button .fonte.f.ico.okP -text konfirmar -command { $textofenestro configure -font "[list $police]  $staturoLiteri " } -font {-size 12}
		 
		 set fonti "helvetica times courier [font families]" 
		 ttk::combobox .fonte.f.ico.nomFonte -values 	$fonti 	-textvariable police  -font {-size 12} 
		button .fonte.f.ico.okP -text valider -command { $textofenestro configure -font "[list $police]  $staturoLiteri " } -font {-size 12}
			
		bind .fonte.f.ico.nomFonte <<ComboboxSelected>>  {.fonte.f.tp configure -font "[list $police]  $staturoLiteri " ; .fonte.f.ico.nomFonte configure -font "[list $police]  $staturoLiteri " }
	
		label .fonte.f.ico.lP -text Shablono  -relief flat -bd 0 -bg SteelBlue -fg yellow -font {-size 12}
		
		spinbox .fonte.f.ico.sp -text police -relief raised -bd 3 -width 3  -from 6 -to 30 -incr 2 -textvariable staturoLiteri -command  {.fonte.f.tp configure -font "[list $police]  $staturoLiteri "}
		label .fonte.f.ico.l -text staturo  -relief flat -bd 0 -bg SteelBlue -fg yellow -font {-size 12}
		
		pack  .fonte.f.ico.l  .fonte.f.ico.plus  .fonte.f.ico.moins .fonte.f.ico.sp  .fonte.f.ico.okT	.fonte.f.ico.lP  .fonte.f.ico.nomFonte  .fonte.f.ico.okP  -side left -fill y
		
		text .fonte.f.tp -bg AntiqueWhite -font [list $police]  -relief sunken  -wrap char -height 5 -width 15 
		pack .fonte.f.tp -fill both -expand 1
		.fonte.f.tp insert end "To es texto por probar la shabloni di literi \nabcdefghijklmnopqrstuvwyz\nABCDEFGHIJKLMNOPQRSTUVWXYZ"
		
		.fonte.f.ico.nomFonte delete 0 end
		.fonte.f.ico.nomFonte insert end  "[ list [lindex [$textofenestro cget -font] 0 ] ]"
		.fonte.f.ico.sp delete 0 end
		.fonte.f.ico.sp insert end "[lindex [$textofenestro cget -font] 1]"
		
		bind .fonte <3> { destroy .fonte }
		
	  }
	  
	  

	  ################################################################################
	  #	# enireyo por selektar la vorto por serchar lua aparuri (*okurensi )
	  ################################################################################
#<Okurensi>

proc Vorteko::Selektarvorto {} {
		destroy .topvorto 	; # klozas la fenestro antee apertita 
		toplevel .topvorto		;  # apertas la fenestro di serchado 
		
		label .topvorto.label1 -text "serchar : " -width 25 -font {-size 12}  -bg beige -justify left
		entry .topvorto.entrevorto  -textvariable vortoSerchata -font {-size 12} -bg ivory -justify left
		checkbutton .topvorto.ch1 -text "Diferenciar Maj/Min" -variable majmin -onvalue 1 -offvalue 0 -font {-size 12} -bg beige -justify left
		checkbutton .topvorto.ch3 -text "Anke en la celata texto	" -variable textoCelita  -onvalue 1 -offvalue 0 -font {-size 12} -bg beige -justify left
		
		radiobutton .topvorto.ch4 -text "Dop kursoro	" -variable wards  -value forwards -font {-size 12} -bg beige -justify left
		radiobutton .topvorto.ch5 -text "Avan kursoro	" -variable wards  -value backwards  -font {-size 12} -bg beige -justify left
		radiobutton .topvorto.ch6 -text "Tote texto" -variable wards  -value 0  -font {-size 12} -bg beige -justify left
		radiobutton .topvorto.ch7 -text "Texto selektata" -variable wards  -value selection  -font {-size 12} -bg beige -justify left
		
		button .topvorto.ok -text "Serchar nun!" -bg beige -fg blue -font {-size 12} -bd 5 -relief raise \
			 -command { set expressRegul 0 ; Vorteko::AficharListoOkurensi $textofenestro $vortoSerchata $wards $textoCelita $majmin $expressRegul} -justify left
		grid .topvorto.label1   -column 1 -row 1 -padx  3 -sticky ew
		grid .topvorto.entrevorto -column 1 -row 2 -padx 3 -sticky ew
		grid .topvorto.ch1 -column 1 -row 3 -padx 3 -sticky ew
		grid .topvorto.ch3 -column 1 -row 5 -padx 3  -sticky ew
		grid .topvorto.ch4 -column 1 -row 6 -padx 3  -sticky ew
		grid .topvorto.ch5 -column 1 -row 7 -padx 3  -sticky ew
		grid .topvorto.ch6 -column 1 -row 8 -padx 3  -sticky ew
		grid .topvorto.ch7 -column 1 -row 9 -padx 3  -sticky ew
		grid .topvorto.ok  -column 1 -row 10 -padx 3 -sticky ew
		
		bind .topvorto <3> {destroy .topvorto }
		
	  }
	  

proc Vorteko::SercharElemento { textofenestro element wards textoCelita minMaj  expressRegul} { 
 
		variable ListoOkurensi
		set ListoOkurensi ""
		
		$textofenestro tag remove surligner 1.0 end
				
		 set indices [ $textofenestro tag ranges sel ]
		  if { [llength $indices] == 0  } {
		  set debut 1.0
		  set fin end
		} else {
		  	set indices [ $textofenestro tag ranges sel ]
		 	set debut [$textofenestro index  [lindex $indices 0]]
			set fin [$textofenestro index  [lindex $indices 1]]
			  }

		#diferenciar la  mayuskuli de et des minuskili
		if {$minMaj == 1} {
		set  casse ""
		} else {
		 set casse "-nocase"
		}
		
		# ta lineo remplacas la buklo "if" di la unesma programo nur por programeri qui konocas la " regula expresi" en Tcl
		set ListeOccurences ""
		if {$expressRegul==1} {
		  set com "-regexp $casse \{$element\}"
		} else {		  
		  set com \"$element\"
		}
		
		# serchar en o ek la texto celata 
		
		if {$textoCelita == 1} {
			set masque "-elide"
		} else {
			set masque ""
		}
		
		#direciono di la sercho 
				
		switch $wards forwards {set debut [$textofenestro index insert] ; set fin end  }
		switch $wards backwards {set fin [$textofenestro index insert] ;set debut 1.0 }
		switch $wards 0 {set fin end  }
		switch $wards "" {set debut 1.0 ; set fin end  }
		switch $wards "selection" {set debut $debut ; set fin $fin  }
		
		# slingo di sercho qua skribas la indici di irga *okurenci en listo : "ListoOkurensi"
		
		if {[string length $com ]==2} {	tk_messageBox -message "vu mustas serchar kelka kozo!" } else {
			while 1 {
		  		set lacom "$textofenestro search $casse $masque -count longeso $com  \"$debut\" \"$fin\" "
		 		 set indice [eval $lacom]
		 		 if {$indice==""} { break }
				  lappend ListoOkurensi $indice
				  set debut "$indice + $longeso char"
		}}
		
	
	}
	
	
proc Vorteko::AficharListoOkurensi { textofenestro element wards textoCelita majmin expressRegul} {
		variable ListoOkurensi
		
		
		destroy .topvorto.fenoccs
		destroy .topvorto.occssy
		scrollbar .topvorto.occssy -orient vertical -command ".topvorto.fenoccs yview" -cursor "hand2"
		text  .topvorto.fenoccs -wrap word -bd 6 -relief raised -bg lavender -fg black \
			-tabs {1c} -font "Helvetica 12"	-height 10 -yscrollcommand ".topvorto.occssy set" -width 40 -cursor "hand1"
		
		
		
		Vorteko::SercharElemento $textofenestro $element $wards $textoCelita $majmin $expressRegul
		
		grid .topvorto.fenoccs  -row 1 -column 2 -rowspan 5
		grid .topvorto.occssy -row 1 -column 3 -rowspan 5 -sticky ns
		
		# lanceo de la slingo di afishigo en la fenestro kreita en la lineo supere 
		set compteur 0
		if {[llength $ListoOkurensi]!=0} {
		  foreach el $ListoOkurensi {
			
			set ligneOkurenso "... lineo N° $el esma tipo..." ; # $el es un indico text (ex : 10.5 ) N°lineo.N°signo
			
			$textofenestro tag add surligner $el
			$textofenestro tag configure surligner -background yellow
			
			.topvorto.fenoccs insert end "Okurenco $compteur : $ligneOkurenso"
			.topvorto.fenoccs tag add $compteur "current linestart" "current lineend"
			.topvorto.fenoccs tag configure $compteur -foreground blue -underline 1
			.topvorto.fenoccs tag bind $compteur <1> "$textofenestro see $el ;destroy .topBuloOkurenso "
			
			.topvorto.fenoccs tag bind $compteur <Enter> ".topvorto.fenoccs tag configure $compteur -background AntiqueWhite  -foreground blue -underline 1 ; Vorteko::BuloOkurenso $textofenestro $el"
			.topvorto.fenoccs tag bind $compteur <Leave> " .topvorto.fenoccs tag configure $compteur -background  lavender  ; destroy .topBuloOkurenso "
			
			.topvorto.fenoccs insert end \n
			incr compteur
			
			
		  }
		}
		.topvorto.fenoccs insert 1.0 "$compteur okurensi de \"$element\"\n\n"
		
		bind .topvorto.fenoccs <3> {	destroy .topBuloOkurenso  ;	destroy .topvorto	; $textofenestro tag remove "surligner" 1.0 end ; }
	  }
	  
proc Vorteko::BuloOkurenso { textofenestro indice} {
		toplevel .topBuloOkurenso
		text .topBuloOkurenso.texto  -height 1 -bg White -fg tomato -relief raised -borderwidth 2
		
		wm overrideredirect .topBuloOkurenso 1 ; # deskreas la stango de titulo 
		set x [ winfo pointerx . ]
		set y [ winfo pointery . ]
		wm geometry .topBuloOkurenso  +[expr $x + 10]+[expr $y - 10]
		
		set contenuLigneOkurenso [ string trimleft [$textofenestro get "$indice linestart" "$indice  lineend" ] " \t"]
		set contenuLigneOkurenso [ string trimright $contenuLigneOkurenso " " ]
		.topBuloOkurenso.texto insert end $contenuLigneOkurenso
		pack .topBuloOkurenso.texto
		.topBuloOkurenso.texto configure -width [string length $contenuLigneOkurenso ]
		
	  }
	  
	  ###############################
	  #<remplaso>
	  
proc Vorteko::Remplasar {textofenestro } {
		destroy .topRemplace 	; # klozas la fenestro ja apertita
		toplevel .topRemplace		; # aperta la fenestro di sercho 
		
		label .topRemplace.label1 -text "remplasar : "
		entry .topRemplace.entrevorto  -textvariable vortoSerchata
		label .topRemplace.label2 -text "per : "
		entry .topRemplace.entreRemplaso  -textvariable aLaPlace
		button .topRemplace.ok -text "lansar la inquesto remplasante"  -command { Vorteko::RemplasarNun $textofenestro $vortoSerchata $aLaPlace $majmin }
		checkbutton .topRemplace.ch1 -text "Diferenciar Maj/Min" -variable majmin -onvalue 1 -offvalue 0
		button .topRemplace.b2 -text "Remplasar tote" -command { Vorteko::RemplasarTote $textofenestro $vortoSerchata $aLaPlace $majmin }
		
		grid .topRemplace.label1   -column 1 -row 1 -padx  8
		grid .topRemplace.entrevorto -column 1 -row 2 -padx 8
		grid .topRemplace.label2   -column 1 -row 3 -padx  8
		grid .topRemplace.entreRemplaso -column 1 -row 4 -padx 8
		grid .topRemplace.ok  -column 1 -row 5 -padx 8
		grid .topRemplace.ch1 -column 2 -row 1 -padx 8
		grid .topRemplace.b2 -column 2 -row 5 -padx 8
		
		bind .topRemplace <3> {destroy .topRemplace}
	  }
	  
proc Vorteko::RemplasarNun { textofenestro vortoif remplaso mM } {
		$textofenestro tag configure serchoTago -background red -foreground yellow 
		
		if {$mM == 0} {
		  regexp  -indices -nocase -- $vortoif [$textofenestro get 1.0 end ]  indiciRemplaso
		} else {
		  regexp  -indices -- $vortoif [$textofenestro get 1.0 end ]  indiciRemplaso
		}
		

		if { [catch {
			$textofenestro delete "1.0 + [expr [lindex  $indiciRemplaso 0] ] chars" \
			"1.0 + [expr [lindex $indiciRemplaso  1 ] +1] chars "
			$textofenestro insert  "1.0 +  [lindex  $indiciRemplaso 0] chars"  $remplaso
		$textofenestro tag add serchoTago "1.0 + [lindex  $indiciRemplaso 0] chars"  "1.0 + [expr  [lindex  $indiciRemplaso 0] + [string length $remplaso] ] chars"
			} ]  !=0
			}  { tk_messageBox -message "Ne altra okurenci a remplasar per  \"$remplaso\" " 
			$textofenestro tag delete serchoTago
			}
		
	  }
	  
proc Vorteko::RemplasarTote { textofenestro vortoif remplaso mM} {
		set i 0
		set tmM [ regexp  -indices -nocase -all -- $vortoif [$textofenestro get 1.0 end ] ]
		set t [ regexp  -indices -all -- $vortoif [$textofenestro get 1.0 end ] ]
		
		if {$mM == 0} {
		  while {$i <  $tmM } {
			regexp  -indices -nocase -- $vortoif [$textofenestro get 1.0 end ]  indiciRemplaso
			$textofenestro delete "1.0 + [expr [lindex  $indiciRemplaso 0] ] chars" \
				"1.0 + [expr [lindex $indiciRemplaso  1 ] +1] chars "
			$textofenestro insert  "1.0 +  [lindex  $indiciRemplaso 0] chars"  $remplaso
			
			incr i
		  }
		} else {
		  while {$i < $t} {
			regexp  -indices  -- $vortoif [$textofenestro get 1.0 end ]  indiciRemplaso
			$textofenestro delete "1.0 + [expr [lindex  $indiciRemplaso 0] ] chars" "1.0 + [expr [lindex $indiciRemplaso  1 ] +1] chars "
			$textofenestro insert  "1.0 +  [lindex  $indiciRemplaso 0] chars"  $remplaso
			
			incr i
		  }
		}
		
		tk_messageBox -message " Serchado e remplasado nun finita. \nNombro de chanji : $i "
	  }
	

	  
proc Vorteko::NombroLinei { textofenestro textetiketo } {
		set nb [expr int([$textofenestro index end])-1]
		
		set pgf paragrafi
		if {$nb==1} {set vorto paragrafo}		
		
		set nk [string length [$textofenestro get 1.0 end]]
		
		$textetiketo configure -text " Signi $nk & $nb $pgf" -fg black
	}
	  
	
proc Vorteko::SelektarLineo {textofenestro} {
	global paginoFenestro	
	set paginoFenestro [ lindex [ split $textofenestro .] 2]

	
	set nomGlob "selektaLinei$paginoFenestro"
	global $nomGlob

	
		destroy .topLigne$paginoFenestro
		toplevel .topLigne$paginoFenestro -background blue 
		bind .topLigne$paginoFenestro <3> {destroy .topLigne$paginoFenestro}
		label .topLigne$paginoFenestro.etiketoNumbroLinei -text "skribez un numero di lineo e validigez" -font {size 12}
		pack .topLigne$paginoFenestro.etiketoNumbroLinei
		spinbox .topLigne$paginoFenestro.memoroNumbroLinei -textvariable numeroLigne -values [set selektaLinei$paginoFenestro] -font {size 12}
		pack .topLigne$paginoFenestro.memoroNumbroLinei -side left
		focus .topLigne$paginoFenestro.memoroNumbroLinei
		button .topLigne$paginoFenestro.valider -text "Validigar" -command  {;lappend  selektaLinei$paginoFenestro  $numeroLigne ;  lsort -unique  selektaLinei$paginoFenestro ; destroy  .topLigne$paginoFenestro ;Vorteko::IrarLineo $textofenestro  $numeroLigne ;} -font  {size 12}
		pack .topLigne$paginoFenestro.valider
		
		
	  }
	  
		  
proc Vorteko::IrarLineo {textofenestro ligne} {
variable selektaLinei


		set nb [expr int([$textofenestro index end])-1]
		if {$ligne > $nb} {
		  tk_messageBox -message "NOMBRO TRO GRANDA : \n Verifikez la nombro de linei di vua texto  \n en la stango de informaji dextre" \
			  -icon warning -type ok
		} else {
		  $textofenestro see $ligne.0
		  $textofenestro tag remove "tagLigne" 1.0 end
		  $textofenestro tag configure "tagLigne" -background GreenYellow
		  $textofenestro tag add "tagLigne" $ligne.0  "$ligne.0 lineend"
		}
		$textofenestro tag bind "tagLigne" <KeyPress> {$textofenestro tag remove "tagLigne" 1.0 end}

	  }
	  
	
proc Vorteko::Armoro {textofenestro} {
		variable indexArmoro
		set selection [$textofenestro tag ranges sel]
		if {[llength $selection ]==0} {return}
		set index1 [lindex $selection 0]
		set index2 [lindex $selection 1]
		set vorto [$textofenestro get $index1 $index2]
		
		.menubar.mArmoro add radio	-label $vorto	 -variable vortoArmoro -value $vorto 	-background gray -activebackground yellow -activeforeground black\
			-command {$textofenestro insert insert "$vortoArmoro "}
		incr indexArmoro
		
	  }
	

proc Vorteko::Surlineago {textofenestro }  {
		global meaVorti
		global koloroMeaVorti 
		global koloroFondoVorti 
		
				# debuto di la zono a kolorigar 
			variable debut ;
			set debut 1.0
							
		$textofenestro tag remove tagSurlineago $debut end
		
		foreach vortoKolorebla $meaVorti {
		set finTag 1.0
		set debut 1.0
		set texto [$textofenestro get $debut end]
		
 			while { [regexp  $vortoKolorebla  $texto ] != 0 } {
			set indexTag [$textofenestro search  -exact -forward -count longesoVortoKolorebla  -- $vortoKolorebla $debut ]		
			set finTag "$indexTag +$longesoVortoKolorebla  chars " 		
			set longesoPlusUn [expr {$longesoVortoKolorebla +1}]
			$textofenestro tag add tagSurlineago $indexTag $finTag
			set debut "$indexTag +$longesoPlusUn chars"
			set texto [$textofenestro get $debut end]
			}
		}
		
		  $textofenestro tag configure tagSurlineago -foreground $koloroMeaVorti  -background $koloroFondoVorti 
}
	
# kreo de la buxo de selektajo di la vorti a surlinear

proc Vorteko::SelektoSurlineago {textofenestro}  {
		global meaVorti
		global koloroMeaVorti 
		global koloroFondoVorti 
		
		destroy .classSurlineoText 
		toplevel .classSurlineoText -background gray
		wm title .classSurlineoText "Mea vorti kolorigita"
		frame .classSurlineoText.f
		pack .classSurlineoText.f
		

	# insertar vorti
		label .classSurlineoText.f.labelvorti -text "Enirigar la vorti a surkolorizar"  -background turquoise
		spinbox .classSurlineoText.f.spinvorti -textvariable meaVortiSurlineago -values $meaVorti 
		button .classSurlineoText.f.butonoKoloroVorto -text "Selektar koloro di literi" -background $koloroMeaVorti -activebackground ivory\
						-command { $textofenestro configure -cursor watch
								 set koloroMeaVorti [ tk_chooseColor ] ;
								 .classSurlineoText.f.butonoKoloroVorto configure  -background $koloroMeaVorti
								$textofenestro configure -cursor arrow
								} 
		button .classSurlineoText.f.butonoKoloroFondo -text "Selektar koloro di fondo" -background $koloroFondoVorti  -activebackground ivory\
						-command { $textofenestro configure -cursor watch
								 set koloroFondoVorti  [ tk_chooseColor ] ;
								 .classSurlineoText.f.butonoKoloroFondo configure  -background $koloroFondoVorti 
								$textofenestro configure -cursor arrow
								} 
		button .classSurlineoText.f.butonovorti -text "Validar irga nova vorto" -background chartreuse   -activebackground ivory\
			-command {
					set meaVorti [lsort -unique [ lappend meaVorti $meaVortiSurlineago ] ]
					.classSurlineoText.f.spinvorti configure -values $meaVorti
					 }
					
		button .classSurlineoText.f.butonoOK -text "Surkolorizar la vorti" -background chartreuse   -activebackground ivory\
		 -command {
				$textofenestro configure -cursor watch
				
				Vorteko::Surlineago $textofenestro 
				
				$textofenestro configure -cursor arrow
				destroy .classSurlineoText
				}
				
	# supresar vorti 
		button .classSurlineoText.f.butonovortiSupresar -text "Validar por supresar la vorto afishata" -background gray -activebackground ivory\
		 -command {	
				$textofenestro tag delete MaClassevorti
				regsub $meaVortiSurlineago $meaVorti "" meaVorti; 
				set meaVorti [lsort -unique $meaVorti ] ;			
				.classSurlineoText.f.spinvorti configure -values $meaVorti
				 }
	# desurlinear la vorti  kolorigata 
	button .classSurlineoText.f.butonoDecolorier -text "Deskolorizar la vorti" -background gray -activebackground ivory\
		 -command	{ 	$textofenestro tag remove tagSurlineago 1.0 end	}
		
		pack  .classSurlineoText.f.butonoKoloroVorto .classSurlineoText.f.butonoKoloroFondo .classSurlineoText.f.labelvorti  .classSurlineoText.f.spinvorti .classSurlineoText.f.butonovorti \
			  .classSurlineoText.f.butonovortiSupresar  .classSurlineoText.f.butonoOK .classSurlineoText.f.butonoDecolorier -side top -expand true -fill both
		
		bind  .classSurlineoText.f <3> {destroy .classSurlineoText} 
		bind  .classSurlineoText.f.butonoKoloroVorto <3> {destroy .classSurlineoText} 
		bind  .classSurlineoText.f.labelvorti <3> {destroy .classSurlineoText} 
		bind  .classSurlineoText.f.spinvorti <3> {destroy .classSurlineoText} 
		bind  .classSurlineoText.f.butonovorti <3> {destroy .classSurlineoText} 
		bind  .classSurlineoText.f.butonovortiSupresar <3> {destroy .classSurlineoText} 
		bind  .classSurlineoText.f.butonoOK <3> {destroy .classSurlineoText} 
			

}
	

proc Vorteko::EskapoChanji {textofenestro} {

	set ultimo [$textofenestro get "insert -1 char"]
	$textofenestro delete [$textofenestro index "insert -1 char"]
	$textofenestro insert [$textofenestro index "insert -1 char"] $ultimo

}
  
proc Vorteko::SalvarFigurizo { } {
		global Voyo
		variable koloro
		global police 
		global staturoLiteri
		
				
		set fichero [open [file join "$Voyo(rel)" Vorteko.rc] w]
		puts $fichero "# fichero de figurezo di Vorteko"
		puts $fichero "#################################################"
		foreach cle [array names koloro] {
		  puts $fichero "# Kolori $cle\n set koloro($cle) $koloro($cle)"
		}
		puts $fichero "# Taille police \nset staturoLiteri $staturoLiteri"
		puts $fichero "#  police \nset police [list $police]"
		close $fichero
	  }
	  
	  
proc Vorteko::LektarFigurizo { } {
		global Voyo
		variable koloro
 		global police
 		global staturoLiteri
		
		set fichero [open [file join "$Voyo(rel)" Vorteko.rc] r]
		while {![eof $fichero] } {
		  eval [gets $fichero]
		}
		close $fichero
	  } 
	
#===============================================
	  #<INTERFACIO>
#---------------------------------------------------------------------------------
# baza funcioni advokita kun la parametri di la menui, listo de vorti 
# e longeso de la kolumno Menuo uzita plu pose .

proc Vorteko::Interfacio {} {
		global tcl_version tcl_platform
		global Voyo
		variable ausujetdeDM
		variable ausujetdeSUCF
		variable programo
		global versiono
		variable fichero
		variable koloro
		variable ListoRecenta
		variable vortoSerchata
		variable vorticles
		global NumeroPagino
		global textofenestro
		global police
		global staturoLiteri
		
		wm title . "$programo versiono : $versiono "
			
		# zono texto
		
		frame .ftext  -bd 2 -bg cyan
		pack   .ftext -padx 2 -pady 2   -expand true -fill both

#<pagino_0>		
		# kreo de un pagino neutra 
		text  .ftext.0   -background cyan   -foreground DarkBlue 
		
		# *incremento de la variablo global "NumeroPagino" por fixigar lua valoro a 1 
		incr NumeroPagino
		
		if {$tcl_version>=8.4} {
		  .ftext.0 configure -undo 1 -autoseparators 1
		}
		scrollbar .ftext.sx0 -orient horizontal -command {.ftext.0 xview} 
		scrollbar .ftext.sy0 -orient vertical -command {.ftext.0 yview } 
		
		pack .ftext.sy0 -fill y -side right
		pack  .ftext.0 	-fill both	-expand true
		pack .ftext.sx0 -fill x -side top
		
	#<pagino-inicia>	
	
	.ftext.0 tag configure pagininicia  -font { times 30 italic } 
	
	.ftext.0 insert end "\n   VORTEKO\n   por Idolinguo " pagininicia
	
	set logo [image create photo -file  [file join "$Voyo(rel)" imaji vortekoLogo.png ] ]
 	.ftext.0 image create end -image $logo -align center
		.ftext.0 configure -state disable 
		set textofenestro .ftext.0
		
	#<stango_di_marki>
	set imgMarkizar [image create photo -file [file join $Voyo(rel) imaji marko.png]]
	button .markiLabelo  -image $imgMarkizar  -relief raised -bd 3 -command { Vorteko::SelektarMarki $textofenestro} 
	pack .markiLabelo -side left -expand false 
		frame .stangoMarki -background gray
		pack .stangoMarki -side left  -after .markiLabelo -fill x -expand 0
		button .markiSupreso -text "No Marki"  -relief raised -bd 3 -command { Vorteko::NoMarki $textofenestro} 
		pack .markiSupreso -side right -expand false
		
	
	#<STANGO_MENUI>
	
		menu .menubar  -background cyan -bd 4 -relief raised
		. config -menu .menubar 
				
		option add *Menu.activeBackground #d5ffff	 
   		option add *Menu.background aquamarine		
		option add *Menu.foreground blue  
		
  		foreach m { Dokumenti Redaktar Utensili Preferaji Marki Armoro Helpo Pagini Vorti} {
			set $m [ menu .menubar.m$m -tearoff 1]
			  .menubar add cascade -label $m -menu .menubar.m$m 	 
		}
		
	# la funciono "tearoff" di la menuo Pagini es supresita pro quo ol jenas la numero de indexo kande on klosas dokumento apertita.
		.menubar.mPagini configure -tearoff 0
		
		################################################################################
		# <stango_di_ikoni>
		################################################################################
		
		frame .fikoni -relief groove	 ; 
		option add *Button.activeBackground LemonChiffon  ; 
		pack .fikoni -fill both  -before .ftext 
		
	#<ikoniStandards>
	
		#ikono nova
		set imgNova [image create photo -file [file join "$Voyo(rel)" imaji nouveau.png]]
		button .fikoni.nouveau -image $imgNova -relief flat -command {Vorteko::Nova}  ;  
		pack .fikoni.nouveau -side left
		bind .fikoni.nouveau <Enter> {  ; after 50  ; .fetat.mesajo configure -text ">> Apertas nova dokumento ..."}
		bind .fikoni.nouveau <Leave> { ; .fetat.mesajo configure -text ""}
		

		#ikono Recenta
		set imgRecent [image create photo -file [file join "$Voyo(rel)" imaji recents.png]]
		button .fikoni.recent -image $imgRecent -relief flat -command {Vorteko::KlikRecenta} 
		pack .fikoni.recent -side left
		bind .fikoni.recent  <Enter> {	after 50  ;  .fetat.mesajo configure -text ">> Apertas recenta dokumento ..."}
		bind .fikoni.recent  <Leave> {  .fetat.mesajo configure -text ""}

		#ikono apertar
		set imgApertar [image create photo -file [file join "$Voyo(rel)" imaji open.png]]
		button .fikoni.apertar -image $imgApertar -relief flat -command {Vorteko::Apertar } 
		pack .fikoni.apertar -side left
		bind .fikoni.apertar <Enter> {  after 50 ; .fetat.mesajo configure -text ">> Apertas dokumento ..."}
		bind .fikoni.apertar <Leave> {  .fetat.mesajo configure -text ""}
		
		#ikono salvar
		set imgSauver [image create photo -file [file join "$Voyo(rel)" imaji save.png]]
		button .fikoni.salvar -image $imgSauver -relief flat -command {Vorteko::Salvar $textofenestro 0} 
		pack .fikoni.salvar -side left
		bind .fikoni.salvar <Enter> {	after 50  ; .fetat.mesajo configure -text ">> Salvas ta texto nun apertata ..."}
		bind .fikoni.salvar <Leave> {  ;; .fetat.mesajo configure -text ""}
		
		#ikono salvarKom
		set imgSalvarKom [image create photo -file [file join "$Voyo(rel)" imaji toSave.png]]
		button .fikoni.salvarKom -image $imgSalvarKom -relief flat -command {Vorteko::Salvar $textofenestro 1} 
		pack .fikoni.salvarKom -side left
		bind .fikoni.salvarKom <Enter> {	after 50 ; .fetat.mesajo configure -text ">> Salvas la dokumento kun nova nomo ..."}
		bind .fikoni.salvarKom <Leave> {  ;; .fetat.mesajo configure -text ""}
		
		#ikono Klozar
		set imgKlozar [image create photo -file [file join "$Voyo(rel)" imaji remove.png]]
		button .fikoni.fermer -image $imgKlozar -relief flat -command {Vorteko::Klozar $textofenestro} 
		pack .fikoni.fermer -side left
		bind .fikoni.fermer <Enter> {	after 50 ; .fetat.mesajo configure -text ">> Klozas la nuna dokumento ..."}
		bind .fikoni.fermer <Leave> {  ; ;.fetat.mesajo configure -text ""}
		
		#ikono Imprimar
		set imgImprimar [image create photo -file [file join "$Voyo(rel)" imaji print.png]]
		button .fikoni.imprimer -image $imgImprimar -relief flat -command {Vorteko::Imprimar $textofenestro} 
		pack .fikoni.imprimer -side left
		bind .fikoni.imprimer <Enter> {	after 50; .fetat.mesajo configure -text ">> Imprimas la nuna texto..."}
		bind .fikoni.imprimer <Leave> { ;  ;.fetat.mesajo configure -text ""}
		
		#ikono Separator
		label .fikoni.separator1 -relief groove -bd 2
		pack .fikoni.separator1 -side left
		
		#ikono disfacar 
		set imgDisfacar [image create photo -file [file join "$Voyo(rel)" imaji undo.png]]
		button .fikoni.defaire -image $imgDisfacar -relief flat -command {Vorteko::Desfacar $textofenestro} 
		pack .fikoni.defaire -side left
		bind .fikoni.defaire <Enter> {  after 50  ; .fetat.mesajo configure -text ">> Nihiligas la lasta agado (°undo)"}
		bind .fikoni.defaire <Leave> {  .fetat.mesajo configure -text ""}
		
		#ikono rifacar
		set imgRifacar [image create photo -file [file join "$Voyo(rel)" imaji redo.png]]
		button .fikoni.refaire -image $imgRifacar -relief flat -command {Vorteko::Rifacar $textofenestro} 
		pack .fikoni.refaire -side left
		bind .fikoni.refaire <Enter> { after 50  ; .fetat.mesajo configure -text ">> Rifacas la lasta agado nihiligita (°redo)"}
		bind .fikoni.refaire <Leave> { .fetat.mesajo configure -text ""}
		
		#ikono Separator
		label .fikoni.separator2 -relief groove -bd 2
		pack .fikoni.separator2 -side left
		
	
		#ikono serchar
		set imgSerchar [image create photo -file [file join "$Voyo(rel)" imaji find.png]]
		button .fikoni.serchar -image $imgSerchar -relief flat -command {Vorteko::Selektarvorto} 
		pack .fikoni.serchar -side left
		bind .fikoni.serchar <Enter> {   after 50; .fetat.mesajo configure -text ">> Sherchas la vortala kateno selektata ..."}
		bind .fikoni.serchar <Leave> {  ; .fetat.mesajo configure -text ""}
		
		#ikono remplasar
		set imgRemplasar [image create photo -file [file join "$Voyo(rel)" imaji replace.png]]
		button .fikoni.remplasar -image $imgRemplasar -relief flat -command {Vorteko::Remplasar $textofenestro} 
		pack .fikoni.remplasar -side left
		bind .fikoni.remplasar <Enter> {   after 50  ; .fetat.mesajo configure -text ">> Remplasas verbala kateno per altra ..."}
		bind .fikoni.remplasar <Leave> { ; .fetat.mesajo configure -text ""}
		
		#ikono irar a lineo
		set imgNumeroterSelection [image create photo -file [file join "$Voyo(rel)" imaji lineo.png]]
		button .fikoni.numeroterSelection  -image $imgNumeroterSelection	 -relief flat -command {Vorteko::SelektarLineo $textofenestro} 		-bd 1 
		pack .fikoni.numeroterSelection -side left
		bind .fikoni.numeroterSelection <Enter> {   after 50 ; .fetat.mesajo configure -text ">>Kursoro pozata a la lineo selektata"}
		bind .fikoni.numeroterSelection <Leave> {  ; .fetat.mesajo configure -text ""}
		
		#ikono Separator
		label .fikoni.separator3 -relief groove -bd 2
		pack .fikoni.separator3 -side left
		
		#ikono tote selektar
		set imgToteSelektar [image create photo -file [file join "$Voyo(rel)" imaji anchor.png]]
		button .fikoni.toutSelectionner  -image $imgToteSelektar  -relief flat -command {Vorteko::ToteSelektar $textofenestro} 
		pack .fikoni.toutSelectionner -side left
		bind .fikoni.toutSelectionner <Enter> {   after 50  ; .fetat.mesajo configure -text ">> Selektas la tota texto <Ktrl+a>"}
		bind .fikoni.toutSelectionner <Leave> { ; .fetat.mesajo configure -text ""}
		
		#ikono Sekar
		set imgSekar [image create photo -file [file join "$Voyo(rel)" imaji cut.png]]
		button .fikoni.couper  -image $imgSekar  -relief flat -command {Vorteko::Sekar $textofenestro} 
		pack .fikoni.couper -side left
		bind .fikoni.couper <Enter> {   after 50 ; .fetat.mesajo configure -text ">> Supresas la texto selektita e memorigas lu en la kopimemoro <Ktrl+x>"}
		bind .fikoni.couper <Leave> {  ; .fetat.mesajo configure -text ""}
		
		#ikono Kopiar
		set imgKopiar [image create photo -file [file join "$Voyo(rel)" imaji copy.png]]
		button .fikoni.kopiar  -image $imgKopiar  -relief flat -command {Vorteko::Kopiar $textofenestro} 
		pack .fikoni.kopiar -side left
		bind .fikoni.kopiar <Enter> {   after 50  ; .fetat.mesajo configure -text ">> Kopias la texto selektata aden la kopimemoro <Ktrl+c>"}
		bind .fikoni.kopiar <Leave> {  ;.fetat.mesajo configure -text ""}
		
		#ikono glutinar
		set imgGlutinar [image create photo -file [file join "$Voyo(rel)" imaji paste.png]]
		button .fikoni.glutinar  -image $imgGlutinar -relief flat -command {Vorteko::Glutinar $textofenestro} 
		pack .fikoni.glutinar -side left
		bind .fikoni.glutinar <Enter> {   after 50  ; .fetat.mesajo configure -text ">> Insertas la kontenajo di la kopimemoro a la poziciono di la kursoro <Ktrl+v>"}
		bind .fikoni.glutinar <Leave> { ; .fetat.mesajo configure -text ""}
		
	#<ikoni_specala_Vorteko> 
		
		#ikono celar
		set imgCelar [image create photo -file [file join "$Voyo(rel)" imaji masque.png]]
		button .fikoni.celar  -image $imgCelar -relief flat -command {Vorteko::MaskarSelekto $textofenestro} 
		pack .fikoni.celar -side left
		bind .fikoni.celar <Enter> {   after 50  ; .fetat.mesajo configure -text ">> Maskas la texto selektata"}
		bind .fikoni.celar <Leave> {   ;.fetat.mesajo configure -text ""}
		
		#ikono Separator
		label .fikoni.separator4 -relief groove -bd 2
		pack .fikoni.separator4 -side left
		
		#ikono PolicePlus
		set imgPolicePlus [image create photo -file [file join "$Voyo(rel)" imaji incfont.png]]
		button .fikoni.policePlus  -image $imgPolicePlus -relief flat -command {Vorteko::PolicePlus $textofenestro} 
		pack .fikoni.policePlus  -side left
		bind .fikoni.policePlus  <Enter> {   after 50  ; .fetat.mesajo configure -text ">> Plugrandigas la literi di ta tota texto"}
		bind .fikoni.policePlus  <Leave> {  ; .fetat.mesajo configure -text ""}
		
		#ikono PoliceMoins
		set imgPoliceMoins  [image create photo -file [file join "$Voyo(rel)" imaji decrfont.png]]
		button .fikoni.policeMoins  -image $imgPoliceMoins  -relief flat -command {Vorteko::PoliceMoins $textofenestro} 
		pack .fikoni.policeMoins   -side left
		bind .fikoni.policeMoins   <Enter> {   after 50  ; .fetat.mesajo configure -text ">> Plumikrigas  la literi di ta tota texto"}
		bind .fikoni.policeMoins   <Leave> {  ; .fetat.mesajo configure -text ""}
		
		
		# ikoni Separator
		label .fikoni.separator5 -relief groove -bd 2
		pack .fikoni.separator5 -side left
		
		#ikono ortografio
		set imgOrtograf [image create photo -file [file join "$Voyo(rel)" imaji greenball.png]]
#£ 	set imgOrtograf2 [image create photo -file [file join "$Voyo(rel)" imaji redball.png]] 
		button .fikoni.ortograf  -image $imgOrtograf	 -relief flat -command {	Vorteko::Bloko } 	-bd 4 
		pack .fikoni.ortograf -side left
		bind .fikoni.ortograf  <Enter> {   after 50 ; .fetat.mesajo configure -text ">>Verifikas la ortografio di la tota texto "}
		bind .fikoni.ortograf  <Leave> {  .fetat.mesajo configure -text ""}
		
		#ikono des-ortografio
		set imgDesOrtograf [image create photo -file [file join "$Voyo(rel)" imaji redball.png]]
		button .fikoni.desortograf  -image $imgDesOrtograf	 -relief flat -command {	Vorteko::DesRedigo} 	-bd 4 
		pack .fikoni.desortograf -side left
		bind .fikoni.desortograf  <Enter> {   after 50 ; .fetat.mesajo configure -text ">>Supresas la redigo di omna vorti "}
		bind .fikoni.desortograf  <Leave> {  .fetat.mesajo configure -text ""}
		
		# ikono "kargar mea vortaro"
		set imgMeavortaro [image create photo -file [file join "$Voyo(rel)" imaji vortaro.png]] 
		set imgMeavortaro2 [image create photo -file [file join "$Voyo(rel)" imaji vortaro.png]]
		button .fikoni.vortaro  -image $imgMeavortaro	 -relief flat -command {		
			#kargar mea vortaro : persoDici.tcl ;
			Vorteko::Dikinicio } 	-bd 4 
		pack .fikoni.vortaro -side left
		bind .fikoni.vortaro  <Enter> {   after 50 ; .fetat.mesajo configure -text ">>Kargar vua propra vortaro \"persoDici.tcl\" "}
		bind .fikoni.vortaro  <Leave> { ; ; .fetat.mesajo configure -text ""}
		
		#ikono TempoVorti+
		set imgTempovorti [image create photo -file [file join "$Voyo(rel)" imaji tempovorti.png]]
		button .fikoni.tempovorti  -image $imgTempovorti  -relief flat -command {Vorteko::TempoDikinicio }  		-bd 2 
		pack .fikoni.tempovorti -side left
		bind .fikoni.tempovorti <Enter> {   after 50  ; .fetat.mesajo configure -text ">>Insertar vua vorti en la temporala dicionarii apertita "}
		bind .fikoni.tempovorti <Leave> {  ; .fetat.mesajo configure -text ""}
		
		#ikono TempoVorti--
		set imgTempovorti2 [image create photo -file [file join "$Voyo(rel)" imaji tempovorti2.png]]
		button .fikoni.tempovorti2  -image $imgTempovorti2  -relief flat -command {Vorteko::SupresarVorti }  		-bd 2 
		pack .fikoni.tempovorti2 -side left
		bind .fikoni.tempovorti2 <Enter> {   after 50  ; .fetat.mesajo configure -text ">>Supresar vua vorti de la nuna dicionarii enkargita "}
		bind .fikoni.tempovorti2 <Leave> {  ; .fetat.mesajo configure -text ""}
		
		#ikono Separator
		label .fikoni.separator6 -relief groove -bd 2
		pack .fikoni.separator6 -side left
		
		#ikono surkolorigo
		set imgSurKolorigo [image create photo -file [file join "$Voyo(rel)" imaji surcolorier.png]]
		
		button .fikoni.surkolorigo  -image $imgSurKolorigo	 -relief flat -command {Vorteko::SelektoSurlineago $textofenestro } 	-bd 4 
		pack .fikoni.surkolorigo -side left
		bind .fikoni.surkolorigo <Enter> {   after 50 ; .fetat.mesajo configure -text ">>Permisas de surkolorigar kelka vorti enskribata"}
		bind .fikoni.surkolorigo <Leave> { ; ; .fetat.mesajo configure -text ""}
		
		#ikono armoro
		set imgArmoro [image create photo -file [file join "$Voyo(rel)" imaji tampon.png]]
		button .fikoni.armoro  -image $imgArmoro  -relief flat -command {Vorteko::Armoro $textofenestro} 		-bd 2 
		pack .fikoni.armoro -side left
		bind .fikoni.armoro <Enter> {   after 50  ; .fetat.mesajo configure -text ">>Insertas la texto selektata aden la armoro "}
		bind .fikoni.armoro <Leave> { ; .fetat.mesajo configure -text ""}
		
		
		#ikono markizar
		set imgMarkizar [image create photo -file [file join $Voyo(rel) imaji marko.png]]
		button .fikoni.markizar -image $imgMarkizar -relief flat -command { Vorteko::SelektarMarki $textofenestro} 
		pack .fikoni.markizar -side left
		bind .fikoni.markizar <Enter> {  .fetat.mesajo configure -text ">> Insertar marko an kursoro..."}
		bind .fikoni.markizar <Leave> {   ; .fetat.mesajo configure -text ""}
		
		# ikono helpo
		set imgHelpo [image create photo -file [file join $Voyo(rel) imaji helpo.png ]]
		button .fikoni.helpo -relief flat  -image $imgHelpo  -command { Vorteko::Helpo} 
		pack .fikoni.helpo -side right
		bind .fikoni.helpo <Enter> {after 50  ; .fetat.mesajo configure -text ">> Apertas nova fenestro por la helpa pagini" }
		bind .fikoni.helpo <Leave> { .fetat.mesajo configure -text ""}
		
		
			
		######################################################
		#<MENUI>
		######################################################
		
		#<MENUI_Klasika>  de redakto
		
		#MENU fichero
	$Dokumenti add command -label "Nova texto" -accelerator Ktrl+n \
			-command 	 {Vorteko::Nova }
		$Dokumenti add command -label "Apertar" -accelerator Ktrl+O \
			-command { Vorteko::Apertar }
		
		$Dokumenti add cascade -label "Recenta" -menu $Dokumenti.lRecenta
		menu $Dokumenti.lRecenta -tearoff 1
		Vorteko::MaJMenuRecenta
		
		$Dokumenti add command -label "Salvar" -accelerator Ktrl+S \
			-command { Vorteko::Salvar $textofenestro 0 }
		$Dokumenti add command -label "Salvar kom..." -accelerator Ktrl+Shift+S \
			-command { Vorteko::Salvar $textofenestro 1 }
		$Dokumenti add command -label "Klozar texto" -accelerator Ktrl+K \
			-command { Vorteko::Klozar $textofenestro }
		$Dokumenti add separator
		$Dokumenti add command -label "Imprimar texto"  \
			-command { Vorteko::Imprimar $textofenestro}
		$Dokumenti add separator
		$Dokumenti add command -label "Livar Vorteko" -accelerator Ktrl+Q \
			-command Vorteko::Livar
		
#<MENUO_redaktar>
		$Redaktar add command -label "Serchar" \
			-command "Vorteko::Selektarvorto "
		$Redaktar add command -label "Remplasar"\
			-command {Vorteko::Remplasar $textofenestro}
		$Redaktar add separator
		
		if {$tcl_version>=8.4} {
		  $Redaktar add command -label "Desfacar" -accelerator Ktrl+Z\
			  -command { Vorteko::Desfacar $textofenestro }
		  $Redaktar add command -label "Rifacar" -accelerator Ktrl+E\
			  -command { Vorteko::Rifacar $textofenestro }
		  $Redaktar add separator
		}
		
		$Redaktar  add command -label "Sekar" -accelerator Ktrl+X\
			-command { Vorteko::Sekar $textofenestro}
		$Redaktar  add command -label "Kopiar" -accelerator Ktrl+C\
			-command { Vorteko::Kopiar $textofenestro }
		$Redaktar  add command -label "Glutinar" -accelerator Ktrl+V\
			-command { Vorteko::Glutinar $textofenestro }
		$Redaktar add separator
		$Redaktar add command -label "Selektar tote" -accelerator Ktrl+A \
			-command { Vorteko::ToteSelektar $textofenestro }
		
#<MENU_utensili>
		$Utensili add command -label "Verifikar ortografio" 			-command { Vorteko::Bloko } -accelerator Ktrl-g
		$Utensili add command -label "DesRedigar literi" 	-command { Vorteko::DesRedigo } -accelerator Maj+Kontrol+G
		$Utensili add separator
		$Utensili add command -label "Adjuntar dicionarii en memorostoko " -command {  Vorteko::Dikinicio }
		$Utensili add command -label "Adjuntar vorti en memorostoko " -command { Vorteko::TempoDikinicio }
		$Utensili add command -label "Vidar la vorti adjuntita " -command { Vorteko::VidarAdjuntitaVorti }  
		$Utensili add command -label "Supresar vorti de la memorostoko " -command { Vorteko::SupresarVorti }
		$Utensili add command -label "Supresar tote la dicionarii de la memorostoko " -command { Vorteko::Netigar } 
		$Utensili add separator
		$Utensili add command -label "Maskar la selektajo" -command {Vorteko::MaskarSelekto $textofenestro} 	-accelerator Ktrl+m
		$Utensili add command -label "Surkolorigar" -command {Vorteko::SelektoSurlineago $textofenestro} 
		$Utensili add separator
		
		
#<MENUO_preferaji>
		$Preferaji add command -label "Purgar \"menuo recenta\" " \
	  -command { Vorteko::PurgarRecenta  }
	  
	  $Preferaji add separator
	  
		$Preferaji add  cascade -label "Retro-veno a lineo" -menu $Preferaji.menuRetroiroLineo
	 $Preferaji add cascade -label "Stango de informaji" -menu $Preferaji.menuEtat
	$Preferaji add cascade -label "Numeri di linei" -menu $Preferaji.menuNumLignes
	  
	 $Preferaji add separator
	  
		$Preferaji add separator
		$Preferaji add command -label "Selekto Modeli di literi" \
			-command {Vorteko::SelektoFonte }		
		$Preferaji add command -label "Plugrandigar literi" \
			-command {Vorteko::PolicePlus $textofenestro}
		$Preferaji add command -label "plumikrigar literi" \
			-command {Vorteko::PoliceMoins $textofenestro}
		
		
		menu $Preferaji.menuRetroiroLineo
		$Preferaji.menuRetroiroLineo  	add radio -label "nulu" -variable wrap -value "none" -command {Vorteko::RetroiroLineo none}
		$Preferaji.menuRetroiroLineo  	add radio -label "signo" -variable wrap -value "char" -command {Vorteko::RetroiroLineo  char}
		$Preferaji.menuRetroiroLineo  	add radio -label "vorto" -variable wrap -value "word" -command {Vorteko::RetroiroLineo  word}
		
		menu $Preferaji.menuEtat
		$Preferaji.menuEtat 	add radio -label "alte" -variable loko -value "alto" -command {Vorteko::StandoStingo alto}
		$Preferaji.menuEtat 	add radio -label "baze" -variable loko -value "bazo" -command {Vorteko::StandoStingo bazo}
		
		menu $Preferaji.menuNumLignes
		$Preferaji.menuNumLignes  	add radio -label "yes" -variable loko -value "alto" -command {$textofenestro configure -linemap 1}
		$Preferaji.menuNumLignes  	add radio -label "ne" -variable loko -value "bazo" -command {$textofenestro configure -linemap 0}
		
		 $Preferaji add separator
		
		$Preferaji add command -label "Salvar vua preferaji" \
			-command {Vorteko::SalvarFigurizo }
		
		
#<MENUO_helpo>
		
		$Helpo 	add command -label "Helpo Vorteko" -background cyan			-command  " Vorteko::Helpo "
		$Helpo add separator
		$Helpo	add command -label "Pri Vorteko..."\
			-command {global versiono ; tk_messageBox -message " Vorteko por Ido-linguo\n da Lenadi Moucina \n versiono $versiono \n Marto 2011 \n libera programo\
			\n\n La ikono di Vorteko \n es la ideogramo pri homo, \n ek la skrib-linguo di Lolo-i, \n populo di Chinia"}
		
	
	
#<MENUO_armoro>
 		$Armoro configure -background gray
		$Armoro add command	-label "Vakuigar la armoro"	-command {.menubar.mArmoro add separator ; .menubar.mArmoro delete 2 end}  -foreground red

#<MENUOmarki>
 		$Marki add command -label "Insertar marko" -command {Vorteko::SelektarMarki $textofenestro}
		$Marki add command -label "Supresar marko" -command {Vorteko::SupresarMarki $textofenestro}
		$Marki add separator
				
#<MENUOpagini>
		# on met à jour le menu Pages	 avec la page par défaut
		set selektajo  "Ike skribesos la voyo di la dokumento apertita "
		$Pagini	add radio -label "pagino : 0" -command " Vorteko::Afichar 0 $selektajo " 
		
		
	#<STANGOdiStando> 
		
		frame .fetat -bd 2 -relief flat
		pack .fetat -fill both -before .ftext
	
		label .fetat.fichero -anchor w -relief sunken -foreground black 	-width 100 -font {courrier 10} -text $selektajo 
		label .fetat.mesajo -anchor w -relief sunken -foreground black  -font {courrier 10} -bg #fff9c1   
		label .fetat.nombroLinei -width 22 -anchor w -relief sunken -foreground red  -font {courrier 10} 
		
		pack .fetat.mesajo -ipadx 8 -side bottom -fill x -expand true
		pack .fetat.fichero -ipadx 8 -side left -fill x -expand true
		pack .fetat.nombroLinei -ipadx 8 -side left

		
		if { ! [ string compare $tcl_platform(platform) "unix" ] } {
		  bind Text <Control-v> {}
		}
		
#<BIND> listo di agadi ligata a la klaviero ed a la muso 

		
		bind . <Control-o> { Vorteko::Apertar }
		bind . <Control-n> { Vorteko::Nova }
		bind . <Shift-Control-S> { Vorteko::Salvar $textofenestro 1 }
		bind . <Control-s> { Vorteko::Salvar $textofenestro 0 }
		bind . <Control-k> { Vorteko::Klozar $textofenestro }
		bind . <Control-q> Vorteko::Livar
		
		bind . <Control-e> { Vorteko::Rifacar $textofenestro }
		bind . <Control-z> { Vorteko::Desfacar $textofenestro }
		
		bind . <Control-a> { Vorteko::ToteSelektar $textofenestro}
		bind . <Control-x>	 { Vorteko::Sekar $textofenestro}
		bind . <Control-v> { Vorteko::GlutinarBindala $textofenestro }
		bind $textofenestro <3> { tk_popup .menubar.mRedaktar %X %Y } 
		bind . <KeyPress-Escape> {Vorteko::EskapoChanji $textofenestro}
		bind . <KeyPress-Return> { Vorteko::AutoDentizito $textofenestro ; 	Vorteko::NombroLinei $textofenestro .fetat.nombroLinei ; }
		bind . <ButtonRelease-1> { Vorteko::NombroLinei $textofenestro .fetat.nombroLinei ; }
		bind . <KeyPress-Delete> {Vorteko::NombroLinei $textofenestro .fetat.nombroLinei  ;  }
		bind . <KeyPress-BackSpace> {Vorteko::NombroLinei $textofenestro .fetat.nombroLinei  ;  }
		
		bind . <Control-m> {Vorteko::MaskarSelekto $textofenestro} 
		
#ortografio bindo 
		bind . <KeyPress-space> {Vorteko::NombroLinei $textofenestro .fetat.nombroLinei  ;  Vorteko::OrtografioKlavaro }
		bind . <KeyPress-Return> { Vorteko::NombroLinei $textofenestro .fetat.nombroLinei  ; Vorteko::OrtografioKlavaro}
		
 		bind . <Control-g> {Vorteko::Bloko } 
		bind . <Shift-Control-G>  { Vorteko::DesRedigo }
		
		
	  }
		

#________________________________________________________
	
	# Helpo : afichar la fichero "helpo_Vorteko.txt" en un °toplevel
	
proc Vorteko::Helpo {} {
		variable programo
		global versiono
		global Voyo
		global Size
		
		if [winfo exists .helpo] {	destroy .helpo}
		toplevel .helpo
		bell -displayof .helpo
		wm title .helpo "Helpo pri VORTEKO $versiono "
		wm resizable .helpo 0 0
		


#<interfacioHelpo>

frame .helpo.f
	pack .helpo.f -side top -expand true -fill x
	label .helpo.f.labelFonte -text " Staturo di literi "
	button .helpo.f.plus -text " + " -command { Vorteko::PolicePlusHelpo .helpo.fenestroH ; Vorteko::PolicePlusHelpo .helpo.somario ;Vorteko::tagHelpo }
	  button .helpo.f.moins -text " _ " -command { Vorteko::PoliceMoinsHelpo .helpo.fenestroH ; Vorteko::PoliceMoinsHelpo .helpo.somario ; Vorteko::tagHelpo }
	  pack .helpo.f.labelFonte .helpo.f.plus .helpo.f.moins  -side left -expand false
	label .helpo.f.labelNeplena -text " "
	pack .helpo.f.labelNeplena -side right  -expand true -fill x


text .helpo.somario -background lavender  -foreground BlueViolet -width 18 -height 25  -cursor arrow  -font  {times 12}
text .helpo.fenestroH   -width 70 -height 25 -yscrollcommand " .helpo.y set"  -font  {times 12} -background #ffff46  -wrap word 
scrollbar .helpo.y -orient vertical -command {.helpo.fenestroH yview} 
pack .helpo.somario   -expand true	-fill y  -side left 
pack  .helpo.fenestroH   -expand true	-fill both  -side left 
pack .helpo.y  -expand true  -fill y  -side left

	
#<tags_sommaire>
foreach tag {t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12} {
	.helpo.somario tag bind $tag <Any-Enter> ".helpo.somario tag configure $tag -foreground white -background  RosyBrown " 
	.helpo.somario tag bind $tag <Any-Leave> ".helpo.somario tag configure $tag -foreground BlueViolet  -background  lavender"
}

#<insertion_sommaire>
.helpo.somario insert end " \n" t00
.helpo.somario insert end "Helpo \n" t0
.helpo.somario  insert end "Generalaji \n" t1
.helpo.somario  insert end "Menuo Dokumenti \n" t2
.helpo.somario  insert end "Menuo Redaktar\n" t3
.helpo.somario  insert end "Menuo Utensili \n" t4
.helpo.somario  insert end "Menuo Preferaji \n" t7
.helpo.somario  insert end "Menuo Armoro \n" t10
.helpo.somario  insert end "Ikoni \n" t5
.helpo.somario  insert end "Klavi magiala \n" t6
.helpo.somario  insert end "Marki\n" t11 
.helpo.somario  insert end "Ortografio\n" t9
.helpo.somario  insert end "Vorti\n" t12

#<liens_tags_ficheri_Helpotxt>

set ficheroHtml [ open  [file join "$Voyo(rel)" helpo acepto.txt ] ]
set helpoAfichar [ read -nonewline $ficheroHtml ]
close $ficheroHtml
.helpo.fenestroH delete 1.0 end
.helpo.fenestroH insert 1.0 $helpoAfichar
Vorteko::tagHelpo 
  
.helpo.somario  tag bind t0 <1> { set ficheroHtml [ open  [file join "$Voyo(rel)" helpo acepto.txt ] ]
set helpoAfichar [ read -nonewline $ficheroHtml ]
close $ficheroHtml
.helpo.fenestroH delete 1.0 end
.helpo.fenestroH insert 1.0 $helpoAfichar 
Vorteko::tagHelpo }

.helpo.somario  tag bind t1 <1> { set ficheroHtml [ open  [file join "$Voyo(rel)" helpo generalaji.txt ] ]
set helpoAfichar [ read -nonewline $ficheroHtml ]
close $ficheroHtml
.helpo.fenestroH delete 1.0 end
.helpo.fenestroH insert 1.0 $helpoAfichar 
Vorteko::tagHelpo }

.helpo.somario  tag bind t2 <1> { set ficheroHtml [ open  [file join "$Voyo(rel)" helpo dokumenti.txt ] ]
set helpoAfichar [ read -nonewline $ficheroHtml ]
close $ficheroHtml
.helpo.fenestroH delete 1.0 end
.helpo.fenestroH insert 1.0 $helpoAfichar
Vorteko::tagHelpo  }

.helpo.somario  tag bind t3 <1> {set ficheroHtml [ open  [file join "$Voyo(rel)" helpo redaktar.txt ] ]
set helpoAfichar [ read -nonewline $ficheroHtml ]
close $ficheroHtml
.helpo.fenestroH delete 1.0 end
.helpo.fenestroH insert 1.0 $helpoAfichar 
Vorteko::tagHelpo }

.helpo.somario  tag bind t4 <1> { set ficheroHtml [ open  [file join "$Voyo(rel)" helpo utensili.txt] ]
set helpoAfichar [ read -nonewline $ficheroHtml ]
close $ficheroHtml
.helpo.fenestroH delete 1.0 end
.helpo.fenestroH insert 1.0 $helpoAfichar 
Vorteko::tagHelpo }


.helpo.somario  tag bind t5 <1> {set ficheroHtml [ open  [file join "$Voyo(rel)" helpo ikoni.txt ] ]
set helpoAfichar [ read -nonewline $ficheroHtml ]
close $ficheroHtml
.helpo.fenestroH delete 1.0 end
.helpo.fenestroH insert 1.0 $helpoAfichar 
Vorteko::tagHelpo }

.helpo.somario  tag bind t6 <1> {set ficheroHtml [ open  [file join "$Voyo(rel)" helpo klavi_magiala.txt ] ]
set helpoAfichar [ read -nonewline $ficheroHtml ]
close $ficheroHtml
.helpo.fenestroH delete 1.0 end
.helpo.fenestroH insert 1.0 $helpoAfichar 
Vorteko::tagHelpo }

.helpo.somario  tag bind t7 <1> {set ficheroHtml [ open  [file join "$Voyo(rel)" helpo preferaji.txt ] ]
set helpoAfichar [ read -nonewline $ficheroHtml ]
close $ficheroHtml
.helpo.fenestroH delete 1.0 end
.helpo.fenestroH insert 1.0 $helpoAfichar 
Vorteko::tagHelpo }

.helpo.somario  tag bind t8 <1> {set ficheroHtml [ open  [file join "$Voyo(rel)" helpo maski.txt ] ]
set helpoAfichar [ read -nonewline $ficheroHtml ]
close $ficheroHtml
.helpo.fenestroH delete 1.0 end
.helpo.fenestroH insert 1.0 $helpoAfichar
Vorteko::tagHelpo  }

.helpo.somario  tag bind t9 <1> {set ficheroHtml [ open  [file join "$Voyo(rel)" helpo ortografio.txt ] ]
set helpoAfichar [ read -nonewline $ficheroHtml ]
close $ficheroHtml
.helpo.fenestroH delete 1.0 end
.helpo.fenestroH insert 1.0 $helpoAfichar 
Vorteko::tagHelpo }

.helpo.somario  tag bind t10 <1> {set ficheroHtml [ open  [file join "$Voyo(rel)" helpo armoro.txt ] ]
set helpoAfichar [ read -nonewline $ficheroHtml ]
close $ficheroHtml
.helpo.fenestroH delete 1.0 end
.helpo.fenestroH insert 1.0 $helpoAfichar
Vorteko::tagHelpo }

.helpo.somario  tag bind t11 <1> {set ficheroHtml [ open  [file join "$Voyo(rel)" helpo marki.txt ] ]
set helpoAfichar [ read -nonewline $ficheroHtml ]
close $ficheroHtml
.helpo.fenestroH delete 1.0 end
.helpo.fenestroH insert 1.0 $helpoAfichar
Vorteko::tagHelpo }

.helpo.somario  tag bind t12 <1> {set ficheroHtml [ open  [file join "$Voyo(rel)" Vorti.txt ] ]
set helpoAfichar [ read -nonewline $ficheroHtml ]
close $ficheroHtml
.helpo.fenestroH delete 1.0 end
.helpo.fenestroH insert 1.0 $helpoAfichar
Vorteko::tagHelpo }




bind .helpo.somario  <3> { destroy .helpo}
bind  .helpo.fenestroH  <3> { destroy .helpo}

		return 0
  }

proc Vorteko::tagHelpo {} {
	global Size

	.helpo.fenestroH tag configure tagoHelpo -foreground blue -font "helvetica $Size bold "
	 
	for {set i 0} {$i <100} {incr i} {
	if { [string match [.helpo.fenestroH get $i.0] \> ] == 1} { 
	.helpo.fenestroH tag add tagoHelpo $i.0 "$i.0 lineend"
	}
	}
}
		
proc Vorteko::PolicePlusHelpo {textofenestro} {
		global Size
		incr Size
				
 $textofenestro configure -font "times $Size"
	  }
	  
proc Vorteko::PoliceMoinsHelpo {textofenestro} {
		global Size		
		incr Size -1
 $textofenestro configure -font "times $Size"
	  }
	  	
#_____________________________________________________________________________
	  
# LANSO DE Vorteko	  
	  
 	  catch {Vorteko::LektarFigurizo}
	  catch {Vorteko::LektarListoRecenta}
	 
	after 100 raise .inicio 
	
	. configure   -highlightthickness 4 -highlightcolor gray -highlightbackground gray 
	
 	Vorteko::Interfacio

	set totalVortari 0
	foreach elemento [array names dico ] { set totalVortari [expr $totalVortari + [llength $dico($elemento) ] ] }

	after 50 raise .inicio 
	.inicio.t  insert 1.0 "\n\n\n Komplete kargita\n Nombro de vorti :\n$totalVortari \n Nombro de\nvortari interna : [llength [array names dico]]\n Vu povas \nlaborar.\n\n" init 
	
	after 1000 destroy .inicio 
	

#FINO di Vorteko
	  
	  
