home *** CD-ROM | disk | FTP | other *** search
/ Aminet 33 / Aminet 33 - October 1999.iso / Aminet / dev / gui / ClassFree_src.lha / ClassFree_src / CFgroupgclass / test.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-07-09  |  4.2 KB  |  160 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 <intuition/icclass.h>
  12. #include <stdio.h>
  13. #include "CFscroller.h"
  14. #include "CFbutton.h"
  15.  
  16. #define CFSCR_G  0
  17. #define TSTUP_G  1
  18. #define TSTDN_G  2
  19. #define QUIT_G   3
  20. #define NUM_GADS 4
  21.  
  22.  
  23. struct Library *CFSCRbase;
  24. struct Library *btnbase;
  25.  
  26. void main(void)
  27. {
  28.   struct Screen *wb;
  29.   struct DrawInfo *wb_dri;
  30.   struct Window *win;
  31.   struct Gadget *glist, *tgad, *gads[NUM_GADS];
  32.   struct IntuiMessage *imsg;
  33.   BOOL breakflag = FALSE;
  34.   LONG pos,iclass;
  35.  
  36.   printf("Test started.\n");
  37.  
  38.   CFSCRbase = OpenLibrary("CFscroller.gadget",NULL);
  39.   btnbase = OpenLibrary("Gadgets/CFbutton.gadget",NULL);
  40.  
  41.   if(!CFSCRbase) printf("Error! Could not open test class\n");
  42.  
  43.   win = OpenWindowTags(NULL,
  44.           WA_Left, 200,
  45.           WA_Width,400,WA_Height,200,
  46.           WA_IDCMP, IDCMP_GADGETUP|IDCMP_GADGETDOWN|IDCMP_MOUSEMOVE
  47.               |IDCMP_IDCMPUPDATE,
  48.           TAG_DONE);
  49.   SetAPen(win->RPort,1);
  50.  
  51.   wb = LockPubScreen("Workbench");
  52.   wb_dri = GetScreenDrawInfo(wb);
  53.  
  54.   gads[CFSCR_G] = (struct Gadget *)NewObject(NULL,CFscrollerClassName,
  55.           GA_Left, 30, GA_Top, 30,
  56.           GA_Width, 120,
  57.           GA_DrawInfo, wb_dri,
  58.           GA_RelVerify, TRUE,
  59.           ICA_TARGET, ICTARGET_IDCMP,
  60. //          CFSC_Size, SIZE_HIRES,
  61.           CFSC_Freedom, FREEHORIZ,
  62.           CFSC_Total, 30, CFSC_Top, 1, CFSC_Visible, 4,
  63.           GA_ID, CFSCR_G,
  64.           TAG_DONE);
  65.  
  66.   FreeScreenDrawInfo(wb,wb_dri);
  67.   UnlockPubScreen(NULL,wb);
  68.  
  69.   if(!gads[CFSCR_G])
  70.   {
  71. //    printf("Error! Did not get test object.\n");
  72.     CloseWindow(win);
  73.     CloseLibrary(btnbase);
  74.     CloseLibrary(CFSCRbase);
  75.     exit(0);
  76.   }
  77.   glist = gads[CFSCR_G];
  78.   gads[TSTUP_G] = (struct Gadget *)NewObject(NULL,CFbuttonClassName,
  79.           GA_Previous, gads[TSTUP_G-1],
  80.           GA_Left, 200, GA_Top, 30,
  81.           GA_Width, 50, GA_Height, 20,
  82.           GA_Text, "UP",
  83.           GA_RelVerify, TRUE,
  84.           GA_ID, TSTUP_G,
  85.           TAG_DONE);
  86.  
  87.   gads[TSTDN_G] = (struct Gadget *)NewObject(NULL,CFbuttonClassName,
  88.           GA_Previous, gads[TSTDN_G-1],
  89.           GA_Left, 200, GA_Top, 60,
  90.           GA_Width, 50, GA_Height, 20,
  91.           GA_Text, "DOWN",
  92.           GA_RelVerify, TRUE,
  93.           GA_ID, TSTDN_G,
  94.           TAG_DONE);
  95.   gads[QUIT_G] = (struct Gadget *)NewObject(NULL,CFbuttonClassName,
  96.           GA_Previous, gads[QUIT_G-1],
  97.           GA_Left, 200, GA_Top, 90,
  98.           GA_Width, 50, GA_Height, 20,
  99.           GA_Text, "Quit",
  100.           GA_RelVerify, TRUE,
  101.           GA_ID, QUIT_G,
  102.           TAG_DONE);
  103.  
  104. //  if(glist) printf("NewObject succeded\n");
  105. //  else printf("Failed to create lvc_object..\n");
  106.  
  107.  
  108.   AddGList(win,glist,-1,-1,NULL);
  109.   RefreshGadgets(glist,win,NULL);
  110.  
  111.   while(!breakflag)
  112.   {
  113.     WaitPort(win->UserPort);
  114.     while(imsg = (struct IntuiMessage *)GetMsg(win->UserPort))
  115.     {
  116.       iclass = imsg->Class;
  117.       tgad = (struct Gadget *)imsg->IAddress;
  118.       pos = imsg->Code;
  119.       ReplyMsg((struct Message *)imsg);
  120.       switch(iclass)
  121.       {
  122.         case IDCMP_IDCMPUPDATE:
  123.           printf("Update recieved\n");
  124.           break;
  125.         case IDCMP_MOUSEMOVE:
  126.           printf("Mousemove recieved\n");
  127.           break;
  128.         case IDCMP_GADGETDOWN:
  129.           printf("Gadgeytdown recieved\n");
  130.           break;
  131.         case IDCMP_GADGETUP:
  132.           switch(tgad->GadgetID)
  133.           {
  134.             case QUIT_G: breakflag = TRUE; break;
  135.             case CFSCR_G:
  136.               printf("Scroller up, PGA_Top: %ld \n",pos);
  137.               break;
  138.             default:
  139.               printf("Button up\n");
  140.               break;
  141. /*          case TSTUP_G:
  142.               GetAttr(PGA_Top,gads[SCRL_G],(ULONG *)&pos);
  143.               SetGadgetAttrs(gads[SCRL_G],win,NULL,PGA_Top,pos-1,TAG_DONE);
  144.               break;
  145.             case TSTDN_G:
  146.               GetAttr(PGA_Top,gads[SCRL_G],(ULONG *)&pos);
  147.               SetGadgetAttrs(gads[SCRL_G],win,NULL,PGA_Top,pos+1,TAG_DONE);
  148.               break;*/
  149.           } /* switch GadgetID */
  150.       } /* switch iclass */
  151.     } /* while imsg */
  152.   } /* while !breakflag */
  153.  
  154.   RemoveGList(win,glist,-1);
  155.   pos = 0;
  156.   while(pos<NUM_GADS) DisposeObject(gads[pos++]);
  157.   CloseWindow(win);
  158.   CloseLibrary(CFSCRbase);
  159.   CloseLibrary(btnbase);
  160. }