home *** CD-ROM | disk | FTP | other *** search
/ Dream 48 / Amiga_Dream_48.iso / Atari / c / libs / smlaes12.lzh / SMALLAES.H < prev    next >
C/C++ Source or Header  |  1993-04-13  |  22KB  |  735 lines

  1. /* ------------------------------------------------------------------------- */
  2. /* ----- The smaller AES-Binding V1.2 --- (c) 1991-93 by Oliver Scheel ----- */
  3. /* ------------------------------------------------------------------------- */
  4. /* ----- SMALLAES.H   Definition File -------------------------------------- */
  5. /* ------------------------------------------------------------------------- */
  6.  
  7. /* ------------------------------------------------------------------------- */
  8. /* Dieses Binding ist Public Domain. Änderungen sind genau zu dokumentieren! */
  9. /* ------------------------------------------------------------------------- */
  10. /* This Binding is public domain. Changes have to be documented!         */
  11. /* ------------------------------------------------------------------------- */
  12. /*    Autor:    Oliver Scheel                             */
  13. /*        Rothehausstr. 28                         */
  14. /*        W-5000 Köln 30 (West-Geramny)                     */
  15. /*    Net:     Oliver_Scheel@k2.maus.de                     */
  16. /* ------------------------------------------------------------------------- */
  17.  
  18. #ifndef __SMALLAES__
  19. #define    __SMALLAES__
  20. #define    __AES__
  21.  
  22. #include <portab.h>
  23.  
  24. /* ------------------------------------------------------------------------- */
  25. /* ----- AES-Call ---------------------------------------------------------- */
  26. /* ------------------------------------------------------------------------- */
  27. /* ----- input: 1. Func.No. 2. int_in; 3. addr_in; 4. int_out; 5. addr_out - */
  28. /* ------------------------------------------------------------------------- */
  29.  
  30. WORD aes(WORD args, ...);
  31.  
  32. /* ------------------------------------------------------------------------- */
  33.  
  34. EXTERN WORD    _app;        /* Turbo-C only */
  35.  
  36. /* ------------------------------------------------------------------------- */
  37. /* ----- Constants --------------------------------------------------------- */
  38. /* ------------------------------------------------------------------------- */
  39.  
  40. /* ----- Event Manager ----------------------------------------------------- */
  41.  
  42. #define    MU_KEYBD    0x0001        /* which event */
  43. #define    MU_BUTTON    0x0002
  44. #define    MU_M1        0x0004
  45. #define    MU_M2        0x0008
  46. #define    MU_MESAG    0x0010
  47. #define    MU_TIMER    0x0020
  48.  
  49. #define    MN_SELECTED    10        /* event messages */
  50. #define    WM_REDRAW    20
  51. #define    WM_TOPPED    21
  52. #define    WM_CLOSED    22
  53. #define    WM_FULLED    23
  54. #define    WM_ARROWED    24
  55. #define    WM_HSLID    25
  56. #define    WM_VSLID    26
  57. #define    WM_SIZED    27
  58. #define    WM_MOVED    28
  59. #define    WM_NEWTOP    29
  60. #define WM_UNTOPPED    30    /* AES 3.3 */
  61. #define WM_ONTOP    31    /* AES 3.3 */
  62. #define    AC_OPEN        40
  63. #define    AC_CLOSE    41
  64. #define    AP_TERM        50    /* AES 4.0 */
  65. #define    AP_TFAIL    51    /* AES 4.0 */
  66. #define AP_RESCHG    57    /* AES 4.0 */
  67. #define SHUT_COMPLETED    60    /* AES 4.0 */
  68. #define RESCH_COMPLETED    61    /* AES 4.0 */
  69. #define AP_DRAGDROP    63    /* AES 4.0 */
  70. #define SH_WDRAW    72    /* AES 4.0 */
  71. #define CH_EXIT        80    /* AES 4.0 */
  72.  
  73.  
  74. #define    K_RSHIFT    0x0001        /* keyboard states */
  75. #define    K_LSHIFT    0x0002
  76. #define    K_CTRL        0x0004
  77. #define    K_ALT        0x0008
  78.  
  79. /* ----- Objects ----------------------------------------------------------- */
  80.  
  81. #define    G_BOX        20        /* object type */
  82. #define    G_TEXT        21
  83. #define    G_BOXTEXT    22
  84. #define    G_IMAGE        23
  85. #define    G_USERDEF    24
  86. #define    G_IBOX        25
  87. #define    G_BUTTON    26
  88. #define    G_BOXCHAR    27
  89. #define    G_STRING    28
  90. #define    G_FTEXT        29
  91. #define    G_FBOXTEXT    30
  92. #define    G_ICON        31
  93. #define    G_TITLE        32
  94. #define G_CICON        33
  95.  
  96. #define    NONE        0x0000        /* object flags */
  97. #define    SELECTABLE    0x0001
  98. #define    DEFAULT        0x0002
  99. #define    EXIT        0x0004
  100. #define    EDITABLE    0x0008
  101. #define    RBUTTON        0x0010
  102. #define    LASTOB        0x0020
  103. #define    TOUCHEXIT    0x0040
  104. #define    HIDETREE    0x0080
  105. #define    INDIRECT    0x0100
  106. #define FL3DIND        0x0200
  107. #define FL3DBAK        0x0400
  108.  
  109. #define FL3DACT        0x0600
  110.  
  111. #define    NORMAL        0x00        /* object states */
  112. #define    SELECTED    0x01
  113. #define    CROSSED        0x02
  114. #define    CHECKED        0x04
  115. #define    DISABLED    0x08
  116. #define    OUTLINED    0x10
  117. #define    SHADOWED    0x20
  118.  
  119.  
  120. #if !defined(__COLORS)            /* object colors */
  121. #define    __COLORS
  122.  
  123. #define    WHITE         0
  124. #define    BLACK         1
  125. #define    RED         2
  126. #define    GREEN         3
  127. #define    BLUE         4
  128. #define    CYAN         5
  129. #define    YELLOW         6
  130. #define    MAGENTA         7
  131. #define    LWHITE         8
  132. #define    LBLACK         9
  133. #define    LRED        10
  134. #define    LGREEN        11
  135. #define    LBLUE        12
  136. #define    LCYAN        13
  137. #define    LYELLOW        14
  138. #define    LMAGENTA    15
  139.  
  140. #endif
  141.  
  142. #define    ROOT         0
  143. #define    MAX_LEN        81        /* max string length */
  144. #define    MAX_DEPTH     8        /* max depth of    search or draw */
  145.  
  146. #define    IBM        3        /* font    types */
  147. #define    SMALL        5
  148.  
  149. #define    ED_START    0        /* editable text field definitions */
  150. #define    ED_INIT        1
  151. #define    ED_CHAR        2
  152. #define    ED_END        3
  153.  
  154. #define    TE_LEFT        0        /* editable text justification */
  155. #define    TE_RIGHT    1
  156. #define    TE_CNTR        2
  157.  
  158. /* ----- Forms/Dialogs ----------------------------------------------------- */
  159.  
  160. #define    FMD_START    0        /* form_dial() */
  161. #define    FMD_GROW    1
  162. #define    FMD_SHRINK    2
  163. #define    FMD_FINISH    3
  164.  
  165. /* ----- Graf handler ------------------------------------------------------ */
  166.  
  167. #define    ARROW          0        /* mouse forms */
  168. #define    TEXT_CRSR      1
  169. #define    HOURGLASS      2
  170. #define    BUSYBEE          2
  171. #define    POINT_HAND      3
  172. #define    FLAT_HAND      4
  173. #define    THIN_CROSS      5
  174. #define    THICK_CROSS      6
  175. #define    OUTLN_CROSS      7
  176. #define    USER_DEF    255
  177. #define    M_OFF        256
  178. #define    M_ON        257
  179.  
  180. #define M_SAVE        258
  181. #define M_RESTORE    259
  182. #define M_PREV        260
  183.  
  184. /* ----- Windows ----------------------------------------------------------- */
  185.  
  186. #define    NAME    0x0001            /* window elements */
  187. #define    CLOSER    0x0002
  188. #define    FULLER    0x0004
  189. #define    MOVER    0x0008
  190. #define    INFO    0x0010
  191. #define    SIZER    0x0020
  192. #define    UPARROW    0x0040
  193. #define    DNARROW    0x0080
  194. #define    VSLIDE    0x0100
  195. #define    LFARROW    0x0200
  196. #define    RTARROW    0x0400
  197. #define    HSLIDE    0x0800
  198.  
  199. #define    WF_KIND             1    /* wind_get/set */
  200. #define    WF_NAME             2
  201. #define    WF_INFO             3
  202. #define    WF_WORKXYWH         4
  203. #define    WF_CURRXYWH         5
  204. #define    WF_PREVXYWH         6
  205. #define    WF_FULLXYWH         7
  206. #define    WF_HSLIDE         8
  207. #define    WF_VSLIDE         9
  208. #define    WF_TOP            10    /* Mag!X and AES 3.3 */
  209. #define    WF_FIRSTXYWH        11
  210. #define    WF_NEXTXYWH        12
  211. #define    WF_RESVD        13
  212. #define    WF_NEWDESK        14
  213. #define    WF_HSLSIZE        15
  214. #define    WF_VSLSIZE        16
  215. #define    WF_SCREEN        17
  216. #define WF_COLOR        18    /* AES 3.3 */
  217. #define WF_DCOLOR        19    /* AES 3.3 */
  218. #define WF_OWNER        20    /* AES 3.3 */
  219. #define WF_BEVENT        24    /* AES 3.31 */
  220. #define WF_BOTTOM        25    /* AES 3.31 */
  221.  
  222. #define    WA_UPPAGE 0            /* arrow events */
  223. #define    WA_DNPAGE 1
  224. #define    WA_UPLINE 2
  225. #define    WA_DNLINE 3
  226. #define    WA_LFPAGE 4
  227. #define    WA_RTPAGE 5
  228. #define    WA_LFLINE 6
  229. #define    WA_RTLINE 7
  230.  
  231. #define    WC_BORDER 0            /* wind    calc flags */
  232. #define    WC_WORK      1
  233.  
  234. #define    END_UPDATE 0            /* update flags    */
  235. #define    BEG_UPDATE 1
  236. #define    END_MCTRL  2
  237. #define    BEG_MCTRL  3
  238.  
  239. /* ----- Resources --------------------------------------------------------- */
  240.  
  241. #define    R_TREE         0
  242. #define    R_OBJECT     1
  243. #define    R_TEDINFO     2
  244. #define    R_ICONBLK     3
  245. #define    R_BITBLK     4
  246. #define    R_STRING     5        /* gets    pointer    to free    strings    */
  247. #define    R_IMAGEDATA     6        /* gets    pointer    to free    images */
  248. #define    R_OBSPEC     7
  249. #define    R_TEPTEXT     8        /* sub ptrs in TEDINFO */
  250. #define    R_TEPTMPLT     9
  251. #define    R_TEPVALID    10
  252. #define    R_IBPMASK    11        /* sub ptrs in ICONBLK */
  253. #define    R_IBPDATA    12
  254. #define    R_IPBTEXT    13
  255. #define    R_BIPDATA    14        /* sub ptrs in BITBLK */
  256. #define    R_FRSTR        15        /* gets    addr of    ptr to free strings */
  257. #define    R_FRIMG        16        /* gets    addr of    ptr to free images  */
  258.  
  259. /* ------------------------------------------------------------------------- */
  260. /* ----- TypeDefs ---------------------------------------------------------- */
  261. /* ------------------------------------------------------------------------- */
  262.  
  263. /* ----- Common ------------------------------------------------------------ */
  264.  
  265. typedef    struct orect
  266. {
  267.     struct    orect    *o_link;
  268.     WORD    o_x;
  269.     WORD    o_y;
  270.     WORD    o_w;
  271.     WORD    o_h;
  272. } ORECT;
  273.  
  274. typedef    struct
  275. {
  276.     WORD    g_x;
  277.     WORD    g_y;
  278.     WORD    g_w;
  279.     WORD    g_h;
  280. } GRECT;
  281.  
  282. typedef    struct
  283. {
  284.     WORD    v_x1;
  285.     WORD    v_y1;
  286.     WORD    v_x2;
  287.     WORD    v_y2;
  288. } VRECT;
  289.  
  290. /* ----- Event Manager ----------------------------------------------------- */
  291.  
  292. typedef    struct                /* evnt_mouse() */
  293. {
  294.     WORD        m_out;
  295.     WORD        m_x;
  296.     WORD        m_y;
  297.     WORD        m_w;
  298.     WORD        m_h;
  299. } MOBLK;
  300.  
  301. /* ----- Objects ----------------------------------------------------------- */
  302.  
  303. typedef    struct
  304. {
  305.     CHAR    *te_ptext;    /* ptr to text (must be    1st)    */
  306.     CHAR    *te_ptmplt;    /* ptr to template        */
  307.     CHAR    *te_pvalid;    /* ptr to validation        */
  308.     WORD    te_font;    /* font                */
  309.     WORD    te_junk1;    /* junk    WORD            */
  310.     WORD    te_just;    /* justification: left,     right...*/
  311.     WORD    te_color;    /* color information        */
  312.     WORD    te_junk2;    /* junk    WORD            */
  313.     WORD    te_thickness;    /* border thickness        */
  314.     WORD    te_txtlen;    /* text    string length        */
  315.     WORD    te_tmplen;    /* template string length    */
  316. } TEDINFO;
  317.  
  318.  
  319. typedef    struct
  320. {
  321.     WORD    *ib_pmask;
  322.     WORD    *ib_pdata;
  323.     CHAR    *ib_ptext;
  324.     WORD    ib_char;
  325.     WORD    ib_xchar;
  326.     WORD    ib_ychar;
  327.     WORD    ib_xicon;
  328.     WORD    ib_yicon;
  329.     WORD    ib_wicon;
  330.     WORD    ib_hicon;
  331.     WORD    ib_xtext;
  332.     WORD    ib_ytext;
  333.     WORD    ib_wtext;
  334.     WORD    ib_htext;
  335. } ICONBLK;
  336.  
  337.  
  338. typedef    struct
  339. {
  340.     WORD    *bi_pdata;        /* ptr to bit forms data    */
  341.     WORD    bi_wb;            /* width of form in bytes    */
  342.     WORD    bi_hl;            /* height in lines        */
  343.     WORD    bi_x;            /* source x in bit form        */
  344.     WORD    bi_y;            /* source y in bit form        */
  345.     WORD    bi_color;        /* foreground color        */
  346. } BITBLK;
  347.  
  348.  
  349. typedef struct cicon_data
  350. {
  351.     WORD    num_planes;        /* number of planes        */
  352.     WORD    *col_data;        /* pointer to data bitmap    */
  353.     WORD    *col_mask;        /* pointer to mask bitmap    */
  354.     WORD    *sel_data;        /* pointer to selected bitmap    */
  355.     WORD    *sel_mask;
  356.     struct    cicon_data    *next_res;
  357. } CICON;
  358.  
  359.  
  360. typedef struct
  361. {
  362.     ICONBLK    monoblk;        /* default monochrome icon    */
  363.     CICON    *mainlist;
  364. } CICONBLK;
  365.  
  366.  
  367. struct __parmblk;
  368.  
  369. #ifndef    __STDC__    /*
  370.                      *    using this structure is    not possible
  371.                      *    if ANSI    keywords only is ON
  372.                      */
  373. typedef    struct
  374. {
  375.     WORD STDARGS (*ub_code)(struct __parmblk *parmblock);
  376.     LONG      ub_parm;
  377. } USERBLK;
  378.  
  379. typedef struct
  380. {
  381.     int cdecl (*ub_code)(struct __parmblk *parmblock);
  382.     union obspecptr *ub_spec;    /* old ob_spec */
  383.     int    ub_type;    /* old ob_type */
  384. } EXAPPLBLK;
  385.  
  386. #endif
  387.  
  388. typedef    struct
  389. {
  390.     unsigned character   :    8;
  391.     signed     framesize   :    8;
  392.     unsigned framecol    :    4;
  393.     unsigned textcol     :    4;
  394.     unsigned textmode    :    1;
  395.     unsigned fillpattern :    3;
  396.     unsigned interiorcol :    4;
  397. } bfobspec;
  398.  
  399. typedef    struct
  400. {
  401.     unsigned framecol    :       4;
  402.     unsigned textcol     :       4;
  403.     unsigned textmode    :       1;
  404.     unsigned fillpattern :       3;
  405.     unsigned interiorcol :       4;
  406. } tfobspec;
  407.  
  408.  
  409. typedef    union obspecptr
  410. {
  411.     LONG     index;
  412.     union obspecptr    *indirect;
  413.     bfobspec obspec;
  414.     TEDINFO     *tedinfo;
  415.     ICONBLK     *iconblk;
  416.     BITBLK     *bitblk;
  417. #ifndef    __STDC__
  418.     USERBLK    *userblk;
  419.     EXAPPLBLK *exapblk;
  420. #endif
  421.     CHAR    *free_string;
  422. } OBSPEC;
  423.  
  424.  
  425. typedef    struct
  426. {
  427.     WORD    ob_next;    /* -> object's next sibling    */
  428.     WORD    ob_head;    /* -> head of object's children    */
  429.     WORD    ob_tail;    /* -> tail of object's children    */
  430.     UWORD    ob_type;    /* object type:    BOX, CHAR, ...    */
  431.     UWORD    ob_flags;    /* object flags            */
  432.     UWORD    ob_state;    /* state: SELECTED, OPEN, ...    */
  433.     OBSPEC    ob_spec;    /* "out": -> anything else    */
  434.     WORD    ob_x;        /* upper left corner of    object    */
  435.     WORD    ob_y;        /* upper left corner of    object    */
  436.     WORD    ob_width;    /* object width            */
  437.     WORD    ob_height;    /* object height        */
  438. } OBJECT;
  439.  
  440.  
  441. typedef    struct __parmblk
  442. {
  443.     OBJECT    *pb_tree;
  444.     WORD    pb_obj;
  445.     WORD    pb_prevstate;
  446.     WORD    pb_currstate;
  447.     WORD    pb_x,  pb_y,  pb_w,  pb_h;
  448.     WORD    pb_xc,    pb_yc,    pb_wc,    pb_hc;
  449.     LONG    pb_parm;
  450. } PARMBLK;
  451.  
  452. /* ----- Menus ------------------------------------------------------------- */
  453.  
  454. typedef struct
  455. {
  456.     OBJECT    *mn_tree;
  457.     WORD    mn_menu;
  458.     WORD    mn_item;
  459.     WORD    mn_scroll;
  460.     WORD    mn_keystate;
  461. } MENU;
  462.  
  463. typedef struct
  464. {
  465.     LONG    display;
  466.     LONG    drag;
  467.     LONG    delay;
  468.     LONG    speed;
  469.     LONG    height;
  470. } MN_SET;
  471.  
  472. /* ----- Graf Handler ------------------------------------------------------ */
  473.  
  474. typedef    struct mfstr
  475. {
  476.     WORD    mf_xhot;
  477.     WORD    mf_yhot;
  478.     WORD    mf_nplanes;
  479.     WORD    mf_fg;
  480.     WORD    mf_bg;
  481.     WORD    mf_mask[16];
  482.     WORD    mf_data[16];
  483. } MFORM;
  484.  
  485. /* ----- Resources --------------------------------------------------------- */
  486.  
  487. typedef    struct rshdr
  488. {
  489.     UWORD     rsh_vrsn;
  490.     UWORD     rsh_object;
  491.     UWORD     rsh_tedinfo;
  492.     UWORD     rsh_iconblk;        /* list of ICONBLKS */
  493.     UWORD     rsh_bitblk;
  494.     UWORD     rsh_frstr;
  495.     UWORD     rsh_string;
  496.     UWORD     rsh_imdata;        /* image data */
  497.     UWORD     rsh_frimg;
  498.     UWORD     rsh_trindex;
  499.     UWORD     rsh_nobs;        /* counts of various structs */
  500.     UWORD     rsh_ntree;
  501.     UWORD     rsh_nted;
  502.     UWORD     rsh_nib;
  503.     UWORD     rsh_nbb;
  504.     UWORD     rsh_nstring;
  505.     UWORD     rsh_nimages;
  506.     UWORD     rsh_rssize;        /* total bytes in resource */
  507. } RSHDR;
  508.  
  509. /* ------------------------------------------------------------------------- */
  510. /* ----- AES Defines ------------------------------------------------------- */
  511. /* ------------------------------------------------------------------------- */
  512.  
  513. /* ----- Applications ------------------------------------------------------ */
  514.  
  515. #define    appl_init()\
  516.     aes(10)
  517. #define    appl_read(id, length, buff)\
  518.     aes(11, id, length, buff)
  519. #define    appl_write(id, length, pbuff)\
  520.     aes(12, id, length, pbuff)
  521. #define    appl_find(pname)\
  522.     aes(13, pname)
  523. #define    appl_tplay(pmem, pnum, pscale)\
  524.     aes(14, pnum, pscale, pmem)
  525. #define    appl_trecord(rmem, rcount)\
  526.     aes(15, rcount, rmem)
  527.                     /* only GEM/2 ... */
  528. #define appl_bvset(vdisk, vhard)\
  529.     aes(16, vdisk, vhard)
  530. #define appl_yield()\
  531.     aes(17)
  532.  
  533. #define appl_search(ap_smode, ap_sname, ap_stype, ap_sid)\
  534.     aes(18, ap_smode, ap_sname, ap_stype, ap_sid)
  535.  
  536. #define    appl_exit()\
  537.     aes(19)
  538.  
  539. #define appl_getinfo(ap_gtype, ap_gout1, ap_gout2, ap_gout3, ap_gout4)\
  540.     aes(130, ap_gtype, ap_gout1, ap_gout2, ap_gout3, ap_gout4)
  541.  
  542. /* ----- Event Manager ----------------------------------------------------- */
  543.  
  544. #define    evnt_keybd()\
  545.     aes(20)
  546. #define    evnt_button(clicks, mask, state, mx, my, button, kstate)\
  547.     aes(21, clicks, mask, state, mx, my, button, kstate)
  548. #define    evnt_mouse(flags, x, y,    width, height, mx, my, button, kstate)\
  549.     aes(22, flags, x, y, width, height, mx, my, button, kstate)
  550. #define    evnt_mesag(pbuff)\
  551.     aes(23, pbuff)
  552. #define    evnt_timer(locount, hicount)\
  553.     aes(24, locount, hicount)
  554. #define    evnt_multi(flags, bclicks, bmask, bstate, m1flags, m1x,    m1y, m1width, m1height,    m2flags, m2x, m2y, m2width, m2height, mgpbuff, tlocount, thicount, mox,    moy, mobutton, mokstate, kreturn, breturn)\
  555.     aes(25, flags,    bclicks, bmask,    bstate,    m1flags, m1x, m1y, m1width, m1height, m2flags, m2x, m2y, m2width, m2height, tlocount, thicount,    mgpbuff, mox, moy, mobutton, mokstate, kreturn,    breturn)
  556.  
  557. /* ----- Menu Manager ------------------------------------------------------ */
  558.  
  559. #define    menu_bar(tree, show)\
  560.     aes(30, show, tree)
  561. #define    menu_icheck(tree, item,    check)\
  562.     aes(31, item, check, tree)
  563. #define    menu_ienable(tree, item, enable)\
  564.     aes(32, item, enable, tree)
  565. #define    menu_tnormal(tree, title, normal)\
  566.     aes(33, title,    normal,    tree)
  567. #define    menu_text(tree,    item, text)\
  568.     aes(34, item, tree, text)
  569. #define    menu_register(rapid, pstring)\
  570.     aes(35, rapid,    pstring)
  571.  
  572. #define menu_popup(me_menu, me_xpos, me_ypos, me_mdata)\
  573.     aes(36, me_xpos, me_ypos, me_menu, me_mdata)
  574. #define menu_attach(me_flag, me_tree, me_item, me_mdata)\
  575.     aes(37, me_flag, me_item, me_tree, me_mdata)
  576. #define menu_istart(me_flag, me_tree, me_imenu, me_item)\
  577.     aes(38, me_flag, me_imenu, me_item, me_tree)
  578. #define menu_settings(me_flag, me_values)\
  579.     aes(39, me_flag, me_values)
  580.  
  581. /* ----- Objects ----------------------------------------------------------- */
  582.  
  583. #define    objc_add(tree, parent, child)\
  584.     aes(40, parent, child,    tree)
  585. #define    objc_delete(tree, object)\
  586.     aes(41, object, tree)
  587. #define    objc_draw(tree,    startob, depth,    xclip, yclip, wclip, hclip)\
  588.     aes(42, startob, depth, xclip,    yclip, wclip, hclip, tree)
  589. #define    objc_find(tree,    startob, depth,    mx, my)\
  590.     aes(43, startob, depth, mx, my, tree)
  591. #define    objc_offset(tree, object, xoff,    yoff)\
  592.     aes(44, object, tree, xoff, yoff)
  593. #define    objc_order(tree, object, newpos)\
  594.     aes(45, object, newpos, tree)
  595. #define    objc_edit(tree,    object,    char, idx, kind)\
  596.     aes(46, object, char, *(idx), kind, tree, idx)
  597. /*
  598. #define    objc_edit(tree,    object,    char, idx, kind, newidx)\
  599.     aes(46, object, char, idx, kind, tree, newidx) */
  600. #define    objc_change(tree, object, resvd, xclip,    yclip, wclip, hclip, newstate, redraw)\
  601.     aes(47, object, 0/*resvd*/, xclip, yclip, wclip, hclip, newstate, redraw, tree)
  602.  
  603. #define objc_sysvar(ob_smode, ob_swhich, ob_sival1, ob_sival2, ob_soval1, ob_soval2)\
  604.     aes(48, ob_smode, ob_swhich, ob_sival1, ob_sival2, ob_soval1, ob_soval2)
  605.  
  606. /* ----- Forms/Dialogs ----------------------------------------------------- */
  607.  
  608. #define    form_do(tree, startob)\
  609.     aes(50, startob, tree)
  610. #define    form_dial(flag,    littlx,    littly,    littlw,    littlh,    bigx, bigy, bigw, bigh)\
  611.     aes(51, flag, littlx, littly, littlw, littlh, bigx, bigy, bigw, bigh)
  612. #define    form_alert(defbttn, string)\
  613.     aes(52, defbttn, string)
  614. #define    form_error(enum)\
  615.     aes(53, enum)
  616. #define    form_center(tree, x, y,    w, h)\
  617.     aes(54, tree, x, y, w,    h)
  618. #define    form_keybd(tree, object, obnext, char, nxtobject, nxtchar)\
  619.     aes(55, object, char, obnext, tree, nxtobject,    nxtchar)
  620. #define    form_button(tree, object, clicks, nxtobj)\
  621.     aes(56, object, clicks, tree, nxtobj)
  622.  
  623. /* ----- Graf Handler ------------------------------------------------------ */
  624.  
  625. #define    graf_rubberbox(x, y, minwidth, minheight, lastwidth, lastheight)\
  626.     aes(70, x, y, minwidth, minheight, lastwidth, lastheight)
  627. #define    graf_dragbox(width, height, startx, starty, boundx, boundy, boundw, boundh, finishx, finishy)\
  628.     aes(71, width,    height,    startx,    starty,    boundx,    boundy,    boundw,    boundh,    finishx, finishy)
  629. #define    graf_movebox(width, height, sourcex, sourcey, destx, desty)\
  630.     aes(72, width,    height,    sourcex, sourcey, destx, desty)
  631. #define    graf_growbox(stx, sty, stwidth,    stheight, finx,    finy, finwidth,    finheight)\
  632.     aes(73, stx, sty, stwidth, stheight, finx, finy, finwidth, finheight)
  633. #define    graf_shrinkbox(finx, finy, finwidth, finheight,    stx, sty, stwidth, stheight)\
  634.     aes(74, finx, finy, finwidth, finheight, stx, sty, stwidth, stheight)
  635. #define    graf_watchbox(tree, object, instate, outstate)\
  636.     aes(75, object, instate, outstate, tree)
  637. #define    graf_slidebox(ptree, parent, object, vh)\
  638.     aes(76, parent, object, vh, ptree)
  639. #define    graf_handle(wchar, hchar, wbox,    hbox)\
  640.     aes(77, wchar,    hchar, wbox, hbox)
  641. #define    graf_mouse(number, faddr)\
  642.     aes(78, number, faddr)
  643. #define    graf_mkstate(mx, my, mstate, kstate)\
  644.     aes(79, mx, my, mstate, kstate)
  645.  
  646. #define    graf_mbox    graf_movebox
  647.  
  648. /* ----- Scrap ------------------------------------------------------------- */
  649.  
  650. #define    scrp_read(pscrap)\
  651.     aes(80, pscrap)
  652. #define    scrp_write(pscrap)\
  653.     aes(81, pscrap)
  654. #define scrp_clear()\
  655.     aes(82)
  656.  
  657. /* ----- File-Selector ----------------------------------------------------- */
  658.  
  659. #define    fsel_input(inpath, insel, exbutton)\
  660.     aes(90, inpath, insel,    exbutton)
  661. #define    fsel_exinput(inpath, insel, exbutton, label)\
  662.     aes(91, inpath, insel,    label, exbutton)
  663.  
  664. /* ----- Windows ----------------------------------------------------------- */
  665.  
  666. #define    wind_create(kind, wx, wy, ww, wh)\
  667.     aes(100, kind,    wx, wy,    ww, wh)
  668. #define    wind_open(handle, x, y,    w, h)\
  669.     aes(101, handle, x, y,    w, h)
  670. #define    wind_close(handle)\
  671.     aes(102, handle)
  672. #define    wind_delete(handle)\
  673.     aes(103, handle)
  674. #define    wind_get(handle, field,    w1, w2,    w3, w4)\
  675.     aes(104, handle, field, w1, w2, w3, w4)
  676. #define    wind_set(handle, field,    w1, w2,    w3, w4)\
  677.     aes(105, handle, field, w1, w2, w3, w4)
  678. #define    wind_newdesk(handle, addr, object)\
  679.     aes(105, handle, WF_NEWDESK, addr, object, 0)
  680. #define    wind_find(mx, my)\
  681.     aes(106, mx, my)
  682. #define    wind_update(begend)\
  683.     aes(107, begend)
  684. #define    wind_calc(type,    kind, inx, iny,    inw, inh, outx,    outy, outw, outh)\
  685.     aes(108, type,    kind, inx, iny,    inw, inh, outx,    outy, outw, outh)
  686. #define    wind_new()\
  687.     aes(109)
  688.  
  689. /* ----- Resources --------------------------------------------------------- */
  690.  
  691. #define    rsrc_load(pfname)\
  692.     aes(110, pfname)
  693. #define    rsrc_free()\
  694.     aes(111)
  695. #define    rsrc_gaddr(type, index,    addr)\
  696.     aes(112, type,    index, addr)
  697. #define    rsrc_saddr(type, index,    addr)\
  698.     aes(113, type,    index, addr)
  699. #define    rsrc_obfix(tree, object)\
  700.     aes(114, object, tree)
  701. #define rsrc_rcfix(rc_header)\
  702.     aes(115, rc_header)
  703.  
  704. /* ----- Shell Functions --------------------------------------------------- */
  705.  
  706. #define    shel_read(pcmd,    ptail)\
  707.     aes(120, pcmd,    ptail)
  708. #define    shel_write(doex, isgr, iscr, pcmd, ptail)\
  709.     aes(121, doex,    isgr, iscr, pcmd, ptail)
  710. #define    shel_get(addr, len)\
  711.     aes(122, len, addr)
  712. #define    shel_put(addr, len)\
  713.     aes(123, len, addr)
  714. #define    shel_find(pbuff)\
  715.     aes(124, pbuff)
  716. #define    shel_envrn(pvalue, parm)\
  717.     aes(125, pvalue, parm)
  718.                     /* only GEM/2 ... */
  719. #define shel_rdef(lpcmd, lpdir)\
  720.     aes(126, lpcmd, lpdir)
  721. #define shel_wdef(lpcmd, lpdir)\
  722.     aes(127, lpcmd, lpdir)\
  723.  
  724. /* ---- XGRFs -------------------------------------------------------------- */
  725.  
  726.                     /* only GEM/2 ... */
  727. #define xgrf_stepcalc(orgw, orgh, xc, yc, w, h, pcx, pcy, pcnt, pxstep, pystep)\
  728.     aes(130, orgw, orgh, xc, yc, w, h, pcx, pcy, pcnt, pxstep, pystep)
  729. #define xgrf_2box(xc, yc, w, h, corners, cnt, xstep, ystep, doubled)\
  730.     aes(131, cnt, xstep, ystep, doubled, corners, xc, yc, w, h)
  731.  
  732. #endif
  733.  
  734. /* ----- end of SMALLAES.H ------------------------------------------------- */
  735.