home *** CD-ROM | disk | FTP | other *** search
- #include "headers.h"
-
- #include "buttonclass.h"
-
- struct Library *IntuitionBase, *UtilityBase, *GfxBase, *DOSBase;
- extern struct Library *SysBase;
- struct Window *w;
- Class *buttonCl;
- struct Gadget *but;
- struct IntuiMessage *msg;
- struct Gadget *glist=NULL;
- struct DrawInfo *drinfo;
-
- UWORD chip arrowData[] =
- {
- /* Plane 0 */
- 0x2000,0x6000,0xFE00,0x6000,0x2000,
- };
-
- struct Image arrow =
- {
- 0, 0, /* Upper left corner */
- 7, 5, 1, /* Width, Height, Depth */
- arrowData, /* Image data */
- 0x0001, 0x0000, /* PlanePick, PlaneOnOff */
- NULL /* Next image */
- };
-
- UWORD chip arrowDatas[] =
- {
- /* Plane 0 */
- 0xFE00,0xFE00,0xFE00,0xFE00,0xFE00,
- /* Plane 1 */
- 0xDE00,0x9E00,0x0000,0x9E00,0xDE00,
- };
-
- struct Image arrows =
- {
- 0, 0, /* Upper left corner */
- 7, 5, 2, /* Width, Height, Depth */
- arrowDatas, /* Image data */
- 0x0003, 0x0000, /* PlanePick, PlaneOnOff */
- NULL /* Next image */
- };
-
- /* boopsi.c */
- void MainLoop ( ULONG attr , ULONG value );
-
- void main(int argc, char *argv[])
- {
-
-
- SysBase=*((void **)4L);
- if(IntuitionBase=OpenLibrary("intuition.library",37))
- {
- if(UtilityBase=OpenLibrary("utility.library",37))
- {
- if(GfxBase=OpenLibrary("graphics.library",37))
- {
- if(w=OpenWindowTags(NULL,
- WA_Flags, WFLG_DEPTHGADGET | WFLG_DRAGBAR |
- WFLG_CLOSEGADGET | WFLG_SIZEGADGET,
- WA_IDCMP, IDCMP_CLOSEWINDOW | IDCMP_GADGETUP | IDCMP_GADGETDOWN | IDCMP_MOUSEBUTTONS | IDCMP_RAWKEY,
- WA_Top, 15,
- WA_Left, 150,
- WA_Width, 200,
- WA_Height, 300,
- WA_Activate,TRUE,
- WA_PubScreenName, (argc==2?argv[1]:NULL),
- TAG_END) )
- {
- if( drinfo=GetScreenDrawInfo(w->WScreen) )
- {
- WindowLimits(w, 150, 100, ~0, ~0);
-
- if(buttonCl = initButtonGadgetClass(IntuitionBase, UtilityBase, GfxBase))
- {
- struct Gadget *tmpgad,*gad;
- UWORD i;
-
- tmpgad= (struct Gadget *)&glist;
- for(i=0;i<16;i++)
- {
- NewObject(buttonCl, NULL,
- GA_ID, 1L,
- GA_Top, w->BorderTop + 2 + i*13,
- GA_Left, 20,
- GA_Width, 100,
- GA_Height, 11,
- GA_Immediate, TRUE,
- GA_RelVerify, TRUE,
- GA_Previous, tmpgad,
- BUT_Text, "All",
- BUT_Color, (i<8?(i==1?0:1):i%8),
- //BUT_Key, 'A',
- BUT_BackColor, (i<8?i%8:~0),
- TAG_DONE);
- }
- NewObject(buttonCl, NULL,
- GA_ID, 1L,
- GA_Top, w->BorderTop + 2 + i*13,
- GA_Left, 20,
- GA_Width, 150,
- GA_Height, 11,
- GA_Immediate, TRUE,
- GA_RelVerify, TRUE,
- GA_Previous, tmpgad,
- GA_Disabled, TRUE,
- BUT_Text, "Press a Key",
- BUT_Key, 'P',
- TAG_DONE);
- NewObject(buttonCl, NULL,
- GA_ID, 1L,
- GA_Top, w->BorderTop + 2 + ++i*13,
- GA_Left, 20,
- GA_Width, 25,
- GA_Height, 14,
- GA_Immediate, TRUE,
- GA_RelVerify, TRUE,
- GA_Previous, tmpgad,
- BUT_Image, &arrow,
- BUT_SelectImage,&arrows,
- TAG_DONE);
-
-
- AddGList(w, glist, -1, -1, NULL);
- RefreshGList(glist, w, NULL, -1);
-
- /*SetGadgetAttrs(gad, w, NULL,
- GA_Disabled, TRUE,
- TAG_DONE);*/
-
- MainLoop(TAG_DONE, 0);
- //MainLoop(BUT_Color, 2);
- //MainLoop(BUT_Text, (ULONG)"two three");
-
- RemoveGList(w, glist, -1);
-
- gad=glist;
- while(gad)
- {
- tmpgad= gad->NextGadget;
- DisposeObject(gad);
- gad= tmpgad;
- }
-
- freeButtonGadgetClass(buttonCl);
- }
- FreeScreenDrawInfo(w->WScreen,drinfo);
- }
- CloseWindow(w);
- }
- CloseLibrary(GfxBase);
- }
- CloseLibrary(UtilityBase);
- }
- CloseLibrary(IntuitionBase);
- }
- }
-
- void MainLoop(ULONG attr, ULONG value)
- {
- ULONG done=FALSE;
-
- SetGadgetAttrs(but, w, NULL, attr, value, TAG_DONE);
-
- while(done==FALSE)
- {
- WaitPort(w->UserPort);
- while(msg=(struct IntuiMessage *)GetMsg(w->UserPort))
- {
- switch( msg->Class )
- {
- case IDCMP_GADGETDOWN:
- kprintf("Gadget down\n");
- break;
- case IDCMP_GADGETUP:
- kprintf("Gadget up\n");
- break;
- case IDCMP_MOUSEBUTTONS:
- kprintf("Mouse buttons\n");
- break;
- case IDCMP_CLOSEWINDOW:
- done=TRUE;
- break;
- case IDCMP_RAWKEY:
- if( msg->Code & IECODE_UP_PREFIX )
- {
- SetGadgetAttrs(glist, w, NULL,
- GA_Selected, FALSE,
- TAG_DONE);
- }
- else if( !(msg->Qualifier & IEQUALIFIER_REPEAT) )
- {
- SetGadgetAttrs(glist, w, NULL,
- GA_Selected, TRUE,
- TAG_DONE);
- }
- break;
- }
- ReplyMsg(msg);
- }
- }
- }
-