home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 594a.lha / maker_v0.1 / itemlist.c < prev    next >
C/C++ Source or Header  |  1991-10-18  |  2KB  |  89 lines

  1. #include "global.h"
  2.  
  3. #include <stdio.h>
  4. #include <string.h>
  5. #include <exec/memory.h>
  6. #include <libraries/asl.h>
  7.  
  8. #include <proto/intuition.h>
  9. #include <proto/exec.h>
  10. #include <proto/asl.h>
  11. #include <proto/dos.h>
  12.  
  13. void WriteItems(USHORT code)
  14. {
  15.     LinkNode        *nodePtr;
  16.     USHORT        itemNum, totItems;
  17.     char            *cPtr, fileName[256];
  18.     FILE            *filePtr;
  19.     
  20.     totItems = NodeCount( (void **) &gObjList);
  21.     if (!totItems)
  22.         return;
  23.     
  24.     if (!RequestFile(gFileRequest))
  25.         return;
  26.     
  27.     strcpy(fileName, gFileRequest->rf_Dir);
  28.     if (!AddPart(fileName, gFileRequest->rf_File, 256))
  29.     {
  30.         printf("Error in file name\n");
  31.         return;
  32.     }
  33.     
  34.     filePtr = fopen(fileName, "w");
  35.     if (!filePtr)
  36.     {
  37.         printf("Error: unable to open file '%s'\n");
  38.         return;
  39.     }
  40.         
  41.     fprintf(filePtr, "Window is %d wide by %d high (%s)\n\n", gWindPtr->Width,
  42.                 gWindPtr->Height, (gWindSizeable ? "Sizeable" : "Non-Sizeable") );
  43.  
  44.     for (nodePtr=gObjList, itemNum=0; nodePtr; nodePtr=nodePtr->next, itemNum++)
  45.     {
  46.         fprintf(filePtr, "Item Number %2d (type is %s)\n", itemNum, gObjName[nodePtr->type]);
  47.         fprintf(filePtr, "\tLeft: %3d   Top: %3d   Width: %3d   Height: %3d\n", nodePtr->rect.minX,
  48.                     nodePtr->rect.minY, RectWidth(nodePtr->rect), RectHeight(nodePtr->rect) );
  49.         cPtr = GetItemText(nodePtr);
  50.         if (cPtr)
  51.             fprintf(filePtr, "\tLabel: %s   PlaceText: %s\n", cPtr, gPlaceText[GetTextPlacement(nodePtr)] );
  52.         fprintf(filePtr, "\n");
  53.     }
  54.     
  55.     fclose(filePtr);
  56. }
  57.  
  58. char *GetItemText(LinkNode *nodePtr)
  59. {
  60.     if (GetGadgetData(nodePtr, 0L, 0L, 0L, 0L, 0L ))
  61.     {
  62.         return ( (GadgetObj *) nodePtr)->label;
  63.     }
  64.     else if (nodePtr->type == OTYPE_IText)
  65.     {
  66.         return ( (ITextObj *) nodePtr)->label;
  67.     }
  68.     else
  69.         return 0L;
  70. }
  71.  
  72. short GetTextPlacement(LinkNode *nodePtr)
  73. {
  74.     short textPos;
  75.     
  76.     textPos = ( (GadgetObj *) nodePtr )->flags & 0x1F;
  77.     if (textPos & PLACETEXT_LEFT)
  78.         textPos = 0;
  79.     else if (textPos & PLACETEXT_RIGHT)
  80.         textPos = 1;
  81.     else if (textPos & PLACETEXT_ABOVE)
  82.         textPos = 2;
  83.     else if (textPos & PLACETEXT_BELOW)
  84.         textPos = 3;
  85.     else
  86.         textPos = 4;
  87.     
  88.     return textPos;
  89. }