FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Mejoras para scintilla
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: Mejoras para scintilla
Posted: Sat Dec 27, 2014 07: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
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: Mejoras para scintilla
Posted: Sat Dec 27, 2014 07: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 (fw): Select all Collapse
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
Posts: 1516
Joined: Thu May 27, 2010 02:06 PM
Re: Mejoras para scintilla
Posted: Sat Dec 27, 2014 08:38 PM

Cristobal , mejor aún .

Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: Mejoras para scintilla
Posted: Sat Dec 27, 2014 08: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 (fw): Select all Collapse
//----------------------------------------------------------------------------//

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 (fw): Select all Collapse
oEditor:SetZoom( -1 )


Más grande
Code (fw): Select all Collapse
oEditor:SetZoom( +1 )


Volver al tamaño inicial
Code (fw): Select all Collapse
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
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Mejoras para scintilla
Posted: Sun Dec 28, 2014 09: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
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Mejoras para scintilla
Posted: Sun Dec 28, 2014 09: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
Posts: 1516
Joined: Thu May 27, 2010 02:06 PM
Re: Mejoras para scintilla
Posted: 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 (fw): Select all Collapse
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 (fw): Select all Collapse
@ 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 ) ) )+ "%" ) }


Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: Mejoras para scintilla
Posted: Sun Dec 28, 2014 01: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
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: Mejoras para scintilla
Posted: Sun Dec 28, 2014 01: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
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: Mejoras para scintilla
Posted: Sun Dec 28, 2014 01: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
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Mejoras para scintilla
Posted: Sun Dec 28, 2014 01: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
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: Mejoras para scintilla
Posted: Sun Dec 28, 2014 02: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
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: Mejoras para scintilla
Posted: Sun Dec 28, 2014 02: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
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: Mejoras para scintilla
Posted: Sun Dec 28, 2014 02: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
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: Mejoras para scintilla
Posted: Sun Dec 28, 2014 02: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
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