Files
harbour-core/harbour/tests/gfx.prg
Przemyslaw Czerpak b6112676bc 2007-11-23 05:09 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* 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
2007-11-23 04:09:55 +00:00

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