* harbour/source/rtl/gtwvt/gtwvt.h
* harbour/source/rtl/gtwvt/gtwvt.c
* removed foreground and background from GLOBAL_DATA
- they are not necessary
+ added support for gfxPrimitive() - fixed xHarbour code
* harbour/contrib/gtwvg/gtwvt.c
+ added support for gfxPrimitive() - fixed xHarbour code
* removed some methods which can be safely replaced by
default ones
* harbour/tests/gfx.prg
* harbour/tests/wcecon.prg
* harbour/tests/gtchars.prg
* updated the order of changed font parameters
* harbour/contrib/xhb/hbcompat.ch
! added missing closing square bracket
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(GTI_ISGRAPHIC)
|
|
?
|
|
? "You are using a non graphics capable gt:"
|
|
? hb_gtVersion()
|
|
?
|
|
Quit
|
|
End
|
|
|
|
If hb_gtInfo(GTI_DESKTOPWIDTH) > 1000
|
|
hb_gtInfo(GTI_FONTWIDTH, 12)
|
|
hb_gtInfo(GTI_FONTSIZE, 24)
|
|
End
|
|
|
|
? hb_gtVersion(1)
|
|
|
|
nScreenWidth := hb_gtInfo(GTI_SCREENWIDTH)
|
|
nFontHeight := hb_gtInfo(GTI_FONTSIZE)
|
|
nFontWidth := hb_gtInfo(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(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(GTI_SCREENHEIGHT)))
|
|
nLeft := Int(hb_Random(hb_gtInfo(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
|