home *** CD-ROM | disk | FTP | other *** search
/ Aminet 33 / Aminet 33 - October 1999.iso / Aminet / dev / gui / ClassFree_src.lha / ClassFree_src / CFbuttonclass / test.c < prev    next >
Encoding:
C/C++ Source or Header  |  1999-01-25  |  3.9 KB  |  162 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.  
  14. #define CFB_G    0
  15. #define TSTUP_G  1
  16. #define TSTDN_G  2
  17. #define QUIT_G   3
  18. #define NUM_GADS 4
  19.  
  20.  
  21. struct Library *CFBbase;
  22. struct Library *btnbase;
  23.  
  24. void main(void)
  25. {
  26.   struct Screen *wb;
  27.   struct DrawInfo *wb_dri;
  28.   struct Window *win;
  29.   struct Gadget *glist, *tgad, *gads[NUM_GADS];
  30.   struct Image *img;
  31.   struct IntuiMessage *imsg;
  32.   BOOL breakflag = FALSE;
  33.   LONG pos,iclass;
  34.  
  35.   CFBbase = OpenLibrary("CFbutton.gadget",NULL);
  36.   btnbase = OpenLibrary("gadgets/button.gadget",NULL);
  37.  
  38. //  if(lvbase) printf("Class opened\n");
  39.  
  40.   win = OpenWindowTags(NULL,
  41.           WA_Left, 200,
  42.           WA_Width,400,WA_Height,200,
  43.           WA_IDCMP, IDCMP_GADGETUP,
  44.           TAG_DONE);
  45.   SetAPen(win->RPort,1);
  46.  
  47.   wb = LockPubScreen("Workbench");
  48.   wb_dri = GetScreenDrawInfo(wb);
  49.  
  50.   img = (struct Image *)NewObject(NULL,SYSICLASS,
  51.           IA_Left, 0, IA_Top, 0,
  52.           SYSIA_DrawInfo, wb_dri,
  53.           SYSIA_Which, DOWNIMAGE,
  54.           SYSIA_Size, SYSISIZE_MEDRES,
  55.           TAG_DONE);
  56.  
  57.   FreeScreenDrawInfo(wb,wb_dri);
  58.   UnlockPubScreen(NULL,wb);
  59.  
  60.   gads[CFB_G] = (struct Gadget *)NewObject(NULL,CFbuttonClassName,
  61.           GA_Left, 30, GA_Top, 30,
  62.           GA_Width, 70, GA_Height, 25,
  63.           GA_Immediate, TRUE,
  64.           GA_RelVerify, TRUE,
  65.           GA_Highlight, TRUE,
  66.           GA_Border, FALSE,
  67.           GA_Text, "Snabel",
  68.           GA_Image, img,
  69.           CFBU_Layout, LAYOUT_IMGABOVE,
  70.           GA_ID, CFB_G,
  71.           TAG_DONE);
  72.   if(!gads[CFB_G])
  73.   {
  74.     CloseWindow(win);
  75.     CloseLibrary(btnbase);
  76.     CloseLibrary(CFBbase);
  77.     exit(0);
  78.   }
  79.   glist = gads[CFB_G];
  80.   gads[TSTUP_G] = (struct Gadget *)NewObject(NULL,CFbuttonClassName,
  81.           GA_Previous, gads[TSTUP_G-1],
  82.           GA_Left, 200, GA_Top, 30,
  83.           GA_Width, 50, GA_Height, 20,
  84.           GA_Highlight, FALSE,
  85.           GA_Text, "UP",
  86.           GA_RelVerify, TRUE,
  87.           GA_ID, TSTUP_G,
  88.           TAG_DONE);
  89.  
  90.   gads[TSTDN_G] = (struct Gadget *)NewObject(NULL,CFbuttonClassName,
  91.           GA_Previous, gads[TSTDN_G-1],
  92.           GA_Left, 200, GA_Top, 60,
  93.           GA_Width, 50, GA_Height, 20,
  94.           GA_Text, "DOWN",
  95.           GA_ToggleSelect, TRUE,
  96.           CFBU_Layout, LAYOUT_TXTLEFT,
  97.           GA_RelVerify, TRUE,
  98.           GA_ID, TSTDN_G,
  99.           TAG_DONE);
  100.   gads[QUIT_G] = (struct Gadget *)NewObject(NULL,CFbuttonClassName,
  101.           GA_Previous, gads[QUIT_G-1],
  102.           GA_Left, 200, GA_Top, 90,
  103.           GA_Width, 50, GA_Height, 20,
  104.           GA_Text, "Quit",
  105.           GA_RelVerify, TRUE,
  106.           GA_ID, QUIT_G,
  107.           TAG_DONE);
  108.  
  109. //  if(glist) printf("NewObject succeded\n");
  110. //  else printf("Failed to create lvc_object..\n");
  111.  
  112.  
  113.   AddGList(win,glist,-1,-1,NULL);
  114.   RefreshGadgets(glist,win,NULL);
  115.  
  116.   while(!breakflag)
  117.   {
  118.     WaitPort(win->UserPort);
  119.     while(imsg = (struct IntuiMessage *)GetMsg(win->UserPort))
  120.     {
  121.       iclass = imsg->Class;
  122.       tgad = (struct Gadget *)imsg->IAddress;
  123.       pos = imsg->Code;
  124.       ReplyMsg((struct Message *)imsg);
  125.       if(iclass == IDCMP_GADGETDOWN)
  126.       {
  127.         printf("Gadget up from CFB\n");
  128.         switch(tgad->GadgetID)
  129.         {
  130.           case CFB_G:
  131.             break
  132.         }
  133.       }
  134.       if(iclass == IDCMP_GADGETUP)
  135.       {
  136.         switch(tgad->GadgetID)
  137.         {
  138.           case QUIT_G: breakflag = TRUE; break;
  139.           case CFB_G:
  140.             printf("Snabel\n");
  141.             break;
  142. /*          case TSTUP_G:
  143.             GetAttr(PGA_Top,gads[SCRL_G],(ULONG *)&pos);
  144.             SetGadgetAttrs(gads[SCRL_G],win,NULL,PGA_Top,pos-1,TAG_DONE);
  145.             break;
  146.           case TSTDN_G:
  147.             GetAttr(PGA_Top,gads[SCRL_G],(ULONG *)&pos);
  148.             SetGadgetAttrs(gads[SCRL_G],win,NULL,PGA_Top,pos+1,TAG_DONE);
  149.             break;*/
  150.         }
  151.       }
  152.     }
  153.   }
  154.  
  155.   RemoveGList(win,glist,-1);
  156.   pos = 0;
  157.   while(pos<NUM_GADS) DisposeObject(gads[pos++]);
  158.   DisposeObject(img);
  159.   CloseWindow(win);
  160.   CloseLibrary(CFBbase);
  161.   CloseLibrary(btnbase);
  162. }