home *** CD-ROM | disk | FTP | other *** search
/ Vectronix 2 / VECTRONIX2.iso / FILES_01 / GENEVA_3.LZH / GENEVA_3.MSA / PROGRAM / XWIND.H < prev    next >
C/C++ Source or Header  |  1994-01-03  |  12KB  |  325 lines

  1. /* C declarations for Geneva. Copyright ╜ 1993, Gribnif Software */
  2.  
  3. #ifndef __XWIND__
  4. #define __XWIND__
  5.  
  6. #define GENEVA_COOKIE   0x476E7661      /* "Gnva" */
  7. #define GENEVA_VER      0x0102          /* current Geneva version */
  8.  
  9. typedef struct
  10. {
  11.   int ver;
  12.   char *process_name;
  13.   int apid;
  14.   int (**aes_funcs)();
  15.   int (**xaes_funcs)();
  16. } G_COOKIE;
  17.  
  18. /************************ appl_search **************************/
  19. #define X_APS_CHILD0    0x7100
  20. #define X_APS_CHILD     0x7101
  21. #define X_APS_CHEXIT    -1
  22.  
  23. /********************* wind_get, wind_set **********************/
  24. #define X_WF_MENU       0x1100
  25. #define X_WF_DIALOG     0x1200
  26. #define X_WF_DIALWID    0x1300
  27. #define X_WF_DIALHT     0x1400
  28. #define X_WF_DFLTDESK   0x1500          /* wind_set only */
  29. #define X_WF_MINMAX     0x1600
  30. #define X_WF_HSPLIT     0x1700
  31. #define X_WF_VSPLIT     0x1800
  32. #define X_WF_SPLMIN     0x1900
  33. #define X_WF_HSLIDE2    0x1A00
  34. #define X_WF_VSLIDE2    0x1B00
  35. #define X_WF_HSLSIZE2   0x1C00
  36. #define X_WF_VSLSIZE2   0x1D00
  37. #define X_WF_DIALFLGS   0x1E00
  38.   #define X_WD_ACTIVE   1       /* Mouse/keyboard events processed */
  39.   #define X_WD_BLITSCRL 2       /* Use blit for realtime scroll */
  40. #define X_WF_OBJHAND    0x1F00
  41. #define X_WF_DIALEDIT   0x2000
  42.  
  43. /******************* evnt_multi, evnt_mesag ********************/
  44. #define X_MN_SELECTED   0xE000
  45. #define X_WM_SELECTED   0xE100          /* Only if X_WTFL_CLICKS is off */
  46. #define X_GET_HELP      0xE200
  47. #define X_WM_HSPLIT     0xE400
  48. #define X_WM_VSPLIT     0xE500
  49. #define X_WM_ARROWED2   0xE600
  50. #define X_WM_HSLID2     0xE700
  51. #define X_WM_VSLID2     0xE800
  52. #define X_WM_OBJECT     0xE900
  53. #define X_MU_DIALOG     0x4000          /* evnt_multi (only) type       */
  54.  
  55. /************************** objc_draw **************************/
  56. #define X_MAGMASK       0xF000 /* ob_state: Mask for X_MAGIC                  */
  57. #define X_MAGIC         0x9000 /*           Must be set this way              */
  58. #define X_PREFER        0x0040 /*           User-defined fill                 */
  59. #define X_DRAW3D        0x0080 /*           3D                                */
  60. #define X_ROUNDED       0x0100 /*           Rounded                           */
  61. #define X_KBD_EQUIV     0x0200 /*           Scan for ['s; Root: no auto equivs*/
  62. #define X_SMALLTEXT     0x0400 /*           Small font                        */
  63. #define X_BOLD          0x4000 /* ob_flags: With X_MAGIC, bold text           */
  64. #define X_ITALICS       0x8000 /*           With X_MAGIC, italic text         */
  65. /* Extended ob_types */
  66. #define X_MOVER         17     /* Dialog mover box                            */
  67. #define X_RADCHKUND     18     /* Radio/check/Undo                            */
  68. #define X_UNDERLINE     19     /* Title (G_STRING)                            */
  69. #define X_GROUP         20     /* Group (G_BUTTON)                            */
  70. #define X_HELP          21     /* Activated with Help key                     */
  71. #define X_UNDO          31     /* Activated with Undo key                     */
  72. #define X_USRDEFPRE     90     /* With X_MAGIC, call USERBLK before drawing   */
  73. #define X_USRDEFPOST    91     /* With X_MAGIC, call USERBLK after drawing    */
  74.  
  75. /************************** form_dial **************************/
  76. #define X_FMD_START     1000    /* Save area under dialog    */
  77. #define X_FMD_FINISH    1003    /* Restore area under dialog */
  78.  
  79. /************************** graf_mouse *************************/
  80. #define X_LFTRT         8       /* Left-right arrow */
  81. #define X_UPDOWN        9       /* Up-down arrow    */
  82. #define X_MRESET        1000    /* Reset to on once */
  83. #define X_MGET          1001    /* Get mouse shape  */
  84.  
  85. typedef struct
  86. {
  87.   int frames, delay;
  88.   MFORM form[32];
  89. } ANI_MOUSE;
  90. #define X_SET_SHAPE     1100    /* Add to mouse shape index to change shape */
  91.  
  92. /************************ rsrc_load *****************************/
  93. typedef struct rshdr2
  94. {
  95.         unsigned int    rsh_vrsn;       /* Should be 3 */
  96.         unsigned int    rsh_extvrsn;    /* Initialized to "IN" for Interface */
  97.         unsigned long   rsh_object;
  98.         unsigned long   rsh_tedinfo;
  99.         unsigned long   rsh_iconblk;
  100.         unsigned long   rsh_bitblk;
  101.         unsigned long   rsh_frstr;
  102.         unsigned long   rsh_string;
  103.         unsigned long   rsh_imdata;     /* Image data */
  104.         unsigned long   rsh_frimg;
  105.         unsigned long   rsh_trindex;
  106.         unsigned long   rsh_nobs;       /* Counts of various structs */
  107.         unsigned long   rsh_ntree;
  108.         unsigned long   rsh_nted;
  109.         unsigned long   rsh_nib;
  110.         unsigned long   rsh_nbb;
  111.         unsigned long   rsh_nstring;
  112.         unsigned long   rsh_nimages;
  113.         unsigned long   rsh_rssize;     /* Total bytes in resource */
  114. } RSHDR2;
  115.  
  116. #define X_LONGRSC       0x494EL /* "IN" */
  117.  
  118. /************************** x_settings *************************/
  119. #define SET_VER         0x0100   /* the last time SETTINGS changed */
  120. typedef struct
  121. {
  122.   unsigned char shift, scan, ascii;
  123. } KEYCODE;
  124. typedef union
  125. {
  126.   struct
  127.   {
  128.     unsigned outlined   :1;
  129.     unsigned shadowed   :1;
  130.     unsigned draw_3D    :1;
  131.     unsigned rounded    :1;
  132.     unsigned atari_3D   :1;
  133.     unsigned reserved   :11;
  134.     unsigned framecol   :4;
  135.     unsigned textcol    :4;
  136.     unsigned textmode   :1;
  137.     unsigned fillpattern:3;
  138.     unsigned interiorcol:4;
  139.   } s;
  140.   unsigned long l;
  141. } OB_PREFER;
  142. typedef struct Settings
  143. {
  144.   int version;
  145.   int struct_len;
  146.   int boot_rez, falcon_rez;
  147.   union
  148.   {
  149.     struct
  150.     {
  151.       unsigned pulldown          :1;
  152.       unsigned insert_mode       :1;
  153.       unsigned long_titles       :1;
  154.       unsigned alerts_under_mouse:1;
  155.       unsigned fsel_1col         :1;
  156.       unsigned grow_shrink       :1;
  157.       unsigned tear_aways_topped :1;
  158.       unsigned auto_update_shell :1;
  159.       unsigned alert_mode_change :1;
  160.       unsigned ignore_video_mode :1;
  161.       unsigned reserved          :6;
  162.     } s;
  163.     unsigned int i;
  164.   } flags;
  165.   int gadget_pause;             /* 50 Hz timer tics */
  166.   KEYCODE menu_start, app_switch, app_sleep, ascii_table, redraw_all,
  167.       wind_keys[13];
  168.   OB_PREFER color_3D[4], color_root[4], color_exit[4], color_other[4];
  169.   char sort_type, find_file[26], fsel_path[10][35], fsel_ext[10][6];
  170. } SETTINGS;
  171.  
  172. #define XS_UPPAGE WA_UPPAGE
  173. #define XS_DNPAGE WA_DNPAGE
  174. #define XS_UPLINE WA_UPLINE
  175. #define XS_DNLINE WA_DNLINE
  176. #define XS_LFPAGE WA_LFPAGE
  177. #define XS_RTPAGE WA_RTPAGE
  178. #define XS_LFLINE WA_LFLINE
  179. #define XS_RTLINE WA_RTLINE
  180. #define XS_CLOSE  8
  181. #define XS_CYCLE  9
  182. #define XS_FULL   10
  183. #define XS_LFINFO 11
  184. #define XS_RTINFO 12
  185.  
  186. int x_settings( int getset, int length, SETTINGS *user );
  187.  
  188. /************************ x_shel_get/put ************************/
  189. #define X_SHLOADSAVE    -1      /* Load/save SETTINGS */
  190. #define X_SHOPEN        0       /* Start read/write   */
  191. #define X_SHACCESS      1       /* Read/write         */
  192. #define X_SHCLOSE       2       /* Close              */
  193.  
  194. int x_shel_get( int mode, int length, char *buf );
  195. int x_shel_put( int mode, char *buf );
  196.  
  197. /***************** x_wind_create, x_wind_calc *******************/
  198. #define X_MENU          0x0001
  199. #define X_HSPLIT        0x0002
  200. #define X_VSPLIT        0x0004
  201.  
  202. int x_wind_create( int kind, int xkind, int wx, int wy, int ww,
  203.     int wh );
  204. int x_wind_calc( int type, int kind, int xkind, int inx, int iny,
  205.     int inw, int inh, int *outx, int *outy, int *outw, int *outh );
  206.  
  207. /************************** x_wind_tree *************************/
  208. typedef struct WindTree
  209. {
  210.   int handle, count, flag;
  211.   OBJECT *tree;
  212. } WIND_TREE;
  213.  
  214. #define X_WT_GETCNT     0       /* Get count and flag */
  215. #define X_WT_READ       1       /* Copy window tree   */
  216. #define X_WT_SET        2       /* Set new tree       */
  217.  
  218. #define X_WTFL_RESIZE   1       /* Flags bit 0: Auto resize                  */
  219. #define X_WTFL_CLICKS   2       /*           1: Process clicks               */
  220. #define X_WTFL_SLIDERS  4       /*           2: Resize sliders, info         */
  221.  
  222. /* window gadgets */
  223. #define WGCLOSE   1   /* BOXCHAR */
  224. #define WGMOVE    2   /* BOXTEXT */
  225. #define WGICONIZ  3   /* BOXCHAR */
  226. #define WGBACK    4   /* BOXCHAR */
  227. #define WGFULL    5   /* BOXCHAR */
  228. #define WGILEFT   6   /* BOXCHAR */
  229. #define WGINFO    7   /* BOXTEXT */
  230. #define WGIRT     8   /* BOXCHAR */
  231. #define WGTOOLBOX 9   /* IBOX */
  232. #define WGMNLEFT  10  /* BOXCHAR */
  233. #define WGMENU    11  /* BOX */
  234. #define WGMNRT    12  /* BOXCHAR */
  235. #define WGUP      13  /* BOXCHAR */
  236. #define WGVBIGSL  14  /* BOX */
  237. #define WGVSMLSL  15  /* BOX */
  238. #define WGDOWN    16  /* BOXCHAR */
  239. #define WGVSPLIT  17  /* BOX */
  240. #define WGUP2     18  /* BOXCHAR */
  241. #define WGVBIGSL2 19  /* BOX */
  242. #define WGVSMLSL2 20  /* BOX */
  243. #define WGDOWN2   21  /* BOXCHAR */
  244. #define WGLEFT    22  /* BOXCHAR */
  245. #define WGHBIGSL  23  /* BOX */
  246. #define WGHSMLSL  24  /* BOX */
  247. #define WGRT      25  /* BOXCHAR */
  248. #define WGHSPLIT  26  /* BOX */
  249. #define WGLEFT2   27  /* BOXCHAR */
  250. #define WGHBIGSL2 28  /* BOX */
  251. #define WGHSMLSL2 29  /* BOX */
  252. #define WGRT2     30  /* BOXCHAR */
  253. #define WGSIZE    31  /* BOXCHAR */
  254.  
  255. int x_wind_tree( int mode, WIND_TREE *wt );
  256.  
  257. /************************* x_appl_flags *************************/
  258. typedef union
  259. {
  260.   struct
  261.   {
  262.     unsigned multitask    :1;
  263.     unsigned special_types:1;
  264.     unsigned round_buttons:1;
  265.     unsigned kbd_equivs   :1;
  266.     unsigned undo_equivs  :1;
  267.     unsigned off_left     :1;
  268.     unsigned exit_redraw  :1;
  269.     unsigned AES40_msgs   :1;
  270.     unsigned limit_handles:1;
  271.     unsigned limit_memory :1;
  272.     unsigned keep_deskmenu:1;
  273.     unsigned clear_memory :1;
  274.     unsigned maximize_wind:1;
  275.     unsigned unused       :3;   /* Reserved for future use */
  276.     unsigned mem_limit    :16;  /* Kb to limit memory allocation */
  277.   } s;
  278.   unsigned long l;
  279. } APFLG;
  280.  
  281. typedef struct
  282. {
  283.   char name[13];
  284.   char desc[17];
  285.   APFLG flags;
  286.   KEYCODE open_key, reserve_key[3];
  287. } APPFLAGS;
  288.  
  289. int x_appl_flags( int getset, int index, APPFLAGS *flags );
  290.  
  291. /*********************** x_appl_font ****************************/
  292. typedef struct
  293. {
  294.   int font_id;
  295.   int point_size;
  296.   int gadget_wid;
  297.   int gadget_ht;
  298. } XFONTINFO;
  299.  
  300. int x_appl_font( int getset, int zero, XFONTINFO *info );
  301.  
  302. /********************** Miscellaneous ***************************/
  303. void appl_yield(void);
  304. int  x_appl_term( int apid, int retrn, int set_me );
  305. int  x_appl_sleep( int id, int sleep );
  306. int  x_form_center( OBJECT *tree, int *cx, int *cy, int *cw, int *ch );
  307. int  x_form_error( char *fmt, int num );
  308. int  x_form_filename( OBJECT *tree, int obj, int to_from, char *string );
  309. int  x_form_mouse( OBJECT *tree, int mouse_x, int mouse_y, int clicks,
  310.      int *edit_obj, int *next_obj, int *edit_idx );
  311. int  x_fsel_input( char *inpath, int pathlen, char *insel, int sels,
  312.      int *exbutton, char *label );
  313. int  x_graf_blit( GRECT *r1, GRECT *r2 );
  314. int  x_graf_rubberbox( GRECT *area, GRECT *outer, int minwidth,
  315.      int minheight, int maxwidth, int maxheight, int snap, int lag );
  316. int  x_help( char *topic, char *helpfile, int sensitive );
  317. int  x_objc_edit( OBJECT *tree, int edit_obj, int key_press,
  318.      int shift_state, int *edit_idx, int mode );
  319. void x_sprintf( char *buf, char *fmt, ... );
  320. int  x_sscanf( char *buf, char *fmt, ... );
  321. int  x_wdial_draw( int handle, int start, int depth );
  322. int  x_wdial_change( int handle, int object, int newstate );
  323.  
  324. #endif
  325.