#include "hbclass.ch"
#include "hbgtinfo.ch"
#include "hwgui.ch"
#define ZE_HSTYLE_OWNER 1
#define ZE_BACKCOLOR 2
#define HB_GTI_EXTENDED 1000
#define HB_GTI_NOTIFIERBLOCKGUI ( HB_GTI_EXTENDED + 10 )
//ANNOUNCE HB_GTSYS
REQUEST HB_GT_WVG_DEFAULT
THREAD STATIC MainWVT
FUNCTION Main
hb_ThreadStart( { || Main2() } )
hb_ThreadWaitForAll()
RETURN Nil
FUNCTION Main2()
LOCAL nKey := 0, cCaption, nRow, nCol, oBtn, bCode, nGt
hb_gtReload( "WVG" )
SetMode(40,100)
SetColor( "W/B" )
CLS
? "Hello"
? "Hello"
? "Hello"
? "Hello"
? "Hello"
? "Hello"
? "Hello"
? "Hello"
? "Hello"
? "Hello"
? "Hello"
? "Hello"
? "Hello"
? "Hello"
? "Hello"
? "Press <ESC> key to terminate program"
nGt := Maingt()
nRow := 10
nCol := 10
FOR EACH cCaption IN { "Consulta", "Altera", "Exclui", "Inclui", "Primeiro", "Último", "Anterior", "Seguinte", "Sair" }
bCode := { || Nil }
@ nCol, nRow OWNERBUTTON oBtn SIZE 55,55 ;
ON CLICK bCode ;
TEXT cCaption COORDINATES 5,35, 5, 40 ;
Tooltip cCaption
oBtn:aStyle := ze_Style( ZE_HSTYLE_OWNER )
nCol += 60
NEXT
DO WHILE nKey != 27
nKey := Inkey(1)
ENDDO
(nGt)
RETURN Nil
//PROCEDURE HB_GTSYS
// REQUEST HB_GT_WVG_DEFAULT
// RETURN
FUNCTION AppUserName(); RETURN ""
FUNCTION AppVersaoExe(); RETURN ""
FUNCTION MainGT()
IF Empty( MainWVT )
MainWVT := HGT():New()
MainWVT:Handle := hb_gtInfo( HB_GTI_WINHANDLE )
hb_gtInfo( HB_GTI_NOTIFIERBLOCKGUI, { | nEvent, ... | MainWVT:OnEvent( nEvent, ... ) } )
//MainWVT:IsGT := .T.
ENDIF
RETURN MainWVT
FUNCTION ze_Style( nStyle )
LOCAL xValue
DO CASE
CASE nStyle == ZE_HSTYLE_OWNER
xValue := { ;
HStyle():New( { ze_Style( ZE_BACKCOLOR ) }, 1 ), ; /* normal color */
HStyle():New( { ze_Style( ZE_BACKCOLOR ) }, 1,, 3, 0 ), ; /* click color */
HStyle():New( { 16759929, 16771062 }, 1,, 2, 12164479 ) } /* over color */
CASE nStyle == ZE_BACKCOLOR
xValue := 15790720
ENDCASE
RETURN xValue
CLASS HGT INHERIT HWindow
METHOD New() INLINE ::Super:New() , ::Handle := hb_gtInfo(HB_GTI_WINHANDLE), Self
ENDCLASS
FUNCTION HB_GT_GUI; RETURN Nil
FUNCTION HB_GT_GUI_DEFAULT; RETURN Nil
Necessita compilar com hbmk2 test hwgui.hbc gtwvg.hb -w0
Quase deu certo.
O exemplo original testhgt fazia herança com HMAINWINDOW e não HWINDOW.
No exemplo atual da HWGUI eram outros buttons, aqui é com owner button.
Ao clicar em qualquer button, todos os buttons somem, assim como acontece com alguns buttons do exemplo na hwgui.
É um teste totalmente fora do padrão.
"Talvez" o problema seja o tipo de janela ::oParent, que não serve pra "segurar" esses controles.
E a main servia.
Foi um teste, pensando na possibilidade de trocar wvg por hwgui mais rápido.