Mejoras para scintilla

Post Reply
User avatar
cnavarro
Posts: 5792
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Mejoras para scintilla

Post by cnavarro »

Manuel, has tenido en cuenta esta informacion?
Scintilla incorporates a "zoom factor" that lets you make all the text in the document larger or smaller in steps of one point. The displayed point size never goes below 2, whatever zoom factor you set. You can set zoom factors in the range -10 to +20 points.
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
User avatar
cnavarro
Posts: 5792
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Mejoras para scintilla

Post by cnavarro »

mastintin wrote:
Si poner un combo en el buttonbar con porcentajes de 50 en 50 o menos ( 50% , 100% , 150% ) o algo parecido .
Tengo un código que funciona :

Code: Select all


METHOD SetZoom( nZoom ) CLASS TScintilla
local  nZoomFactor :=  ::Send(SCI_GETZOOM) + nZoom/10
       ::Send( SCI_SETZOOM, nZoomFactor, 0 )

Return nil
 
Yo habia pensado en un SLIDER?, con valores de -10 a 20 y valor inicial a 0, si es que eso se puede hacer, qué opinas?
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
User avatar
mastintin
Posts: 1502
Joined: Thu May 27, 2010 2:06 pm

Re: Mejoras para scintilla

Post by mastintin »

Cristobal , mejor aún .
User avatar
cnavarro
Posts: 5792
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Mejoras para scintilla

Post by cnavarro »

De momento y a falta de efectos visuales del control, tengo puesto bitmaps en el ButtonBar y lo he implementado asi, para no tener que controlar los valores Minmo ( -10 ) y Máximo ( +20 )

Code: Select all

//----------------------------------------------------------------------------//

METHOD SetZoom( nZ )  CLASS TEdtScint
Local  nZoomFactor := ::SendEditor( SCI_GETZOOM, 0, 0 )
DEFAULT nZ  := 0
if !Empty( nZ )
   if nZ > 0
      ::SendEditor( SCI_ZOOMIN, 0, 0 )
   else
      ::SendEditor( SCI_ZOOMOUT, 0, 0 )   
   endif
else
  ::SendEditor( SCI_SETZOOM, nZ, 0 )   
endif
nZoomFactor := ::SendEditor( SCI_GETZOOM, 0, 0 )
Return nZoomFactor

//----------------------------------------------------------------------------//
 
Lo utilizo asi:
Más pequeño

Code: Select all

oEditor:SetZoom( -1 )
 
Más grande

Code: Select all

oEditor:SetZoom( +1 )
 
Volver al tamaño inicial

Code: Select all

oEditor:SetZoom(  0 )
 
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Mejoras para scintilla

Post by Antonio Linares »

Cristobal,

Estoy probando sciedit.prg (renombrado como fivedit.prg) y he observado lo siguiente:

Cuando abro un nuevo fichero, se añade una pestaña nueva en el folder, pero si cambio a la pestaña que estaba previamente seleccionada, todo el texto aparece seleccionado. Te ocurre esto a ti tambien ?
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Mejoras para scintilla

Post by Antonio Linares »

Cristobal,

Acabo de probarlo en el tuyo pero no permites abrir más de un fichero a la vez.

Si implementas el tener varios ficheros abiertos a la vez podriamos ver si te ocurre lo mismo :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
mastintin
Posts: 1502
Joined: Thu May 27, 2010 2:06 pm

Re: Mejoras para scintilla

Post by mastintin »

Cristobal , he implementado lo del zoom en sciedit de fivemac, pero tu codigo de zoom no me funcionaba adecuadamente y lo he repensado ....
el codigo en la clase :

Code: Select all

METHOD SetZoom( nZ ) CLASS TScintilla

    Local  nZoomFactor := ::SendEdit( SCI_GETZOOM, 0, 0 )
    DEFAULT nZ  := 0
    if nZ > -11 .and. nZ < 21
       ::SendEdit( SCI_SETZOOM, nZ, 0 )
    endif
    nZoomFactor := ::SendEdit( SCI_GETZOOM, 0, 0 )

Return nZoomFactor
 
He colocado un boton Flat con el prompt con el porcentaje , al pulsarlo asigno 0 al zoom y coloco el prompt adecuadamente.
. el slider lo he limitado para que coja valores desde -9 a 20
He calculado el porcentaje con ( nValorSlider+10 ) *10 siendo -9 el 10% o el 100% y 20 el 300%

el codigo del editor. Ojo es codigo fivemac pero adaptable a fwh faclimente ...

Code: Select all


@ 2, 210 BUTTON oSayZoom PROMPT "Zoom : 100%"  OF oWnd SIZE 110, 16 ;
    ACTION oSayZoom:setText("Zoom : "+ alltrim(str( ( ( oEditor:setZoom( 0 )+10)*10 ) ) )+ "%" )

    oSayZoom:SetBezelStyle( 13 )

 @ 1, 324 SLIDER oSlide SIZE 100,18 OF oWnd

  oSlide:SetMinMaxValue( -9, 20 )

oSlide:bChange := {|| oSayZoom:setText("Zoom : "+ alltrim(str( ( ( oEditor:setZoom( oSlide:GetValue() )+10)*10 ) ) )+ "%" ) }

 
Image
User avatar
cnavarro
Posts: 5792
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Mejoras para scintilla

Post by cnavarro »

Manuel, que te pasaba?, por qué no te funcionaba bien?
Queda muy bien el boton y el slider, voy a ver y te cuento
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
User avatar
cnavarro
Posts: 5792
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Mejoras para scintilla

Post by cnavarro »

Antonio Linares wrote:Cristobal,

Estoy probando sciedit.prg (renombrado como fivedit.prg) y he observado lo siguiente:

Cuando abro un nuevo fichero, se añade una pestaña nueva en el folder, pero si cambio a la pestaña que estaba previamente seleccionada, todo el texto aparece seleccionado. Te ocurre esto a ti tambien ?
Prueba a quitar el SetFocus de la function OpenFile de SciEdit.prg
http://forums.fivetechsupport.com/viewt ... 75#p169365
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
User avatar
cnavarro
Posts: 5792
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Mejoras para scintilla

Post by cnavarro »

Antonio Linares wrote:Cristobal,

Acabo de probarlo en el tuyo pero no permites abrir más de un fichero a la vez.

Si implementas el tener varios ficheros abiertos a la vez podriamos ver si te ocurre lo mismo :-)
Eso ya lo tenía y lo quité, por las pruebas que estoy haciendo, a ver que opinas del motivo

Si te fijas, en el editor tipo Win8 solo tenía un cuadro de dialogo sobre el que iba abriendo todos los documentos, o seleccionando del browse (doble click) de la izquierda en el que aparecen los documentos abiertos, sin necesidad de crear un nuevo control, solo cambiando el puntero al documento que, o se abre nuevo, o que ya estaba abierto y oculto

Cuando usamos Folder, abrimos un documento en cada pestaña, pero creando un nuevo control en cada uno de ellos, que no me convence, aunque es la forma mas sencilla pero no la que indican en la documentacion de Scintilla.org para el uso de varios documentos
http://www.scintilla.org/ScintillaDoc.h ... DOCPOINTER

Lo que mas tiempo me esta llevando es mirar este tema: ver la posibilidad de no tener que crear un nuevo control para cada nuevo dialogo (pestaña), o hacer que sea parametrizable el uso de la aplicacion en un solo cuadro de dialogo o con el Folder
De todas formas estoy terminando de crear metodos en la clase que genere los comandos necesarios para la creacion y manejo de los handles a los documentos abiertos.

Para que puedas hacer pruebas voy a subir en un ratito al repositorio una version multidocumento con el uso del Folder, tal y como lo tienes en .\Samples\SciEdit.prg
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Mejoras para scintilla

Post by Antonio Linares »

Cristobal,

No pienso que sea un problema el crear x controles Scintilla y tener uno en cada página del folder parece lo más sencillo :-)

En tu EXE aparece el problema que te he comentado ? Al abrir un nuevo fichero, el anterior aparece con todo el texto seleccionado.
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
cnavarro
Posts: 5792
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Mejoras para scintilla

Post by cnavarro »

Antonio Linares wrote:Cristobal,

No pienso que sea un problema el crear x controles Scintilla y tener uno en cada página del folder parece lo más sencillo :-)

En tu EXE aparece el problema que te he comentado ? Al abrir un nuevo fichero, el anterior aparece con todo el texto seleccionado.
Aun no lo he actualizado en el repositorio
Estas usando solo los comandos con los botones del ButtonBar?, porque el de los menus aun no estan actualizados, están los antiguos
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
User avatar
cnavarro
Posts: 5792
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Mejoras para scintilla

Post by cnavarro »

Manuel
Puedes compartir el metodo oSlide:GetValue()?
Aunque entiendo lo que deberia devolver, no puedo desarrollarlo ahora
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
User avatar
cnavarro
Posts: 5792
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Mejoras para scintilla

Post by cnavarro »

Antonio, puedes bajarte el .Exe del repositorio (en descargas esta el mismo)
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
User avatar
cnavarro
Posts: 5792
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Mejoras para scintilla

Post by cnavarro »

Por cierto, para el tema de la lista de Funciones, etc. se me ha ocurrido esto (fijate en el oTree de la izquierda) a ver que os parece
Ya esta implementado con una DATA que permite activarlo/desactivarlo
Image
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Post Reply