3 This file is part of the Free Pascal run time library
.
4 Copyright (c
) 1999-2000 by Peter Vreman
6 GPM (>v1
.17
) mouse Interface
for linux
8 See the file COPYING
.FPC
, included
in this distribution
,
9 for details about the copyright
.
11 This program is distributed
in the hope that it will be useful
,
12 but WITHOUT ANY WARRANTY
;without even the implied warranty of
13 MERCHANTABILITY
or FITNESS FOR A PARTICULAR PURPOSE
.
15 **********************************************************************}
25 _PATH_VARRUN
= '/var/run/';
27 GPM_NODE_DIR
= _PATH_VARRUN
;
28 GPM_NODE_DIR_MODE
= 0775;
29 GPM_NODE_PID
= '/var/run/gpm.pid';
30 GPM_NODE_DEV
= '/dev/gpmctl';
31 GPM_NODE_CTL
= GPM_NODE_DEV
;
32 GPM_NODE_FIFO
= '/dev/gpmdata';
62 PGpmEvent
= ^TGpmEvent
;
71 EventType
: TGpmEType
;
76 TGpmHandler
=function(var event
:TGpmEvent;clientdata
:pointer):longint;cdecl
;
79 GPM_MAGIC
= $47706D4C;
82 PGpmConnect
= ^TGpmConnect
;
102 handler
: TGpmHandler
;
103 clientdata
: pointer
;
109 gpm_flag
: longint
;cvar
;external
;
110 gpm_fd
: longint
;cvar
;external
;
111 gpm_hflag
: longint
;cvar
;external
;
112 gpm_morekeys
: Longbool
;cvar
;external
;
113 gpm_zerobased
: Longbool
;cvar
;external
;
114 gpm_visiblepointer
: Longbool
;cvar
;external
;
115 gpm_mx
: longint
;cvar
;external
;
116 gpm_my
: longint
;cvar
;external
;
117 gpm_timeout
: TTimeVal
;cvar
;external
;
118 _gpm_buf
: array
[0..0] of char
;cvar
;external
;
119 _gpm_arg
: ^word
;cvar
;external
;
120 gpm_handler
: TGpmHandler
;cvar
;external
;
121 gpm_data
: pointer
;cvar
;external
;
122 gpm_roi_handler
: TGpmHandler
;cvar
;external
;
123 gpm_roi_data
: pointer
;cvar
;external
;
124 gpm_roi
: PGpmRoi
;cvar
;external
;
125 gpm_current_roi
: PGpmRoi
;cvar
;external
;
126 gpm_consolefd
: longint
;cvar
;external
;
127 Gpm_HandleRoi
: TGpmHandler
;cvar
;external
;
129 function
Gpm_StrictSingle(EventType
: longint
) : boolean
;
130 function
Gpm_AnySingle(EventType
: longint
) : boolean
;
131 function
Gpm_StrictDouble(EventType
: longint
) : boolean
;
132 function
Gpm_AnyDouble(EventType
: longint
) : boolean
;
133 function
Gpm_StrictTriple(EventType
: longint
) : boolean
;
134 function
Gpm_AnyTriple(EventType
: longint
) : boolean
;
136 function
Gpm_Open(var _para1
:TGpmConnect; _para2
:longint):longint;cdecl
;external
;
137 function Gpm_Close
:longint;cdecl
;external
;
138 function
Gpm_GetEvent(var _para1
:TGpmEvent):longint;cdecl
;external
;
139 {function
Gpm_Getc(_para1
:pFILE):longint;cdecl
;external
;
140 function Gpm_Getchar
: longint
;}
141 function
Gpm_Repeat(millisec
:longint):longint;cdecl
;external
;
142 function
Gpm_FitValuesM(var x
,y
:longint; margin
:longint):longint;cdecl
;external
;
143 function
Gpm_FitValues(var x
,y
:longint):longint;cdecl
;external
;
146 function
GPM_DRAWPOINTER(ePtr
: longint
) : longint
;
149 function
Gpm_PushRoi(x1
:longint; y1
:longint; X2
:longint; Y2
:longint; mask
:longint; fun
:TGpmHandler; xtradata
:pointer):PGpmRoi;cdecl
;external
;
150 function
Gpm_PopRoi(which
:PGpmRoi):PGpmRoi;cdecl
;external
;
151 function
Gpm_RaiseRoi(which
:PGpmRoi; before
:PGpmRoi):PGpmRoi;cdecl
;external
;
152 function
Gpm_LowerRoi(which
:PGpmRoi; after
:PGpmRoi):PGpmRoi;cdecl
;external
;
154 {function Gpm_Wgetch
:longint;cdecl
;external
;
155 function Gpm_Getch
:longint;}
157 function
Gpm_GetLibVersion(var where
:longint):pchar;cdecl
;external
;
158 function
Gpm_GetServerVersion(var where
:longint):pchar;cdecl
;external
;
159 function
Gpm_GetSnapshot(var ePtr
:TGpmEvent):longint;cdecl
;external
;
164 function
Gpm_StrictSingle(EventType
: longint
) : boolean
;
166 Gpm_StrictSingle
:=(EventType
and GPM_SINGLE
<>0) and not(EventType
and GPM_MFLAG
<>0);
169 function
Gpm_AnySingle(EventType
: longint
) : boolean
;
171 Gpm_AnySingle
:=(EventType
and GPM_SINGLE
<>0);
174 function
Gpm_StrictDouble(EventType
: longint
) : boolean
;
176 Gpm_StrictDouble
:=(EventType
and GPM_DOUBLE
<>0) and not(EventType
and GPM_MFLAG
<>0);
179 function
Gpm_AnyDouble(EventType
: longint
) : boolean
;
181 Gpm_AnyDouble
:=(EventType
and GPM_DOUBLE
<>0);
184 function
Gpm_StrictTriple(EventType
: longint
) : boolean
;
186 Gpm_StrictTriple
:=(EventType
and GPM_TRIPLE
<>0) and not(EventType
and GPM_MFLAG
<>0);
189 function
Gpm_AnyTriple(EventType
: longint
) : boolean
;
191 Gpm_AnyTriple
:=(EventType
and GPM_TRIPLE
<>0);
194 procedure Gpm_CheckVersion
;
198 Gpm_GetLibVersion(l
);
201 writeln('You need at least gpm 1.17');
209 Revision
1.1 2002/02/19 08:26:16 sasu
212 Revision
1.1.2.2 2000/11/22 22:44:32 peter
215 Revision
1.1.2.1 2000/09/14 13:38:25 marco
216 * Moved from Linux dir
. now start of generic unix dir
, from which the
217 really exotic features should be moved to the target specific dirs
.
219 Revision
1.1 2000/07/13 06:30:53 michael
222 Revision
1.5 2000/06/15 06:17:35 michael
225 Revision
1.4 2000/02/09 16:59:31 peter
228 Revision
1.3 2000/01/26 21:51:34 peter
231 Revision
1.2 2000/01/07 16:41:40 daniel