home *** CD-ROM | disk | FTP | other *** search
/ Xplore / Xplore.iso / gl / pure_c / gl.h < prev    next >
C/C++ Source or Header  |  1994-04-17  |  14KB  |  422 lines

  1. /* ------------------------------------------------------------------- *
  2.  * Module Version       : 2.00                                         *
  3.  * Module Date          : 10-03-94                                     *
  4.  * Last Change          : 10-03-94                                     *
  5.  * Author               : Andrea Pietsch                               *
  6.  * Programming Language : Pure-C                                       *
  7.  * Copyright            : (c) 1994, Andrea Pietsch, 56727 Mayen        *
  8.  * ------------------------------------------------------------------- */
  9.  
  10. #ifndef __gl2__
  11. #define __gl2__
  12.  
  13. /* ------------------------------------------------------------------- */
  14.  
  15. #ifndef __PORTAB__
  16. #include <portab.h>
  17. #endif
  18. #ifndef __AES__
  19. #include <aes.h>
  20. #endif
  21. #ifndef __VDI__
  22. #include <vdi.h>
  23. #endif
  24.  
  25. /* ------------------------------------------------------------------- */
  26.  
  27. #define SPECIAL_MOVE    17
  28. #define SPECIAL_BUTTON  18
  29. #define SPECIAL_TEXT    19
  30. #define SPECIAL_FRAME   20
  31.  
  32. #define WHITEBAK        64
  33. #define DRAW3D          128
  34.  
  35. /* ------------------------------------------------------------------- */
  36.  
  37. #define ButtonLeft      0
  38. #define ButtonCenter    1
  39. #define ButtonRight     2
  40.  
  41. #define DIAL_CONTINUE   0
  42. #define DIAL_CLOSE      1
  43. #define DIAL_REDRAW     2
  44. #define DIAL_ABORT      3
  45. #define DIAL_KEYCONT    4
  46.  
  47. #define DIAL_START      0
  48. #define DIAL_NO_HANDLE  1
  49. #define DIAL_END        2
  50. #define DIAL_ENDPOS_X   3
  51. #define DIAL_ENDPOS_Y   4
  52. #define DIAL_QUIT       5
  53. #define DIAL_KEY        6
  54. #define DIAL_MENU       7
  55. #define DIAL_TOP        8
  56. #define DIAL_UNTOP      9
  57. #define DIAL_INVISIBLE  10
  58. #define DIAL_VISIBLE    11
  59.  
  60. #define WINDOW_CONTINUE 0
  61. #define WINDOW_CLOSE    1
  62. #define WINDOW_REDRAW   2
  63. #define WINDOW_KEYUSED  3
  64. #define WINDOW_KEYCONT  4
  65.  
  66. #define wLclick1        1
  67. #define wLclick2        2
  68. #define wRclick1        3
  69. #define wRclick2        4
  70. #define wKey            5
  71. #define wMenu           6
  72. #define wSized          7
  73. #define wClose          8
  74. #define wQuit           9
  75. #define wUntop          10
  76. #define wTop            11
  77. #define wInvisible      12
  78. #define wVisible        13
  79.  
  80. /* ------------------------------------------------------------------- */
  81.  
  82. #define FLIP_STATE      0
  83. #define DEL_STATE       1
  84. #define SET_STATE       2
  85. #define UPD_STATE       3
  86.  
  87. #define CALL_AFTER      0
  88. #define CALL_BEFORE     1
  89.  
  90. /* ------------------------------------------------------------------- */
  91.  
  92. #define SCROLL_LEFT     0
  93. #define SCROLL_RIGHT    1
  94. #define SCROLL_UP       2
  95. #define SCROLL_DOWN     3
  96.  
  97. #define SET_X           0
  98. #define SET_Y           1
  99. #define SET_W           2
  100. #define SET_H           3
  101.  
  102. /* ------------------------------------------------------------------- */
  103.  
  104. #define MSG_TERM        1
  105. #define MSG_OPEN        2
  106. #define MSG_CLOSE       3
  107. #define MSG_SUSPEND     4
  108. #define MSG_CONTINUE    5
  109. #define MSG_NEW         6
  110. #define MSG_QUIT        7
  111.  
  112. /* ------------------------------------------------------------------- */
  113.  
  114. typedef struct
  115.   {
  116.     INT         x;
  117.     INT         y;
  118.     INT         w;
  119.     INT         h;
  120.   } RECT;
  121.  
  122. /* ------------------------------------------------------------------- */
  123.  
  124. typedef struct
  125.   {
  126.     LONG        id;
  127.     LONG        value;
  128.   } COOKIE;
  129.  
  130. /* ------------------------------------------------------------------- */
  131.  
  132. typedef struct
  133.   {
  134.     INT         handle;
  135.     LONG        id;
  136.     LONG        pos_x;
  137.     LONG        pos_y;
  138.     INT         key;
  139.     INT         state;
  140.     INT         mTitle;
  141.     INT         mItem;
  142.     INT         mx, my;
  143.     RECT        work_area;
  144.     RECT        clip;
  145.     VOID        *user;
  146.   } WINDOW_INFO;
  147.  
  148. /* ------------------------------------------------------------------- */
  149.  
  150. typedef struct
  151.   {
  152.     LONG    id;
  153.     VOID    *user;
  154.     OBJECT    *tree;
  155.     INT        handle;
  156.   } DIAL_INFO;
  157.  
  158. /* ------------------------------------------------------------------- */
  159.  
  160. typedef struct
  161.   {
  162.     INT         vdi_handle;
  163.     INT         charw;
  164.     INT         charh;
  165.     INT         boxw;
  166.     INT         boxh;
  167.     INT         appl_id;
  168.     INT         xmax;
  169.     INT         ymax;
  170.     RECT        desktop;
  171.     INT         gem_version;
  172.     UINT        tos_version;
  173.     INT         bitplanes;
  174.     INT         max_colors;
  175.     INT         act_colors;
  176.     BOOL        color_avail;
  177.     INT         acc_entry;
  178.     UINT        rsc_length;
  179.   } PARAMETER;
  180.  
  181. /* ------------------------------------------------------------------- */
  182.  
  183. typedef struct                          /* Bei Benutzung _nicht_ aendern! */
  184.   {
  185.     BOOL        init;
  186.     INT         x;
  187.     INT         y;
  188.     INT         w;
  189.     INT         h;
  190.     ULONG       size;
  191.     MFDB        mf;
  192.   } AREA;
  193.  
  194. /* ------------------------------------------------------------------- */
  195.  
  196. INT     Init_GEM        ( PARAMETER *parm, BYTE *acc_name, LONG prg_id, BYTE *prg_name, LONG user_id, BYTE *name );
  197. VOID    Exit_GEM        ( VOID );
  198.  
  199. /* ------------------------------------------------------------------- */
  200.  
  201. VOID    ShowArrow       ( VOID );
  202. VOID    ShowBee         ( VOID );
  203. VOID    ShowHour        ( VOID );
  204. VOID    ShowFinger      ( VOID );
  205. VOID    ShowHand        ( VOID );
  206. VOID    ShowThinCross   ( VOID );
  207. VOID    ShowThickCross  ( VOID );
  208. VOID    ShowOutlineCross( VOID );
  209. VOID    ShowMouse       ( VOID );
  210. VOID    HideMouse       ( VOID );
  211.  
  212. /* ------------------------------------------------------------------- */
  213.  
  214. VOID    SetClipping     ( INT handle, BOOL clip, INT x, INT y, INT w, INT h );
  215.  
  216. /* ------------------------------------------------------------------- */
  217.  
  218. VOID    SetState        ( OBJECT *tree, INT obj, INT state );
  219. BOOL    GetState        ( OBJECT *tree, INT obj, INT state );
  220. VOID    DelState        ( OBJECT *tree, INT obj, INT state );
  221. VOID    SetGlobalState  ( OBJECT *tree, INT obj, INT state );
  222.  
  223. VOID    SetFlags        ( OBJECT *tree, INT obj, INT flags );
  224. BOOL    GetFlags        ( OBJECT *tree, INT obj, INT flags );
  225. VOID    DelFlags        ( OBJECT *tree, INT obj, INT flags );
  226. VOID    SetGlobalFlags  ( OBJECT *tree, INT obj, INT flags );
  227.  
  228. INT     objc_frame      ( OBJECT *tree, INT obj );
  229. VOID    CalcArea        ( OBJECT *tree, INT obj, RECT *r );
  230.  
  231. /* ------------------------------------------------------------------- */
  232.  
  233. VOID    RedrawObj       ( OBJECT *tree, INT obj, INT state, INT flag );
  234.  
  235. /* ------------------------------------------------------------------- */
  236.  
  237. BOOL    NewArea         ( AREA *area );
  238. VOID    FreeArea        ( AREA *area );
  239. VOID    ClearArea       ( AREA *area );
  240. BOOL    SaveArea        ( INT handle, AREA *area, RECT *r );
  241. VOID    RestoreArea     ( INT handle, AREA *area );
  242. VOID    CopyArea        ( INT handle, AREA *area, INT x, INT y );
  243. VOID    MoveArea        ( INT handle, AREA *area, INT xm, INT ym, INT *xx, INT *yy );
  244. VOID    MoveScreen      ( INT handle, RECT *r, INT x, INT y );
  245.  
  246. /* ------------------------------------------------------------------- */
  247.  
  248. BOOL    NewDialog       ( OBJECT *tree );
  249. VOID    ShowDialog      ( OBJECT *tree );
  250. INT     DoDialog        ( OBJECT *tree, INT first_edit );
  251. INT     HandleDialog    ( OBJECT *tree, INT first_edit );
  252. VOID    DisableDialog   ( OBJECT *tree );
  253. VOID    EnableDialog    ( OBJECT *tree );
  254. VOID    EndDialog       ( OBJECT *tree );
  255. BOOL    DelDialog       ( OBJECT *tree );
  256. VOID    RedrawDialog    ( OBJECT *tree );
  257.  
  258. VOID    DialPosXY       ( BOOL center );
  259. VOID    TellKeyStrokes  ( BOOL tell );
  260. VOID    SetFieldProc    ( VOID (*proc)(INT ed, OBJECT *tree));
  261. VOID    SetReturn       ( BOOL like_sysgem );
  262. VOID    SetEdField      ( INT field );
  263. VOID    SetEditField    ( OBJECT *tree, INT field );
  264. VOID    MoveSolid       ( BOOL solid );
  265.  
  266. VOID    SetCall         ( BOOL do_call_before );
  267. VOID    GetEditFields   ( OBJECT *tree, VOID (*callback)(INT obj, BYTE *s ));
  268. VOID    ClearEditFields ( OBJECT *tree );
  269.  
  270. VOID    UseRightButton  ( BOOL use );
  271. BOOL    WasRightButton  ( VOID );
  272. BOOL    WasDoubleClick  ( VOID );
  273.  
  274. /* ------------------------------------------------------------------- */
  275.  
  276. INT     Alert           ( INT def, BYTE *alert_string );
  277. INT     SetIconColor    ( INT color );
  278. VOID    SetButton       ( INT just );
  279. VOID    UseHighButtons  ( BOOL use_high );
  280.  
  281. /* ------------------------------------------------------------------- */
  282.  
  283. VOID    RedrawArea      ( INT handle, RECT *rect );
  284. VOID    RedrawWindow    ( INT handle );
  285.  
  286. /* ------------------------------------------------------------------- */
  287.  
  288. VOID    SetWName        ( INT handle, BYTE *name );
  289. VOID    SetWInfo        ( INT handle, BYTE *info );
  290. INT     GetHandle       ( LONG id );
  291. LONG    GetID           ( INT handle );
  292. BOOL    TopWindow       ( INT handle );
  293. INT     GetTopWindow    ( VOID );
  294. BOOL    OwnWindow       ( INT handle );
  295. BOOL    CloseWindow     ( INT handle );
  296. VOID    CloseAllWindows ( VOID );
  297.  
  298. /* ------------------------------------------------------------------- */
  299.  
  300. VOID    RectIntersect   ( RECT *r1, RECT *r2 );
  301. VOID    ScrollWindow    ( INT handle, INT what );
  302. LONG    SetWindowParm   ( INT handle, INT what, LONG value );
  303. VOID    SetWindowRect   ( INT handle, INT x, INT y );
  304. VOID    GetWindowRect   ( INT handle, INT *x, INT *y );
  305.  
  306. /* ------------------------------------------------------------------- */
  307.  
  308. VOID    HandleEvents    ( VOID );
  309. VOID    TerminateGL     ( VOID );
  310.  
  311. /* ------------------------------------------------------------------- */
  312.  
  313. VOID    SetMsgProc      ( VOID (*msg_proc)(INT msg, LONG from, LONG parm ));
  314. BOOL    SendMessage     ( INT msg, LONG to, LONG parm );
  315. INT     ProgramExist    ( LONG id );
  316.  
  317. /* ------------------------------------------------------------------- */
  318.  
  319. INT OpenWindow ( LONG   id,
  320.                  BYTE   *name,
  321.                  BYTE   *info,
  322.                  INT    flags,
  323.                  OBJECT *menu_line,
  324.                  INT    align,
  325.                  BOOL   part_redraw,
  326.                  INT    scroll_x,
  327.                  INT    scroll_y,
  328.                  LONG   doc_x,
  329.                  LONG   doc_y,
  330.                  INT    x,
  331.                  INT    y,
  332.                  INT    w,
  333.                  INT    h,
  334.                  VOID   *user,
  335.                  VOID   (*redraw)(WINDOW_INFO *inf ),
  336.                  INT    (*action)(INT msg, WINDOW_INFO *inf ));
  337.  
  338. /* ------------------------------------------------------------------- */
  339.  
  340. BOOL WindowDialog ( LONG    id,
  341.                     INT     xpos,
  342.                     INT     ypos,
  343.                     BYTE    *title,
  344.                     BYTE    *info,
  345.                     BOOL    shut,
  346.                     BOOL    force,
  347.                     OBJECT  *tree,
  348.                     OBJECT  *menu_line,
  349.                     INT     first_edit,
  350.                     INT     (*dfunc)(INT msg, INT button) );
  351.  
  352. /* ------------------------------------------------------------------- */
  353.  
  354. BOOL    LinkSlider      ( OBJECT *tree, INT up, INT dn, INT show, INT hide,
  355.                           INT max, INT box, VOID *buffer, INT len );
  356. VOID    SetSliderLen    ( OBJECT *tree, INT box, INT len );
  357. BOOL    UnLinkSlider    ( OBJECT *tree, INT box );
  358. BOOL    AddSliderItem   ( OBJECT *tree, INT box, INT anz_items );
  359. VOID    RedrawSliderBox ( OBJECT *tree, INT box );
  360. INT     SetSliderPos    ( OBJECT *tree, INT box, INT pos  );
  361. VOID    ScrollSlider    ( OBJECT *tree, INT box, INT what );
  362. VOID    SetRealTimeSld  ( BOOL real_time );
  363.  
  364. /* ------------------------------------------------------------------- */
  365.  
  366. VOID    SetText         ( OBJECT *tree, INT index, BYTE *text );
  367. BYTE    *GetText        ( OBJECT *tree, INT index, BYTE *text );
  368.  
  369. /* ------------------------------------------------------------------- */
  370.  
  371. BOOL    SetDeskTopMenu  ( OBJECT *tree, INT (*action)(INT msg, WINDOW_INFO *inf ));
  372. VOID    RemDeskTopMenu  ( VOID );
  373.  
  374. INT     IsMenuKey       ( OBJECT *tree, INT scan, INT state );
  375. VOID    SelectMenu      ( INT item, BOOL invert );
  376.  
  377. /* ------------------------------------------------------------------- */
  378.  
  379. UINT    LoadResource    ( BYTE *rsc_name );
  380. OBJECT  *RscAdr         ( INT tree_type, INT index );
  381. VOID    RscFree         ( VOID );
  382.  
  383. /* ------------------------------------------------------------------- */
  384.  
  385. BOOL    InstallTermProc ( VOID (*proc)(VOID) );
  386. VOID    SetUnknownEvent ( VOID (*proc)(INT event, INT *msg));
  387.  
  388. VOID    SetAccProc      ( VOID (*acc_open)(VOID), VOID (*acc_close)(VOID));
  389.  
  390. /* ------------------------------------------------------------------- */
  391.  
  392. BOOL    SetCookie       ( LONG id, LONG value );
  393. BOOL    GetCookie       ( LONG id, LONG *value );
  394. BOOL    RemoveCookie    ( LONG id );
  395.  
  396. /* ------------------------------------------------------------------- */
  397.  
  398. INT     PopUp           ( OBJECT *tree, INT x, INT y, INT start_obj, INT first_obj );
  399. VOID    PopUpMenu       ( BOOL wait_for_click );
  400.  
  401. /* ------------------------------------------------------------------- */
  402.  
  403. VOID    SetProcTimer    ( VOID (*proc)(VOID));
  404. VOID    SetTimer        ( INT ms_low, INT ms_high );
  405.  
  406. /* ------------------------------------------------------------------- */
  407.  
  408. BOOL    SetDeskTop      ( OBJECT *tree, INT first, INT (*action)(INT msg, WINDOW_INFO *inf ));
  409. VOID    RemoveDeskTop   ( VOID );
  410.  
  411. /* ------------------------------------------------------------------- */
  412.  
  413. VOID    SetWatch        ( INT enter, RECT *watch, VOID (*p)(BOOL enter, RECT *r ));
  414.  
  415. /* ------------------------------------------------------------------- */
  416.  
  417. #endif
  418.  
  419. /* ------------------------------------------------------------------- */
  420.  
  421.  
  422.