home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 13 / AACD13.ISO / AACD / Programming / MR_Classes / Dev / Source / palette / GlueCode.c < prev    next >
Encoding:
C/C++ Source or Header  |  2000-07-16  |  2.8 KB  |  110 lines

  1. #include "ui.h"
  2. #include "edata.h"
  3. #include "apptags.h"
  4.  
  5. #include <tagitemmacros.h>
  6. #include <debug.h>
  7.  
  8. #include <graphics/text.h>
  9.  
  10. struct TextAttr Topaz8={"topaz.font",8,0,0};
  11.  
  12. ULONG __asm __saveds GM_Set(register __a0 struct smGlueData     *GD, 
  13.                             register __a1 struct TagItem        *TagList, 
  14.                             register __a2 struct EData          *edata)
  15. {
  16.   ULONG retval=0;
  17.   struct TagItem *tstate,*tag, *mytags;
  18.   
  19.   //u=(APTR)Set;
  20.   
  21.   if(mytags=SMTAG_AllocTags(10))
  22.   {
  23.     ProcessTagList(TagList,tag,tstate)
  24.     {
  25.       ULONG t,d;
  26.       
  27.       t=tag->ti_Tag;
  28.       d=tag->ti_Data;
  29.       
  30.       switch(t)
  31.       {
  32.         case APP_EditMode:
  33.           if(edata->CopyMode!=(d == TCPEM_COPY))
  34.           {
  35.             edata->CopyMode=(d == TCPEM_COPY);
  36.             SMTAG_AddTag(mytags,APP_CopyMode,edata->CopyMode);
  37.           }
  38.           
  39.           if(edata->SwapMode!=(d == TCPEM_SWAP))
  40.           {
  41.             edata->SwapMode=(d == TCPEM_SWAP);
  42.             SMTAG_AddTag(mytags,APP_SwapMode,edata->SwapMode);
  43.           }
  44.           
  45.           if(edata->SpreadMode!=(d == TCPEM_SPREAD))
  46.           {
  47.             edata->SpreadMode=(d == TCPEM_SPREAD);
  48.             SMTAG_AddTag(mytags,APP_SpreadMode,edata->SpreadMode);
  49.           }
  50.           
  51.           break;          
  52.           
  53.         case APP_CopyMode:
  54.           if(d)
  55.           {
  56.             SMTAG_AddTag(mytags,APP_EditMode, TCPEM_COPY);
  57.             SMTAG_AddTag(mytags,APP_SwapMode,0);
  58.             SMTAG_AddTag(mytags,APP_SpreadMode,0);
  59.           }
  60.           else
  61.           {
  62.             SMTAG_AddTag(mytags,APP_EditMode, 0);
  63.             SMTAG_AddTag(mytags,APP_CopyMode,0);
  64.             SMTAG_AddTag(mytags,APP_SwapMode,0);
  65.             SMTAG_AddTag(mytags,APP_SpreadMode,0);
  66.           }
  67.           break;
  68.  
  69.  
  70.         case APP_SwapMode:
  71.           if(d)
  72.           {
  73.             SMTAG_AddTag(mytags,APP_EditMode, TCPEM_SWAP);
  74.             SMTAG_AddTag(mytags,APP_CopyMode,0);
  75.             SMTAG_AddTag(mytags,APP_SpreadMode,0);
  76.           }
  77.           else
  78.           {
  79.             SMTAG_AddTag(mytags,APP_EditMode, 0);
  80.             SMTAG_AddTag(mytags,APP_CopyMode,0);
  81.             SMTAG_AddTag(mytags,APP_SwapMode,0);
  82.             SMTAG_AddTag(mytags,APP_SpreadMode,0);
  83.           }
  84.           break;
  85.  
  86.  
  87.         case APP_SpreadMode:
  88.           if(d)
  89.           {
  90.             SMTAG_AddTag(mytags,APP_EditMode, TCPEM_SPREAD);
  91.             SMTAG_AddTag(mytags,APP_CopyMode,0);
  92.             SMTAG_AddTag(mytags,APP_SwapMode,0);
  93.           }
  94.           else
  95.           {
  96.             SMTAG_AddTag(mytags,APP_EditMode, 0);
  97.             SMTAG_AddTag(mytags,APP_CopyMode,0);
  98.             SMTAG_AddTag(mytags,APP_SwapMode,0);
  99.             SMTAG_AddTag(mytags,APP_SpreadMode,0);
  100.           }
  101.           break;
  102.       }
  103.     }
  104.     SMTAG_TagMore(mytags, TagList);
  105.     retval=SM_SendGlueAttrsA(GD, mytags);
  106.     SMTAG_FreeTags(mytags);
  107.   }
  108.   return(retval);
  109. }
  110.