Página 1 de 1

HWGUI console

Enviado: 07 Jun 2021 10:35
por JoséQuintas
Preciso de ajuda numa coisa: definir um resize automático na HWGUI.
Talvez inicialmente pra aquela GTHWGUI, mas talvez dê pra expandir para todo modo GUI.

Na GTWVG é fácil, como foi direcionada pra linha/coluna, basta usar a escala de linha/coluna e fica resolvido, existem variáveis para isso.
Dá pra usar 1, 1, 100, 100 pra definir x/y 1,1 até 100,100
Ou -1. -1, -10, -10 pra definir linha/coluna 1,1 até 10,10, e esses valores são multiplicados pela altura/largura do fonte (incluindo espacejamento)
Qual a vantagem?
Num resize do formulário, os controles já são "repintados" nas novas posições, o que acaba sendo um redimensionamento automático.

Ok, GUI tem fontes de tamanho variável, mas pode ser usado algo parecido, talvez um "fonte imaginário", apenas um tipo de escala métrica.
O resultado seria poder desenvolver usando, por exemplo, escala 1920 x 1080, ou 3840 x 2160, e tudo se redimensionar automático no usuário.
O recurso seria opcional, a fim de preservar tudo que já existe.

Alguma idéia pra isso, ou alguma sugestão?

Nota: Mesmo pra desenhar textos são usadas janelas, então até mesmo os textos poderiam ser redimensionados pra caber dentro da janela deles.

HWGUI console

Enviado: 09 Jun 2021 01:41
por JoséQuintas
Pra quem não olhou, a janela gthwgui é criada assim:

Código: Selecionar todos

FUNCTION gthwg_CreateMainWindow( cTitle, oFont )

   LOCAL oWnd, oPane
   LOCAL nStyle, x := 0, y := 0, width := 400, height := 200
   LOCAL bSize

   oWnd := HMainWindow():New( 1,,, nStyle, x, y, width, height, ;
      Iif( Empty(cTitle),"gt_HwGUI",cTitle ),,, oFont,, {||gthwg_CloseWindow()}, ;
      ,,,,,,,,,, WS_THICKFRAME )

   gthwg_SetWindow( oWnd:handle, Iif( Empty(oFont), Nil, oFont:handle ) )

   RETURN oWnd
HMainWindow() é a Main Window da HWGUI, a mesma de sempre.
Como eu sempre disse por aqui, sobre a GTWVG, trata-se de uma janela Windows onde a imagem de fundo é a tela console.
Na HWGUI é a mesma coisa.

O que já deu pra perceber:

- Não funciona em multithread
- Não tem resize
- O sample tem apenas texto, não sei se funciona button, por exemplo.
Na GTWVG tem o hook pra ambiente GUI, não sei se deixaram essa possibilidade na GTHWG.
E como é a janela Main da HWGUI, pode ser mais limitada do que uma window ou dialog, igual ou pior que a GTWVG.