GIF animation demo
Posted: Wed Dec 16, 2009 5:58 pm
Hello Friends,
I want to present a small GIF animation demo based upon the Harbour TGif class.
Your comments are welcome
I want to present a small GIF animation demo based upon the Harbour TGif class.
Code: Select all
/*
* MINIGUI - Harbour Win32 GUI library Demo
*
* Copyright 2002-09 Roberto Lopez <harbourminigui@gmail.com>
*
* Based upon sample Minigui\Samples\Advanced\AnimatedGif
* Author: P.Chornyj <myorg63@mail.ru>
*
* Harbour TGif class
* Copyright 2009 Grigory Filatov <gfilatov@freemail.ru>
*/
#include "minigui.ch"
Function Main()
Local oGif
SET MULTIPLE OFF WARNING
DEFINE WINDOW Form_Main ;
AT 0,0 ;
WIDTH 0 HEIGHT 0 ;
TITLE 'Gif89 Demo' ;
MAIN NOMAXIMIZE NOSIZE ;
ON INTERACTIVECLOSE OnClose( oGif )
DEFINE MAIN MENU
DEFINE POPUP "&File"
MENUITEM '&Play' ACTION IIF( !oGif:IsRunning(), oGif:Play(), )
MENUITEM '&Stop' ACTION IIF( oGif:IsRunning(), oGif:Stop(), )
SEPARATOR
MENUITEM "E&xit" ACTION OnClose( oGif )
END POPUP
DEFINE POPUP "&?"
MENUITEM "GIF &Info" ACTION IIF( oGif:nTotalFrames > 1, ;
( oGif:Stop(), MsgInfo( ;
"Picture name" + Chr(9) + ": " + cFileNoPath( oGif:cFileName ) + CRLF + ;
"Image Width" + Chr(9) + ": " + hb_ntos( oGif:nWidth ) + CRLF + ;
"Image Height" + Chr(9) + ": " + hb_ntos( oGif:nHeight ) + CRLF + ;
"Total Frames" + Chr(9) + ": " + hb_ntos( oGif:nTotalFrames ) + CRLF + ;
"Current Frame" + Chr(9) + ": " + hb_ntos( oGif:nCurrentFrame ), ;
"GIF Info" ), oGif:Play() ), )
END POPUP
END MENU
oGif := TGif():New( 'santa.gif', 20, 20, 120, 350, 95 )
END WINDOW
Form_Main.Width := Max( 180, oGif:nWidth + 2 * GetBorderWidth() + 40 )
Form_Main.Height := GetTitleHeight() + oGif:nHeight + 2 * GetBorderHeight() + 60
oGif:nLeft := ( Form_Main.Width - oGif:nWidth - 2 * GetBorderWidth() ) / 2 + 1
DRAW PANEL IN WINDOW Form_Main ;
AT oGif:nTop - 2, oGif:nLeft - 2 ;
TO oGif:nBottom, oGif:nRight
CENTER WINDOW Form_Main
ACTIVATE WINDOW Form_Main
Return Nil
/*
*/
Function OnClose( oGif )
oGif:End()
ThisWindow.Release()
Return Nil