Files
harbour-core/harbour/contrib/gtwvg/tests/wvgwvtclasses.prg
Viktor Szakats 717adc8afc 2012-07-20 21:30 UTC+0200 Viktor Szakats (vszakats syenar.net)
* contrib/gtwvg/tests/demowvg.prg
  * contrib/gtwvg/tests/wvgwvtclasses.prg
  * contrib/hbct/doc/en/dattime3.txt
  * contrib/hbct/tests/datetime.prg
  * contrib/hbide/ideconsole.prg
  * contrib/hbnf/any2any.prg
  * contrib/xhb/decode.prg
  * doc/en/datetime.txt
  * doc/hdr_tpl.txt
  * examples/gtwvw/tests/cbtest1.prg
  * examples/gtwvw/tests/cbtest6.prg
  * examples/gtwvw/tests/drawimg.prg
  * examples/gtwvw/tests/ebtest7.prg
  * examples/gtwvw/tests/inpfocus.prg
  * examples/gtwvw/tests/maximize.prg
  * examples/gtwvw/tests/wvwmouse.prg
  * examples/gtwvw/tests/wvwtest9.prg
  * examples/hbapollo/tests/test02.prg
  * examples/hbapollo/tests/test09.prg
  * examples/hbapollo/tests/test11.prg
  * examples/hbapollo/tests/test12.prg
  * examples/hbapollo/tests/test13.prg
  * examples/hbapollo/tests/test14.prg
  * examples/hbapollo/tests/test15.prg
  * examples/hbapollo/tests/test20.prg
  * examples/hbapollo/tests/test21.prg
  * examples/hbapollo/tests/test22.prg
  * examples/hbapollo/tests/test23.prg
  * examples/hbapollo/tests/test24.prg
  * examples/hbapollo/tests/test25.prg
  * examples/hbapollo/tests/test26.prg
  * examples/hbapollo/tests/test27.prg
  * examples/hbapollo/tests/test28.prg
  * examples/hbapollo/tests/test29.prg
  * examples/hbapollo/tests/test30.prg
  * examples/hbapollo/tests/test34.prg
  * examples/hbapollo/tests/test35.prg
  * examples/hbapollo/tests/test36.prg
  * examples/hbapollo/tests/test37.prg
  * examples/hbapollo/tests/test38.prg
  * examples/hbapollo/tests/test39.prg
  * examples/hbapollo/tests/test41.prg
  * examples/hbapollo/tests/test42.prg
  * examples/hbapollo/tests/test43.prg
  * examples/hbapollo/tests/test45.prg
  * examples/hbapollo/tests/test46.prg
  * examples/hbapollo/tests/test47.prg
  * examples/hbapollo/tests/test50.prg
  * examples/hbapollo/tests/test51.prg
  * examples/hbapollo/tests/test52.prg
  * examples/hbapollo/tests/test53.prg
  * examples/hbapollo/tests/test54.prg
  * examples/hbapollo/tests/test55.prg
  * examples/hbapollo/tests/test56.prg
  * examples/hbapollo/tests/test57.prg
  * examples/hbapollo/tests/test58.prg
  * examples/hbapollo/tests/test60.prg
  * examples/hbapollo/tests/test61.prg
  * examples/hbapollo/tests/test62.prg
  * examples/hbapollo/tests/test63.prg
  * examples/hbapollo/tests/test64.prg
  * examples/hbapollo/tests/test73.prg
  * examples/hbapollo/tests/test74.prg
  * examples/hbapollo/tests/test75.prg
  * examples/hbapollo/tests/test76.prg
  * examples/hbapollo/tests/test78.prg
  * examples/hbapollo/tests/test82.prg
  * tests/dates.prg
  * tests/usrrdd/exarr.prg
    ! avoid using CTOD() to create dates
    ! avoid setting SET DATE to arbirary formats
    * some formatting
2012-07-20 19:34:56 +00:00

439 lines
15 KiB
Plaintext

/*
* $Id$
*/
/*
* Wvt*Classes Demonstration
*
* This protocol can be clubbed with pure console implementation
* AND can be called IN a separate thread as well as modal TO
* current window.
*
* Pritpal Bedi <bedipritpal@hotmail.com>
*/
/*----------------------------------------------------------------------*/
#include "inkey.ch"
#include "common.ch"
#include "wvtwin.ch"
#include "hbgtinfo.ch"
#include "hbgtwvg.ch"
#include "wvgparts.ch"
/*----------------------------------------------------------------------*/
#define CRLF chr( 13 )+chr( 10 )
/*----------------------------------------------------------------------*/
FUNCTION DialogWvgClassesOne( nMode )
Local bBlock
if hb_mtvm()
if nMode == 2
MyDialogOne()
else
bBlock := { |oCrt| ;
oCrt := WvgCrt():New( , , { -1,-1 }, { 54,184 }, , .f. ), ;
oCrt:fontName := 'Courier',;
oCrt:fontHeight := 13 ,;
oCrt:fontWidth := 0 ,;
oCrt:Create() ,;
MyDialogOne( oCrt ) ,;
oCrt:destroy() ;
}
hb_threadStart( bBlock )
endif
else
MyDialogOne()
endif
RETURN NIL
//----------------------------------------------------------------------//
STATIC FUNCTION MyDialogOne( oCrt )
LOCAL aObjects:= WvtSetBlocks( {} )
LOCAL nWinRows, nWinCols, cWinTitle, cFont, nHeight
LOCAL oDlg, oBar, cUseAlias
LOCAL oText, oTBar, aImg_, oImg, oLine, oBox, oBtn, oBtn2
LOCAL oBBox, oCon, oGet, oBBox2, oBnr, oTBx
LOCAL oBRsd, cTxt, oRct, nGetCol, nSayCol, bBlock, bBlock1
LOCAL oWvtBrw, oWvtBrw1, lOpen, lOpen1, cUseAlias1, oGetArea, oGet1
LOCAL hPopup, nGetRow, aGets_, lChkMouse
LOCAL g_oMenuBar, oPBar2,oPBar3, oMenu
HB_SYMBOL_UNUSED( oCrt )
WvtSetKeys( .f. )
lChkMouse := SetMouseCheck( .f. )
hPopup := Wvt_SetPopupMenu()
Popups()
cTxt := "GtWvt is capable of designing virtually any preceivable control "
cTxt := cTxt + "Windows offers."
cTxt := cTxt + CRLF + CRLF
cTxt := cTxt + "This text is placed in a WvtTextBox() control with "
cTxt := cTxt + "font and alignment adjustments!"
cTxt := cTxt + CRLF + CRLF
cTxt := cTxt + "Enjoy - Pritpal Bedi, INDIA"
aImg_:={}
aadd( aImg_, GetResource( "v_lock.bmp" ) )
aadd( aImg_, GetResource( "v_new.bmp" ) )
aadd( aImg_, GetResource( "v_clclt.bmp" ) )
aadd( aImg_, GetResource( "v_calend.bmp" ) )
aadd( aImg_, GetResource( "v_index.bmp" ) )
aadd( aImg_, GetResource( "v_notes1.bmp" ) )
aadd( aImg_, GetResource( "v_selct1.bmp" ) )
? '.'
Wvt_ShowWindow( 1 )
nWinRows := 55
nWinCols := 185
cWinTitle := "WvtGui Dialog One"
cFont := "Courier New"
nHeight := 13
oDlg := WvtDialog():New( nWinRows, nWinCols, cWinTitle, cFont, nHeight )
oDlg:nTooltipWidth := 300
oDlg:nTooltipTextColor := RGB( 255,0,0 )
oBar := WvtStatusBar():New( oDlg,201 )
oBar:SetPanels( { 50,100 } )
oBar:SetText( 1, "Tab.SH_Tab.Left_Click - Select a Browse" )
oBar:SetText( 2, "GtWvt is Fantastic", "w+/W" )
oBar:SetText( 3, "WOW" )
oBar:nPointer := WVT_IDC_HAND
oBar:Tooltip := "GtWvt Statusbar with 3 panels"
oDlg:AddObject( oBar )
oBox := WvtStatic():New( oDlg,110,4,oDlg:MaxCol()-40,7,oDlg:MaxCol()-2 )
oBox:nStatic := WVT_STATIC_BOXRECESSED
oDlg:AddObject( oBox )
oText := WvtLabel():New( oDlg, 101, 4, oDlg:MaxCol()-40, 7,oDlg:MaxCol()-2 )
oText:Text := "Harbour"
oText:nFontHeight := 36
oText:nAlignHorz := 2
oText:nAlignVert := 2
oText:nFontWeight := 700
oText:nTextColor := RGB( 100, 255, 12 )
oText:nBackColor := RGB( 0, 0, 255 )
oText:nTextColorHoverOn := RGB( 255, 255, 0 )
oText:nBackColorHoverOn := RGB( 255, 100, 12 )
oText:lItalic := .t.
oText:ToolTip := "Software that GROWS with you"
oText:bOnSelect := {|| .t. }
oDlg:AddObject( oText )
oImg := WvtImage():New( oDlg,102,20,oDlg:MaxCol()-40,37,oDlg:MaxCol()-2 )
oImg:cImage := aImg_[ 5 ]
oImg:Tooltip := "WvtImage():New()"
oDlg:AddObject( oImg )
oTBar := WvtToolbar():New( oDlg,103, 0,0,2 )
oTBar:lFloating := .f.
oTBar:Tooltip := "Toolbar"
oTBar:AddButton( aImg_[ 1 ], {|| oImg:SetImage( aImg_[ 1 ] ) } , "Lock" )
oTBar:AddButton( aImg_[ 2 ], {|| oImg:SetImage( aImg_[ 2 ] ), oText:SetText( "Harbour" ) } , "New" )
oTBar:AddButton( aImg_[ 3 ], {|| oImg:SetImage( aImg_[ 3 ] ) } , "Calculator" )
oTBar:AddButton()
oTBar:AddButton( aImg_[ 5 ], {|| oImg:SetImage( aImg_[ 5 ] ) } , "Restore" )
oTBar:AddButton( aImg_[ 4 ], {|| oImg:SetImage( aImg_[ 4 ] ), oText:SetText( "Vouch" ) } , "Calendar" )
oTBar:AddButton( aImg_[ 6 ], {|| oImg:SetImage( aImg_[ 6 ] ) } , "Notes" )
oTBar:AddButton( aImg_[ 7 ], {|| oImg:SetImage( aImg_[ 7 ] ) } , "Press to Send Browse on Top" )
oTBar:AddButton()
oDlg:AddObject( oTBar )
oLine := WvtStatic():New( oDlg, 105, 39, 0, 39, oDlg:MaxCol() )
oLine:nStatic := WVT_STATIC_LINE
oDlg:AddObject( oLine )
oBBox := WvtStatic():New( oDlg,125,4,127,37,139 )
oBBox:nStatic := WVT_STATIC_BOXGROUP
oDlg:AddObject( oBBox )
oBtn := WvtPushButton():New(oDlg, 124, 6, 129, 7, 137 )
oBtn:cCaption := "Print"
oBtn:bOnLeftUp := {|| Wvt_Keyboard( 379 ) }
oBtn:Tooltip := "Open Printing Dialog for the Browser in Focus"
oDlg:AddObject( oBtn )
oBtn2 := WvtPushButton():New( oDlg, 124, 9, 129, 12, 137 )
oBtn2:cFileImage := aImg_[ 3 ]
oBtn2:block := {|| ExeProgressBar( oPBar2, oPBar3 ) }
oBtn2:Tooltip := "Execute Progress Bar"
oDlg:AddObject( oBtn2 )
oPBar2 := WvtProgressBar():New( oDlg, , 14, 129, 25, 137 )
oPBar2:nBarColor := RGB( 240,240,0 )
oPBar2:cBackColor := "W/N*"
oPBar2:lVertical := .t.
oPBar2:nDirection := 0
oPBar2:cImage := GetResource( "vouch1.bmp" )
oDlg:AddObject( oPBar2 )
oPBar3 := WvtProgressBar():New( oDlg, , 26, 129, 36, 137 )
oPBar3:nBarColor := RGB( 240,240,0 )
oPBar3:cBackColor := "W/N*"
oPBar3:lVertical := .t.
oPBar3:nDirection := 1
oPBar3:cImage := GetResource( "vouch1.bmp" )
oDlg:AddObject( oPBar3 )
oBBox2 := WvtStatic():New( oDlg, , 9, oDlg:MaxCol()-40, 18, oDlg:Maxcol()-2 )
oBBox2:nStatic := WVT_STATIC_BOXGROUP
oDlg:AddObject( oBBox2 )
oCon := WvtConsole():New( oDlg )
oDlg:AddObject( oCon )
nGetCol := 158
bBlock := {|| oCon:Say( 12, 148, "Name" ,"N/W" ),;
oCon:Say( 14, 148, "Date" ,"N/W" ),;
oCon:Say( 16, 148, "Amount","N/W" ) }
oGet := WvtGets():New( oDlg, 210, 9, oDlg:Maxcol()-40, 18, oDlg:Maxcol()-2 )
oGet:AddGets( 12, nGetCol, "GTWvt ", "@! ","W+/B*,N/W*" )
oGet:AddGets( 14, nGetCol, date() )
oGet:AddGets( 16, nGetCol, 2122.57, "@Z 99999999.99","w+/R,GR+/B" )
oGet:Tooltip := "WvtGets():New() - ReadModal() like Clipper"
oGet:cDesc := "Normal Get Box"
oGet:bOnCreate := bBlock
oDlg:AddObject( oGet )
oBnr := WvtBanner():New( oDlg, 101, 0, 127, 1, oDlg:MaxCol()-2 )
oBnr:nTimeDelay := 0.25
oBnr:cText := "the compiler that EXTENDS with you"
oBnr:nFontHeight := 24
oBnr:nFontWeight := 0
oBnr:nDirection := 0
oBnr:nAlignVert := 2
oBnr:nTextColor := RGB( 253,251,170 )
oBnr:nBackColor := RGB( 128,227,142 )
oBnr:nTextColorHoverOn := RGB( 255,255, 0 )
oBnr:nBackColorHoverOn := RGB( 255,100, 12 )
oBnr:Tooltip := "WvtBanner():New()"
oDlg:AddObject( oBnr )
oBRsd := WvtStatic():New( oDlg, , 41,127,52,oDlg:MaxCol()-2 )
oBRsd:nStatic := WVT_STATIC_BOXGROUPRAISED
oDlg:AddObject( oBRsd )
oRct := WvtStatic():New( oDlg, , 41,127,52,oDlg:MaxCol()-2 )
oRct:nStatic := WVT_STATIC_SHADEDRECT
oRct:aRGBb := { 0xffff, 0x0000, 0x0000, 0x0000 }
oRct:aRGBe := { 0x0000, 0xffff, 0xffff, 0x0000 }
oDlg:AddObject( oRct )
oTBx := WvtTextBox():New( oDlg, , 42,129,51,oDlg:MaxCol()-4 )
oTBx:cText := cTxt
oTBx:Tooltip := "WvtTextBox():New()"
oTBx:nFontHeight := 16
oTBx:lItalic := .t.
oTBx:lUnderline := .t.
oTBx:nAlignHorz := 2
oTBx:nTextColor := RGB( 255,255,255 )
oTBx:nTextColorHoverOn := RGB( 0,0,255 )
oTBx:aPopup := {}
aadd( oTBx:aPopup, { "Getsome" , {|| .t. } } )
aadd( oTBx:aPopup, { "Getsome2", {|| .t. } } )
oDlg:AddObject( oTBx )
oGetArea := WvtStatic():New( oDlg, , 4, 2, 37, 62 )
oGetArea:nStatic := WVT_STATIC_BOXRAISED
oDlg:AddObject( oGetArea )
nGetCol := 20
nSayCol := 7
nGetRow := 7
bBlock1 := {|| oCon:Say( nGetRow+00, nSayCol, "First Name" ,"N/W" ),;
oCon:Say( nGetRow+02, nSayCol, "Last Name " ,"N/W" ),;
oCon:Say( nGetRow+04, nSayCol, "Street" ,"N/W" ),;
oCon:Say( nGetRow+06, nSayCol, "City" ,"W+/W"),;
oCon:Say( nGetRow+08, nSayCol, "State" ,"N/W" ),;
oCon:Say( nGetRow+10, nSayCol, "Zip" ,"B+/W"),;
oCon:Say( nGetRow+12, nSayCol, "Date Hired" ,"B+/W"),;
oCon:Say( nGetRow+14, nSayCol, "Married" ,"B+/W"),;
oCon:Say( nGetRow+16, nSayCol, "Age" ,"B+/W"),;
oCon:Say( nGetRow+18, nSayCol, "Salary" ,"B+/W"),;
oCon:Say( nGetRow+20, nSayCol, "Notes", ,"B+/W") ;
}
aGets_:= { pad("Pritpal",20 ), pad( "Bedi",20 ), pad( "60, New Professor Colony",30 ), ;
pad( "Ludhiana, INDIA",30 ),;
"PB", pad( "141004",10 ), stod( "20040622" ), .t., 48, 17000, ;
pad( "Wvtgui is a classical example of Harbour capabilities...",65 ) }
oGet1 := WvtGets():New( oDlg, , 4, 2, 37, 62 )
oGet1:AddGets( nGetRow+00, nGetCol, aGets_[ 1 ], "@ " , "N/W*,N/GR*" )
oGet1:AddGets( nGetRow+02, nGetCol, aGets_[ 2 ], "@ " , "N/W*,N/GR*" )
oGet1:AddGets( nGetRow+04, nGetCol, aGets_[ 3 ], "@ " , "N/W*,N/GR*" )
oGet1:AddGets( nGetRow+06, nGetCol, aGets_[ 4 ], "@ " , "N/W*,N/GR*" )
oGet1:AddGets( nGetRow+08, nGetCol, aGets_[ 5 ], "@ " , "N/W*,N/GR*" )
oGet1:AddGets( nGetRow+10, nGetCol, aGets_[ 6 ], "@ " , "N/W*,N/GR*" )
oGet1:AddGets( nGetRow+12, nGetCol, aGets_[ 7 ], "@ " , "N/W*,N/GR*" )
oGet1:AddGets( nGetRow+14, nGetCol, aGets_[ 8 ], "@Y" , "N/W*,N/GR*" )
oGet1:AddGets( nGetRow+16, nGetCol, aGets_[ 9 ], "@Z 99" , "N/W*,N/GR*" )
oGet1:AddGets( nGetRow+18, nGetCol, aGets_[ 10], "@Z 999999", "N/W*,N/GR*" )
oGet1:AddGets( nGetRow+20, nGetCol, aGets_[ 11], "@S35" , "N/W*,N/GR*" )
oGet1:cDesc := "test.dbf Fields"
oGet1:Tooltip := "Double Click to Activate ReadModal()"
oGet1:bOnCreate := bBlock1
oDlg:AddObject( oGet1 )
g_oMenuBar := WvtMenu():new():create()
oMenu := WvtMenu():new():create()
oMenu:Caption := "Other Dialogs"
oMenu:AddItem( "Dialog Two", {|| DialogWvgClassesTwo() } )
oMenu:AddItem( "-" )
oMenu:AddItem( "Exit", {|| Wvt_Keyboard( K_ESC ) } )
g_oMenuBar:addItem( "",oMenu )
oDlg:oMenu := g_oMenuBar
lOpen := .f.
cUseAlias := "TEST"
USE ( hb_DirBase() + ".." + hb_ps() + ".." + hb_ps() + ".." + hb_ps() + "tests" + hb_ps() + "test.dbf" ) NEW ALIAS ( cUseAlias ) SHARED
if !NetErr()
lOpen := .t.
oWvtBrw := ConfigBrowser( { 1,7,9,10,8 }, cUseAlias, { 6,67,36,120 }, "test.dbf - 1,7,9,10,8", oDlg, "N/W*,N/GR*",1001 )
oDlg:AddObject( oWvtBrw )
endif
lOpen1 := .f.
cUseAlias1 := "TEST1"
USE ( hb_DirBase() + ".." + hb_ps() + ".." + hb_ps() + ".." + hb_ps() + "tests" + hb_ps() + "test.dbf" ) NEW ALIAS ( cUseAlias1 ) SHARED
if !NetErr()
lOpen1 := .t.
oWvtBrw1 := ConfigBrowser( { 1,2,3,4,5,6 }, cUseAlias1, { 43,4,51,120 }, "test.dbf - 1,2,3,4,5,6",oDlg, "N/BG*,N/W*",1002 )
oDlg:AddObject( oWvtBrw1 )
endif
Setkey( K_F12, {|| hb_gtInfo( HB_GTI_SPEC, HB_GTS_FACTOR, 200 ) } )
oDlg:Create()
oDlg:Execute()
oDlg:Destroy()
if lOpen
Select( cUseAlias )
USE
endif
if lOpen1
Select( cUseAlias1 )
USE
endif
WvtSetBlocks( aObjects )
WvtSetKeys( .t. )
Wvt_SetPopupMenu( hPopup )
SetMouseCheck( lChkMouse )
RETURN Nil
//-------------------------------------------------------------------//
FUNCTION DialogWvgClassesTwo()
LOCAL aObjects := WvtSetBlocks( {} )
LOCAL oDlg := WvtDialog():New( 30,90,"My Dialog Two" )
LOCAL g_oMenuBar, oMenu, oPBar
LOCAL oPBar1, oPBar2, oPBar3, oPBar4
g_oMenuBar := WvtMenu():new():create()
oMenu := wvtMenu():new():create()
oMenu:Caption := "Miscellaneous"
oMenu:AddItem( "Progressbar", {|| ExeProgBar( oPBar,oPBar1,oPBar2,oPBar3, oPBar4 ) } )
oMenu:AddItem( "-" )
oMenu:AddItem( "Exit", {|| Wvt_Keyboard( K_ESC ) } )
g_oMenuBar:addItem( "",oMenu )
oDlg:oMenu := g_oMenuBar
oPBar := WvtProgressBar():New( oDlg, , 3, 10, 5, 80 )
oPBar:nBarColor := RGB( 0,240,240 )
oPBar:cBackColor := "W/N*"
oPBar:nDirection := 1
oPBar:cImage := "vouch1.bmp"
oDlg:AddObject( oPBar )
oPBar1 := WvtProgressBar():New( oDlg, , 7, 10, 8, 80 )
oPBar1:nBarColor := RGB( 11,255,196 )
oPBar1:cBackColor := "W/N*"
oPBar1:nDirection := 0
oDlg:AddObject( oPBar1 )
oPBar2 := WvtProgressBar():New( oDlg, , 11, 10, 28, 19 )
oPBar2:nBarColor := RGB( 240,240,0 )
oPBar2:cBackColor := "W/N*"
oPBar2:lVertical := .t.
oPBar2:nDirection := 0
oPBar2:cImage := "v_notes.ico"
oDlg:AddObject( oPBar2 )
oPBar3 := WvtProgressBar():New( oDlg, , 11, 77, 28, 80 )
oPBar3:nBarColor := RGB( 0,0,255 )
oPBar3:cBackColor := "W/N*"
oPBar3:lVertical := .t.
oPBar3:nDirection := 1
oDlg:AddObject( oPBar3 )
oPBar4 := WvtProgressBar():New( oDlg, , 22, 22, 28, 74 )
oPBar4:nBarColor := RGB( 255,255,0 )
oPBar4:cBackColor := "W/N*"
oPBar4:lVertical := .t.
oPBar4:nDirection := 0
oDlg:AddObject( oPBar4 )
oDlg:Create()
oDlg:Execute()
oDlg:Destroy()
WvtSetBlocks( aObjects )
RETURN Nil
//-------------------------------------------------------------------//
STATIC FUNCTION ExeProgBar( oPBar,oPBar1,oPBar2,oPBar3,oPBar4 )
LOCAL i
oPBar:Activate()
oPBar1:Activate()
oPBar2:Activate()
oPBar3:Activate()
oPBar4:Activate()
for i := 1 to 100
oPBar:Display( i, 100 )
oPBar1:Display( i, 100 )
oPBar2:Display( i, 100 )
oPBar3:Display( i, 100 )
oPBar4:Display( i, 100 )
inkey( 0.3 )
next
inkey( 0 )
oPBar:DeActivate()
oPBar1:DeActivate()
oPBar2:DeActivate()
oPBar3:DeActivate()
oPBar4:DeActivate()
RETURN nil
//-------------------------------------------------------------------//
STATIC FUNCTION ExeProgressBar( oPBar, oPBar3 )
LOCAL i
oPBar:Activate()
oPBar3:Activate()
for i := 1 to 100
oPBar:Display( i, 100 )
oPBar3:Display( i, 100 )
inkey( 0.3 )
next
oPBar:DeActivate()
oPBar3:DeActivate()
RETURN NIL
//-------------------------------------------------------------------//