~ubuntu-branches/debian/lenny/fpc/lenny

« back to all changes in this revision

Viewing changes to packages/extra/gnome1/zvt/zvt/libzvt.pp

  • Committer: Bazaar Package Importer
  • Author(s): Mazen Neifer, Torsten Werner, Mazen Neifer
  • Date: 2008-05-17 17:12:11 UTC
  • mfrom: (3.1.9 intrepid)
  • Revision ID: james.westby@ubuntu.com-20080517171211-9qi33xhd9evfa0kg
Tags: 2.2.0-dfsg1-9
[ Torsten Werner ]
* Add Mazen Neifer to Uploaders field.

[ Mazen Neifer ]
* Moved FPC sources into a version dependent directory from /usr/share/fpcsrc
  to /usr/share/fpcsrc/${FPCVERSION}. This allow installing more than on FPC
  release.
* Fixed far call issue in compiler preventing building huge binearies.
  (closes: #477743)
* Updated building dependencies, recomennded and suggested packages.
* Moved fppkg to fp-utils as it is just a helper tool and is not required by
  compiler.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
{
2
 
   $Id: libzvt.pp,v 1.1 2002/10/17 14:15:50 peter Exp $
3
 
 
4
 
   libzvt - Zed's Virtual Terminal
5
 
   Copyright (C) 1998  Michael Zucchi
6
 
 
7
 
   This library is free software; you can redistribute it and/or
8
 
   modify it under the terms of the GNU Library General Public
9
 
   License as published by the Free Software Foundation; either
10
 
   version 2 of the License, or (at your option) any later version.
11
 
 
12
 
   This library is distributed in the hope that it will be useful,
13
 
   but WITHOUT ANY WARRANTY; without even the implied warranty of
14
 
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15
 
   Library General Public License for more details.
16
 
 
17
 
   You should have received a copy of the GNU Library General Public
18
 
   License along with this library; if not, write to the
19
 
   Free Software Foundation, Inc., 59 Temple Place - Suite 330,
20
 
   Boston, MA 02111-1307, USA.
21
 
 
22
 
 **********************************************************************}
23
 
unit libzvt;
24
 
 
25
 
{$PACKRECORDS C}
26
 
{$Mode ObjFPC}
27
 
 
28
 
interface
29
 
 
30
 
{$linklib util}
31
 
 
32
 
Uses glib, gdk, gtk, gdk_imlib;
33
 
 
34
 
const
35
 
  libzvtdll='zvt';
36
 
 
37
 
Type
38
 
  PLongint  = ^Longint;
39
 
  PSmallInt = ^SmallInt;
40
 
  PByte     = ^Byte;
41
 
  PWord     = ^Word;
42
 
  PDWord    = ^DWord;
43
 
  PDouble   = ^Double;
44
 
 
45
 
  Ppid_t = ^pid_t;
46
 
  pid_t = longint;
47
 
 
48
 
{$define read_interface}
49
 
{$undef read_implementation}
50
 
 
51
 
{$Include lists.inc}
52
 
{$Include vt.inc}
53
 
{$Include vtx.inc}
54
 
 
55
 
const
56
 
   ZVT_TERM_PIXMAP_SUPPORT = $01;
57
 
   ZVT_TERM_EMBOLDEN_SUPPORT = $02;
58
 
   ZVT_TERM_TRANSPARENCY_SUPPORT = $04;
59
 
   ZVT_TERM_PIXMAPSCROLL_SUPPORT = $08;
60
 
   ZVT_TERM_MATCH_SUPPORT = $10;
61
 
 
62
 
type
63
 
   PZvtTerm = ^TZvtTerm;
64
 
   TZvtTerm = record
65
 
        widget : TGtkWidget;
66
 
        adjustment : PGtkAdjustment;
67
 
        shadow_type : TGtkShadowType;
68
 
        term_window : PGdkWindow;
69
 
        vx : Pvtx;
70
 
        charwidth : longint;
71
 
        charheight : longint;
72
 
        input_id : gint;
73
 
        msg_id : gint;
74
 
        timeout_id : gint;
75
 
        set_grid_size_pending : gboolean;
76
 
        grid_width : guint;
77
 
        grid_height : guint;
78
 
        cursor_bar : PGdkCursor;
79
 
        cursor_dot : PGdkCursor;
80
 
        cursor_current : PGdkCursor;
81
 
        font : PGdkFont;
82
 
        font_bold : PGdkFont;
83
 
        scroll_gc : PGdkGC;
84
 
        fore_gc : PGdkGC;
85
 
        back_gc : PGdkGC;
86
 
        fore_last : longint;
87
 
        back_last : longint;
88
 
        color_ctx : PGdkColorContext;
89
 
        colors : array[0..17] of gulong;
90
 
        ic : PGdkIC;
91
 
        pixmap_filename : Pchar;
92
 
        background : record
93
 
             pix : PGdkPixmap;
94
 
             x : longint;
95
 
             y : longint;
96
 
             w : longint;
97
 
             h : longint;
98
 
          end;
99
 
        flag0 : word;
100
 
     end;
101
 
    ZVT_TERM = PzvtTerm;
102
 
 
103
 
const
104
 
   bm_TZvtTerm_cursor_on = $1;
105
 
   bp_TZvtTerm_cursor_on = 0;
106
 
   bm_TZvtTerm_cursor_filled = $2;
107
 
   bp_TZvtTerm_cursor_filled = 1;
108
 
   bm_TZvtTerm_cursor_blink_state = $4;
109
 
   bp_TZvtTerm_cursor_blink_state = 2;
110
 
   bm_TZvtTerm_blink_enabled = $8;
111
 
   bp_TZvtTerm_blink_enabled = 3;
112
 
   bm_TZvtTerm_in_expose = $10;
113
 
   bp_TZvtTerm_in_expose = 4;
114
 
   bm_TZvtTerm_scroll_on_keystroke = $20;
115
 
   bp_TZvtTerm_scroll_on_keystroke = 5;
116
 
   bm_TZvtTerm_scroll_on_output = $40;
117
 
   bp_TZvtTerm_scroll_on_output = 6;
118
 
   bm_TZvtTerm_transparent = $80;
119
 
   bp_TZvtTerm_transparent = 7;
120
 
   bm_TZvtTerm_shaded = $100;
121
 
   bp_TZvtTerm_shaded = 8;
122
 
   bm_TZvtTerm_swap_del_key = $200;
123
 
   bp_TZvtTerm_swap_del_key = 9;
124
 
   bm_TZvtTerm_del_is_del = $400;
125
 
   bp_TZvtTerm_del_is_del = 10;
126
 
   
127
 
function cursor_on(var a : TZvtTerm) : dword;
128
 
procedure set_cursor_on(var a : TZvtTerm; __cursor_on : dword);
129
 
function cursor_filled(var a : TZvtTerm) : dword;
130
 
procedure set_cursor_filled(var a : TZvtTerm; __cursor_filled : dword);
131
 
function cursor_blink_state(var a : TZvtTerm) : dword;
132
 
procedure set_cursor_blink_state(var a : TZvtTerm; __cursor_blink_state : dword);
133
 
function blink_enabled(var a : TZvtTerm) : dword;
134
 
procedure set_blink_enabled(var a : TZvtTerm; __blink_enabled : dword);
135
 
function in_expose(var a : TZvtTerm) : dword;
136
 
procedure set_in_expose(var a : TZvtTerm; __in_expose : dword);
137
 
function scroll_on_keystroke(var a : TZvtTerm) : dword;
138
 
procedure set_scroll_on_keystroke(var a : TZvtTerm; __scroll_on_keystroke : dword);
139
 
function scroll_on_output(var a : TZvtTerm) : dword;
140
 
procedure set_scroll_on_output(var a : TZvtTerm; __scroll_on_output : dword);
141
 
function transparent(var a : TZvtTerm) : dword;
142
 
procedure set_transparent(var a : TZvtTerm; __transparent : dword);
143
 
function shaded(var a : TZvtTerm) : dword;
144
 
procedure set_shaded(var a : TZvtTerm; __shaded : dword);
145
 
function swap_del_key(var a : TZvtTerm) : dword;
146
 
procedure set_swap_del_key(var a : TZvtTerm; __swap_del_key : dword);
147
 
function del_is_del(var a : TZvtTerm) : dword;
148
 
procedure set_del_is_del(var a : TZvtTerm; __del_is_del : dword);
149
 
 
150
 
type
151
 
   PZvtTermClass = ^TZvtTermClass;
152
 
   TZvtTermClass = record
153
 
        parent_class : TGtkWidgetClass;
154
 
        child_died : procedure (term:PZvtTerm);cdecl;
155
 
        title_changed : procedure (term:PZvtTerm; thetype:TVTTITLE_TYPE; newtitle:Pchar);
156
 
        match_clicked : procedure (term:PZvtTerm; event:PGdkEventButton; match:Pchar; data:pointer);
157
 
     end;
158
 
   ZVT_TERM_CLASS = PZvtTermClass;
159
 
 
160
 
   Pzvtfont_t = ^Tzvtfont_t;
161
 
   Tzvtfont_t = (ZVT_FONT_1BYTE := 0,ZVT_FONT_2BYTE,ZVT_FONT_FONTSET);
162
 
 
163
 
const
164
 
   ZVT_TERM_DO_UTMP_LOG = 1;
165
 
   ZVT_TERM_DO_WTMP_LOG = 2;
166
 
   ZVT_TERM_DO_LASTLOG = 4;
167
 
   ZVT_BACKGROUND_SHADED = $01;
168
 
   ZVT_BACKGROUND_SCROLL = $02;
169
 
 
170
 
function ZVT_TYPE_TERM : TGTKType;
171
 
function ZVT_IS_TERM(obj : Pointer) : Boolean;
172
 
function ZVT_IS_TERM_CLASS(klass : Pointer) : Boolean;
173
 
 
174
 
 
175
 
function ZVT_GTK_TOPWGT(t : PGTKWidget) : PGTKWidget;
176
 
function ZVT_GTK_WINDOW(t : PGTKWidget) : PGTKWindow;
177
 
function ZVT_GDK_WINDOW(t : PGTKWidget) : PGDKWindow;
178
 
function ZVT_GDK_TOPWIN(t : PGTKWidget) : PGDKWindow;
179
 
 
180
 
function zvt_term_new:PGtkWidget;cdecl;external libzvtdll name 'zvt_term_new';
181
 
function zvt_term_new_with_size(cols:longint; rows:longint):PGtkWidget;cdecl;external libzvtdll name 'zvt_term_new_with_size';
182
 
procedure zvt_term_reset(term:PZvtTerm; hard:longint);cdecl;external libzvtdll name 'zvt_term_reset';
183
 
procedure zvt_term_feed(term:PZvtTerm; thetext:Pchar; len:longint);cdecl;external libzvtdll name 'zvt_term_feed';
184
 
function zvt_term_writechild(term:PZvtTerm; data:Pchar; len:longint):longint;cdecl;external libzvtdll name 'zvt_term_writechild';
185
 
function zvt_term_forkpty(term:PZvtTerm; do_uwtmp_log:longint):longint;cdecl;external libzvtdll name 'zvt_term_forkpty';
186
 
function zvt_term_closepty(term:PZvtTerm):longint;cdecl;external libzvtdll name 'zvt_term_closepty';
187
 
function zvt_term_killchild(term:PZvtTerm; signal:longint):longint;cdecl;external libzvtdll name 'zvt_term_killchild';
188
 
procedure zvt_term_bell(zvt_term:pointer);cdecl;external libzvtdll name 'zvt_term_bell';
189
 
function zvt_term_get_type:guint;cdecl;external libzvtdll name 'zvt_term_get_type';
190
 
procedure zvt_term_set_scrollback(term:PZvtTerm; lines:longint);cdecl;external libzvtdll name 'zvt_term_set_scrollback';
191
 
function zvt_term_get_buffer(term:PZvtTerm; len:Plongint; thetype:longint; sx:longint; sy:longint; 
192
 
           ex:longint; ey:longint):Pchar;cdecl;external libzvtdll name 'zvt_term_get_buffer';
193
 
procedure zvt_term_set_font_name(term:PZvtTerm; thename:Pchar);cdecl;external libzvtdll name 'zvt_term_set_font_name';
194
 
procedure zvt_term_set_fonts(term:PZvtTerm; font:PGdkFont; font_bold:PGdkFont);cdecl;external libzvtdll name 'zvt_term_set_fonts';
195
 
procedure zvt_term_hide_pointer(term:PZvtTerm);cdecl;external libzvtdll name 'zvt_term_hide_pointer';
196
 
procedure zvt_term_show_pointer(term:PZvtTerm);cdecl;external libzvtdll name 'zvt_term_show_pointer';
197
 
procedure zvt_term_set_bell(term:PZvtTerm; state:gboolean);cdecl;external libzvtdll name 'zvt_term_set_bell';
198
 
function zvt_term_get_bell(term:PZvtTerm):gboolean;cdecl;external libzvtdll name 'zvt_term_get_bell';
199
 
procedure zvt_term_set_blink(term:PZvtTerm; state:gboolean);cdecl;external libzvtdll name 'zvt_term_set_blink';
200
 
procedure zvt_term_set_scroll_on_keystroke(term:PZvtTerm; state:gboolean);cdecl;external libzvtdll name 'zvt_term_set_scroll_on_keystroke';
201
 
procedure zvt_term_set_scroll_on_output(term:PZvtTerm; state:gboolean);cdecl;external libzvtdll name 'zvt_term_set_scroll_on_output';
202
 
procedure zvt_term_set_color_scheme(term:PZvtTerm; red:Pgushort; grn:Pgushort; blu:Pgushort);cdecl;external libzvtdll name 'zvt_term_set_color_scheme';
203
 
procedure zvt_term_set_default_color_scheme(term:PZvtTerm);cdecl;external libzvtdll name 'zvt_term_set_default_color_scheme';
204
 
procedure zvt_term_set_del_key_swap(term:PZvtTerm; state:longint);cdecl;external libzvtdll name 'zvt_term_set_del_key_swap';
205
 
procedure zvt_term_set_del_is_del(term:PZvtTerm; state:longint);cdecl;external libzvtdll name 'zvt_term_set_del_is_del';
206
 
procedure zvt_term_set_wordclass(term:PZvtTerm; klass:Pbyte);cdecl;external libzvtdll name 'zvt_term_set_wordclass';
207
 
function zvt_term_match_add(term:PZvtTerm; regex:Pchar; highlight_mask:uint32; data:pointer):longint;cdecl;external libzvtdll name 'zvt_term_match_add';
208
 
procedure zvt_term_match_clear(term:PZvtTerm; regex:Pchar);cdecl;external libzvtdll name 'zvt_term_match_clear';
209
 
function zvt_term_match_check(term:PZvtTerm; x:longint; y:longint; user_data_ptr:Ppointer):Pchar;cdecl;external libzvtdll name 'zvt_term_match_check';
210
 
procedure zvt_term_set_background(terminal:PZvtTerm; pixmap_file:Pchar; transparent:gboolean; flags:longint);cdecl;external libzvtdll name 'zvt_term_set_background';
211
 
procedure zvt_term_set_shadow_type(term:PZvtTerm; thetype:TGtkShadowType);cdecl;external libzvtdll name 'zvt_term_set_shadow_type';
212
 
procedure zvt_term_set_size(term:PZvtTerm; width:guint; height:guint);cdecl;external libzvtdll name 'zvt_term_set_size';
213
 
procedure zvt_term_set_open_im(term:PZvtTerm; state:gboolean);cdecl;external libzvtdll name 'zvt_term_set_open_im';
214
 
function zvt_term_get_capabilities(term:PZvtTerm):guint32;cdecl;external libzvtdll name 'zvt_term_get_capabilities';
215
 
 
216
 
implementation
217
 
 
218
 
{$define read_implementation}
219
 
{$undef read_interface}
220
 
 
221
 
{$Include lists.inc}
222
 
{$Include vt.inc}
223
 
{$Include vtx.inc}
224
 
 
225
 
function ZVT_TYPE_TERM : TGTKType;
226
 
begin
227
 
  ZVT_TYPE_TERM:=zvt_term_get_type;
228
 
end;
229
 
 
230
 
function ZVT_IS_TERM(obj : Pointer) : Boolean;
231
 
begin
232
 
   ZVT_IS_TERM:=(obj<>nil) and ZVT_IS_TERM_CLASS(PGtkTypeObject(obj)^.klass);
233
 
end;
234
 
 
235
 
function ZVT_IS_TERM_CLASS(klass : Pointer) : Boolean;
236
 
begin
237
 
   ZVT_IS_TERM_CLASS:=(klass<>nil) and (PGtkTypeClass(klass)^.thetype=ZVT_TYPE_TERM);
238
 
end;
239
 
 
240
 
function ZVT_GTK_TOPWGT(t : PGTKWidget) : PGTKWidget;
241
 
begin
242
 
   ZVT_GTK_TOPWGT := gtk_widget_get_toplevel(t);
243
 
end;
244
 
 
245
 
function ZVT_GTK_WINDOW(t : PGTKWidget) : PGTKWindow;
246
 
begin
247
 
   ZVT_GTK_WINDOW := GTK_WINDOW(ZVT_GTK_TOPWGT(t));
248
 
end;
249
 
 
250
 
function ZVT_GDK_WINDOW(t : PGTKWidget) : PGDKWindow;
251
 
begin
252
 
   ZVT_GDK_WINDOW := t^.window;
253
 
end;
254
 
 
255
 
function ZVT_GDK_TOPWIN(t : PGTKWidget) : PGDKWindow;
256
 
begin
257
 
   ZVT_GDK_TOPWIN := ZVT_GTK_TOPWGT(t)^.window;
258
 
end;
259
 
 
260
 
function cursor_on(var a : TZvtTerm) : dword;
261
 
begin
262
 
   cursor_on:=(a.flag0 and bm_TZvtTerm_cursor_on) shr bp_TZvtTerm_cursor_on;
263
 
end;
264
 
 
265
 
procedure set_cursor_on(var a : TZvtTerm; __cursor_on : dword);
266
 
begin
267
 
   a.flag0:=a.flag0 or ((__cursor_on shl bp_TZvtTerm_cursor_on) and bm_TZvtTerm_cursor_on);
268
 
end;
269
 
 
270
 
function cursor_filled(var a : TZvtTerm) : dword;
271
 
begin
272
 
   cursor_filled:=(a.flag0 and bm_TZvtTerm_cursor_filled) shr bp_TZvtTerm_cursor_filled;
273
 
end;
274
 
 
275
 
procedure set_cursor_filled(var a : TZvtTerm; __cursor_filled : dword);
276
 
begin
277
 
   a.flag0:=a.flag0 or ((__cursor_filled shl bp_TZvtTerm_cursor_filled) and bm_TZvtTerm_cursor_filled);
278
 
end;
279
 
 
280
 
function cursor_blink_state(var a : TZvtTerm) : dword;
281
 
begin
282
 
   cursor_blink_state:=(a.flag0 and bm_TZvtTerm_cursor_blink_state) shr bp_TZvtTerm_cursor_blink_state;
283
 
end;
284
 
 
285
 
procedure set_cursor_blink_state(var a : TZvtTerm; __cursor_blink_state : dword);
286
 
begin
287
 
   a.flag0:=a.flag0 or ((__cursor_blink_state shl bp_TZvtTerm_cursor_blink_state) and bm_TZvtTerm_cursor_blink_state);
288
 
end;
289
 
 
290
 
function blink_enabled(var a : TZvtTerm) : dword;
291
 
begin
292
 
   blink_enabled:=(a.flag0 and bm_TZvtTerm_blink_enabled) shr bp_TZvtTerm_blink_enabled;
293
 
end;
294
 
 
295
 
procedure set_blink_enabled(var a : TZvtTerm; __blink_enabled : dword);
296
 
begin
297
 
   a.flag0:=a.flag0 or ((__blink_enabled shl bp_TZvtTerm_blink_enabled) and bm_TZvtTerm_blink_enabled);
298
 
end;
299
 
 
300
 
function in_expose(var a : TZvtTerm) : dword;
301
 
begin
302
 
   in_expose:=(a.flag0 and bm_TZvtTerm_in_expose) shr bp_TZvtTerm_in_expose;
303
 
end;
304
 
 
305
 
procedure set_in_expose(var a : TZvtTerm; __in_expose : dword);
306
 
begin
307
 
   a.flag0:=a.flag0 or ((__in_expose shl bp_TZvtTerm_in_expose) and bm_TZvtTerm_in_expose);
308
 
end;
309
 
 
310
 
function scroll_on_keystroke(var a : TZvtTerm) : dword;
311
 
begin
312
 
   scroll_on_keystroke:=(a.flag0 and bm_TZvtTerm_scroll_on_keystroke) shr bp_TZvtTerm_scroll_on_keystroke;
313
 
end;
314
 
 
315
 
procedure set_scroll_on_keystroke(var a : TZvtTerm; __scroll_on_keystroke : dword);
316
 
begin
317
 
   a.flag0:=a.flag0 or ((__scroll_on_keystroke shl bp_TZvtTerm_scroll_on_keystroke) and bm_TZvtTerm_scroll_on_keystroke);
318
 
end;
319
 
 
320
 
function scroll_on_output(var a : TZvtTerm) : dword;
321
 
begin
322
 
   scroll_on_output:=(a.flag0 and bm_TZvtTerm_scroll_on_output) shr bp_TZvtTerm_scroll_on_output;
323
 
end;
324
 
 
325
 
procedure set_scroll_on_output(var a : TZvtTerm; __scroll_on_output : dword);
326
 
begin
327
 
   a.flag0:=a.flag0 or ((__scroll_on_output shl bp_TZvtTerm_scroll_on_output) and bm_TZvtTerm_scroll_on_output);
328
 
end;
329
 
 
330
 
function transparent(var a : TZvtTerm) : dword;
331
 
begin
332
 
   transparent:=(a.flag0 and bm_TZvtTerm_transparent) shr bp_TZvtTerm_transparent;
333
 
end;
334
 
 
335
 
procedure set_transparent(var a : TZvtTerm; __transparent : dword);
336
 
begin
337
 
   a.flag0:=a.flag0 or ((__transparent shl bp_TZvtTerm_transparent) and bm_TZvtTerm_transparent);
338
 
end;
339
 
 
340
 
function shaded(var a : TZvtTerm) : dword;
341
 
begin
342
 
   shaded:=(a.flag0 and bm_TZvtTerm_shaded) shr bp_TZvtTerm_shaded;
343
 
end;
344
 
 
345
 
procedure set_shaded(var a : TZvtTerm; __shaded : dword);
346
 
begin
347
 
   a.flag0:=a.flag0 or ((__shaded shl bp_TZvtTerm_shaded) and bm_TZvtTerm_shaded);
348
 
end;
349
 
 
350
 
function swap_del_key(var a : TZvtTerm) : dword;
351
 
begin
352
 
   swap_del_key:=(a.flag0 and bm_TZvtTerm_swap_del_key) shr bp_TZvtTerm_swap_del_key;
353
 
end;
354
 
 
355
 
procedure set_swap_del_key(var a : TZvtTerm; __swap_del_key : dword);
356
 
begin
357
 
   a.flag0:=a.flag0 or ((__swap_del_key shl bp_TZvtTerm_swap_del_key) and bm_TZvtTerm_swap_del_key);
358
 
end;
359
 
 
360
 
function del_is_del(var a : TZvtTerm) : dword;
361
 
begin
362
 
   del_is_del:=(a.flag0 and bm_TZvtTerm_del_is_del) shr bp_TZvtTerm_del_is_del;
363
 
end;
364
 
 
365
 
procedure set_del_is_del(var a : TZvtTerm; __del_is_del : dword);
366
 
begin
367
 
   a.flag0:=a.flag0 or ((__del_is_del shl bp_TZvtTerm_del_is_del) and bm_TZvtTerm_del_is_del);
368
 
end;
369
 
 
370
 
 
371
 
end.