home *** CD-ROM | disk | FTP | other *** search
/ Amiga ACS 1998 #4 / amigaacscoverdisc1998-041998.iso / utilities / shareware / dev / ucb_logoppc / source / win32trm.h < prev    next >
Encoding:
C/C++ Source or Header  |  1997-03-06  |  5.3 KB  |  183 lines

  1. /* -*-C-*-
  2.  * Win32trm.h
  3.  *
  4.  * Function prototypes &c for Win32 API (Win95, WinNT) compliant
  5.  * procedures.
  6.  *
  7.  * $Id$
  8.  *
  9.  * $Log$
  10.  *
  11.  * (c) 1996 UC Regents, etc.
  12.  *
  13.  */
  14.  
  15. #include <windows.h>
  16. #include "logo.h"
  17.  
  18. #ifndef _WIN32TRM_H
  19.  
  20. /* set to 1000 for debugging, should normally be ~10k */
  21. #define GR_SIZE 10000
  22.  
  23. #define prepare_to_draw win32_prepare_draw()
  24. #define done_drawing
  25.  
  26. #define prepare_to_draw_turtle win32_turtle_prep()
  27. #define done_drawing_turtle win32_turtle_end()
  28.  
  29. #define screen_left 0
  30. #define screen_right win32_screen_right()
  31. #define screen_top 0
  32. #define screen_bottom win32_screen_bottom()
  33. #define max_screen_bottom win32_screen_bottom()
  34.  
  35. #define screen_height (1 + screen_bottom - screen_top)
  36. #define screen_width (1 + screen_right - screen_left)
  37.  
  38. #define screen_x_center (screen_left + (screen_width)/2)
  39. #define screen_y_center (screen_top + (screen_height)/2)
  40.  
  41. #define turtle_left_max ((screen_left) - (screen_x_center))
  42. #define turtle_right_max ((screen_right) - (screen_x_center))
  43. #define turtle_top_max ((screen_y_center) - (screen_top))
  44. #define turtle_bottom_max ((screen_y_center) - (screen_bottom))
  45.  
  46. #define screen_x_coord ((screen_x_center) + turtle_x)
  47. #define screen_y_coord ((screen_y_center) - turtle_y)
  48.  
  49. #define turtle_height (FIXNUM) 18
  50. #define turtle_half_bottom (FLONUM) 6.0
  51. #define turtle_side (FLONUM) 19.0
  52.  
  53. #define clear_screen win32_erase_screen()
  54.  
  55. #define line_to(x,y) {\
  56.   if (pen_vis==0) \
  57.     lineto((int)x,(int)y); \
  58.   else \
  59.     moveto((int)x,(int)y);\
  60.   }
  61.  
  62. #define move_to(x,y) moveto((int)x,(int)y)
  63. /* #define draw_string(s) outtext((char *)s) function */
  64.  
  65. #define set_pen_vis(v) { turtlePen.vis = v; }
  66. /* functionified */
  67. #define set_pen_mode(m)  win32_set_pen_mode(m)
  68. /* functionified */
  69. #define set_pen_color(c) win32_set_pen_color(c)
  70.  
  71. #define set_back_ground(c) win32_set_bg(c)
  72. /*  Now functions instead of macros */
  73. #define set_pen_width(w) win32_set_pen_width(w)
  74. #define set_pen_height(h) win32_set_pen_width(h)
  75.  
  76. #define set_pen_x(x) moveto((int)x, pen_y)
  77. #define set_pen_y(y) moveto(pen_x, (int)y)
  78.  
  79. #define erase_screen() win32_erase_screen()
  80.  
  81. /* pen_info is a stucture type with fields for the various
  82.    pen characteristics including the location, size, color,
  83.    mode (e.g. XOR or COPY), pattern, visibility (0 = visible) */
  84.  
  85. typedef struct { int    h;
  86.          int    v;
  87.          int    vis;
  88.          int    width;
  89.          int    color;
  90.          char    pattern[8];
  91.          int    mode;
  92. #ifdef WIN32
  93.                  HPEN   hpen;
  94. #endif  
  95. } pen_info;
  96.  
  97. #define p_info_x(p) p.h
  98. #define p_info_y(p) p.v
  99.  
  100. #define pen_width (int) turtlePen.width
  101. #define pen_height (int) turtlePen.width
  102. #define pen_mode turtlePen.mode
  103. #define pen_vis turtlePen.vis
  104.  
  105. #define pen_x turtlePen.h
  106. #define pen_y turtlePen.v
  107.  
  108. #define get_node_pen_pattern win32_get_node_pen_pattern()
  109. #define get_node_pen_mode win32_get_node_pen_mode()
  110.  
  111. #define pen_reverse win32_pen_reverse()
  112. #define pen_erase win32_pen_erase()
  113. #define pen_down win32_pen_down()
  114.  
  115. #define button FALSE
  116.  
  117. /*#define mouse_x mickey_x() */
  118. /*#define mouse_y mickey_y() */
  119.  
  120. #define full_screen win32_con_full_screen()
  121. #define split_screen win32_con_split_screen()
  122. #define text_screen win32_con_text_screen()
  123.  
  124. /* definitions from term.c and math.c for ibmterm.c */
  125. extern int x_coord, y_coord, x_max, y_max, tty_charmode;
  126. extern char so_arr[], se_arr[];
  127. extern FLONUM degrad;
  128.  
  129. /* Forward declarations for graphics.c */
  130. extern void gr_mode(), draw_turtle();
  131. extern void win32_pen_erase(), win32_pen_down(), win32_pen_xor();
  132. extern void win32_set_pen_mode(int), win32_set_pen_color(), win32_set_bg();
  133. extern int get_win32_pen_mode(), win32_set_pen_width(int);
  134. extern void save_pen(pen_info*), restore_pen(pen_info*), set_pen_pattern();
  135. extern void plain_xor_pen();
  136. extern void set_list_pen_pattern(), get_pen_pattern(), erase_screen();
  137. extern void label(), logofill();
  138. extern void t_screen(), s_screen(), f_screen(), tone();
  139. extern FIXNUM mickey_x(), mickey_y();
  140. extern NODE *win32_get_node_pen_pattern(), *win32_get_node_pen_mode();
  141. extern FIXNUM t_height();
  142. extern FIXNUM pen_color, back_ground;
  143. extern FLONUM t_half_bottom(), t_side();
  144. extern BOOLEAN in_erase_mode;
  145. extern void win32_init_palette(), win32_pen_reverse();
  146. extern void win32_turtle_prep(), win32_turtle_end();
  147. extern void win32_con_text_screen(), win32_con_split_screen();
  148. extern void win32_prepare_draw(void);
  149. extern void win32_con_full_screen(), win32_clear_text();
  150. extern NODE* win32_lsetcursor(NODE *);
  151. extern int win32_screen_right();
  152. extern pen_info turtlePen;
  153. extern void MoveCursor(int, int), win32_receive_char(char);
  154. extern void win32_parse_line(char*);
  155.  
  156. /* prototypes added by sowings */
  157. extern BOOLEAN safe_to_save();
  158. extern void save_lm_helper(), save_line(), save_move();
  159. extern void save_mode(), save_color(), save_pattern();
  160. extern void save_size(), save_vis();
  161.  
  162. extern void set_palette(int, unsigned int, unsigned int, unsigned int);
  163. extern void get_palette(int, unsigned int*, unsigned int*, unsigned int*);
  164.  
  165. extern int wrap_down(FLONUM, FLONUM, FLONUM, FLONUM, FLONUM);
  166. extern int wrap_up(FLONUM, FLONUM, FLONUM, FLONUM, FLONUM);
  167. extern int wrap_left(FLONUM, FLONUM, FLONUM, FLONUM, FLONUM);
  168. extern int wrap_right(FLONUM, FLONUM, FLONUM, FLONUM, FLONUM);
  169.  
  170. #define nop() {} 
  171.  
  172. #define WIN_PEN_ERASE   1
  173. #define WIN_PEN_DOWN    2
  174. #define WIN_PEN_REVERSE 3
  175.  
  176. #define NUM_LINES 100
  177. #define CHARS_PER_LINE 200
  178.  
  179. LRESULT CALLBACK MainFunc(HWND, UINT, WPARAM, LPARAM);
  180.  
  181. #define _WIN32TRM_H
  182. #endif /* !_WIN32TRM_H */
  183.