home *** CD-ROM | disk | FTP | other *** search
- /* ******************************************************************** */
- /* C code generated by: */
- /* Visual Arts Version 2.0 */
- /* Copyright 1994 Danny Y. Wong All rights reserved */
- /* Calgary, Alberta (CANADA) */
- /* Partial of the code is copyright by Jaba Development */
- /* ******************************************************************** */
-
- #include "VisualArts.h"
-
- #define ID_sObjID2 0
- #define ID_sObjID4 1
-
- #define SubPrgNumGads 2
- #define SubPrgNumPopUpGads 1
-
- #include "MultiSub.h"
-
- int sObjID3Obj(struct VAobject VAObject);
- int sObjID2Obj(struct VAobject VAObject);
- int sObjID4Obj(struct VAobject VAObject);
-
- int OpenSubPrgWindow(char windtitle[80]);
- void CloseSubPrgWindow(void);
- int SubPrgHandler(void);
- int SubPrgMainHandler(void);
- void DrawSubPrgObjs(void);
- void SubPrg(void);
-
- extern struct WindowNode *ContextSActiveWind;
- struct Gadget *SubPrgGList = NULL;
- struct Gadget *SubPrgGadgets[SubPrgNumGads];
- struct Gadget *SubPrgPopUpGadgets[SubPrgNumPopUpGads];
- Class *SubPrgPopUpClass;
- struct IntuiMessage SubPrgMsg;
- UWORD SubPrgLeft = 168;
- UWORD SubPrgTop = 116;
- UWORD SubPrgWidth = 298;
- UWORD SubPrgHeight = 63;
- extern struct IntuitionBase *IntuitionBase;
- extern struct List *ContextSWindList;
- extern UWORD ContextSTotalWindows;
- UWORD SubPrgNumWindows = 0;
- extern struct TextAttr topaz8;
- extern struct TextAttr topaz800;
-
- UBYTE *ModelsALabels[] = {
- (UBYTE *)"Amiga 500",
- (UBYTE *)"Amiga 1000",
- (UBYTE *)"Amiga 2000",
- (UBYTE *)"Amiga 3000",
- (UBYTE *)"Amiga 4000",
- (UBYTE *)"Amiga CDTV",
- (UBYTE *)"Amiga CD32",
- NULL
- };
-
- WORD SubPrgGadTypes[] = {
- LISTVIEW_KIND,
- PALETTE_KIND,
- };
-
- struct NewGadget SubPrgNGads[] = {
- 7, 1, 149, 44, (UBYTE *)"", &topaz800, ID_sObjID2, PLACETEXT_ABOVE, NULL, (APTR)sObjID2Obj,
- 165, 18, 117, 27, (UBYTE *)"", &topaz800, ID_sObjID4, PLACETEXT_ABOVE, NULL, (APTR)sObjID4Obj,
- };
-
- ULONG SubPrgNTags[] = {
- (GTLV_Labels), NULL, (GTLV_Top), 0, (GTLV_ScrollWidth), 16, (LAYOUTA_Spacing), 0, TAG_DONE,
- (GTPA_Depth), 2, (GTPA_Color), 1, (GTPA_ColorOffset), 0, (GTPA_IndicatorWidth), 10, TAG_DONE,
- };
-
- ULONG SubPrgPopUpNTags[] = {
- GA_Left, 167, GA_Top, 14,
- GA_Height, 12, GA_Width, 119,
- GA_RelVerify, TRUE, GA_ID, 2,
- PUMG_NewLook, TRUE, GA_UserData, (ULONG)((APTR)sObjID3Obj),
- PUMG_Active, 0, TAG_DONE,
-
- };
-
-
- int OpenSubPrgWindow(char windtitle[80])
- {
- struct NewGadget NewGad;
- struct Gadget *Gad;
- register UWORD i, j;
- UWORD offsetx = Scr->WBorLeft;
- UWORD offsety = Scr->WBorTop + Scr->RastPort.TxHeight + 1;
-
- if (!(SubPrgPopUpClass = CreatePopUpMenuClass()))
- return(1L);
-
- if (SubPrgNumWindows == 0)
- {
- if (!(Gad = CreateContext(&SubPrgGList)))
- return(1L);
-
- for (i=0, j=0; i < SubPrgNumGads; i++)
- {
- CopyMem((char *)&SubPrgNGads[i], (char *)&NewGad, (long)sizeof(struct NewGadget));
-
- NewGad.ng_VisualInfo = VisualInfo;
- NewGad.ng_LeftEdge += offsetx;
- NewGad.ng_TopEdge += offsety;
-
- SubPrgGadgets[i] = Gad = CreateGadgetA((ULONG)SubPrgGadTypes[i], Gad, &NewGad,
- (struct TagItem *)&SubPrgNTags[j]);
- while (SubPrgNTags[j])
- j +=2;
- j++;
- if (!Gad)
- return(2L);
- }
- }
- if (!(ContextSActiveWind = AddWindowNode(ContextSWindList, windtitle, SubPrgHandler)))
- return(1);
- if (!(ContextSActiveWind->nn_Window = OpenWindowTags(NULL,
- WA_Left, SubPrgLeft,
- WA_Top, SubPrgTop,
- WA_Width, SubPrgWidth,
- WA_Height, SubPrgHeight - Scr->WBorTop,
- WA_NewLookMenus, TRUE,
- WA_IDCMP, IDCMP_CLOSEWINDOW | IDCMP_NEWSIZE | IDCMP_MOUSEBUTTONS | IDCMP_MOUSEMOVE | IDCMP_GADGETUP | IDCMP_GADGETDOWN | IDCMP_INTUITICKS | IDCMP_ACTIVEWINDOW | IDCMP_INACTIVEWINDOW ,
- WA_Flags, WFLG_CLOSEGADGET | WFLG_DEPTHGADGET | WFLG_SMART_REFRESH |
- WFLG_ACTIVATE | WFLG_DRAGBAR ,
- WA_Gadgets, SubPrgGList,
- WA_Title, windtitle,
- WA_ScreenTitle, "Visual Arts V2.0 Copyright 1994 Danny Y. Wong All Rights Reserved.",
- WA_PubScreen, Scr,
- WA_MinWidth, 160,
- WA_MinHeight, 50,
- WA_MaxWidth, 640,
- WA_MaxHeight, 200,
- TAG_DONE)))
- return(3L);
-
- if (++SubPrgNumWindows == 1)
- CreateSubPrgLists();
- for (i=0, j=0; i < SubPrgNumPopUpGads; i++)
- {
- SubPrgPopUpGadgets[i]=NewObjectA(SubPrgPopUpClass, NULL, (struct TagItem *)&SubPrgPopUpNTags[j]);
- if (SubPrgPopUpGadgets[i])
- AddGadget(ContextSActiveWind->nn_Window, SubPrgPopUpGadgets[i], -1);
- while (SubPrgPopUpNTags[j])
- j +=2;
- j++;
- }
- GT_RefreshWindow(ContextSActiveWind->nn_Window, NULL);
- RefreshGadgets(SubPrgGadgets[0], ContextSActiveWind->nn_Window, NULL);
- GT_SetGadgetAttrs(SubPrgGadgets[0], ContextSActiveWind->nn_Window, NULL,
- GTLV_Labels, SubPrgLists[0], TAG_END);
- SetGadgetAttrs(SubPrgPopUpGadgets[0], ContextSActiveWind->nn_Window, NULL,
- PUMG_Labels, SubPrgLists[0], TAG_END);
- RefreshGadgets(SubPrgPopUpGadgets[0], ContextSActiveWind->nn_Window, NULL);
- return(0L);
- }
-
- int SubPrgHandler(void)
- {
- struct IntuiMessage *msg;
- struct VAobject VAObject;
- int running = 1;
- int (*func)(struct VAobject VAObject);
- struct WindowNode *WindNode;
- ULONG class;
- UWORD code;
-
- while (msg=GT_GetIMsg(ContextSActiveWind->nn_Window->UserPort))
- {
- CopyMem((char *)msg, (char *)&SubPrgMsg, (long)sizeof(struct IntuiMessage));
- class = msg->Class;
- code = msg->Code;
-
- GT_ReplyIMsg(msg);
- switch(class)
- {
-
- case IDCMP_MOUSEBUTTONS :
- break;
-
- case IDCMP_MOUSEMOVE :
- break;
-
- case IDCMP_INTUITICKS :
- break;
-
- case IDCMP_NEWSIZE:
- break;
-
- case IDCMP_CLOSEWINDOW:
- CloseContextSWindow();
- if (--SubPrgNumWindows == 0)
- {
- if (SubPrgGList)
- FreeGadgets(SubPrgGList);
- for (running=0; running < 1; running++)
- FreeList(SubPrgLists[running]);
- if (SubPrgPopUpClass)
- DisposePopUpMenuClass(SubPrgPopUpClass);
- }
- return(1);
- break;
-
- case IDCMP_ACTIVEWINDOW:
- case IDCMP_INACTIVEWINDOW:
- if (!IntuitionBase->ActiveWindow)
- {
- ActivateWindow(ContextSActiveWind->nn_Window);
- break;
- }
- WindNode = FindWindowNode(ContextSWindList, IntuitionBase->ActiveWindow->Title);
- if (WindNode)
- ContextSActiveWind = WindNode;
- break;
-
- case IDCMP_GADGETUP:
- VAObject.va_Window = (struct Window *)ContextSActiveWind->nn_Window ;
- VAObject.va_Gadget = (struct Gadget *)msg->IAddress;
- VAObject.va_IntuiMsg = (struct IntuiMessage *)msg;
- VAObject.va_Flags = 0;
- VAObject.va_UserData = 0;
- func = (void *)((struct Gadget *)SubPrgMsg.IAddress)->UserData;
- if (func != NULL)
- running = func(VAObject);
- break;
-
- }
- }
- return(running);
- }
-
- void SubPrg(void)
- {
- int rc;
-
- for (rc=0; rc < 1; rc++)
- SubPrgLists[rc]=GetNewList();
- rc = OpenSubPrgWindow("Sub-Program");
- }
-