home *** CD-ROM | disk | FTP | other *** search
- /* C code generated by: */
- /* Visual Arts Version 1.0 */
- /* Copyright 1994 Danny Y. Wong All rights reserved */
- /* Calgary, Alberta (CANADA) */
-
-
- struct WindowNode
- {
- struct Node nn_Node;
- UBYTE nn_Data[80];
- struct Window *nn_Window;
- short ID;
- APTR UserData;
- };
-
-
- struct VAobject {
- struct Window *va_Window;
- struct Gadget *va_Gadget;
- struct IntuiMessage *va_IntuiMsg;
- ULONG va_Flags;
- APTR va_UserData;
- };
-
- #define GetString(gad) (((struct StringInfo *)gad->SpecialInfo)->Buffer)
- #define GetUndoString(gad) (((struct StringInfo *)gad->SpecialInfo)->UndoBuffer)
- #define GetNumber(gad) (((struct StringInfo *)gad->SpecialInfo)->LongInt)
-
- extern int GetFileName(BOOL save, struct Window *window, char *title, char *path, char *dir, char *file);
- extern void SetRPortFill(struct Window *Wind, short Type);
- extern void ButtonSelected(struct Window *wind, struct Gadget *gad);
- extern struct WindowNode *ModelsActiveWind;
- extern APTR VisualInfo;
- extern struct Screen *Scr;
- extern struct Gadget *ModelsGadgets[1];
- 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 UWORD ModelsTotalWindows;
- 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 void CreateModelsLists(void);
- struct NameNode
- {
- struct Node nn_Node;
- UBYTE nn_Data[255];
- };
- extern UBYTE *ModelsLabels[];
-
- ULONG LinePatterns[6] = { 0xffff, 0x0cccc, 0xaaaa, 0x8888, 0x3333, 0xffff};
-
- struct List *ModelsLists[1];
-
- struct WindowNode *AddWindowNode(struct List *list, char name[80], APTR handler)
- {
- struct WindowNode *winnode;
-
- if (!( winnode = AllocMem(sizeof(struct WindowNode), MEMF_CLEAR)))
- return(NULL);
- strcpy(winnode->nn_Data, name);
- winnode->nn_Node.ln_Name=winnode->nn_Data;
- winnode->nn_Node.ln_Type=0;
- winnode->nn_Node.ln_Pri=0;
- ++ModelsTotalWindows;
- winnode->ID = ModelsTotalWindows;
- winnode->UserData = handler;
- AddTail((struct List *)list, (struct Node *)winnode);
- return(winnode);
- }
-
- int DelWindowNode(struct List *list, char name[80])
- {
- struct Node *node;
-
- node=FindName(list, name);
- if (node)
- {
- Remove(node);
- FreeMem((struct WindowNode *)node, sizeof(struct WindowNode));
- --ModelsTotalWindows;
- return(0L);
- }
- return(1L);
- }
-
- struct WindowNode *FindWindowNode(struct List *list, char name[80])
- {
- struct WindowNode *worknode, *nextnode;
-
- worknode=(struct WindowNode *)(list->lh_Head);
- while (nextnode=(struct WindowNode *)(worknode->nn_Node.ln_Succ))
- {
- if (strcmp(worknode->nn_Data, name) == 0)
- return(worknode);
- worknode=nextnode;
- }
- return(NULL);
- }
-
- void FreeWindowList(struct List *list)
- {
- struct WindowNode *worknode, *nextnode;
-
- worknode=(struct WindowNode *)(list->lh_Head);
- while (nextnode=(struct WindowNode *)(worknode->nn_Node.ln_Succ))
- {
- FreeMem(worknode, sizeof(struct WindowNode));
- worknode=nextnode;
- }
- FreeMem(list, sizeof(struct List));
- list=NULL;
- }
-
- void ReMakeWindowID(struct List *list)
- {
- struct WindowNode *worknode, *nextnode;
- short id = 1;
-
- worknode = (struct WindowNode *)(list->lh_Head);
- while (nextnode = (struct WindowNode *)(worknode->nn_Node.ln_Succ))
- {
- worknode->ID = id++;
- worknode = nextnode;
- }
- }
-
- struct List *GetNewList(void)
- {
- struct List *list;
-
- if (!( list = AllocMem(sizeof(struct List), MEMF_CLEAR)))
- return(NULL);
- NewList(list);
- return(list);
- }
-
- int AddNewNode(struct List *list, char name[255])
- {
- struct NameNode *namenode;
-
- if (!( namenode = AllocMem(sizeof(struct NameNode), MEMF_CLEAR)))
- return(1L);
- strcpy(namenode->nn_Data, name);
- namenode->nn_Node.ln_Name=namenode->nn_Data;
- namenode->nn_Node.ln_Type=0;
- namenode->nn_Node.ln_Pri=0;
- AddTail((struct List *)list, (struct Node *)namenode);
- return(0L);
- }
-
- int DeleteNode(struct List *list, char name[255])
- {
- struct Node *node;
-
- node=FindName(list, name);
- if (node)
- {
- Remove(node);
- FreeMem((struct NameNode *)node, sizeof(struct NameNode));
- return(0L);
- }
- return(1L);
- }
-
- struct NameNode *FindNodeName(struct List *list, char name[255])
- {
- struct NameNode *worknode, *nextnode;
-
- worknode=(struct NameNode *)(list->lh_Head);
- while (nextnode=(struct NameNode *)(worknode->nn_Node.ln_Succ))
- {
- if (strcmp(worknode->nn_Data, name) == 0)
- return(worknode);
- worknode=nextnode;
- }
- return(NULL);
- }
-
- void FreeList(struct List *list)
- {
- struct NameNode *worknode, *nextnode;
-
- worknode=(struct NameNode *)(list->lh_Head);
- while (nextnode=(struct NameNode *)(worknode->nn_Node.ln_Succ))
- {
- FreeMem(worknode, sizeof(struct NameNode));
- worknode=nextnode;
- }
- FreeMem(list, sizeof(struct List));
- list=NULL;
- }
-
- void CreateModelsLists(void)
- {
- short i;
-
- i=0;
- while (ModelsLabels[i])
- AddNewNode(ModelsLists[0], ModelsLabels[i++]);
-
- }
-
- void ButtonSelected(struct Window *wind, struct Gadget *gad)
- {
- gad->Flags ^= GFLG_SELECTED;
- RefreshGList(gad, wind, NULL, 1);
- Delay(4);
- gad->Flags ^= GFLG_SELECTED;
- RefreshGList(gad, wind, NULL, 1);
- }
-
-
- /* gadget functions */
-
- int modelsObj(struct VAobject VAObject)
- {
- return(1L);
- }
- /* ListView */
-
-