Iniciando com HWGUI
Moderador: Moderadores
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Iniciando com HWGUI
Preciso de ajuda.
Vou precisar de window e vou precisar da main hwgui.
Preciso de uma main invisivel, e talvez que fique recebendo e executando codeblocks
Isso é possível?
Vou precisar de window e vou precisar da main hwgui.
Preciso de uma main invisivel, e talvez que fique recebendo e executando codeblocks
Isso é possível?
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Iniciando com HWGUI
Talvez até vocês usem isso numa tela de login... ou não?
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Iniciando com HWGUI
HSayIcon ainda não está legal, tá faltando fundo transparente.
era pra ter ficado assim
era pra ter ficado assim
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Iniciando com HWGUI
Ola!
Use esse pq tem transparência. (ICON/BMP) herdam hSayImage
Saudações,
Itamar M. Lins Jr.
Código: Selecionar todos
#xcommand @ <x>,<y> BITMAP [ <oBmp> SHOW ] <bitmap> ;
[<res: FROM RESOURCE>] ;
[ OF <oWnd> ] ;
[ ID <nId> ] ;
[ SIZE <width>, <height> ] ;
[ BACKCOLOR <bcolor> ] ;
[ STRETCH <nStretch>] ;
[<lTransp: TRANSPARENT> [COLOR <trcolor> ]] ;
[ ON INIT <bInit> ] ;
[ ON SIZE <bSize> ] ;
[ ON CLICK <bClick> ] ;
[ ON DBLCLICK <bDblClick> ];
[ TOOLTIP <ctoolt> ] ;
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Iniciando com HWGUI
Ola!
Já tinha dito que na pasta samples tem exemplos.
Tem uns bugs em alguns exemplos. Mas isso quando o pessoal voltar a mexer vou avisando para eles.
Saudações,
Itamar M. Lins Jr.
Já está no SVN a opção para ADO... Vc não está lendo as postagens.Achei o browse com cores, o browse zebrado, e até um browse ADO com meu nome kkkkk
Já tinha dito que na pasta samples tem exemplos.
Tem uns bugs em alguns exemplos. Mas isso quando o pessoal voltar a mexer vou avisando para eles.
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Iniciando com HWGUI
Tô chegando lá....
Ao invés de caçar manual.....
Ao invés de caçar manual.....
hbmk2 -doc hwindow
SYNTAX
------
INIT WINDOW <oWnd>
APPNAME <appname> TITLE <cTitle> AT <x>, <y> SIZE <nWidth>, <nHeight> ICON <ico>
SYSCOLOR <clr> COLOR <bColor> BACKGROUND BITMAP <oBmp> STYLE <nStyle> EXCLUDE <nExclude>
FONT <oFont> MENU <cMenu> MENUPOS <nPos>
ON INIT <bInit> ON SIZE <bSize> ON PAINT <bPaint> ON GETFOCUS <bGfocus>
ON LOSTFOCUS <bLfocus> ON OTHER MESSAGES <bOther> ON EXIT <bExit>
HELP <cHelp> HELPID <nHelpId>
SEEALSO
-------
hdialog
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Iniciando com HWGUI
Bom....
Quero fazer igual console.
Já tenho a tela do aplicativo inteiro, pra ser usada por herança.
Agora é a vez do browse: um browse único pro aplicativo inteiro, ou dois.
Vão ver o que um programador console consegue fazer em GUI ! kkkk
Quero fazer igual console.
Já tenho a tela do aplicativo inteiro, pra ser usada por herança.
Agora é a vez do browse: um browse único pro aplicativo inteiro, ou dois.
Vão ver o que um programador console consegue fazer em GUI ! kkkk
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Iniciando com HWGUI
Vai ficar quase igual em HWGUI.
Código: Selecionar todos
#include "hbclass.ch"
#include "inkey.ch"
MEMVAR m_Prog
PROCEDURE pBancoCCusto
LOCAL oFrm := JPBACCUSTOClass():New()
IF ! AbreArquivos( "jpempresa", "jptabel", "jpconfi" )
RETURN
ENDIF
oFrm:Execute()
RETURN
CREATE CLASS JPBACCUSTOClass INHERIT FrmCadastroClass
VAR axKeyValue INIT { 0 }
VAR cDataTable INIT "JPBACCUSTO"
VAR cDataField INIT "IDBACCUSTO"
VAR cnSQL INIT ADOClass():New( AppConexao() )
METHOD Especifico( lExiste )
METHOD TelaDados( lEdit )
METHOD GridSelection()
ENDCLASS
METHOD GridSelection() CLASS JPBACCUSTOClass
LOCAL oTBrowse, bCode
LOCAL cnSQL := ADOClass():New( AppConexao() )
WITH OBJECT cnSQL
:cSQL := "SELECT IDBACCUSTO, CUCCUSTO, CUGRUPO FROM JPBACCUSTO ORDER BY CUCCUSTO"
:Execute()
oTBrowse := { ;
{ "CCUSTO", { || :String( "CUCCUSTO", 10 ) } }, ;
{ "GRUPO", { || :String( "CUGRUPO", 10 ) } }, ;
{ "#ID", { || Str( :Number( "IDBACCUSTO" ), 6 ) } } }
IF "ID" $ Upper( ReadVar() )
bCode := { || Ltrim( Str( :Number( "IDBACCUSTO" ) ) ) }
ELSE
bCode := { || :String( "CUCCUSTO" ) }
ENDIF
BrowseADO( cnSQL, oTBrowse, "CUCCUSTO,CUGRUPO", bCode )
:CloseRecordset()
ENDWITH
RETURN NIL
METHOD Especifico( lExiste ) CLASS JPBACCUSTOClass
LOCAL GetList := {}, nIdbaCCusto := 0
IF ::cOpc != "I"
nIdBaCCusto := ::axKeyValue[ 1 ]
@ Row() + 1, 20 GET nIdbaCCusto PICTURE "@K 999999" VALID nIdbaCCusto > 0
Mensagem( "Digite código para cadastro, F9 Pesquisa, ESC sai" )
READ
Mensagem()
IF LastKey() == K_ESC .OR. nidbaCCusto < 0
RETURN .F.
ENDIF
IF ! ::EspecificoExiste( lExiste, ADORecCount( "JPBACCUSTO", "IDBACCUSTO = " + NumberSQL( nidBaCCusto ) ) == 0 )
RETURN .F.
ENDIF
ENDIF
::axKeyValue := { nIdBaCCusto }
RETURN .T.
METHOD TelaDados( lEdit ) CLASS JPBACCUSTOClass
LOCAL GetList := {}, nidbaCCusto, mcuGrupo, mcuCCusto
LOCAL cnSQL := ADOClass():New( AppConexao() )
nIdBaCCusto := ::axKeyValue[ 1 ]
WITH OBJECT cnSQL
:cSQL := "SELECT * FROM JPBACCUSTO WHERE IDBACCUSTO = " + NumberSQL( nIdbaCCusto )
:Execute()
mcuGrupo := :String( "CUGRUPO", 10 )
mcuCCusto := :String( "CUCCUSTO", 10 )
:CloseRecordset()
ENDWITH
hb_Default( @lEdit, .F. )
DO WHILE .T.
::ShowTabs()
DO CASE
CASE ::nNumTab == 1
@ Row() + 1, 1 SAY "#ID..............:" GET nidbaCCusto PICTURE "999999" WHEN .F.
@ Row() + 2, 1 SAY "Centro de Custo..:" GET mcuCCusto PICTURE "@K!"
@ Row() + 2, 1 SAY "Grupo de CCusto..:" GET mcuGrupo PICTURE "@K!"
ENDCASE
//SetPaintGetList( GetList )
IF lEdit
Mensagem( "Digite campos, F9 Pesquisa, ESC Sai" )
READ
Mensagem()
ELSE
CLEAR GETS
EXIT
ENDIF
::nNumTab += 1
IF LastKey() == K_ESC .OR. ::nNumTab > 1
EXIT
ENDIF
ENDDO
IF ! lEdit .OR. LastKey() == K_ESC
RETURN NIL
ENDIF
WITH OBJECT cnSQL
:QueryCreate()
:QueryAdd( "CUCCUSTO", mcuCCusto )
:QueryAdd( "CUGRUPO", mcuGrupo )
IF ::cOpc == "I"
:QueryAdd( "CUINFINC", LogInfo() )
nidbaCCusto := :QueryExecuteInsert( "JPBACCUSTO" )
::axKeyValue := { nidbaCCusto }
ELSE
:QueryAdd( "CUINFALT", LogInfo() )
:QueryExecuteUpdate( "JPBACCUSTO", "IDBACCUSTO= " + NumberSQL( nidbaCCusto ) )
ENDIF
ENDWITH
RETURN NIL
FUNCTION ValidBancarioCCusto( cResumo )
LOCAL lOk := .T.
DO CASE
CASE cResumo == Pad( "APLIC", 10 )
CASE cResumo == Pad( "NENHUM", 10 )
CASE Empty( cResumo ) .AND. m_Prog != "PBANCOGRAFICOMES"
CASE ADORecCount( "JPBACCUSTO", "CUCCUSTO= " + StringSQL( cResumo ) ) == 0
MsgWarning( "Despesa/Receita não cadastrada!" )
lOk := .F.
ENDCASE
RETURN lOk
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Iniciando com HWGUI
Programar igual GTWVG é lindo....
Pensei que ia demorar mais.
Acrescentei funcionalidade.
Mas sem fonte, o módulo usa a programação default.
https://youtu.be/IkKPkP6SKCo
Pensei que ia demorar mais.
Acrescentei funcionalidade.
Mas sem fonte, o módulo usa a programação default.
Código: Selecionar todos
FUNCTION PTESHWGUI( cModule, cTitulo )
LOCAL oFrm := UmaTelaClass():New( cTitulo, cModule, "CIAEPU+-", "d:\jpa\cordeiro\jpcidade" )
oFrm:Execute()
RETURN Nil
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Iniciando com HWGUI
Pra quem quiser brincar.
Fonte, ícones, manifest, EXE assinado...
Precisa chamar o EXE passando o nome de um DBF.
Ainda não sei colocar mensagem caso falte o nome do arquivo.
Como eu já disse por aqui, meus ícones são multiresolução, e o tamanho é grande, por isso o ZIP e o EXE são grandes.
Um único fonte, e o EXE ficou com quase 1MB compactado.
Acho que a parte interessante é o uso de classe, e não os recursos de hwgui, porque não tem quase nada de hwgui, só básico, só o que está no vídeo.
o fonte é "pelado", então deve usar DBFNTX. e não deve servir dbf com memo FPT ou campo lógico.
"pelado" significa que tirei do aplicativo e ficou sem a parte que configura set date, rdd, etc.
Só não esqueçam que precisa chamar passando o nome de um DBF qualquer
Fonte, ícones, manifest, EXE assinado...
Precisa chamar o EXE passando o nome de um DBF.
Ainda não sei colocar mensagem caso falte o nome do arquivo.
Como eu já disse por aqui, meus ícones são multiresolução, e o tamanho é grande, por isso o ZIP e o EXE são grandes.
Um único fonte, e o EXE ficou com quase 1MB compactado.
Acho que a parte interessante é o uso de classe, e não os recursos de hwgui, porque não tem quase nada de hwgui, só básico, só o que está no vídeo.
o fonte é "pelado", então deve usar DBFNTX. e não deve servir dbf com memo FPT ou campo lógico.
"pelado" significa que tirei do aplicativo e ficou sem a parte que configura set date, rdd, etc.
Só não esqueçam que precisa chamar passando o nome de um DBF qualquer
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Iniciando com HWGUI
Melhorou, poluição movida pra "poluição sobre lib gráfica", no bate papo.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Iniciando com HWGUI
Vou dar uma fuçada, pra ver como é, embora eu use MiniGUI...
Ramon A. Körber Jr.
Harbour 3.2 MiniGUI Extended Edition
xDevStudio v0.70 - BCC 5.82 - Lazarus FreePascal
Firebird
AdoDB - ODBC
Windows - Linux
Linux User Number 404280
MSN - ramon15061959@hotmail.com
Skype - ramon15061959
ICQ - UIN 82580595
Harbour 3.2 MiniGUI Extended Edition
xDevStudio v0.70 - BCC 5.82 - Lazarus FreePascal
Firebird
AdoDB - ODBC
Windows - Linux
Linux User Number 404280
MSN - ramon15061959@hotmail.com
Skype - ramon15061959
ICQ - UIN 82580595
- deividdjs
- Usuário Nível 3

- Mensagens: 377
- Registrado em: 19 Set 2006 09:39
- Localização: Foz do Iguaçu / Pr
Iniciando com HWGUI
bom dia Fernando ..
vi vc comentando ref. ao get fantasma .. ainda se aplica nesta ultima versão .. não solucionaram esse detalhe ?? estou tendo problemas com get dentro de um BEGIN PAGE.. não consigo fazer navegar e nem validar dentro do "PAGE' fora funciona perfeitamente ... vc tem alguma diga pra me dar ??
abraço
Deivid
vi vc comentando ref. ao get fantasma .. ainda se aplica nesta ultima versão .. não solucionaram esse detalhe ?? estou tendo problemas com get dentro de um BEGIN PAGE.. não consigo fazer navegar e nem validar dentro do "PAGE' fora funciona perfeitamente ... vc tem alguma diga pra me dar ??
abraço
Deivid
Windows 11 + Harbour 3.2 + MINGW64 gcc 14.1.0 + Visual Lib + GTWVG + LETODBF WINDOWNS/LINUX
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Iniciando com HWGUI
sobre tab e foco aqui
https://pctoledo.org/forum/viewto ... 57#p166357
Sobre o get fantasma:
Continua.
Se serve de conforto.... FIVEWIN também precisa de get fantasma.
https://pctoledo.org/forum/viewto ... 57#p166357
Sobre o get fantasma:
Continua.
Se serve de conforto.... FIVEWIN também precisa de get fantasma.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/