home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 13 / AACD13.ISO / AACD / Programming / MR_Classes / Dev / Source / tcpalette / dispatch.c < prev    next >
Encoding:
C/C++ Source or Header  |  2000-07-15  |  2.3 KB  |  106 lines

  1. #define DEBUG
  2. #include <debug.h>
  3.  
  4. #include "private.h"
  5. #include "protos.h"
  6.  
  7. ULONG INST_SIZE=m_INST_SIZE;
  8.  
  9.  
  10. extern Class *ClassPtr;
  11.  
  12. Class * __saveds __asm LIB_TCPALETTE_GetClass(void)
  13. {
  14.   return(ClassPtr);
  15. }
  16.  
  17. ULONG __saveds __asm Dispatcher(register __a0 Class *C, register __a2 struct Gadget *Gad, register __a1 Msgs M, register __a6 struct Library *LibBase )
  18. {
  19.   struct GadData *gdata;
  20.   ULONG retval=0;
  21.  
  22.   gdata=INST_DATA(C, Gad);
  23.  
  24. //  DKP("Dispatcher MethodID %08lx\n", M->MethodID);
  25.  
  26.   switch(M->MethodID)
  27.   {
  28.     case OM_NEW:
  29.       if(Gad=(struct Gadget *)DoSuperMethodA(C,(Object *)Gad,(Msg)M))
  30.       {
  31.         gdata=INST_DATA(C, Gad);
  32.         
  33.         SetSuperAttrs(C,Gad, GA_TabCycle,1,TAG_DONE);
  34.         
  35.         gdata->Pattern=NewObject(0,(UBYTE *)"mlr_ordered.pattern", TAG_DONE);
  36.         {
  37.           if(gdata->Bevel=BevelObject, BEVEL_Style, BVS_BUTTON, BEVEL_FillPen, -1, End)
  38.           {
  39.             gdata->Precision=8;
  40.             gdata->ShowSelected=1;
  41.             
  42.             gad_SetAttrs(C,Gad,(struct opSet *)M);
  43.             retval=(ULONG)Gad;
  44.           }
  45.         } 
  46.       }
  47.       break;
  48.  
  49.     case OM_UPDATE:
  50.     case OM_SET:
  51.       retval=DoSuperMethodA(C,(Object *)Gad,(Msg)M);
  52.       gad_SetAttrs(C,Gad,(struct opSet *)M);
  53.      break;
  54.  
  55.     case OM_GET:
  56.       gad_GetAttr(C,Gad,(struct opGet *)M);
  57.      break;
  58.      
  59.  
  60.     case OM_DISPOSE:
  61.       DisposeObject(gdata->Pattern);
  62.       DisposeObject(gdata->Bevel);
  63.       retval=DoSuperMethodA(C,(Object *)Gad,(Msg)M);
  64.       break;
  65.  
  66.     case GM_HITTEST:
  67.       retval = GMR_GADGETHIT;
  68.       break;
  69.       
  70.     case GM_GOACTIVE:
  71.       Gad->Flags |= GFLG_SELECTED;
  72.       retval=gad_HandleInput(C,Gad,(struct gpInput *)M);      
  73. //      gad_Render(C,Gad,(APTR)M,GREDRAW_UPDATE);
  74. //      retval=GMR_MEACTIVE;
  75.       break;
  76.       
  77.     case GM_GOINACTIVE:
  78.       Gad->Flags &= ~GFLG_SELECTED;
  79.       gad_Render(C,Gad,(APTR)M,GREDRAW_UPDATE);
  80.       break;
  81.  
  82.     case GM_LAYOUT:
  83.       retval=gad_Layout(C,Gad,(struct gpLayout *)M);
  84.       break;
  85.       
  86.     case GM_RENDER:
  87.       retval=gad_Render(C,Gad,(struct gpRender *)M,0);
  88.       break;
  89.  
  90.     case GM_HANDLEINPUT:
  91.       retval=gad_HandleInput(C,Gad,(struct gpInput *)M);
  92.       break;
  93.       
  94.     case GM_DOMAIN:
  95.       gad_Domain(C, Gad, (APTR)M);
  96.       retval=1;
  97.       break;
  98.       
  99.     default:
  100.       retval=DoSuperMethodA(C,(Object *)Gad,(Msg)M);
  101.       break;
  102.   }
  103.   return(retval);
  104. }
  105.  
  106.