Mejoras para scintilla

Re: Mejoras para scintilla

Postby cnavarro » Sat Dec 27, 2014 7:42 pm

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.
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6500
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Mejoras para scintilla

Postby cnavarro » Sat Dec 27, 2014 7:50 pm

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  Expand view


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?
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6500
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Mejoras para scintilla

Postby mastintin » Sat Dec 27, 2014 8:38 pm

Cristobal , mejor aún .
User avatar
mastintin
 
Posts: 1516
Joined: Thu May 27, 2010 2:06 pm

Re: Mejoras para scintilla

Postby cnavarro » Sat Dec 27, 2014 8:55 pm

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  Expand view

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

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  Expand view

oEditor:SetZoom( -1 )
 


Más grande
Code: Select all  Expand view

oEditor:SetZoom( +1 )
 


Volver al tamaño inicial
Code: Select all  Expand view

oEditor:SetZoom(  0 )
 
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6500
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Mejoras para scintilla

Postby Antonio Linares » Sun Dec 28, 2014 9:53 am

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: 41314
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Mejoras para scintilla

Postby Antonio Linares » Sun Dec 28, 2014 9:57 am

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
Antonio Linares
Site Admin
 
Posts: 41314
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Mejoras para scintilla

Postby mastintin » Sun Dec 28, 2014 11:47 am

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  Expand view

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  Expand view


@ 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
mastintin
 
Posts: 1516
Joined: Thu May 27, 2010 2:06 pm

Re: Mejoras para scintilla

Postby cnavarro » Sun Dec 28, 2014 1:08 pm

Manuel, que te pasaba?, por qué no te funcionaba bien?
Queda muy bien el boton y el slider, voy a ver y te cuento
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6500
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Mejoras para scintilla

Postby cnavarro » Sun Dec 28, 2014 1:15 pm

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
viewtopic.php?f=6&t=24025&start=75#p169365
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6500
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Mejoras para scintilla

Postby cnavarro » Sun Dec 28, 2014 1:39 pm

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
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6500
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Mejoras para scintilla

Postby Antonio Linares » Sun Dec 28, 2014 1:49 pm

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
Antonio Linares
Site Admin
 
Posts: 41314
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Mejoras para scintilla

Postby cnavarro » Sun Dec 28, 2014 2:17 pm

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
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6500
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Mejoras para scintilla

Postby cnavarro » Sun Dec 28, 2014 2:19 pm

Manuel
Puedes compartir el metodo oSlide:GetValue()?
Aunque entiendo lo que deberia devolver, no puedo desarrollarlo ahora
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6500
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Mejoras para scintilla

Postby cnavarro » Sun Dec 28, 2014 2:25 pm

Antonio, puedes bajarte el .Exe del repositorio (en descargas esta el mismo)
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6500
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Mejoras para scintilla

Postby cnavarro » Sun Dec 28, 2014 2:57 pm

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
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6500
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

PreviousNext

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 83 guests