* tests/gfx.prg
* tests/wcecon.prg
* tests/gtchars.prg
* tests/gtkeys.prg
* include/hbgtinfo.ch
* source/rtl/hbgtcore.c
* source/rtl/gtkbstat.c
* source/rtl/gtdos/gtdos.c
* source/rtl/gtwin/gtwin.c
* source/rtl/gtxwc/gtxwc.c
* source/rtl/gtos2/gtos2.c
* source/rtl/gtcrs/gtcrs.c
* source/rtl/gtalleg/gtalleg.c
* source/rtl/gtstd/gtstd.c
* source/rtl/gtsln/gtsln.c
* source/rtl/gttrm/gttrm.c
* source/rtl/gtpca/gtpca.c
* source/rtl/gtgui/gtgui.c
* source/rtl/gtcgi/gtcgi.c
* source/rtl/gtwvt/gtwvt.c
* contrib/hbgtwvg/gtwvg.c
! Some minor formatting to the .ch file. Removed
reference to non-existing doc/gtinfo.txt.
* Using HB_GTI_* instead of GTI_* in Harbour files.
102 lines
2.8 KiB
Plaintext
102 lines
2.8 KiB
Plaintext
/*
|
|
* $Id$
|
|
*
|
|
*/
|
|
|
|
#include "hbgtinfo.ch"
|
|
#include "hbgfx.ch"
|
|
|
|
#define WELCOME "Welcome to the World of xHarbour multiplatform Graphics!"
|
|
|
|
Function Main
|
|
Local nScreenWidth, nFontHeight, nFontWidth
|
|
Local nTop, nLeft, nHeight, nWidth, nColor, nSec := Seconds()
|
|
|
|
If !hb_gtInfo(HB_GTI_ISGRAPHIC)
|
|
?
|
|
? "You are using a non graphics capable gt:"
|
|
? hb_gtVersion()
|
|
?
|
|
Quit
|
|
End
|
|
|
|
If hb_gtInfo(HB_GTI_DESKTOPWIDTH) > 1000
|
|
hb_gtInfo(HB_GTI_FONTWIDTH, 12)
|
|
hb_gtInfo(HB_GTI_FONTSIZE, 24)
|
|
End
|
|
|
|
? hb_gtVersion(1)
|
|
|
|
nScreenWidth := hb_gtInfo(HB_GTI_SCREENWIDTH)
|
|
nFontHeight := hb_gtInfo(HB_GTI_FONTSIZE)
|
|
nFontWidth := hb_gtInfo(HB_GTI_FONTWIDTH)
|
|
|
|
SetColor("n/w")
|
|
@ 0, 0 Say Space(MaxCol() + 1)
|
|
@ 1, 0 Say PadC(WELCOME, MaxCol() + 1)
|
|
@ 2, 0 Say Space(MaxCol() + 1)
|
|
|
|
hb_gtInfo(HB_GTI_WINTITLE, "Cross-GT, multiplatform graphics demo")
|
|
|
|
PutFrame(nFontHeight / 2,;
|
|
MaxCol() / 2 * nFontWidth - Len(WELCOME) / 2 * nFontWidth - nFontWidth,;
|
|
nFontHeight * 2 + nFontHeight / 2,;
|
|
nFontWidth + MaxCol() / 2 * nFontWidth + Len(WELCOME) / 2 * nFontWidth,;
|
|
hb_gfxMakeColor(0, 0, 0), hb_gfxMakeColor(255, 255, 255))
|
|
|
|
While Inkey() == 0
|
|
nTop := Int(hb_Random(3.1 * nFontHeight, hb_gtInfo(HB_GTI_SCREENHEIGHT)))
|
|
nLeft := Int(hb_Random(hb_gtInfo(HB_GTI_SCREENWIDTH)))
|
|
nHeight := Int(hb_Random(251))
|
|
nWidth := Int(hb_Random(251))
|
|
nColor := hb_gfxMakeColor(Int(hb_Random(32, 256)), Int(hb_Random(32, 256)), Int(hb_Random(32, 256)))
|
|
|
|
Switch Int(hb_Random(1, 9))
|
|
Case 1
|
|
hb_gfxLine(nTop, nLeft, nTop + nHeight, nLeft + nWidth, nColor)
|
|
Exit
|
|
Case 2
|
|
hb_gfxRect(nTop, nLeft, nTop + nHeight, nLeft + nWidth, nColor)
|
|
Exit
|
|
Case 3
|
|
hb_gfxFilledRect(nTop, nLeft, nTop + nHeight, nLeft + nWidth, nColor)
|
|
Exit
|
|
Case 4
|
|
nTop += nHeight
|
|
hb_gfxCircle(nTop, nLeft, nHeight, nColor)
|
|
Exit
|
|
Case 5
|
|
nTop += nHeight
|
|
hb_gfxFilledCircle(nTop, nLeft, nHeight, nColor)
|
|
Exit
|
|
Case 6
|
|
nTop += nHeight
|
|
hb_gfxEllipse(nTop, nLeft, nHeight, nWidth, nColor)
|
|
Exit
|
|
Case 7
|
|
nTop += nHeight
|
|
hb_gfxFilledEllipse(nTop, nLeft, nHeight, nWidth, nColor)
|
|
Exit
|
|
Case 8
|
|
nHeight %= 64
|
|
If nHeight % 2 == 1
|
|
nHeight++
|
|
End
|
|
hb_gfxText(nTop, nLeft, "Hello", nColor, nHeight)
|
|
Exit
|
|
End
|
|
If Seconds() - nSec > 3
|
|
hb_gfxFloodFill(0, 0, nColor)
|
|
nSec := Seconds()
|
|
End
|
|
End
|
|
Return Nil
|
|
|
|
Function PutFrame(nTop, nLeft, nBottom, nRight, nColor1, nColor2)
|
|
|
|
hb_gfxRect(ntop, nLeft, nBottom, nRight, nColor1)
|
|
hb_gfxRect(ntop + 1, nLeft + 1, nBottom - 1, nRight - 1, nColor2)
|
|
/* hb_gfxLine(nTop + 1, nLeft + 1, nTop + 1, nRight - 1, nColor2)
|
|
hb_gfxLine(nTop + 2, nLeft + 1, nBottom - 1, nLeft + 1, nColor2) */
|
|
Return Nil
|