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_clear 0
- #define ID_quit 1
- #define ID_icons 2
-
- #define Project0NumGads 3
-
- #include "AppWindow.h"
-
- int clearObj(struct VAobject VAObject);
- int quitObj(struct VAobject VAObject);
- int iconsObj(struct VAobject VAObject);
-
- int GetPubScreen(void);
- void ClosePubScreen(void);
- int OpenProject0Window(char windtitle[80]);
- void CloseProject0Window(void);
- int Project0Handler(void);
- int Project0MainHandler(void);
- int Project0AppWindHandler(struct MsgPort *appwindport);
- void DrawProject0Objs(void);
- int main(int argc, char *argv[]);
-
- UBYTE *PubScrName = NULL;
- struct DrawInfo *ScrDrawInfo = NULL;
- APTR VisualInfo = NULL;
- struct Screen *Scr = NULL;
- struct Window *Project0Wnd = NULL;
- struct AppWindow *Project0AppWind = NULL;
- struct MsgPort *Project0AppWindPort = NULL;
- struct Gadget *Project0GList = NULL;
- struct Gadget *Project0Gadgets[Project0NumGads];
- struct IntuiMessage Project0Msg;
- UWORD Project0Left = 158;
- UWORD Project0Top = 48;
- UWORD Project0Width = 224;
- UWORD Project0Height = 103;
- struct TextAttr topaz8 = { (STRPTR)"topaz.font", 8, 0x00, 0x01 };
- struct TextAttr topaz800 = { (STRPTR)"topaz.font", 8, 0x00, 0x00 };
-
- UBYTE *IconsLabels[] = {
- NULL
- };
-
- WORD Project0GadTypes[] = {
- BUTTON_KIND,
- BUTTON_KIND,
- LISTVIEW_KIND,
- };
-
- struct NewGadget Project0NGads[] = {
- 6, 73, 56, 12, (UBYTE *)"_Clear",&topaz800, ID_clear, PLACETEXT_IN, NULL, (APTR)clearObj,
- 153, 73, 56, 12, (UBYTE *)"_Quit",&topaz800, ID_quit, PLACETEXT_IN, NULL, (APTR)quitObj,
- 6, 2, 203, 68, (UBYTE *)"", &topaz800, ID_icons, PLACETEXT_ABOVE, NULL, (APTR)iconsObj,
- };
-
- ULONG Project0NTags[] = {
- (GT_Underscore), '_', TAG_DONE,
- (GT_Underscore), '_', TAG_DONE,
- (GTLV_Labels), NULL, (GTLV_Top), 0, (GTLV_ReadOnly), TRUE, (GTLV_ScrollWidth), 16, (LAYOUTA_Spacing), 0, TAG_DONE,
- };
-
-
- int GetPubScreen(void)
- {
- if (!(Scr = LockPubScreen(PubScrName)))
- return(1L);
-
- if (!(VisualInfo = GetVisualInfo(Scr, TAG_DONE)))
- return(2L);
-
- if (!(ScrDrawInfo = GetScreenDrawInfo(Scr)))
- return(3L);
- return(0L);
- }
-
- void ClosePubScreen(void)
- {
- if (VisualInfo)
- FreeVisualInfo(VisualInfo);
- if (Scr)
- UnlockPubScreen(NULL, Scr);
- if (ScrDrawInfo)
- FreeScreenDrawInfo(Scr, ScrDrawInfo);
- }
-
- int OpenProject0Window(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 (!(Gad = CreateContext(&Project0GList)))
- return(1L);
-
- for (i=0, j=0; i < Project0NumGads; i++)
- {
- CopyMem((char *)&Project0NGads[i], (char *)&NewGad, (long)sizeof(struct NewGadget));
-
- NewGad.ng_VisualInfo = VisualInfo;
- NewGad.ng_LeftEdge += offsetx;
- NewGad.ng_TopEdge += offsety;
-
- Project0Gadgets[i] = Gad = CreateGadgetA((ULONG)Project0GadTypes[i], Gad, &NewGad,
- (struct TagItem *)&Project0NTags[j]);
- while (Project0NTags[j])
- j +=2;
- j++;
- if (!Gad)
- return(2L);
- }
- if (!(Project0Wnd = OpenWindowTags(NULL,
- WA_Left, Project0Left,
- WA_Top, Project0Top,
- WA_Width, Project0Width,
- WA_Height, Project0Height - Scr->WBorTop,
- WA_NewLookMenus, TRUE,
- WA_IDCMP, IDCMP_CLOSEWINDOW | IDCMP_MOUSEBUTTONS | IDCMP_MOUSEMOVE | IDCMP_GADGETUP | IDCMP_GADGETDOWN | IDCMP_VANILLAKEY | IDCMP_INTUITICKS ,
- WA_Flags, WFLG_CLOSEGADGET | WFLG_SMART_REFRESH |
- WFLG_ACTIVATE | WFLG_DRAGBAR | WFLG_DEPTHGADGET,
- WA_Gadgets, Project0GList,
- 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);
-
- CreateProject0Lists();
- if (Project0AppWindPort = CreateMsgPort())
- {
- Project0AppWind = AddAppWindow(1, 0, Project0Wnd, Project0AppWindPort, NULL);
- if (Project0AppWind == NULL)
- {
- CloseProject0Window();
- return(-1L);
- }
- }
- else
- return(-2L);
- GT_RefreshWindow(Project0Wnd, NULL);
- RefreshGadgets(Project0Gadgets[0], Project0Wnd, NULL);
- GT_SetGadgetAttrs(Project0Gadgets[2], Project0Wnd, NULL,
- GTLV_Labels, Project0Lists[0], TAG_END);
- return(0L);
- }
-
- void CloseProject0Window(void)
- {
- struct AppMessage *appwindmsg;
-
- if (Project0Wnd)
- CloseWindow(Project0Wnd);
- if (Project0GList)
- FreeGadgets(Project0GList);
- if (Project0AppWind)
- {
- RemoveAppWindow(Project0AppWind);
- while (appwindmsg = (struct AppMessage *)GetMsg(Project0AppWindPort))
- ReplyMsg((struct Message *)appwindmsg);
- DeleteMsgPort(Project0AppWindPort);
- }
- }
-
- int Project0Handler(void)
- {
- struct IntuiMessage *msg;
- struct VAobject VAObject;
- int running = 1;
- int (*func)(struct VAobject VAObject);
- ULONG class;
- UWORD code;
-
- while (msg=GT_GetIMsg(Project0Wnd->UserPort))
- {
- CopyMem((char *)msg, (char *)&Project0Msg, (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_CLOSEWINDOW:
- return(0);
- break;
-
- case IDCMP_GADGETUP:
- VAObject.va_Window = (struct Window *)Project0Wnd;
- 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 *)Project0Msg.IAddress)->UserData;
- if (func != NULL)
- running = func(VAObject);
- break;
-
-
- case IDCMP_VANILLAKEY:
- switch(code)
- {
- case 'C':
- case 'c':
- ButtonSelected(Project0Wnd, Project0Gadgets[0]);
- running = clearObj(VAObject);
- break;
- case 'Q':
- case 'q':
- ButtonSelected(Project0Wnd, Project0Gadgets[1]);
- running = quitObj(VAObject);
- break;
- }
- break;
- }
- }
- return(running);
- }
-
- int Project0AppWindHandler(struct MsgPort *appwindport)
- {
- struct WBArg *wbargptr;
- struct AppMessage *appwindmsg;
- int i;
- int rc;
-
- while (appwindmsg = (struct AppMessage *)GetMsg(appwindport))
- {
- wbargptr = appwindmsg->am_ArgList;
-
- /* examine the icons dragged into the window here. */
- /* wbargptr->wa_Name ---> name of the icon */
- /* wbargptr->wa_Lock ---> directory this icon is in. */
-
- GT_SetGadgetAttrs(Project0Gadgets[ID_icons], Project0Wnd, NULL,
- GTLV_Labels, ~0, TAG_END);
- for (i=0; i < appwindmsg->am_NumArgs; i++)
- {
- rc = AddNewNode(Project0Lists[0], wbargptr->wa_Name);
- wbargptr++;
- }
- GT_SetGadgetAttrs(Project0Gadgets[ID_icons], Project0Wnd, NULL,
- GTLV_Labels, Project0Lists[0], TAG_END);
- ReplyMsg((struct Message *)appwindmsg);
- }
- return(0);
- }
-
- int Project0MainHandler(void)
- {
- int running = 1;
- ULONG windsig, signals;
-
- ULONG appwindsig;
-
- while (running == 1)
- {
- appwindsig = 1L << Project0AppWindPort->mp_SigBit;
- windsig = 1L << Project0Wnd->UserPort->mp_SigBit;
- signals = Wait( windsig | appwindsig );
- if (signals & windsig)
- {
- running = Project0Handler();
- }
- else
- if (signals & appwindsig)
- Project0AppWindHandler(Project0AppWindPort);
- }
- return(running);
- }
-
- int main(int argc, char *argv[])
- {
- int rc;
-
- if (!(GetPubScreen()))
- {
- for (rc=0; rc < 1; rc++)
- Project0Lists[rc]=GetNewList();
- if (!(OpenProject0Window("Visual Arts -- AppWindow Demo")))
- {
- rc = Project0MainHandler();
- CloseProject0Window();
- }
- for (rc=0; rc < 1; rc++)
- FreeList(Project0Lists[rc]);
- ClosePubScreen();
- }
- }
-