home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / magazine / msysjour / vol04 / 01a / genapp2 / envrnmt.h < prev    next >
C/C++ Source or Header  |  1988-10-24  |  6KB  |  218 lines

  1. /*****************************************************************
  2.  
  3.     ENVIRONMENT.H 
  4.  
  5. *****************************************************************/
  6.  
  7.   
  8. PUBLIC BOOL    env_InitEnvironment        (VOID);
  9. PUBLIC BOOL    env_PtInRect            (Point *,pRect);
  10. PUBLIC VOID    env_OffsetRect            (Rect *,int,int);
  11.  
  12. PUBLIC VOID    env_FatalError            (/*varargs*/);
  13. PUBLIC VOID    env_MessageToUser        (/*varargs*/);
  14. PUBLIC VOID    env_ExitProgram            (/*varargs*/);
  15. PUBLIC VOID    env_NotImplemented        (/*varargs*/);
  16.  
  17. #ifdef MAC
  18. PUBLIC VOID    memset                    (MEMPTR,int,int);
  19. #endif
  20.  
  21. /****************************************************************
  22.     MEMORY ALLOCATION
  23. ****************************************************************/
  24.  
  25. PUBLIC MEMBLOCK    env_AllocMem        (MEMSIZE);
  26. PUBLIC VOID        env_ReAllocMem        (MEMBLOCK *,MEMSIZE);
  27. PUBLIC MEMPTR    env_GraspMem        (MEMBLOCK);
  28. PUBLIC VOID        env_UnGraspMem        (MEMBLOCK);
  29. PUBLIC VOID        env_FreeMem            (MEMBLOCK);
  30.  
  31.  
  32. /****************************************************************
  33.     PATTERNS
  34. ****************************************************************/
  35.  
  36. typedef enum {
  37.     PATT_WHITE,
  38.     PATT_BLACK,
  39.     PATT_GRAY,
  40.     PATT_LTGRAY,
  41.     PATT_DKGRAY,
  42.     PATT_FWD,
  43.     PATT_BACK,
  44.     PATT_HORL,
  45.     PATT_VERT,
  46.     PATT_VERTX,
  47.     PATT_DIAGX,
  48.     PATT_NULLPA,
  49.     PATT_DOT,
  50.     PATT_DASH,
  51.     PATT_DASHDO,
  52.     PATT_DASHDD
  53. } PATT;
  54.  
  55.  
  56. /****************************************************************
  57.     WINDOWS, CANVASES and DRAWING
  58. ****************************************************************/
  59.  
  60. PUBLIC BOOL        env_NewWindow        (STRING,Rect *,INDEX,INDEX);
  61. PUBLIC VOID        env_GetScreenSize    (Rect *);
  62.  
  63. #ifdef WM_CREATE /*WINDOWS.H*/
  64. #ifndef MAC
  65. LOCALF VOID        select_fill_pattern    (HDC,PATT);
  66. LOCALF VOID        null_brush            (HDC);
  67. LOCALF VOID        null_pen            (HDC);
  68. #endif
  69. #endif
  70. #ifdef MAC
  71. PUBLIC BOOL        env_IsDevData        (LONG);
  72. PUBLIC MEMPTR    env_GetAddrDevBlock    (HCANVAS);
  73. #endif
  74.  
  75. LOCALF VOID        env_IsCanvasValid    (HCANVAS);
  76.  
  77. PUBLIC VOID        env_InitCanvases    (VOID);
  78. PUBLIC HCANVAS    env_NewCanvas        (LONG);
  79. PUBLIC VOID        env_FreeCanvas        (HCANVAS);
  80. PUBLIC VOID        env_SetCanvasDev    (HCANVAS,LONG);
  81. PUBLIC LONG        env_GetCanvasDev    (HCANVAS);
  82.  
  83. PUBLIC VOID        env_ActivateCanvas    (HCANVAS);
  84. PUBLIC VOID        env_InvalidateCanvas(HCANVAS,Rect *);
  85.  
  86. PUBLIC VOID        env_MoveRel            (HCANVAS,short,short);
  87. PUBLIC VOID        env_Line            (HCANVAS,short,short);
  88. PUBLIC VOID        env_MoveTo            (HCANVAS,short,short);
  89.  
  90. PUBLIC VOID        env_ResizeCanvas    (HCANVAS,Point *);
  91. PUBLIC VOID        env_MoveCanvas        (HCANVAS,Point *);
  92. PUBLIC VOID        env_CalcSizeCanvas    (HCANVAS);
  93.  
  94. PUBLIC VOID        env_StartDrawing    (HCANVAS);
  95. PUBLIC VOID        env_EndDrawing        (HCANVAS);
  96. PUBLIC VOID        env_GlobalToLocal    (HCANVAS,Point *);
  97. PUBLIC VOID        env_OffsetOrgCanvas    (HCANVAS,short,short);
  98. PUBLIC VOID        env_SetScaleCanvas    (HCANVAS,short,short,short);
  99.  
  100. PUBLIC VOID        env_BeginUpdate        (HCANVAS);
  101. PUBLIC VOID        env_EndUpdate        (HCANVAS);
  102. PUBLIC VOID        env_FrameRect        (HCANVAS,Rect *);
  103. PUBLIC VOID        env_PaintRect        (HCANVAS,Rect *);
  104. PUBLIC VOID        env_FillRect        (HCANVAS,Rect *,PATT);
  105.  
  106. PUBLIC VOID        env_TextOut        (HCANVAS,PIXEL,PIXEL,STRING);
  107.  
  108. /****************************************************************
  109.     APPLICATION EVENTS
  110. ****************************************************************/    
  111.  
  112. /*return values for GetNextEvent() */
  113. enum 
  114. {
  115.     NULL_EVENT,
  116.     QUIT_EVENT,
  117.     CMD_EVENT,
  118.     MOUSEDOWN_EVENT,
  119.     MOUSEUP_EVENT,
  120.     OPENVIEW_EVENT,
  121.     CLOSEVIEW_EVENT,
  122.     MOVEVIEW_EVENT,
  123.     RESIZEVIEW_EVENT,
  124.     ACTIVATEVIEW_EVENT,
  125.     UPDATEVIEW_EVENT,
  126.     CHAR_EVENT
  127. };
  128.  
  129. typedef struct
  130. {
  131.     int            cmd_category;
  132.     int            cmd_item;
  133.     HCANVAS        canvas;
  134.     Point        where;
  135.     int            the_char;
  136.     int        event_type;
  137.     long        when;
  138. } APPEVENT;
  139.  
  140. PUBLIC VOID    env_GetAppEvent        (APPEVENT *);
  141. #ifdef MAC
  142. LOCALF BOOL    mac_EventLoop        (APPEVENT *);
  143. #endif
  144.  
  145. /****************************************************************
  146.     MENUS
  147. ****************************************************************/    
  148.  
  149. PUBLIC BOOL    env_InitMenus        (VOID);
  150. PUBLIC VOID    env_DoSysMenu        (ENUM);
  151.  
  152.  
  153. /****************************************************************
  154.     DEBUGGING
  155. ****************************************************************/
  156.  
  157. #ifdef DBG 
  158. #ifdef MAC
  159. PUBLIC BOOL     ut_InitDebugModule        ();
  160. PUBLIC BOOL        ut_CreateDebugMenu        ();
  161. PUBLIC BOOL     ut_FilterMenuSelection    ();
  162. #else
  163. #ifdef WM_CREATE
  164. PUBLIC LONG WCALLBACK DebugWndProc        (HWND,int,WORD,long);
  165. PUBLIC INT    ut_CreateDBugWindow        (HWND,int);
  166. PUBLIC INT    ut_RegisterDBugWindow        (HANDLE,int);
  167. PUBLIC BOOL     ut_DebugMenuFilter        (int);
  168. #endif
  169. #endif
  170.  
  171. PUBLIC VOID    ut_SetPrintLevel        (int);
  172. PUBLIC VOID    ut_PutLine            (STRING);
  173. PUBLIC VOID    ut_RawTextOut            (short,short,STRING);
  174. PUBLIC VOID     ut_PrintMacRect            (STRING,Rect *);
  175. PUBLIC VOID     ut_PrintShort            (STRING,short);
  176. PUBLIC VOID     ut_Print2Shorts            (STRING,short,short);
  177. PUBLIC VOID     ut_Print4Shorts            (STRING,short,short,short,short);
  178. PUBLIC VOID    ut_PutString            (STRING,STRING);
  179. PUBLIC VOID    ut_PrintHex            (STRING,LONG);
  180. PUBLIC VOID    ut_Print2Hex            (STRING,LONG,LONG);
  181. PUBLIC VOID    ut_Print4Hex            (STRING,LONG,LONG,LONG,LONG);
  182.  
  183. #ifdef WM_CREATE
  184. int   far PASCAL OpenPathname    (LPSTR, int );
  185. int   far PASCAL DeletePathname    (LPSTR );
  186. int   far PASCAL _lopen        (LPSTR, int );
  187. void  far PASCAL _lclose    (int );
  188. int   far PASCAL _lcreat    (LPSTR, int );
  189. BOOL  far PASCAL _ldelete    (LPSTR );
  190. WORD  far PASCAL _ldup        (int );
  191. LONG  far PASCAL _llseek    (int, long, int );
  192. WORD  far PASCAL _lread        (int, LPSTR, int );
  193. WORD  far PASCAL _lwrite    (int, LPSTR, int );
  194.  
  195. #define READ        0   /* Flags for _lopen */
  196. #define WRITE       1
  197. #define READ_WRITE  2
  198.  
  199. #endif
  200.  
  201. #else /*!DBG*/
  202.  
  203. #define ut_SetPrintLevel(a)
  204. #define ut_PutLine(a)
  205. #define ut_RawTextOut(a,b,c)
  206. #define ut_PrintMacRect(a,b)
  207. #define ut_PrintShort(a,b)
  208. #define ut_Print2Shorts(a,b,c)
  209. #define ut_Print4Shorts(a,b,c,d,e)
  210. #define ut_PutString(a,b)
  211. #define ut_PrintHex(a,b)
  212. #define ut_Print2Hex(a,b,c)
  213. #define ut_Print4Hex(a,b,c,d,e)
  214.  
  215. #endif 
  216.  
  217.  
  218.