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) */
- /* Partial of the code is copyright by Jaba Development */
- /* ******************************************************************** */
-
- #include <exec/types.h>
- #include <exec/memory.h>
- #include <exec/lists.h>
- #include <exec/nodes.h>
- #include <intuition/intuition.h>
- #include <intuition/gadgetclass.h>
- #include <graphics/displayinfo.h>
- #include <graphics/gfxbase.h>
- #include <graphics/gfxmacros.h>
- #include <libraries/gadtools.h>
- #include <libraries/dos.h>
- #include <libraries/asl.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 <clib/asl_protos.h>
- #include "string.h"
-
- #define ID_button 0
- #define ID_button1 1
- #define ID_string 2
- #define ID_integer 3
- #define ID_check 4
- #define ID_mxmodel 5
- #define ID_cycle 6
- #define ID_slider 7
- #define ID_scroller 8
- #define ID_scroller1 9
- #define ID_modellist 10
- #define ID_color 11
- #define ID_text 12
- #define ID_number 13
-
- #define BasicNumGads 14
- #include "Basic.h"
-
- int buttonObj(struct VAobject VAObject);
- int button1Obj(struct VAobject VAObject);
- int stringObj(struct VAobject VAObject);
- int integerObj(struct VAobject VAObject);
- int checkObj(struct VAobject VAObject);
- int mxmodelObj(struct VAobject VAObject);
- int cycleObj(struct VAobject VAObject);
- int sliderObj(struct VAobject VAObject);
- int scrollerObj(struct VAobject VAObject);
- int scroller1Obj(struct VAobject VAObject);
- int modellistObj(struct VAobject VAObject);
- int colorObj(struct VAobject VAObject);
-
- int GetPubScreen(void);
- void ClosePubScreen(void);
- int OpenBasicWindow(char windtitle[80]);
- void CloseBasicWindow(void);
- int BasicHandler(void);
- int BasicMainHandler(void);
- void DrawBasicObjs(void);
- int main(int argc, char *argv[]);
-
- UBYTE *PubScrName = NULL;
- APTR VisualInfo = NULL;
- struct Screen *Scr = NULL;
- struct Window *BasicWnd = NULL;
- struct Gadget *BasicGList = NULL;
- struct Gadget *BasicGadgets[14];
- struct IntuiMessage BasicMsg;
- UWORD BasicLeft = 34;
- UWORD BasicTop = 22;
- UWORD BasicWidth = 559;
- UWORD BasicHeight = 136;
- struct TextAttr topaz8 = { (STRPTR)"topaz.font", 8, 0x00, 0x01 };
- struct TextAttr topaz800 = { (STRPTR)"topaz.font", 8, 0x00, 0x00 };
-
- UBYTE *modelsLabels[] = {
- (UBYTE *)"Amiga 500",
- (UBYTE *)"Amiga 600",
- (UBYTE *)"Amiga 1000",
- (UBYTE *)"Amiga 1200",
- (UBYTE *)"Amiga 2000",
- (UBYTE *)"Amiga 2500",
- (UBYTE *)"Amiga 2500HD",
- (UBYTE *)"Amiga 3000",
- (UBYTE *)"Amiga 4000",
- (UBYTE *)"Amiga CDTV",
- (UBYTE *)"Amiga CD32",
- (UBYTE *)"Amiga 4000T",
- NULL
- };
-
- WORD BasicGadTypes[] = {
- BUTTON_KIND,
- BUTTON_KIND,
- STRING_KIND,
- INTEGER_KIND,
- CHECKBOX_KIND,
- MX_KIND,
- CYCLE_KIND,
- SLIDER_KIND,
- SCROLLER_KIND,
- SCROLLER_KIND,
- LISTVIEW_KIND,
- PALETTE_KIND,
- TEXT_KIND,
- TEXT_KIND,
- };
-
- struct NewGadget BasicNGads[] = {
- 6, 2, 105, 13, (UBYTE *)"Button",&topaz800, ID_button, PLACETEXT_IN, NULL, (APTR)buttonObj,
- 113, 2, 108, 13, (UBYTE *)"Toggle Button",&topaz800, ID_button1, PLACETEXT_IN, NULL, (APTR)button1Obj,
- 289, 13, 125, 12, (UBYTE *)"Name", &topaz800, ID_string, PLACETEXT_LEFT, NULL, (APTR)stringObj,
- 289, 26, 124, 12, (UBYTE *)"Version", &topaz800, ID_integer, PLACETEXT_LEFT, NULL, (APTR)integerObj,
- 289, 1, 26, 11, (UBYTE *)"Visual Arts", &topaz800, ID_check, PLACETEXT_RIGHT, NULL, (APTR)checkObj,
- 426, 2, 17, 118, (UBYTE *)"model", &topaz800, ID_mxmodel, PLACETEXT_RIGHT, NULL, (APTR)mxmodelObj,
- 269, 66, 148, 14, (UBYTE *)"Models", &topaz800, ID_cycle, PLACETEXT_LEFT, NULL, (APTR)cycleObj,
- 109, 111, 310, 10, (UBYTE *)"Slider ", &topaz800, ID_slider, PLACETEXT_LEFT, NULL, (APTR)sliderObj,
- 175, 65, 20, 42, (UBYTE *)"", &topaz800, ID_scroller, PLACETEXT_RIGHT, NULL, (APTR)scrollerObj,
- 7, 97, 164, 10, (UBYTE *)"", &topaz800, ID_scroller1, PLACETEXT_LEFT, NULL, (APTR)scroller1Obj,
- 7, 16, 211, 44, (UBYTE *)"", &topaz800, ID_modellist, PLACETEXT_ABOVE, NULL, (APTR)modellistObj,
- 291, 40, 124, 24, (UBYTE *)"", &topaz800, ID_color, PLACETEXT_ABOVE, NULL, (APTR)colorObj,
- 270, 82, 147, 12, (UBYTE *)"Text", &topaz800, ID_text, PLACETEXT_LEFT, NULL, NULL,
- 270, 97, 147, 13, (UBYTE *)"Version", &topaz800, ID_number, PLACETEXT_LEFT, NULL, NULL,
- };
-
- ULONG BasicNTags[] = {
- TAG_DONE,
- TAG_DONE,
- (GTST_String), (ULONG)"Visual Arts", GTST_MaxChars, 40, (STRINGA_Justification), GACT_STRINGLEFT, TAG_DONE,
- (GTIN_Number), (ULONG)1, (GTIN_MaxChars), 10, (STRINGA_Justification), GACT_STRINGLEFT, TAG_DONE,
- (GTCB_Checked), TRUE, TAG_DONE,
- (GTMX_Labels), (ULONG)&modelsLabels[0], (GTMX_Active), 4, (GTMX_Spacing), 2, TAG_DONE,
- (GTCY_Labels), (ULONG)&modelsLabels[0], (GTCY_Active), 0, TAG_DONE,
- (GTSL_Min), 20, (GTSL_Max), 100, (GTSL_Level), 20, (GTSL_LevelFormat), (ULONG)"%3ld", (GTSL_MaxLevelLen), 0, (GTSL_LevelPlace), PLACETEXT_LEFT, (GA_Immediate), TRUE, (GA_RelVerify), TRUE, (PGA_Freedom), LORIENT_HORIZ, TAG_DONE,
- (GTSC_Top), -20, (GTSC_Total), 30, (GTSC_Visible), 10, (GTSC_Arrows), 8, (GA_Immediate), TRUE, (GA_RelVerify), TRUE, (PGA_Freedom), LORIENT_VERT, TAG_DONE,
- (GTSC_Top), 0, (GTSC_Total), 40, (GTSC_Visible), 10, (GTSC_Arrows), 16, (GA_Immediate), TRUE, (GA_RelVerify), TRUE, (PGA_Freedom), LORIENT_HORIZ, TAG_DONE,
- (GTLV_Labels), NULL, (GTLV_Top), 0, (GTLV_ScrollWidth), 16, (GTLV_ShowSelected), NULL, (LAYOUTA_Spacing), 0, TAG_DONE,
- (GTPA_Depth), 2, (GTPA_Color), 1, (GTPA_ColorOffset), 0, (GTPA_IndicatorWidth), 20, TAG_DONE,
- (GTTX_Text),(ULONG)"Visual Arts", (GTTX_Border), TRUE, TAG_DONE,
- (GTTX_Text),(ULONG)"1", (GTTX_Border), TRUE, TAG_DONE,
- };
-
-
- int GetPubScreen(void)
- {
- if (!(Scr = LockPubScreen(PubScrName)))
- return(1L);
-
- if (!(VisualInfo = GetVisualInfo(Scr, TAG_DONE)))
- return(2L);
- return(0L);
- }
-
- void ClosePubScreen(void)
- {
- if (VisualInfo)
- FreeVisualInfo(VisualInfo);
- if (Scr)
- UnlockPubScreen(NULL, Scr);
- }
-
- int OpenBasicWindow(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(&BasicGList)))
- return(1L);
-
- for (i=0, j=0; i < BasicNumGads; i++)
- {
- CopyMem((char *)&BasicNGads[i], (char *)&NewGad, (long)sizeof(struct NewGadget));
-
- NewGad.ng_VisualInfo = VisualInfo;
- NewGad.ng_LeftEdge += offsetx;
- NewGad.ng_TopEdge += offsety;
-
- BasicGadgets[i] = Gad = CreateGadgetA((ULONG)BasicGadTypes[i], Gad,&NewGad,
- (struct TagItem *)&BasicNTags[j]);
- while (BasicNTags[j])
- j +=2;
- j++;
- if (!Gad)
- return(2L);
- }
- BasicGadgets[1]->Activation |= GACT_TOGGLESELECT;
- if (!(BasicWnd = OpenWindowTags(NULL,
- WA_Left, BasicLeft,
- WA_Top, BasicTop,
- WA_Width, BasicWidth,
- WA_Height, BasicHeight - Scr->WBorTop,
- WA_IDCMP, IDCMP_CLOSEWINDOW | IDCMP_NEWSIZE | IDCMP_MOUSEBUTTONS | IDCMP_MOUSEMOVE | IDCMP_GADGETUP | IDCMP_GADGETDOWN | IDCMP_REFRESHWINDOW | IDCMP_INTUITICKS ,
- WA_Flags, WFLG_CLOSEGADGET | WFLG_DEPTHGADGET | WFLG_SMART_REFRESH | WFLG_RMBTRAP | WFLG_ACTIVATE | WFLG_DRAGBAR ,
- WA_Gadgets, BasicGList,
- WA_Title, windtitle,
- WA_ScreenTitle, "Visual Arts V1.0 Copyright 1994 Danny Y. Wong All Rights Reserved.",
- WA_PubScreen, Scr,
- WA_MinWidth, 20,
- WA_MinHeight, 10,
- WA_MaxWidth, 640,
- WA_MaxHeight, 200,
- TAG_DONE)))
- return(3L);
-
- DrawBasicObjs();
- GT_RefreshWindow(BasicWnd, NULL);
- CreateBasicLists();
- GT_SetGadgetAttrs(BasicGadgets[10], BasicWnd, NULL,
- GTLV_Labels, BasicLists[0], TAG_END);
- RefreshGadgets(BasicGadgets[0], BasicWnd, NULL);
- return(0L);
- }
-
- void CloseBasicWindow(void)
- {
- if (BasicWnd)
- CloseWindow(BasicWnd);
- if (BasicGList)
- FreeGadgets(BasicGList);
- }
-
- int BasicHandler(void)
- {
- struct IntuiMessage *msg;
- struct VAobject VAObject;
- int running = 1;
- int (*func)(struct VAobject VAObject);
- ULONG class;
- UWORD code;
-
- while (msg=GT_GetIMsg(BasicWnd->UserPort))
- {
- CopyMem((char *)msg, (char *)&BasicMsg, (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_GADGETDOWN :
- break;
-
- case IDCMP_INTUITICKS :
- break;
-
- case IDCMP_REFRESHWINDOW:
- GT_BeginRefresh(BasicWnd);
- DrawBasicObjs();
- GT_EndRefresh(BasicWnd, NULL);
- break;
-
- case IDCMP_CLOSEWINDOW:
- return(0);
- break;
-
- case IDCMP_GADGETUP:
- VAObject.va_Window = (struct Window *)BasicWnd;
- 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 *)BasicMsg.IAddress)->UserData;
- running = func(VAObject);
- break;
-
- }
- }
- return(running);
- }
-
- void DrawBasicObjs(void)
- {
- BasicDrawRects(BasicWnd);
-
- }
-
- int BasicMainHandler(void)
- {
- int running = 1;
- ULONG windsig, signals;
-
- while (running == 1)
- {
- windsig = 1L << BasicWnd->UserPort->mp_SigBit;
- signals = Wait( windsig );
- if (signals & windsig)
- {
- running = BasicHandler();
- }
- }
- return(running);
- }
-
- int main(int argc, char *argv[])
- {
- int rc;
-
- if (!(GetPubScreen()))
- {
- for (rc=0; rc < 1; rc++)
- BasicLists[rc]=GetNewList();
- if (!(OpenBasicWindow("Basic Demo")))
- {
- rc = BasicMainHandler();
- CloseBasicWindow();
- }
- for (rc=0; rc < 1; rc++)
- FreeList(BasicLists[rc]);
- ClosePubScreen();
- }
- }
-