mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-12 23:29:31 +02:00
136 lines
3.8 KiB
ObjectPascal
136 lines
3.8 KiB
ObjectPascal
{
|
|
$Id$
|
|
|
|
Low level unit for GPM v1.14, the mouse server for Linux
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU Library General Public License as published
|
|
by the Free Software Foundation; either version 2 of the License, or
|
|
(at your option) any later version.
|
|
|
|
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.
|
|
*************************************************************************}
|
|
unit gpm114;
|
|
interface
|
|
|
|
uses
|
|
linux;
|
|
|
|
{$LINKLIB c}
|
|
{$LINKLIB gpm}
|
|
|
|
const
|
|
{ Buttons }
|
|
GPM_B_LEFT = 4;
|
|
GPM_B_MIDDLE = 2;
|
|
GPM_B_RIGHT = 1;
|
|
|
|
{ Event types }
|
|
GPM_MOVE = 1;
|
|
GPM_DRAG = 2;
|
|
GPM_DOWN = 4;
|
|
GPM_UP = 8;
|
|
|
|
GPM_SINGLE = 16; { at most one in three is set }
|
|
GPM_DOUBLE = 32;
|
|
GPM_TRIPLE = 64;
|
|
|
|
GPM_MFLAG = 128;
|
|
GPM_HARD = 256;
|
|
|
|
GPM_ENTER = 512;
|
|
GPM_LEAVE = 1024;
|
|
|
|
GPM_BARE_EVENTS = $60F;
|
|
|
|
{ Margins }
|
|
GPM_TOP = 1;
|
|
GPM_BOT = 2;
|
|
GPM_LFT = 4;
|
|
GPM_RGT = 8;
|
|
|
|
type
|
|
{$PACKRECORDS 4}
|
|
TGPMConnect = record
|
|
EventMask, DefaultMask: Word;
|
|
MinMod, MaxMod: Word;
|
|
Pid: Longint;
|
|
vc: Longint;
|
|
end;
|
|
|
|
TGPMEvent = record
|
|
Buttons, Modifiers: Byte;
|
|
vc: Word;
|
|
Dx, Dy, X, Y: Integer;
|
|
EventType: Word;
|
|
Clicks: Longint;
|
|
GPMMargin: Word;
|
|
end;
|
|
|
|
TGPMHandler = function (const GPMEvent: TGPMEvent; ClientData: Pointer): Longint;cdecl;
|
|
|
|
{ Global variables }
|
|
var
|
|
gpm_flag : Longint;cvar;external;
|
|
gpm_consolefd : Longint;cvar;external name 'gpm_fd';
|
|
gpm_tried : Longbool;cvar;external;
|
|
gpm_hflag : Longbool;cvar;external;
|
|
gpm_morekeys : Longbool;cvar;external;
|
|
gpm_zerobased : Longbool;cvar;external;
|
|
gpm_visiblepointer : Longbool;cvar;external;
|
|
gpm_mx : Longint;cvar;external;
|
|
gpm_my : Longint;cvar;external;
|
|
gpm_timeout : timeval;cvar;external;
|
|
gpm_handler : TGPMHandler;cvar;external;
|
|
gpm_data : Pointer;cvar;external;
|
|
gpm_console_fd : Longint;cvar;external;
|
|
|
|
function Gpm_Open(var Connect: TGPMConnect; Flag: Longint): Longint;cdecl;
|
|
function Gpm_Close:Longint;cdecl;
|
|
function Gpm_GetEvent(var Event: TGpmEvent): Longint;cdecl;
|
|
|
|
function Gpm_GetLibVersion(var where: Longint): PChar;cdecl;
|
|
function Gpm_GetServerVersion(var where: Longint): PChar;cdecl;
|
|
function Gpm_GetSnapshot(var Event: TGPMEvent): Longint;cdecl;
|
|
|
|
implementation
|
|
|
|
function Gpm_Open(var Connect: TGPMConnect; Flag: Longint): Longint; cdecl;external;
|
|
function Gpm_Close: Longint; cdecl;external;
|
|
function Gpm_GetEvent(var Event: TGpmEvent): Longint; cdecl;external;
|
|
|
|
function Gpm_GetLibVersion(var where: Longint): PChar; cdecl;external;
|
|
function Gpm_GetServerVersion(var where: Longint): PChar; cdecl;external;
|
|
function Gpm_GetSnapshot(var Event: TGPMEvent): Longint; cdecl;external;
|
|
|
|
|
|
end.
|
|
{
|
|
$Log$
|
|
Revision 1.1 2000-07-13 06:29:39 michael
|
|
+ Initial import
|
|
|
|
Revision 1.1 2000/01/06 01:20:31 peter
|
|
* moved out of packages/ back to topdir
|
|
|
|
Revision 1.1 1999/11/24 23:36:38 peter
|
|
* moved to packages dir
|
|
|
|
Revision 1.1 1999/07/01 19:41:26 peter
|
|
* define OLDGPM to compile with old gpm (for v1.14) else the new
|
|
gpm unit from rtl will be used (v1.17)
|
|
|
|
Revision 1.1 1998/12/04 12:48:30 peter
|
|
* moved some dirs
|
|
|
|
Revision 1.1 1998/10/29 11:02:51 peter
|
|
+ mouse for linux
|
|
|
|
} |