home *** CD-ROM | disk | FTP | other *** search
/ Crawly Crypt Collection 2 / crawlyvol2.bin / program / c / sgem120c / sys_gem.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-05-21  |  21.5 KB  |  596 lines

  1. /* ------------------------------------------------------------------- *
  2.  * Module Version       : 1.20                                         *
  3.  * Module Date          : 21-05-94                                     *
  4.  * Last Change          : 21-05-94                                     *
  5.  * Author               : Andrea Pietsch                               *
  6.  * Programming Language : Pure-C                                       *
  7.  * Copyright            : (c) 1994, Andrea Pietsch, 56727 Mayen        *
  8.  * ------------------------------------------------------------------- */
  9.  
  10. #ifndef __sysgem__
  11. #define __sysgem__
  12.  
  13. /* ------------------------------------------------------------------- */
  14.  
  15. #define SYSGEM_VERSION  0x0120  /* Version 1.20                        */
  16.  
  17. /* ------------------------------------------------------------------- */
  18.  
  19. #define USE_RECT        1       /* RECT-Struktur von SysGem nutzen?    */
  20. #define USE_COOKIE      1       /* Cookie-Struktur einbinden?          */
  21. #define OLD_SYSGEM      0
  22.  
  23. /* ------------------------------------------------------------------- */
  24.  
  25. #ifndef __PORTAB__
  26. #include <portab.h>
  27. #endif
  28. #ifndef __AES__
  29. #include <aes.h>
  30. #endif
  31. #ifndef __VDI__
  32. #include <vdi.h>
  33. #endif
  34. #ifndef __STDARG
  35. #include <stdarg.h>
  36. #endif
  37.  
  38. /* ------------------------------------------------------------------- */
  39.  
  40. #define SPECIAL_MOVER   17
  41. #define SPECIAL_BUTTON  18
  42. #define SPECIAL_TEXT    19
  43. #define SPECIAL_FRAME   20
  44. #define SPECIAL_SCUT    21
  45.  
  46. /* ------------------------------------------------------------------- */
  47.  
  48. #ifndef WHITEBAK
  49. #define WHITEBAK        64
  50. #endif
  51. #ifndef DRAW3D
  52. #define DRAW3D          128
  53. #endif
  54. #ifndef SMALLER
  55. #define SMALLER         0x4000
  56. #endif
  57.  
  58. /* -------------------------------------------------------------------
  59.  * RECT-Struktur
  60.  * ------------------------------------------------------------------- */
  61.  
  62. #if USE_RECT
  63. typedef struct
  64.   {
  65.     INT         x;
  66.     INT         y;
  67.     INT         w;
  68.     INT         h;
  69.   } RECT;
  70. #else
  71. #define RECT    GRECT
  72. #endif
  73.  
  74. /* -------------------------------------------------------------------
  75.  * Cookie-Struktur
  76.  * ------------------------------------------------------------------- */
  77.  
  78. #if USE_COOKIE
  79. typedef struct
  80.   {
  81.     LONG        id;
  82.     LONG        value;
  83.   } COOKIE;
  84. #endif
  85.  
  86. /* -------------------------------------------------------------------
  87.  * Parameter - Rückgabe von Init_GEM
  88.  * ------------------------------------------------------------------- */
  89.  
  90. typedef struct
  91.   {
  92.     INT         vdi_handle;
  93.     INT         charw;
  94.     INT         charh;
  95.     INT         boxw;
  96.     INT         boxh;
  97.     INT         appl_id;
  98.     INT         xmax;
  99.     INT         ymax;
  100.     RECT        desktop;
  101.     INT         bitplanes;
  102.     INT         max_colors;
  103.     INT         act_colors;
  104.     BOOL        color_avail;
  105.     INT         acc_entry;
  106.     BOOL        multitask;
  107.     INT         aes_version;
  108.     UINT        tos_version;
  109.     INT         magx;
  110.     INT         magx_rel;               /* für Thorsten ;-)            */
  111.     INT         mint;
  112.     BOOL        winx;
  113.     BOOL        search;
  114.     INT         agi;
  115.     BOOL        draw_3d;
  116.   } PARAMETER;
  117.  
  118. /* -------------------------------------------------------------------
  119.  * Area - Fuer Bildschirmbereiche
  120.  * ------------------------------------------------------------------- */
  121.  
  122. typedef struct
  123.   {
  124.     BOOL        init;
  125.     INT         x;
  126.     INT         y;
  127.     INT         w;
  128.     INT         h;
  129.     ULONG       size;
  130.     MFDB        mf;
  131.   } AREA;
  132.  
  133. /* -------------------------------------------------------------------
  134.  * Dragdrop-Nachricht
  135.  * ------------------------------------------------------------------- */
  136.  
  137. typedef struct
  138.   {
  139.     BOOL        gemini;         /* D&D von Gemini?                     */
  140.     LONG        data_type;      /* Typ-Id von Mint                     */
  141.     BYTE        *data;          /* Adresse der Daten für D&D bei Gemini*/
  142.     LONG        data_len;       /* Länge von *data in Byte             */
  143.     BYTE        data_id  [128]; /* Klassifizierung                     */
  144.     BYTE        filename [128]; /* So wenn MiNT will...                */
  145.     INT         x;              /* X-Position der Maus                 */
  146.     INT         y;              /* Y-Position der Maus                 */
  147.     INT         state;          /* Status der Sondertasten             */
  148.     INT         obj;            /* Object innerhalb des Baumes         */
  149.     LONG        id;             /* Baum innerhalb des Fensters         */
  150.   } DRAG_DROP;
  151.  
  152. /* -------------------------------------------------------------------
  153.  * DialogInfo - Für die Dialogboxen
  154.  * ------------------------------------------------------------------- */
  155.  
  156. typedef struct
  157.   {
  158.     LONG        id;
  159.     VOID        *user;
  160.     UINT        special;
  161.     DRAG_DROP   *dd;
  162.   } DIALOG_INFO;
  163.  
  164. /* -------------------------------------------------------------------
  165.  * WindowInfo - Für die Fensterroutinen
  166.  * ------------------------------------------------------------------- */
  167.  
  168. typedef struct
  169.   {
  170.     LONG        id;
  171.     LONG        pos_x;
  172.     LONG        pos_y;
  173.     LONG        doc_x;
  174.     LONG        doc_y;
  175.     INT         scroll;
  176.     INT         handle;
  177.     INT         key;
  178.     INT         state;
  179.     INT         mTitle;
  180.     INT         mItem;
  181.     INT         mx, my;
  182.     LONG        line;
  183.     LONG        column;
  184.     BYTE        *line_ptr;
  185.     RECT        work_area;
  186.     RECT        draw_area;
  187.     RECT        clip;
  188.     VOID        *user;
  189.     LONG        obj_id;
  190.     INT         item;
  191.     DRAG_DROP   *dd;
  192.   } WINDOW_INFO;
  193.  
  194. /* -------------------------------------------------------------------
  195.  * Funktionen für Dialoge, Redraw und Auswertung
  196.  * ------------------------------------------------------------------- */
  197.  
  198. typedef INT     (*DPROC)(INT msg, INT button, DIALOG_INFO *inf );
  199. typedef INT     (*APROC)(INT msg, WINDOW_INFO *inf );
  200. typedef VOID    (*RPROC)(WINDOW_INFO *inf );
  201. typedef VOID    (*TPROC)(VOID);
  202. typedef LONG    (*MPROC)(BYTE msg, BYTE sub, LONG l1, LONG l2);
  203. typedef INT     (*FPROC)(OBJECT *tree, INT ed, LONG id );
  204. typedef INT     (*CPROC)(BYTE *str1, BYTE *str2 );
  205.  
  206. /* -------------------------------------------------------------------
  207.  * Nachrichten von SysGem an eine Auswertungs-Funktion
  208.  * ------------------------------------------------------------------- */
  209.  
  210. #define SG_START        0
  211. #define SG_END          1
  212. #define SG_QUIT         2
  213. #define SG_DRAW         3
  214. #define SG_POSX         4
  215. #define SG_POSY         5
  216. #define SG_VISIBLE      6
  217. #define SG_INVISIBLE    7
  218. #define SG_TOP          8
  219. #define SG_UNTOP        9
  220. #define SG_SIZED        10
  221. #define SG_LCLICK1      11
  222. #define SG_LCLICK2      12
  223. #define SG_RCLICK1      13
  224. #define SG_RCLICK2      14
  225. #define SG_BUTTON       15
  226. #define SG_KEY          16
  227. #define SG_MENU         17
  228. #define SG_NOWIN        18
  229. #define SG_DRAGDROP     19
  230. #define SG_MOVED        20
  231. #define SG_SLID_UP      21
  232. #define SG_SLID_DN      22
  233. #define SG_SLID_MV      23
  234. #define SG_SLID_PGUP    24
  235. #define SG_SLID_PGDN    25
  236.  
  237. /* -------------------------------------------------------------------
  238.  * Nachrichten von Auswertungs-Funktion an SysGem
  239.  * ------------------------------------------------------------------- */
  240.  
  241. #define SG_CLOSE        0
  242. #define SG_REDRAW       1
  243. #define SG_TERM         2
  244. #define SG_CONT         3
  245. #define SG_ABORT        4
  246. #define SG_KEYUSED      5
  247. #define SG_KEYCONT      6
  248.  
  249. /* -------------------------------------------------------------------
  250.  * Spezial-Flags für die Auswertungsfunktion
  251.  * ------------------------------------------------------------------- */
  252.  
  253. #define SG_RIGHTCLICK   (1U << 0)
  254. #define SG_DOUBLECLICK  (1U << 1)
  255.  
  256. /* -------------------------------------------------------------------
  257.  * Werte für agi aus Parameter
  258.  * ------------------------------------------------------------------- */
  259.  
  260. #define AGI_0           0
  261. #define AGI_3           1
  262. #define AGI_4           2
  263.  
  264. /* -------------------------------------------------------------------
  265.  * Prioritäten für die Alert-Box
  266.  * ------------------------------------------------------------------- */
  267.  
  268. #define ALERT_NORM      1
  269. #define ALERT_STOP      3
  270.  
  271. /* -------------------------------------------------------------------
  272.  * Flags fuer Baeume im Fenster
  273.  * ------------------------------------------------------------------- */
  274.  
  275. #define LINK_LEFT       0
  276. #define LINK_RIGHT      1
  277. #define LINK_TOP        2
  278. #define LINK_BOTTOM     3
  279.  
  280. /* -------------------------------------------------------------------
  281.  * Button-Anordnung für Alert
  282.  * ------------------------------------------------------------------- */
  283.  
  284. #define ButtonCenter    0
  285. #define ButtonLeft      1
  286. #define ButtonRight     2
  287.  
  288. /* -------------------------------------------------------------------
  289.  * Stati für RedrawObj
  290.  * ------------------------------------------------------------------- */
  291.  
  292. #define FLIP_STATE      0
  293. #define DEL_STATE       1
  294. #define SET_STATE       2
  295. #define UPD_STATE       3
  296.  
  297. /* -------------------------------------------------------------------
  298.  * Stati für Scroll-Funktionen
  299.  * ------------------------------------------------------------------- */
  300.  
  301. #define SCROLL_UP       1
  302. #define SCROLL_DOWN     2
  303. #define SCROLL_RIGHT    3
  304. #define SCROLL_LEFT     4
  305. #define SCROLL_PG_LEFT  5
  306. #define SCROLL_PG_RIGHT 6
  307. #define SCROLL_PG_UP    7
  308. #define SCROLL_PG_DOWN  8
  309.  
  310. /* -------------------------------------------------------------------
  311.  * Stati für SetWindowParm
  312.  * ------------------------------------------------------------------- */
  313.  
  314. #define SET_X           1
  315. #define SET_Y           2
  316. #define SET_W           3
  317. #define SET_H           4
  318.  
  319. /* -------------------------------------------------------------------
  320.  * Nachrichten
  321.  * ------------------------------------------------------------------- */
  322.  
  323. #define MSG_TERM        1
  324. #define MSG_OPEN        2
  325. #define MSG_CLOSE       3
  326. #define MSG_USER        4
  327. #define MSG_SYSTEM      5
  328. #define MSG_NEW         6
  329. #define MSG_QUIT        7
  330.  
  331. /* -------------------------------------------------------------------
  332.  * Maus-Funktionen
  333.  * ------------------------------------------------------------------- */
  334.  
  335. #define ShowArrow()        graf_mouse ( ARROW,       NULL )
  336. #define ShowBee()          graf_mouse ( BUSYBEE,     NULL )
  337. #define ShowHour()         graf_mouse ( HOURGLASS,   NULL )
  338. #define ShowFinger()       graf_mouse ( POINT_HAND,  NULL )
  339. #define ShowHand()         graf_mouse ( FLAT_HAND,   NULL )
  340. #define ShowThinCross()    graf_mouse ( THIN_CROSS,  NULL )
  341. #define ShowThickCross()   graf_mouse ( THICK_CROSS, NULL )
  342. #define ShowOutlineCross() graf_mouse ( OUTLN_CROSS, NULL )
  343. #define ShowMouse()        graf_mouse ( M_ON,        NULL )
  344. #define HideMouse()        graf_mouse ( M_OFF,       NULL )
  345.  
  346. /* -------------------------------------------------------------------
  347.  * Objekt-Manipulation
  348.  * ------------------------------------------------------------------- */
  349.  
  350. #define SetState(x,y,z)       x [y].ob_state |= z
  351. #define DelState(x,y,z)       x [y].ob_state &= ~z
  352. #define GetState(x,y,z)       (( x [y].ob_state & z ) != 0 )
  353. #define SetFlags(x,y,z)       x [y].ob_flags |= z
  354. #define DelFlags(x,y,z)       x [y].ob_flags &= ~z
  355. #define GetFlags(x,y,z)       (( x [y].ob_flags & z ) != 0 )
  356. #define SetGlobalState(x,y,z) x [y].ob_state  = z
  357. #define SetGlobalFlags(x,y,z) x [y].ob_flags  = z
  358.  
  359. /* -------------------------------------------------------------------
  360.  * An- und Abmelden
  361.  * ------------------------------------------------------------------- */
  362.  
  363. INT     Init_GEM        ( PARAMETER *par, BYTE *acc, LONG prg_id, BYTE *prg_name, LONG usr_id, BYTE *usr_name, LONG key );
  364. VOID    Exit_GEM        ( VOID );
  365. VOID    SetAccProc      ( TPROC a_open, TPROC a_close );
  366.  
  367. /* -------------------------------------------------------------------
  368.  * Abfrageroutinen
  369.  * ------------------------------------------------------------------- */
  370.  
  371. INT     appl_geti       ( INT ap_gtype, INT *ap_gout1, INT *ap_gout2, INT *ap_gout3, INT *ap_gout4 );
  372. INT     objc_sysv       ( INT ob_smode, INT ob_swhich, INT ob_sival1, INT ob_sival2, INT *ob_soval1, INT *ob_soval2 );
  373.  
  374. #define appl_getinfo    appl_geti
  375. #define objc_sysvar     objc_sysv
  376.  
  377. ULONG   magx_avail      ( VOID );
  378. UINT    mint_avail      ( VOID );
  379. BOOL    winx_avail      ( VOID );
  380. BOOL    has_search      ( VOID );
  381.  
  382. VOID    CalcArea        ( OBJECT *tree, INT obj, RECT *r );
  383. INT     objc_frame      ( OBJECT *tree, INT entry );
  384.  
  385. /* -------------------------------------------------------------------
  386.  * Resourcen
  387.  * ------------------------------------------------------------------- */
  388.  
  389. UINT    LoadResource    ( BYTE *rsc_name );
  390. OBJECT  *RscAdr         ( INT tree_type, INT index );
  391. VOID    RscFree         ( VOID );
  392.  
  393. /* -------------------------------------------------------------------
  394.  * Menuezeile
  395.  * ------------------------------------------------------------------- */
  396.  
  397. BOOL    SetDeskTopMenu  ( OBJECT *menu, APROC action );
  398. VOID    RemDeskTopMenu  ( VOID );
  399. VOID    SelectMenu      ( INT item, BOOL invert );
  400. BOOL    SetDeskTop      ( OBJECT *tree, INT first, APROC action );
  401. VOID    RemoveDeskTop   ( VOID );
  402.  
  403. /* -------------------------------------------------------------------
  404.  * Einstellungen
  405.  * ------------------------------------------------------------------- */
  406.  
  407. VOID    UseRightButton  ( BOOL use );
  408. VOID    TellKeyStrokes  ( BOOL tell );
  409. VOID    SetReturn       ( BOOL like_sysgem );
  410. VOID    UseHighButtons  ( BOOL use_high );
  411. VOID    SetButton       ( INT just );
  412. VOID    FrameTextColor  ( INT color );
  413. VOID    DialPosXY       ( BOOL center );
  414. INT     SetIconColor    ( INT color );
  415. VOID    LinkImage       ( LONG win_id, BITBLK *image, BYTE *text );
  416. VOID    SetFieldProc    ( FPROC proc );
  417. VOID    ShortCutColor   ( INT color );
  418. VOID    SetAlertTitle   ( BYTE *string );
  419.  
  420. /* -------------------------------------------------------------------
  421.  * Cookies
  422.  * ------------------------------------------------------------------- */
  423.  
  424. BOOL    RemoveCookie    ( LONG id );
  425. BOOL    SetCookie       ( LONG id, LONG value );
  426. BOOL    GetCookie       ( LONG id, LONG *value );
  427.  
  428. /* -------------------------------------------------------------------
  429.  * Texte im Fenster
  430.  * ------------------------------------------------------------------- */
  431.  
  432. BYTE    *LinkList       ( LONG win_id, BYTE *text );
  433. BYTE    *AddToList      ( LONG win_id, BYTE *text );
  434. BYTE    *ChgInList      ( LONG win_id, UINT line, BYTE *text );
  435. BOOL    DelInList       ( LONG win_id, UINT line );
  436. UINT    CountLines      ( LONG win_id );
  437. UINT    Display         ( BYTE *fname, BYTE *wname, BYTE *winfo, INT len, LONG win_id, INT x, INT y, INT w, INT h, APROC action );
  438. INT     cmp_strings_up  ( BYTE *str1, BYTE *str2 );
  439. INT     cmp_strings_dn  ( BYTE *str1, BYTE *str2 );
  440. VOID    do_qsort        ( LONG win_id, CPROC compare );
  441.  
  442. /* -------------------------------------------------------------------
  443.  * Popup's
  444.  * ------------------------------------------------------------------- */
  445.  
  446. INT     PopUp           ( OBJECT *tree, INT x, INT y, INT start, INT first );
  447. INT     xPopUp          ( OBJECT *tree, INT obj, OBJECT *tree2, INT start, INT *first );
  448. INT     Cycle           ( OBJECT *tree, INT obj, OBJECT *pop_tree, INT first, INT last, INT *ret );
  449. INT     Listbox         ( BYTE *strings, INT count, INT len, OBJECT *tree, INT box );
  450.  
  451. /* -------------------------------------------------------------------
  452.  * Sliderboxen
  453.  * ------------------------------------------------------------------- */
  454.  
  455. BOOL    LinkSlider      ( OBJECT *tree, INT up, INT dn, INT show, INT hide, INT max, INT box, VOID *buffer, INT len, INT format );
  456. VOID    RedrawSliderBox ( OBJECT *tree, INT box );
  457. VOID    ScrollSlider    ( OBJECT *tree, INT box, INT what );
  458. BOOL    AddSliderItem   ( OBJECT *tree, INT box, INT anz_items );
  459. INT     SetSliderPos    ( OBJECT *tree, INT box, INT pos, BOOL draw );
  460. BOOL    UnLinkSlider    ( OBJECT *tree, INT box );
  461.  
  462. /* -------------------------------------------------------------------
  463.  * Funktionen zum schreiben ins Fenster
  464.  * ------------------------------------------------------------------- */
  465.  
  466. BOOL    OpenLogWindow   ( LONG win_id, BYTE *title, BYTE *info, INT columns, INT rows, INT x, INT y, APROC action );
  467. VOID    wprintf         ( LONG win_id, BYTE *format, ... );
  468. VOID    wcls            ( LONG win_id );
  469. VOID    wposxy          ( LONG win_id, INT x, INT y );
  470. VOID    wgetxy          ( LONG win_id, INT *x, INT *y );
  471. BYTE    wgetchar        ( LONG win_id, INT x, INT y, INT *effect );
  472. VOID    HideCursor      ( LONG win_id );
  473. VOID    ShowCursor      ( LONG win_id );
  474.  
  475. /* -------------------------------------------------------------------
  476.  * Fenster- und Dialoge I
  477.  * ------------------------------------------------------------------- */
  478.  
  479. BOOL    NewDialog       ( OBJECT *tree );
  480. VOID    DelDialog       ( OBJECT *tree );
  481. INT     Alert           ( INT priority, INT def, BYTE *str );
  482. INT     DoDialog        ( OBJECT *tree, INT ed, BYTE *title );
  483. VOID    RedrawObj       ( OBJECT *tree, INT obj, INT depth, INT state, INT flag );
  484. VOID    ShowDialog      ( OBJECT *tree );
  485. VOID    EndDialog       ( OBJECT *tree );
  486. INT     HandleDialog    ( OBJECT *tree, INT ed );
  487. VOID    ChangeButton    ( OBJECT *tree, INT obj, BYTE *text, BOOL draw );
  488. VOID    SetEditField    ( OBJECT *tree, INT field );
  489. VOID    GetEditFields   ( OBJECT *tree, VOID (*callback)(INT obj, BYTE *s ));
  490. VOID    ClearEditFields ( OBJECT *tree );
  491. INT     IsMenuKey       ( OBJECT *tree, INT scan, INT state );
  492. VOID    SetWinMinSize   ( LONG win_id, INT w, INT h );
  493. VOID    SetWinMaxSize   ( LONG win_id, INT w, INT h );
  494. BOOL    IsVisible       ( INT handle );
  495.  
  496. /* -------------------------------------------------------------------
  497.  * Fenster- und Dialoge II
  498.  * ------------------------------------------------------------------- */
  499.  
  500. INT  WindowDialog ( LONG        id,
  501.                     INT         xpos,
  502.                     INT         ypos,
  503.                     BYTE        *name,
  504.                     BYTE        *info,
  505.                     BOOL        shut,
  506.                     BOOL        force,
  507.                     OBJECT      *tree,
  508.                     OBJECT      *menu,
  509.                     INT         edit,
  510.                     VOID        *user,
  511.                     DPROC       proc );
  512.  
  513. INT OpenWindow ( LONG   id,
  514.                  BYTE   *name,
  515.                  BYTE   *info,
  516.                  INT    flags,
  517.                  OBJECT *menu,
  518.                  INT    align,
  519.                  BOOL   part_redraw,
  520.                  INT    scroll_x,
  521.                  INT    scroll_y,
  522.                  LONG   doc_x,
  523.                  LONG   doc_y,
  524.                  INT    x,
  525.                  INT    y,
  526.                  INT    w,
  527.                  INT    h,
  528.                  VOID   *user,
  529.                  RPROC  redraw,
  530.                  APROC  action );
  531.  
  532. /* -------------------------------------------------------------------
  533.  * Fensterroutinen
  534.  * ------------------------------------------------------------------- */
  535.  
  536. VOID    CloseAllWindows ( VOID );
  537. VOID    RectIntersect   ( RECT *r1, RECT *r2 );
  538. VOID    SetWindowName   ( INT handle, BYTE *name );
  539. VOID    SetWindowInfo   ( INT handle, BYTE *info );
  540. LONG    GetWindowId     ( INT handle );
  541. INT     GetTopWindow    ( VOID );
  542. LONG    GetTopWindowId  ( VOID );
  543. BOOL    TopWindow       ( INT handle );
  544. INT     GetHandle       ( LONG id );
  545. BOOL    CloseWindow     ( INT handle );
  546. VOID    WhiteArea       ( RECT *r );
  547. BOOL    LinkTree        ( LONG win_id, OBJECT *tree, LONG id, INT pos );
  548. LONG    SetWindowParm   ( INT handle, INT what, LONG value );
  549. VOID    ScrollWindow    ( INT handle, INT what );
  550. VOID    RedrawArea      ( INT handle, RECT *r );
  551. VOID    RedrawWindow    ( INT handle );
  552. VOID    RedrawDialog    ( OBJECT *tree );
  553.  
  554. /* -------------------------------------------------------------------
  555.  * Verwaltung
  556.  * ------------------------------------------------------------------- */
  557.  
  558. INT     HandleSysGem    ( VOID );
  559. VOID    TerminateSysGem ( VOID );
  560. VOID    SetMessageProc  ( MPROC proc );
  561. INT     ProgramExist    ( LONG id );
  562. VOID    SendSgMsg       ( INT msg, INT sub, LONG dest, LONG parm );
  563. INT     SendMsg         ( LONG dest, INT msg, INT sub, LONG parm, INT timeout, LONG *result );
  564.  
  565. /* -------------------------------------------------------------------
  566.  * Timer-Verwaltung
  567.  * ------------------------------------------------------------------- */
  568.  
  569. VOID    SetProcTimer    ( TPROC p );
  570. VOID    SetTimer        ( INT ms_low, INT ms_high );
  571.  
  572. /* -------------------------------------------------------------------
  573.  * Bildschirmroutinen
  574.  * ------------------------------------------------------------------- */
  575.  
  576. BOOL    NewArea         ( AREA *p );
  577. VOID    FreeArea        ( AREA *p );
  578. VOID    ClearArea       ( AREA *p );
  579. VOID    CopyArea        ( INT handle, AREA *p, INT x, INT y );
  580. BOOL    SaveArea        ( INT handle, AREA *p, RECT *r );
  581. VOID    RestoreArea     ( INT handle, AREA *p );
  582. VOID    MoveScreen      ( INT handle, RECT *r, INT x, INT y );
  583.  
  584. /* -------------------------------------------------------------------
  585.  * Textfunktionen
  586.  * ------------------------------------------------------------------- */
  587.  
  588. BYTE   *GetText         ( OBJECT *tree, INT index, BYTE *text );
  589. VOID    SetText         ( OBJECT *tree, INT index, BYTE *text );
  590.  
  591. /* ------------------------------------------------------------------- */
  592.  
  593. #endif
  594.  
  595. /* ------------------------------------------------------------------- */
  596.