TABs coloridos !

Projeto HwGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

TABs coloridos !

Mensagem por Itamar M. Lins Jr. »

Olá!
Eu fiz uma solicitação para ele para colocar backcolor na tab.
It isn't as simple as with other controls.
To do this it is needed to rewrite the HTab code, probably to make it with SS_OWNERDRAW style and draw it.
But there are workarounds for this. If you need a color for that area, where controls are placed, you may to place a panel there - it allows backcolors, gradients, and place other controls on it.
If you want to colorize the top part of a tab, you may try the HLenta control.
Captura de tela 2023-08-25 083406.png
Detalhe que ele não fez na classe htab.prg usou outra. Uma tal de hlenta.prg então tab ainda sem backcolor.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

TABs coloridos !

Mensagem por Itamar M. Lins Jr. »

Olá!
Sei não mas vejo que possivelmente dá pra fazer até menu...
Ele fez esse controle por conta de um aplicativo dele de musica um piano...
Imagem
https://www.kresin.ru/en/sounds.html
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

TABs coloridos !

Mensagem por JoséQuintas »

Itamar M. Lins Jr. escreveu:Sei não mas vejo que possivelmente dá pra fazer até menu...
Não entendeu ainda não ?
É mesmo esquema da GTWVG.
É uma área livre pra fazer qualquer coisa.

Não lembro em qual LIB que eu vi, mas também dá pra fazer menu usando browse.
Achei interessante só até momentos antes de ver o fonte, pelo menos aquele fonte era uma desgraça.
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/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

TABs coloridos !

Mensagem por JoséQuintas »

Então Itamar, vamos tentar de novo.....

Na GTWVG, a tela é Windows.
A rotina de desenhar a tela é WVT_Paint.
Você coloca rotinas de desenho em WVT_Paint e pronto, o Windows vai usá-la pra redesenhar.

No HBoard tem lá a rotina Draw, ou Paint ou sei lá o que.
Você coloca rotinas de desenho como codeblock nisso daí.
Não só no HBoard, em qualquer controle ownerdraw.

A diferença é que no controle fica limitado à janela do controle.

Isso é normal no Windows: ou o Windows faz, ou a LIB faz.
Que eu me lembre não existe meio termo, é tudo ou nada.

Por exemplo, o ownerbutton.
Como ele faz tudo, não dá pra trocar imagem usando a mesma mensagem usada para o button padrão.
E o mesmo pra ícones em PNG: o button padrão não desenha PNG, só mesmo desenhando "manual".
E isso também pode indicar que a Microsoft está pouco se lixando pra API Windows tradicional, o que leva tudo a isso de fazer "manualmente", como o HBOARD.
Até aquilo de mudar a cor do button quando está em foco, que no button normal é feito automaticamente pelo Windows, se mudar pra manual também tem que criar a rotina, é onde entram os STYLES da HWGUI.
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/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

TABs coloridos !

Mensagem por JoséQuintas »

Código: Selecionar todos

   @ nCol, nRow BOARD xControl SIZE nWidth, nHeight ON PAINT { | o, h | LabelPaint( o, h, lBorder ) }
   xControl:Title := xValue

   RETURN Nil

FUNCTION LabelPaint( o, h, lBorder )

   IF o:oFont != Nil
      hwg_SelectObject( h, o:oFont:Handle )
   ENDIF
   IF o:TColor != Nil
      hwg_SetTextColor( h, o:TColor )
   ENDIF
   IF ! Empty( lBorder ) .AND. lBorder
      hwg_Rectangle( h, 0, 0, o:nWidth - 1, o:nHeight - 1 )
   ENDIF
   hwg_SetTransparentMode( h, .T. )
   hwg_DrawText( h, o:Title, 2, 2, o:nWidth - 2, o:nHeight - 2 )
   hwg_SetTransparentMode( h, .F. )

   RETURN Nil
Preste atenção nessa rotina, que o Kresin passou pra substituir o label normal.

seleciona o fonte
muda a cor pra pintura
se tem borda, desenha o retângulo
o desenho de letras pode ter fundo ou não, pode ser transparente.
Então desenha o texto.

As coordenadas de cada controle começam no zero, igual console onde MaxRow() e MaxCol() tem 1 a menos.
Por isso a borda é no -1
Já o texto, tem que respeitar também a borda, por isso é -2

É igual console mesmo, calculando tudo, e desenhando "a mão".
Apenas a LIB trás rotinas prontas para a parte mais comum, que é o que está sendo feito na hwgui.
Mas está liberado pra fazer o que quiser.

Na minigui também é tudo assim.
Mas como eles começaram há muito tempo, já acrescentaram bastante coisa, cálculos mais precisos, etc.

Eu comentei sobre isso faz tempo: com o controle vazio, o usuário pode inventar as pinturas, e a LIB pode ir incorporando as melhores idéias.
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/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

TABs coloridos !

Mensagem por JoséQuintas »

Que tal uma progressbar com porcentagem ?
É só ir aumentando a área de pintura, com o texto desenhado no meio.
Pensou nisso?
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/
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

TABs coloridos !

Mensagem por Itamar M. Lins Jr. »

Olá!
Essas modificações, são para o windows 11, conforme ele havia dito.
E também para abrir o leque de opções, talvez dispositivos móveis e telas de toque e maior compatibilidade com Linux por exemplo.
Quanto maior a resolução da tela menor ficará o controle padrão do windows. As letras da classe menu, não tem como mudar ou os CHECKBOXs que fica tudo miudinho.

PS. Já mandei mais problema lá pra ele corrigir kkkk! O browse tem uns BUGS, eu uso da pasta \contrib\ext_controls tô querendo me sair e usar o padrão, mas já detectei que o método bOther não está 100% e vamos indo, quer moleza senta no pudim! rsrsrs.
Dá uma canseira "retada"... Toda ora um BO. Mas tá indo.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

TABs coloridos !

Mensagem por JoséQuintas »

Itamar M. Lins Jr. escreveu:Quanto maior a resolução da tela menor ficará o controle padrão do windows. As letras da classe menu, não tem como mudar ou os CHECKBOXs que fica tudo miudinho.
Eu lembro de ter visto no Windows 10 a opção de redimensionar POR APLICATIVO.
Só não sei aonde isso foi parar, porque não lembro de ter visto de novo.
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/
Responder