home *** CD-ROM | disk | FTP | other *** search
/ World of A1200 / World_Of_A1200.iso / programs / develop / visualarts / vainstall / visualarts.h < prev    next >
C/C++ Source or Header  |  1995-02-27  |  6KB  |  171 lines

  1. /*
  2. **  $Filename: VisualArts.h $
  3. **  $Includes, V2.0 $
  4. **  $Date: 94/08/24 $
  5. **
  6. **
  7. **  (C) 1994 Danny Y. Wong              
  8. **  All Rights Reserved
  9. **
  10. **  DO NOT MODIFY
  11. */
  12.  
  13. #include <exec/types.h>
  14. #include <exec/memory.h>
  15. #include <exec/lists.h>
  16. #include <exec/nodes.h>
  17. #include <intuition/intuition.h>
  18. #include <intuition/intuitionbase.h>
  19. #include <intuition/gadgetclass.h>
  20. #include <intuition/imageclass.h>
  21. #include <intuition/classes.h>
  22. #include <intuition/icclass.h>
  23. #include <graphics/displayinfo.h>
  24. #include <graphics/gfxbase.h>
  25. #include <graphics/gfxmacros.h>
  26. #include <libraries/gadtools.h>
  27. #include <libraries/dos.h>
  28. #include <workbench/workbench.h>
  29. #include <workbench/startup.h>
  30.  
  31. #include <clib/wb_protos.h>
  32. #include <clib/exec_protos.h>
  33. #include <clib/intuition_protos.h>
  34. #include <clib/gadtools_protos.h>
  35. #include <clib/graphics_protos.h>
  36. #include <clib/utility_protos.h>
  37. #include <clib/alib_protos.h>
  38. #include <clib/dos_protos.h>
  39.  
  40. #include "string.h" 
  41. #include "stdio.h"
  42. #include "stdlib.h"
  43. #include "ctype.h"
  44.  
  45. #include "PopUpMenuClass.h" 
  46.  
  47. /* context sensitive */
  48.  
  49. #define VA_Static       0x0001
  50. #define VA_ExpandX      0x0002
  51. #define VA_MoveX        0x0004
  52. #define VA_ExpandY      0x0008
  53. #define VA_MoveY        0x0010
  54.  
  55. /* defines for scroller window with super bitmap */
  56.  
  57. #define  MAX_LEVEL     (0xFFFFL)
  58. #define LAYERXOFFSET(win)  (win->RPort->Layer->Scroll_X)  
  59. #define LAYERYOFFSET(win)  (win->RPort->Layer->Scroll_Y)  
  60.  
  61. /* define for Image */
  62.  
  63. #ifndef IM
  64. #define IM(o)    ((struct Image *) o)
  65. #endif
  66.  
  67. /* define for determining the max value */
  68.  
  69. #ifndef MAX
  70. #define MAX(x,y) ((x) > (y) ? (x) : (y))
  71. #endif
  72.  
  73.  
  74. /* for new menus in V38  */
  75.  
  76. #ifndef WA_NewLookMenus
  77.   #define WA_NewLookMenus         (WA_Dummy + 0x30)
  78. #endif
  79.  
  80. /* macros for easy access to Gadget data */
  81.  
  82. #define GetString(gad)            (((struct StringInfo *)gad->SpecialInfo)->Buffer)
  83. #define GetUndoString(gad)    (((struct StringInfo *)gad->SpecialInfo)->UndoBuffer)
  84. #define GetNumber(gad)            (((struct StringInfo *)gad->SpecialInfo)->LongInt)
  85.  
  86. /* List node name.  Each node have the following */
  87.   
  88. struct NameNode
  89. {
  90.   struct Node nn_Node;  //linked list node to previous or next node
  91.   UBYTE nn_Data[255];   //name of the node, this is the same as
  92.                         //nn_Node.ln_Name
  93. };
  94.  
  95. /* Visual Arts message object.  Every GADGETUP event, the object is
  96.    sent to the attached function.  For Menus, the va_Gadget field is
  97.    always NULL.
  98. */
  99.  
  100. struct VAobject {
  101.   struct Window *va_Window;             //window the object originated
  102.   struct Gadget *va_Gadget;             //the gadget that sent this object
  103.   struct IntuiMessage *va_IntuiMsg;     //the IntuiMessage
  104.   ULONG va_Flags;                       //user flags 
  105.   APTR va_UserData;                     //user data, function pointer etc..
  106. };
  107.  
  108. /* Every AREXX command have the following */
  109.  
  110. struct rexxCommandList
  111. {
  112.   char *name;       //name of the AREXX command, note its case sensitive
  113.   APTR userdata;    //user data, in this case it's a function pointer    
  114. };
  115.  
  116. /* Structure for Multi-Processing windows.  This structure is a linked
  117.    List for every window opened as Multi-Processing
  118. */
  119.  
  120. struct WindowNode
  121. {
  122.     struct Node nn_Node;            //linked list to prev or next window
  123.     UBYTE nn_Data[80];              //window name
  124.     struct Window *nn_Window;       //window pointer
  125.     struct AppWindow *nn_AppWindow; //AppWindow pointer if window is a AppWindow
  126.     struct MsgPort *nn_AppWindPort; //AppWindow Port
  127.     short ID;                       //WindowNode ID
  128.     APTR UserData;                  //window Handler for this window
  129. };
  130.  
  131. /*  Visual Arts function prototypes. All are in the VisualArts.lib 
  132. */
  133.  
  134. extern void DrawBox(struct Window *Wind, int Left, int Top, int Wid, int Hi, UBYTE APen, short Pattern );
  135. extern void DrawFBox(struct Window *Wind, int Left, int Top, int Wid, int Hi, UBYTE APen, short Pattern, UBYTE Outline, short Fill );
  136. extern void DrawLine(struct Window *Wind, int Left, int Top, int Wid, int Hi, UBYTE APen, short Pattern );
  137. extern void DrawNCircle(struct Window *Wind, int Left, int Top, int Right, int Bottom, UBYTE APen);
  138. extern void DrawFCircle(struct Window *Wind, int Left, int Top, int Right, int Bottom, UBYTE APen, short Pattern, UBYTE Outline, short Fill );
  139. extern void SetRPortFill(struct Window *Wind, short Type);
  140. extern void ButtonSelected(struct Window *wind, struct Gadget *gad);
  141. extern int AddNewNode(struct List *list, char name[255]);
  142. extern int DeleteNewNode(struct List *list, char name[255]);
  143. extern struct List *GetNewList(void);
  144. extern struct NameNode *FindNodeName(struct List *list, char name[255]);
  145. extern void FreeList(struct List *list);
  146. extern APTR   VisualInfo;
  147. extern struct Screen *Scr;
  148. extern struct WindowNode *AddWindowNode(struct List *list, char name[80], APTR handler);
  149. extern int DelWindowNode(struct List *list, char name[80]);
  150. extern struct WindowNode *FindWindowNode(struct List *list, char name[80]);
  151. extern void FreeWindowList(struct List *list);
  152. extern void ReMakeWindowID(struct List *list);
  153. extern void closeRexxPort(void);
  154. extern void handlerRexxPort(void);
  155. extern struct RexxMsg *asyncRexxCmd(char *s);
  156. extern void replyRexxCmd(register struct RexxMsg *msg, register long primary,
  157.                   register long secondary, register char *string);
  158. extern long InitRexxPort(char *s, struct rexxCommandList *rcl,
  159.                   char *exten, int (*uf)());
  160. extern int dispatchRexx(register struct RexxMsg *msg, register struct rexxCommandList *dat, char *p);
  161. extern Object *NewImageObject(ULONG which);
  162. extern struct Gadget *NewPropObject(ULONG freedom, Tag tag1, ...);
  163. extern struct Gadget *NewButtonObject(Object *image, Tag tag1, ...);
  164. extern int SysISize(void);
  165. extern int VA_GadLayout(struct Window *window, struct Gadget *glist,
  166.                   struct Gadget *projgadgets[],
  167.                   ULONG fsgads[], WORD gadtypes[],
  168.                   struct NewGadget *gadgets, ULONG tags[],
  169.                   struct List *lists[], UBYTE *projvars[]);
  170. void InitLayoutVars(ULONG types[], UBYTE *vars[]);
  171.