diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 7f1a7c0b6c..907a91055b 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -1,3 +1,19 @@ +20000311-18:52 GMT+1 Victor Szakats + - include/hbinkey.h + - include/hbapimou.h + * include/hbapigt.h + include/Makefile + include/hbset.h + source/rtl/mouse/* + source/rtl/mouseapi.c + source/rtl/console.c + source/rtl/inkey.c + source/rtl/tone.c + source/rtl/set.c + source/vm/hvm.c + * Mouse and keyboard related declaration moved to the central IO header + hbapigt.h. This is a step to a common/modular IO interface. + 20000311-17:54 GMT+1 Victor Szakats - include/hbcursor.h - include/hbbox.h @@ -23,7 +39,7 @@ + TOFIX added for __EJECT() since in Clipper it always prints a eject, regardless of the SET DEVICE setting. % SAVESCREEN() optimized. - ! RESTSCREEM() fixed to check the fifth parameter, like in CA-Cl*pper. + ! RESTSCREEN() fixed to check the fifth parameter, like in CA-Cl*pper. * source/rtl/console.c % hb_gtSetPos() small optim. * source/rtl/dir.c diff --git a/harbour/include/Makefile b/harbour/include/Makefile index 85385bb106..b4b4c475b2 100644 --- a/harbour/include/Makefile +++ b/harbour/include/Makefile @@ -13,7 +13,6 @@ C_HEADERS=\ hbapigt.h \ hbapiitm.h \ hbapilng.h \ - hbapimou.h \ hbapirdd.h \ hbcomp.h \ hbdate.h \ @@ -21,7 +20,6 @@ C_HEADERS=\ hberrors.h \ hbexprop.h \ hbinit.h \ - hbinkey.h \ hbmacro.h \ hbpcode.h \ hbpp.h \ diff --git a/harbour/include/hbapigt.h b/harbour/include/hbapigt.h index e329cb2648..bd83a20516 100644 --- a/harbour/include/hbapigt.h +++ b/harbour/include/hbapigt.h @@ -33,6 +33,21 @@ * */ +/* + * The following parts are Copyright of the individual authors. + * www - http://www.harbour-project.org + * + * Copyright 1999 David G. Holm + * Keyboard related declarations + * Cursor declarations + * + * Copyright 1999 Victor Szakats + * Mouse related declarations + * + * See doc/license.txt for licensing terms. + * + */ + #ifndef HB_APIGT_H_ #define HB_APIGT_H_ @@ -128,4 +143,62 @@ extern BOOL hb_gt_GetBlink( void ); extern void hb_gt_SetBlink( BOOL bBlink ); extern void hb_gt_Replicate( BYTE byChar, ULONG ulLen ); +/* Keyboard related declarations */ + +typedef enum +{ + INKEY_MOVE = 1, /* Mouse Events */ + INKEY_LDOWN = 2, /* Mouse Left Click Down */ + INKEY_LUP = 4, /* Mouse Left Click Up */ + INKEY_RDOWN = 8, /* Mouse Right Click Down */ + INKEY_RUP = 16, /* Mouse Right Click Up */ + INKEY_KEYBOARD = 128, /* Keyboard Events */ + INKEY_ALL = 159, /* All Mouse and Keyboard Events */ + INKEY_EXTENDED = 256 /* Extended Keyboard Events */ +} HB_inkey_enum; + +/* Harbour keyboard support functions */ +extern int hb_inkey ( double seconds, HB_inkey_enum event_mask, BOOL wait, BOOL forever ); /* Wait for keyboard input */ +extern int hb_inkeyGet( void ); /* Extract the next key from the Harbour keyboard buffer */ +extern void hb_inkeyPut( int ch ); /* Inserts an inkey code into the keyboard buffer */ +extern int hb_inkeyLast( void ); /* Return the value of the last key that was extracted */ +extern int hb_inkeyNext( void ); /* Return the next key without extracting it */ +extern void hb_inkeyPoll( void ); /* Poll the console keyboard to stuff the Harbour buffer */ +extern void hb_inkeyReset( BOOL allocate ); /* Reset the Harbour keyboard buffer */ + +/* TOFIX: This should go somewhere else. */ +extern void hb_releaseCPU( void ); /* Attempt to release a CPU time slice */ + +/* Mouse related declarations */ + +/* Public interface. These should never change, only be added to. */ + +extern void hb_mouseInit( void ); +extern void hb_mouseExit( void ); +extern BOOL hb_mouseIsPresent( void ); +extern BOOL hb_mouseGetCursor( void ); +extern void hb_mouseSetCursor( BOOL bVisible ); +extern int hb_mouseCol( void ); +extern int hb_mouseRow( void ); +extern void hb_mouseSetPos( int iRow, int iCol ); +extern BOOL hb_mouseIsButtonPressed( int iButton ); +extern int hb_mouseCountButton( void ); +extern void hb_mouseSetBounds( int iTop, int iLeft, int iBottom, int iRight ); +extern void hb_mouseGetBounds( int * piTop, int * piLeft, int * piBottom, int * piRight ); + +/* Private interface listed below. these are common to all platforms */ + +extern void hb_mouse_Init( void ); +extern void hb_mouse_Exit( void ); +extern BOOL hb_mouse_IsPresent( void ); +extern void hb_mouse_Show( void ); +extern void hb_mouse_Hide( void ); +extern int hb_mouse_Col( void ); +extern int hb_mouse_Row( void ); +extern void hb_mouse_SetPos( int iRow, int iCol ); +extern BOOL hb_mouse_IsButtonPressed( int iButton ); +extern int hb_mouse_CountButton( void ); +extern void hb_mouse_SetBounds( int iTop, int iLeft, int iBottom, int iRight ); +extern void hb_mouse_GetBounds( int * piTop, int * piLeft, int * piBottom, int * piRight ); + #endif /* HB_APIGT_H_ */ diff --git a/harbour/include/hbapimou.h b/harbour/include/hbapimou.h deleted file mode 100644 index 420649cecd..0000000000 --- a/harbour/include/hbapimou.h +++ /dev/null @@ -1,71 +0,0 @@ -/* - * $Id$ - */ - -/* - * Harbour Project source code: - * Header file for the Mouse API - * - * Copyright 1999 Victor Szakats - * www - http://www.harbour-project.org - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version, with one exception: - * - * The exception is that if you link the Harbour Runtime Library (HRL) - * and/or the Harbour Virtual Machine (HVM) with other files to produce - * an executable, this does not by itself cause the resulting executable - * to be covered by the GNU General Public License. Your use of that - * executable is in no way restricted on account of linking the HRL - * and/or HVM code into it. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA (or visit - * their web site at http://www.gnu.org/). - * - */ - -#ifndef HB_APIMOU_H_ -#define HB_APIMOU_H_ - -#include "hbapi.h" - -/* Public interface. These should never change, only be added to. */ - -extern void hb_mouseInit( void ); -extern void hb_mouseExit( void ); -extern BOOL hb_mouseIsPresent( void ); -extern BOOL hb_mouseGetCursor( void ); -extern void hb_mouseSetCursor( BOOL bVisible ); -extern int hb_mouseCol( void ); -extern int hb_mouseRow( void ); -extern void hb_mouseSetPos( int iRow, int iCol ); -extern BOOL hb_mouseIsButtonPressed( int iButton ); -extern int hb_mouseCountButton( void ); -extern void hb_mouseSetBounds( int iTop, int iLeft, int iBottom, int iRight ); -extern void hb_mouseGetBounds( int * piTop, int * piLeft, int * piBottom, int * piRight ); - -/* Private interface listed below. these are common to all platforms */ - -extern void hb_mouse_Init( void ); -extern void hb_mouse_Exit( void ); -extern BOOL hb_mouse_IsPresent( void ); -extern void hb_mouse_Show( void ); -extern void hb_mouse_Hide( void ); -extern int hb_mouse_Col( void ); -extern int hb_mouse_Row( void ); -extern void hb_mouse_SetPos( int iRow, int iCol ); -extern BOOL hb_mouse_IsButtonPressed( int iButton ); -extern int hb_mouse_CountButton( void ); -extern void hb_mouse_SetBounds( int iTop, int iLeft, int iBottom, int iRight ); -extern void hb_mouse_GetBounds( int * piTop, int * piLeft, int * piBottom, int * piRight ); - -#endif /* HB_APIMOU_H_ */ diff --git a/harbour/include/hbinkey.h b/harbour/include/hbinkey.h deleted file mode 100644 index 4010034588..0000000000 --- a/harbour/include/hbinkey.h +++ /dev/null @@ -1,64 +0,0 @@ -/* - * $Id$ - */ - -/* - * Harbour Project source code: - * Header file for the Keyboard API - * - * Copyright 1999 David G. Holm - * www - http://www.harbour-project.org - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version, with one exception: - * - * The exception is that if you link the Harbour Runtime Library (HRL) - * and/or the Harbour Virtual Machine (HVM) with other files to produce - * an executable, this does not by itself cause the resulting executable - * to be covered by the GNU General Public License. Your use of that - * executable is in no way restricted on account of linking the HRL - * and/or HVM code into it. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA (or visit - * their web site at http://www.gnu.org/). - * - */ - -#ifndef HB_INKEY_H_ -#define HB_INKEY_H_ - -#include "hbdefs.h" - -typedef enum -{ - INKEY_MOVE = 1, /* Mouse Events */ - INKEY_LDOWN = 2, /* Mouse Left Click Down */ - INKEY_LUP = 4, /* Mouse Left Click Up */ - INKEY_RDOWN = 8, /* Mouse Right Click Down */ - INKEY_RUP = 16, /* Mouse Right Click Up */ - INKEY_KEYBOARD = 128, /* Keyboard Events */ - INKEY_ALL = 159, /* All Mouse and Keyboard Events */ - INKEY_EXTENDED = 256 /* Extended Keyboard Events */ -} HB_inkey_enum; - -/* Harbour keyboard support functions */ -extern int hb_inkey ( double seconds, HB_inkey_enum event_mask, BOOL wait, BOOL forever ); /* Wait for keyboard input */ -extern int hb_inkeyGet( void ); /* Extract the next key from the Harbour keyboard buffer */ -extern void hb_inkeyPut( int ch ); /* Inserts an inkey code into the keyboard buffer */ -extern int hb_inkeyLast( void ); /* Return the value of the last key that was extracted */ -extern int hb_inkeyNext( void ); /* Return the next key without extracting it */ -extern void hb_inkeyPoll( void ); /* Poll the console keyboard to stuff the Harbour buffer */ -extern void hb_inkeyReset( BOOL allocate ); /* Reset the Harbour keyboard buffer */ - -extern void hb_releaseCPU( void ); /* Attempt to release a CPU time slice */ - -#endif /* HB_INKEY_H_ */ diff --git a/harbour/include/hbset.h b/harbour/include/hbset.h index e1a39f3efa..6769d7de80 100644 --- a/harbour/include/hbset.h +++ b/harbour/include/hbset.h @@ -85,7 +85,6 @@ #include "hbdefs.h" #include "hbapifs.h" #include "hbapigt.h" -#include "hbinkey.h" typedef enum { diff --git a/harbour/source/rtl/console.c b/harbour/source/rtl/console.c index 951f482a06..24dd04d022 100644 --- a/harbour/source/rtl/console.c +++ b/harbour/source/rtl/console.c @@ -68,13 +68,10 @@ #include "hbapiitm.h" #include "hbapierr.h" #include "hbapifs.h" +#include "hbapigt.h" #include "hbdate.h" #include "hbset.h" -#include "hbinkey.h" #include "inkey.ch" -#include "hbapigt.h" /* HARBOUR_USE_GTAPI is checked inside hbapigt.h, so that - we can always get the border styles */ -#include "hbapimou.h" #if defined(__GNUC__) && ! defined(__MINGW32__) #include diff --git a/harbour/source/rtl/inkey.c b/harbour/source/rtl/inkey.c index 0e4919216e..3d06441738 100644 --- a/harbour/source/rtl/inkey.c +++ b/harbour/source/rtl/inkey.c @@ -111,8 +111,8 @@ #include "hbvm.h" #include "hbapierr.h" #include "hbapiitm.h" +#include "hbapigt.h" #include "hbset.h" -#include "hbinkey.h" #include "inkey.ch" #include "hbinit.h" diff --git a/harbour/source/rtl/mouse/mousedos.c b/harbour/source/rtl/mouse/mousedos.c index 9ae302e511..8c9eabcf44 100644 --- a/harbour/source/rtl/mouse/mousedos.c +++ b/harbour/source/rtl/mouse/mousedos.c @@ -42,7 +42,6 @@ #include #endif -#include "hbapimou.h" #include "hbapigt.h" /* C callable low-level interface */ diff --git a/harbour/source/rtl/mouse/mouseos2.c b/harbour/source/rtl/mouse/mouseos2.c index 709b3a5359..0a1cd3e8a0 100644 --- a/harbour/source/rtl/mouse/mouseos2.c +++ b/harbour/source/rtl/mouse/mouseos2.c @@ -49,7 +49,7 @@ #define INCL_NOPMAPI /* exclude Presentation Manager Include File */ #include -#include "hbapimou.h" +#include "hbapigt.h" static HMOU s_uMouHandle; /* mouse logical handle */ diff --git a/harbour/source/rtl/mouse/mousestd.c b/harbour/source/rtl/mouse/mousestd.c index 1c7dbd5ce4..85ec058f89 100644 --- a/harbour/source/rtl/mouse/mousestd.c +++ b/harbour/source/rtl/mouse/mousestd.c @@ -33,7 +33,7 @@ * */ -#include "hbapimou.h" +#include "hbapigt.h" /* NOTE: This file is a simple stub for those platforms which don't have any kind of mouse support. [vszakats] */ diff --git a/harbour/source/rtl/mouse/mousetpl.c b/harbour/source/rtl/mouse/mousetpl.c index d790c40be8..fecff920ca 100644 --- a/harbour/source/rtl/mouse/mousetpl.c +++ b/harbour/source/rtl/mouse/mousetpl.c @@ -33,7 +33,7 @@ * */ -#include "hbapimou.h" +#include "hbapigt.h" /* C callable low-level interface */ diff --git a/harbour/source/rtl/mouse/mousewin.c b/harbour/source/rtl/mouse/mousewin.c index 1cdd8a84bf..2e95a11139 100644 --- a/harbour/source/rtl/mouse/mousewin.c +++ b/harbour/source/rtl/mouse/mousewin.c @@ -40,7 +40,7 @@ #endif /* __GNUC__ */ #include -#include "hbapimou.h" +#include "hbapigt.h" #if defined(__IBMCPP__) #undef WORD /* 2 bytes unsigned */ diff --git a/harbour/source/rtl/mouseapi.c b/harbour/source/rtl/mouseapi.c index f0a7dc6a92..69ffdd90b0 100644 --- a/harbour/source/rtl/mouseapi.c +++ b/harbour/source/rtl/mouseapi.c @@ -46,7 +46,6 @@ #include "hbapi.h" #include "hbapiitm.h" -#include "hbapimou.h" #include "hbapigt.h" static BOOL s_bPresent; diff --git a/harbour/source/rtl/set.c b/harbour/source/rtl/set.c index eef46bf584..55eb444dfe 100644 --- a/harbour/source/rtl/set.c +++ b/harbour/source/rtl/set.c @@ -195,8 +195,8 @@ #include "hbapiitm.h" #include "hbapierr.h" #include "hbapifs.h" +#include "hbapigt.h" #include "hbset.h" -#include "hbinkey.h" HB_SET_STRUCT hb_set; diff --git a/harbour/source/rtl/tone.c b/harbour/source/rtl/tone.c index d7ecdb91da..c074aae41f 100644 --- a/harbour/source/rtl/tone.c +++ b/harbour/source/rtl/tone.c @@ -80,7 +80,7 @@ #endif #include "hbapi.h" -#include "hbinkey.h" /* For hb_releaseCPU() */ +#include "hbapigt.h" /* For hb_releaseCPU() */ #if defined(HARBOUR_GCC_OS2) ULONG DosBeep( ULONG ulFrequency, ULONG ulDuration ); diff --git a/harbour/source/vm/hvm.c b/harbour/source/vm/hvm.c index 32f0434a31..77b1bf0bec 100644 --- a/harbour/source/vm/hvm.c +++ b/harbour/source/vm/hvm.c @@ -56,9 +56,9 @@ #include "hbapiitm.h" #include "hbapilng.h" #include "hbapirdd.h" +#include "hbapigt.h" #include "hbpcode.h" #include "hbset.h" -#include "hbinkey.h" typedef struct _SYMBOLS {