Next: 3.8.3 El borrado de 
Up: 3.8 El comportamiento del 
 Previous: 3.8.1 Activación del editor 
 
 
Para tratar correctamente la inserción de nuevos caracteres en el
texto de un componente léxico es preciso capturar los eventos producidos por 
la pulsación de alguna tecla en el teclado.
Cuando se produce uno de tales eventos se invoca a la función 
select-inserted-text. Esta función toma como argumento la instancia
de {textedit} almacenada como componente TEXTEDITOR en
la jerarquía de aplicaciones de ICEeditor y un símbolo que
indentifica el tipo de modificación que se ha realizado sobre el
editor de texto.
La función select-inserted-text realiza las siguientes
acciones:
-  Comprobar que el carácter que se va insertar se encuentra en
	una posición válida, entendiéndose como válidas todas las
	posiciones comprendidas entre el primer carácter del texto
	actual del componente léxico y el último carácter del texto actual del
	componente léxico
. Este control es necesario puesto que 
	textedit no proporciona ninguna manera de capturar los movimientos de
	las teclas del cursor. Tan sólo se pueden capturar los eventos del
	teclado cuando se modifica el texto del editor
.
	Para realizar esta comprobación es preciso realizar el
	siguiente conjunto de operaciones:
	
-  Si el parámetro command tiene como valor el
		símbolo te-interactive-
line-break, entonces es que se
		está tratando de insertar un caracter de salto de
		línea. En tal caso se realizan las operaciones siguientes:
		
-  Borrar el salto de línea.
 -  Comprobar que la posición en la cual se está intentando
			insertar el carácter de salto de línea es una posición
			válida dentro del componente léxico. Esto se hace situando un cursor al comienzo
			del texto del componente léxico y desplazándolo a la derecha un número de
			posiciones igual al número de caracteres actuales del componente léxico.
 -  Si es una posición válida, entonces se inserta realmente el
			salto de línea.
		
 
 -  Si el parámetro command es diferente de 
		te-interactive-line-break, es que se está inentando insertar un
		carácter ordinario
. En este caso se procede como
		sigue:
		
-  Se mueve el cursor de inserción una posición
			a la izquierda, para de este modo quedar situado en la posición en
			la que ralmente se insertó el carácter.
 -  Comprobar que dicha posición se encuentra dentro de los
			límites impuestos por el texto del componente léxico.
 -  Si es así, se retorna el cursor a su posición original.
 -  Si la posición no es válida, entonces se borra el carácter
			introducido, con lo cual el texto retorna al estado en que se
			encontraba antes de insertar el carácter. Se emite una señal
			audible para advertir al usuario de que la
			acción realizada no es válida.
		
 
 
 -  Extender la selección para incluir el carácter insertado, si
	éste está en una posición válida, para que se integre
	consistentemennte con el aspecto gráfico de los demás caracteres
	involucrados en operaciones del mismo tipo.
 
 
 
 
  
 Next: 3.8.3 El borrado de 
Up: 3.8 El comportamiento del 
 Previous: 3.8.1 Activación del editor 
Miguel A. Alonso Pardo 
Thu Nov 20 16:47:01 CET 1997