Precisei do InvalidateRect() no treeview e na progressbar pra atualizar tela.
São originais da gtwvg, são API Windows, são totalmente OOP.
Código: Selecionar todos
#include "gtwvg.ch"
#include "inkey.ch"
PROCEDURE Main
LOCAL oCrt
SetMode(30,100)
SetColor( "W/B" )
CLS
oCrt := wvgSetAppWindow()
BuildTree( oCrt )
BuildListBox( oCrt )
BuildTextbox( oCrt )
BuildCheckbox( oCrt )
BuildCombobox( oCrt )
BuildCheckbutton( oCrt )
BuildTextboxMultiline( oCrt )
BuildStatusbar( oCrt )
BuildToolbar( oCrt )
BuildGroupbox( oCrt )
BuildProgressbar( oCrt )
Inkey(0)
RETURN
STATIC FUNCTION BuildTree( oCrt )
LOCAL oTree, oItem1, oItem2
WITH OBJECT oTree := WvgTreeView():new( oCrt )
:hasLines := .T.
:hasButtons := .T.
:alwaysShowSelection := .T.
:create( , , { -6, -1 }, { -15, -15 } )
:setColorFG( "W+" )
:setColorBG( "R*" )
:itemSelected := {| oItem | wvg_MessageBox( , iif( oItem != NIL, oItem:caption, "Some Problem" ) ) }
oItem1 := oTree:rootItem:addItem( "First level A" )
:rootItem:addItem( "First level B" )
oItem2 := oItem1:addItem( "Second level 1" )
oItem1:addItem( "Second level 2" )
oItem2:addItem( "Third level x" )
oItem2:addItem( "Third level y" )
oItem2:addItem( "Third level z" )
:showExpanded( .T., 2 )
:setData( oItem2 )
:tooltipText := "Treeview embedded onto CUI window"
:InvalidateRect()
ENDWITH
RETURN oTree
STATIC FUNCTION BuildListBox( oCrt )
LOCAL oControl, nCont
WITH OBJECT oControl := WvgListBox():new( oCrt )
:create( , , { -6, -20 }, { -10, -10 }, , .T. )
:setColorFG( "W+" )
:setColorBG( "B*" )
//:itemMarked := {| m1, m2, o | m1 := m1, m2 := m2, BrwShowColumn( oBrw, o:getCurItem() ) }
FOR nCont = 1 TO 9
:addItem( Replicate( Chr(64+nCont), 10 ) )
NEXT
:setData( 1 )
:tooltipText := "Click on a field name to make it active!"
ENDWITH
RETURN oControl
STATIC FUNCTION BuildCombobox( oCrt )
LOCAL oControl
WITH OBJECT oControl := WvgComboBox():new( oCrt )
:type := WVGCOMBO_DROPDOWN
:create( , , { -6, -40 }, { -5, -10 }, , .T. )
:setColorFG( "W+" )
:setColorBG( "B*" )
//:itemMarked := {| m1, m2, o | m1 := m2, BrwSetThisOrder( oBrw, o:XbpListBox:getData() - 1 ) }
:addItem( "Natural Order" )
:AddItem( "teste1111" )
:AddItem( "teste2222" )
:AddItem( "teste3333" )
:tooltipText := "Click on an index to order database!"
ENDWITH
RETURN oControl
STATIC FUNCTION BuildTextbox( oCrt )
LOCAL oControl1, oControl2
WITH OBJECT oControl1 := WvgStatic():new( oCrt )
:type := WVGSTATIC_TYPE_TEXT
:options := WVGSTATIC_TEXT_CENTER
:caption := "Field Name"
:create( , , { -6, -60 }, { -1, -10 } )
:setColorFG( "W+" )
:setColorBG( "BG" )
ENDWITH
WITH OBJECT oControl2 := WvgSLE():new( oCrt )
:create( , , { -8, -60 }, { -1, -10 } )
:setColorFG( "N" )
:setColorBG( "BG+" )
//:returnPressed := {| m1, m2, o | m1 := m1, m2 := m2, BrwShowColumn( oBrw, Upper( RTrim( o:getData() ) ) ) }
:tooltipText := "Type in a field name and press ENTER"
ENDWITH
RETURN { oControl1, oControl2 }
STATIC FUNCTION BuildCheckBox( oCrt )
LOCAL oControl
WITH OBJECT oControl := WvgCheckBox():new( oCrt )
:pointerFocus := .F.
:caption := "checkbox"
//:selected := {| x, y, o | x := y, lActiveX := o:getData(), wvt_Keyboard( HB_K_RESIZE ) }
:selection := .F.
:create( , , { -10, -40 }, { -1, -10 } )
:setColorFG( "R+" )
:setColorBG( "W" )
:tooltipText := "Navigate: "
ENDWITH
RETURN oControl
STATIC FUNCTION BuildCheckbutton( oCrt )
LOCAL oControl
WITH OBJECT oControl := wvg3state():New( oCrt )
:Caption := "3dstate"
:Create( , , { -10, -60 }, { -1, -10 } )
ENDWITH
RETURN oControl
STATIC FUNCTION BuildTextboxMultiline( oCrt )
LOCAL oControl, cText := "this is" + hb_Eol() + "a multiline" + hb_Eol() + "textbox" + hb_Eol()
WITH OBJECT oControl := WvgMLE():new( oCrt )
:wordWrap := .F.
:border := .T.
:dataLink := {| x | iif( x == NIL, cText, cText := x ) }
:create( , , { -6, -75 }, { -5, -20 } )
// Copy text from LOCAL variable into edit buffer via :dataLink
:setData()
ENDWITH
RETURN oControl
STATIC FUNCTION BuildStatusbar( oCrt )
LOCAL oSBar, oPanel, oPanel1, oPanel2
oSBar := WvgStatusBar():new( oCrt )
OSBar:create( , , , , , .T. )
oSBar:panelClick := {| oPanel | wvg_MessageBox( , oPanel:caption ) }
oPanel := oSBar:getItem( 1 )
oPanel:caption := "My Root Panel"
oPanel1 := oSBar:addItem()
oPanel1:caption := "Ready"
oPanel2 := oSBar:addItem()
oPanel2:caption := "Click on any part!"
RETURN oSBar
STATIC FUNCTION BuildToolBar( oCrt )
LOCAL oControl
WITH OBJECT oControl := WvgToolBar():new( oCrt, , { 0, 0 }, { 0, 0 }, , .T. )
:style := WVGTOOLBAR_STYLE_FLAT
:borderStyle := WVGFRAME_RECT
:buttonWidth := 28
:buttonHeight := 26
:imageWidth := 26
:imageHeight := 24
:showToolTips := .T.
:create( oCrt)
:addItem( "New" , hb_DirBase() + "v_new.bmp" )
:addItem( "Select" , hb_DirBase() + "v_selct1.bmp" )
:addItem()
:addItem( "FontDlg" , hb_DirBase() + "v_calend.bmp" )
:addItem( "Tools" , hb_DirBase() + "v_lock.bmp" )
:addItem( "Index" , hb_DirBase() + "v_index.bmp" )
:addItem()
:addItem( "Show" , hb_DirBase() + "v_clclt.bmp" )
:addItem( "Hide" , hb_DirBase() + "v_notes1.bmp" )
ENDWITH
RETURN oControl
FUNCTION BuildProgressbar( oCrt )
LOCAL oControl
WITH OBJECT oControl := wvgProgressbar():New()
:Create( oCrt,, { -15, -40 }, { -2, -15 } )
:SetValue( 50, 1, 100 )
:InvalidateRect()
ENDWITH
RETURN oControl
FUNCTION BUildGroupbox( oCrt )
LOCAL oControl := Nil
//WITH OBJECT oControl := wvgtstGroupBox():New()
// :cText := "not gtwvg"
// :Create( oCrt, , { -15, -60 }, { -5, -Len( :cText ) - 4 } )
// :InvalidateRect()
//ENDWITH
(oCrt)
RETURN oControl
