home *** CD-ROM | disk | FTP | other *** search
/ Aminet 33 / Aminet 33 - October 1999.iso / Aminet / dev / gui / ClassFree_src.lha / ClassFree_src / CFpumbuttonclass / test.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-07-17  |  3.5 KB  |  139 lines

  1. /* Small test proggy for my listviewclass */
  2.  
  3. #include <clib/alib_protos.h>
  4. #include <clib/exec_protos.h>
  5. #include <clib/graphics_protos.h>
  6. #include <clib/intuition_protos.h>
  7. #include <clib/dos_protos.h>
  8. #include <intuition/intuition.h>
  9. #include <intuition/gadgetclass.h>
  10. #include <intuition/imageclass.h>
  11. #include <stdio.h>
  12. #include "CFbutton.h"
  13. #include "CFpumbutton.h"
  14.  
  15. #define CFPUM_G    0
  16. #define TSTUP_G  1
  17. #define TSTDN_G  2
  18. #define QUIT_G   3
  19. #define NUM_GADS 4
  20.  
  21.  
  22. struct Library *CFbbase;
  23. struct Library *CFpumbase;
  24.  
  25. void main(void)
  26. {
  27.   struct Screen *wb;
  28.   struct DrawInfo *dri;
  29.   struct Window *win;
  30.   struct Gadget *glist, *tgad, *gads[NUM_GADS];
  31.   struct IntuiMessage *imsg;
  32.   char *labels[] = {"Snabel","Tekno","Rykke","Øv","Røvslikker",NULL};
  33.   BOOL breakflag = FALSE;
  34.   LONG pos,iclass;
  35.  
  36.   CFpumbase = OpenLibrary("CFpumbutton.gadget",NULL);
  37.   CFbbase = OpenLibrary("Gadgets/CFbutton.gadget",NULL);
  38.  
  39. //  if(lvbase) printf("Class opened\n");
  40.  
  41.   win = OpenWindowTags(NULL,
  42.           WA_Left, 200,
  43.           WA_Width,400,WA_Height,200,
  44.           WA_IDCMP, IDCMP_GADGETUP,
  45.           TAG_DONE);
  46.   SetAPen(win->RPort,1);
  47.  
  48.   wb = LockPubScreen("Workbench");
  49.   dri = GetScreenDrawInfo(wb);
  50.  
  51.   gads[CFPUM_G] = (struct Gadget *)NewObject(NULL,CFpumbuttonClassName,
  52.           GA_Left, 30, GA_Top, 30,
  53.           GA_Width, 100, GA_Height, 20,
  54.           CFPU_Labels, labels,
  55.           GA_DrawInfo, dri,
  56.           GA_ID, CFPUM_G,
  57.           TAG_DONE);
  58.   FreeScreenDrawInfo(wb,dri);
  59.   UnlockPubScreen(NULL,wb);
  60.  
  61.   if(!gads[CFPUM_G])
  62.   {
  63.     CloseWindow(win);
  64.     CloseLibrary(CFbbase);
  65.     CloseLibrary(CFpumbase);
  66.     exit(0);
  67.   }
  68.   glist = gads[CFPUM_G];
  69.   gads[TSTUP_G] = (struct Gadget *)NewObject(NULL,CFbuttonClassName,
  70.           GA_Previous, gads[TSTUP_G-1],
  71.           GA_Left, 200, GA_Top, 30,
  72.           GA_Width, 50, GA_Height, 20,
  73.           GA_Highlight, FALSE,
  74.           GA_Text, "UP",
  75.           GA_RelVerify, TRUE,
  76.           GA_ID, TSTUP_G,
  77.           TAG_DONE);
  78.  
  79.   gads[TSTDN_G] = (struct Gadget *)NewObject(NULL,CFbuttonClassName,
  80.           GA_Previous, gads[TSTDN_G-1],
  81.           GA_Left, 200, GA_Top, 60,
  82.           GA_Width, 50, GA_Height, 20,
  83.           GA_Text, "DOWN",
  84.           GA_RelVerify, TRUE,
  85.           GA_ID, TSTDN_G,
  86.           TAG_DONE);
  87.   gads[QUIT_G] = (struct Gadget *)NewObject(NULL,CFbuttonClassName,
  88.           GA_Previous, gads[QUIT_G-1],
  89.           GA_Left, 200, GA_Top, 90,
  90.           GA_Width, 50, GA_Height, 20,
  91.           GA_Text, "Quit",
  92.           GA_RelVerify, TRUE,
  93.           GA_ID, QUIT_G,
  94.           TAG_DONE);
  95.  
  96. //  if(glist) printf("NewObject succeded\n");
  97. //  else printf("Failed to create lvc_object..\n");
  98.  
  99.  
  100.   AddGList(win,glist,-1,-1,NULL);
  101.   RefreshGadgets(glist,win,NULL);
  102.  
  103.   while(!breakflag)
  104.   {
  105.     WaitPort(win->UserPort);
  106.     while(imsg = (struct IntuiMessage *)GetMsg(win->UserPort))
  107.     {
  108.       iclass = imsg->Class;
  109.       tgad = (struct Gadget *)imsg->IAddress;
  110.       pos = imsg->Code;
  111.       ReplyMsg((struct Message *)imsg);
  112.       if(iclass == IDCMP_GADGETUP)
  113.       {
  114.         switch(tgad->GadgetID)
  115.         {
  116.           case QUIT_G: breakflag = TRUE; break;
  117.           case CFPUM_G:
  118. //            printf("Snabel\n");
  119.             break;
  120. /*          case TSTUP_G:
  121.             GetAttr(PGA_Top,gads[SCRL_G],(ULONG *)&pos);
  122.             SetGadgetAttrs(gads[SCRL_G],win,NULL,PGA_Top,pos-1,TAG_DONE);
  123.             break;
  124.           case TSTDN_G:
  125.             GetAttr(PGA_Top,gads[SCRL_G],(ULONG *)&pos);
  126.             SetGadgetAttrs(gads[SCRL_G],win,NULL,PGA_Top,pos+1,TAG_DONE);
  127.             break;*/
  128.         }
  129.       }
  130.     }
  131.   }
  132.  
  133.   RemoveGList(win,glist,-1);
  134.   pos = 0;
  135.   while(pos<NUM_GADS) DisposeObject(gads[pos++]);
  136.   CloseWindow(win);
  137.   CloseLibrary(CFbbase);
  138.   CloseLibrary(CFpumbase);
  139. }