Treeview, listbox, combobox, label, checkbox, GTWVG/etc
Enviado: 08 Abr 2024 23:16
Só teste simples, extraído de exemplos da gtwvg ou adicionados
Precisei do InvalidateRect() no treeview e na progressbar pra atualizar tela.
São originais da gtwvg, são API Windows, são totalmente OOP.
toolbar, treeview, listbox, combobox, checkbox, label, textbox (SLE), 3dState(?), textbox multiline (MLE), statusbar, progressbar, groupbox (não acertei o da gtwvg)
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