home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
World of A1200
/
World_Of_A1200.iso
/
programs
/
develop
/
visualarts
/
vainstall
/
visualarts.h
< prev
next >
Wrap
C/C++ Source or Header
|
1995-02-27
|
6KB
|
171 lines
/*
** $Filename: VisualArts.h $
** $Includes, V2.0 $
** $Date: 94/08/24 $
**
**
** (C) 1994 Danny Y. Wong
** All Rights Reserved
**
** DO NOT MODIFY
*/
#include <exec/types.h>
#include <exec/memory.h>
#include <exec/lists.h>
#include <exec/nodes.h>
#include <intuition/intuition.h>
#include <intuition/intuitionbase.h>
#include <intuition/gadgetclass.h>
#include <intuition/imageclass.h>
#include <intuition/classes.h>
#include <intuition/icclass.h>
#include <graphics/displayinfo.h>
#include <graphics/gfxbase.h>
#include <graphics/gfxmacros.h>
#include <libraries/gadtools.h>
#include <libraries/dos.h>
#include <workbench/workbench.h>
#include <workbench/startup.h>
#include <clib/wb_protos.h>
#include <clib/exec_protos.h>
#include <clib/intuition_protos.h>
#include <clib/gadtools_protos.h>
#include <clib/graphics_protos.h>
#include <clib/utility_protos.h>
#include <clib/alib_protos.h>
#include <clib/dos_protos.h>
#include "string.h"
#include "stdio.h"
#include "stdlib.h"
#include "ctype.h"
#include "PopUpMenuClass.h"
/* context sensitive */
#define VA_Static 0x0001
#define VA_ExpandX 0x0002
#define VA_MoveX 0x0004
#define VA_ExpandY 0x0008
#define VA_MoveY 0x0010
/* defines for scroller window with super bitmap */
#define MAX_LEVEL (0xFFFFL)
#define LAYERXOFFSET(win) (win->RPort->Layer->Scroll_X)
#define LAYERYOFFSET(win) (win->RPort->Layer->Scroll_Y)
/* define for Image */
#ifndef IM
#define IM(o) ((struct Image *) o)
#endif
/* define for determining the max value */
#ifndef MAX
#define MAX(x,y) ((x) > (y) ? (x) : (y))
#endif
/* for new menus in V38 */
#ifndef WA_NewLookMenus
#define WA_NewLookMenus (WA_Dummy + 0x30)
#endif
/* macros for easy access to Gadget data */
#define GetString(gad) (((struct StringInfo *)gad->SpecialInfo)->Buffer)
#define GetUndoString(gad) (((struct StringInfo *)gad->SpecialInfo)->UndoBuffer)
#define GetNumber(gad) (((struct StringInfo *)gad->SpecialInfo)->LongInt)
/* List node name. Each node have the following */
struct NameNode
{
struct Node nn_Node; //linked list node to previous or next node
UBYTE nn_Data[255]; //name of the node, this is the same as
//nn_Node.ln_Name
};
/* Visual Arts message object. Every GADGETUP event, the object is
sent to the attached function. For Menus, the va_Gadget field is
always NULL.
*/
struct VAobject {
struct Window *va_Window; //window the object originated
struct Gadget *va_Gadget; //the gadget that sent this object
struct IntuiMessage *va_IntuiMsg; //the IntuiMessage
ULONG va_Flags; //user flags
APTR va_UserData; //user data, function pointer etc..
};
/* Every AREXX command have the following */
struct rexxCommandList
{
char *name; //name of the AREXX command, note its case sensitive
APTR userdata; //user data, in this case it's a function pointer
};
/* Structure for Multi-Processing windows. This structure is a linked
List for every window opened as Multi-Processing
*/
struct WindowNode
{
struct Node nn_Node; //linked list to prev or next window
UBYTE nn_Data[80]; //window name
struct Window *nn_Window; //window pointer
struct AppWindow *nn_AppWindow; //AppWindow pointer if window is a AppWindow
struct MsgPort *nn_AppWindPort; //AppWindow Port
short ID; //WindowNode ID
APTR UserData; //window Handler for this window
};
/* Visual Arts function prototypes. All are in the VisualArts.lib
*/
extern void DrawBox(struct Window *Wind, int Left, int Top, int Wid, int Hi, UBYTE APen, short Pattern );
extern void DrawFBox(struct Window *Wind, int Left, int Top, int Wid, int Hi, UBYTE APen, short Pattern, UBYTE Outline, short Fill );
extern void DrawLine(struct Window *Wind, int Left, int Top, int Wid, int Hi, UBYTE APen, short Pattern );
extern void DrawNCircle(struct Window *Wind, int Left, int Top, int Right, int Bottom, UBYTE APen);
extern void DrawFCircle(struct Window *Wind, int Left, int Top, int Right, int Bottom, UBYTE APen, short Pattern, UBYTE Outline, short Fill );
extern void SetRPortFill(struct Window *Wind, short Type);
extern void ButtonSelected(struct Window *wind, struct Gadget *gad);
extern int AddNewNode(struct List *list, char name[255]);
extern int DeleteNewNode(struct List *list, char name[255]);
extern struct List *GetNewList(void);
extern struct NameNode *FindNodeName(struct List *list, char name[255]);
extern void FreeList(struct List *list);
extern APTR VisualInfo;
extern struct Screen *Scr;
extern struct WindowNode *AddWindowNode(struct List *list, char name[80], APTR handler);
extern int DelWindowNode(struct List *list, char name[80]);
extern struct WindowNode *FindWindowNode(struct List *list, char name[80]);
extern void FreeWindowList(struct List *list);
extern void ReMakeWindowID(struct List *list);
extern void closeRexxPort(void);
extern void handlerRexxPort(void);
extern struct RexxMsg *asyncRexxCmd(char *s);
extern void replyRexxCmd(register struct RexxMsg *msg, register long primary,
register long secondary, register char *string);
extern long InitRexxPort(char *s, struct rexxCommandList *rcl,
char *exten, int (*uf)());
extern int dispatchRexx(register struct RexxMsg *msg, register struct rexxCommandList *dat, char *p);
extern Object *NewImageObject(ULONG which);
extern struct Gadget *NewPropObject(ULONG freedom, Tag tag1, ...);
extern struct Gadget *NewButtonObject(Object *image, Tag tag1, ...);
extern int SysISize(void);
extern int VA_GadLayout(struct Window *window, struct Gadget *glist,
struct Gadget *projgadgets[],
ULONG fsgads[], WORD gadtypes[],
struct NewGadget *gadgets, ULONG tags[],
struct List *lists[], UBYTE *projvars[]);
void InitLayoutVars(ULONG types[], UBYTE *vars[]);