From c33edc6cb71268e03f2dc5782fcd7e155f88b2f0 Mon Sep 17 00:00:00 2001 From: Eric Kohl Date: Sun, 3 Oct 1999 22:10:15 +0000 Subject: [PATCH] Made notevil screen size aware. svn path=/trunk/; revision=679 --- rosapps/notevil/makefile | 28 +++++++++++++--- rosapps/notevil/notevil.c | 69 +++++++++++++++++++++++++------------- rosapps/notevil/notevil.rc | 6 ++-- 3 files changed, 73 insertions(+), 30 deletions(-) diff --git a/rosapps/notevil/makefile b/rosapps/notevil/makefile index a4d992e23a5..242bb844f76 100644 --- a/rosapps/notevil/makefile +++ b/rosapps/notevil/makefile @@ -1,4 +1,4 @@ -# $Id: makefile,v 1.1 1999/05/15 07:23:34 ea Exp $ +# $Id: makefile,v 1.2 1999/10/03 22:10:15 ekohl Exp $ # # ReactOS makefile for notevil # Compiler: egcs 1.1.2 @@ -23,12 +23,32 @@ $(TARGET).exe: $(OBJECTS) -o $(TARGET).exe \ -lkernel32 \ -luser32 \ - -lcrtdll + -lcrtdll $(NM) --numeric-sort $(TARGET).exe > $(TARGET).sym - + $(TARGET).coff: $(TARGET).rc $(RC) $(RFLAGS) $(TARGET).rc $(TARGET).coff - + + +floppy: $(TARGET:%=$(FLOPPY_DIR)/apps/%) + +$(TARGET:%=$(FLOPPY_DIR)/apps/%): $(FLOPPY_DIR)/apps/%: % +ifeq ($(DOSCLI),yes) + $(CP) $* $(FLOPPY_DIR)\apps\$* +else + $(CP) $* $(FLOPPY_DIR)/apps/$* +endif + + +dist: $(TARGET:%=../$(DIST_DIR)/apps/%) + +$(TARGET:%=../$(DIST_DIR)/apps/%): ../$(DIST_DIR)/apps/%: % +ifeq ($(DOSCLI),yes) + $(CP) $* ..\$(DIST_DIR)\apps\$* +else + $(CP) $* ../$(DIST_DIR)/apps/$* +endif + include ../rules.mak # EOF diff --git a/rosapps/notevil/notevil.c b/rosapps/notevil/notevil.c index 3466d924662..3e9c4135a44 100644 --- a/rosapps/notevil/notevil.c +++ b/rosapps/notevil/notevil.c @@ -1,4 +1,4 @@ -/* $Id: notevil.c,v 1.1 1999/05/15 07:23:34 ea Exp $ +/* $Id: notevil.c,v 1.2 1999/10/03 22:10:15 ekohl Exp $ * * notevil.c * @@ -36,6 +36,7 @@ LPCTSTR app_name = _TEXT("notevil"); HANDLE myself; HANDLE ScreenBuffer; +CONSOLE_SCREEN_BUFFER_INFO ScreenBufferInfo; void WriteStringAt( @@ -47,7 +48,8 @@ WriteStringAt( DWORD cWritten = 0; WORD wLen = lstrlen(lpString); - if (0 == wLen) return; + if (0 == wLen) + return; WriteConsoleOutputCharacter( ScreenBuffer, lpString, @@ -74,7 +76,7 @@ WriteCoord(COORD c) wsprintf( buf, - _TEXT("x=%d y=%d"), + _TEXT("x=%02d y=%02d"), c.X, c.Y ); @@ -111,21 +113,24 @@ GetNextString( return 0; } - + VOID DisplayTitle(VOID) { - COORD xy = {24,12}; + LPTSTR szTitle = _TEXT("ReactOS Coders Console Parade"); + COORD xy; + + xy.X = (ScreenBufferInfo.dwSize.X - lstrlen(szTitle)) / 2; + xy.Y = ScreenBufferInfo.dwSize.Y / 2; WriteStringAt( - _TEXT("ReactOS Coders Console Parade"), + szTitle, xy, (FOREGROUND_GREEN | FOREGROUND_INTENSITY) ); } - #define RES_DELAY_CHANGE 12 #define RES_BUFFER_SIZE 1024 void @@ -134,11 +139,14 @@ MainLoop(void) TCHAR NameString [RES_BUFFER_SIZE]; DWORD NameIndex = 1; INT NameLength = 0; - COORD xy = {40,12}; + COORD xy; INT n = RES_DELAY_CHANGE; INT dir_y = 1; INT dir_x = 1; - WORD wColor = 0; + WORD wColor = 1; + + xy.X = ScreenBufferInfo.dwSize.X / 2; + xy.Y = ScreenBufferInfo.dwSize.Y / 2; for ( ; 1; ++n ) { @@ -150,25 +158,31 @@ MainLoop(void) & NameIndex ); NameLength = lstrlen(NameString); - ++wColor; + wColor++; + if ((wColor & 0x000F) == 0) + wColor = 1; } - if (!xy.X) + if (xy.X == 0) { - if (dir_x == -1) dir_x = 1; + if (dir_x == -1) + dir_x = 1; } - else if (xy.X > 80 - NameLength) + else if (xy.X >= ScreenBufferInfo.dwSize.X - NameLength - 1) { - if (dir_x == 1) dir_x = -1; + if (dir_x == 1) + dir_x = -1; } xy.X += dir_x; - switch (xy.Y) + + if (xy.Y == 0) { - case 0: - if (dir_y == -1) dir_y = 1; - break; - case 24: - if (dir_y == 1) dir_y = -1; - break; + if (dir_y == -1) + dir_y = 1; + } + else if (xy.Y >= ScreenBufferInfo.dwSize.Y - 1) + { + if (dir_y == 1) + dir_y = -1; } xy.Y += dir_y; #ifdef DISPLAY_COORD @@ -178,14 +192,14 @@ MainLoop(void) WriteStringAt( NameString, xy, - (wColor & 0x000F) + wColor ); Sleep(100); WriteStringAt( NameString, xy, 0 - ); + ); } } @@ -198,6 +212,14 @@ main( { myself = GetModuleHandle(NULL); +#if 1 + GetConsoleScreenBufferInfo (GetStdHandle(STD_OUTPUT_HANDLE), + &ScreenBufferInfo); +#else + ScreenBufferInfo.dwSize.X = 80; + ScreenBufferInfo.dwSize.Y = 25; +#endif + ScreenBuffer = CreateConsoleScreenBuffer( GENERIC_WRITE, 0, @@ -214,6 +236,7 @@ main( ); return EXIT_FAILURE; } + SetConsoleActiveScreenBuffer(ScreenBuffer); MainLoop(); CloseHandle(ScreenBuffer); diff --git a/rosapps/notevil/notevil.rc b/rosapps/notevil/notevil.rc index 08c7f88f8a6..f748206136b 100644 --- a/rosapps/notevil/notevil.rc +++ b/rosapps/notevil/notevil.rc @@ -1,4 +1,4 @@ -/* $Id: notevil.rc,v 1.1 1999/05/15 07:23:34 ea Exp $ */ +/* $Id: notevil.rc,v 1.2 1999/10/03 22:10:15 ekohl Exp $ */ #include "../../reactos/include/defines.h" #include "../../reactos/include/reactos/resource.h" @@ -7,8 +7,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US /* Version information. */ VS_VERSION_INFO VERSIONINFO - FILEVERSION 0,0,13,RES_UINT_FILE_VERSION - PRODUCTVERSION 0,0,13,0 + FILEVERSION RES_UINT_FV_MAJOR,RES_UINT_FV_MINOR,RES_UINT_FV_REVISION,RES_UINT_FV_BUILD + PRODUCTVERSION RES_UINT_PV_MAJOR,RES_UINT_PV_MINOR,RES_UINT_PV_REVISION,RES_UINT_PV_BUILD FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L