home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 2 / Apprentice-Release2.iso / Source Code / C / Utilities / TextEditor / source / AboutBox.c < prev    next >
Encoding:
C/C++ Source or Header  |  1994-03-30  |  25.3 KB  |  368 lines  |  [TEXT/KAHL]

  1. /* AboutBox.c */
  2. /*****************************************************************************/
  3. /*                                                                           */
  4. /*    Stupid Fred's Text Editor                                              */
  5. /*    Written by Thomas R. Lawrence, 1993 - 1994.                            */
  6. /*                                                                           */
  7. /*    This software is Public Domain; it may be used for any purpose         */
  8. /*    whatsoever without restriction.                                        */
  9. /*                                                                           */
  10. /*    This package is distributed in the hope that it will be useful,        */
  11. /*    but WITHOUT ANY WARRANTY; without even the implied warranty of         */
  12. /*    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.                   */
  13. /*                                                                           */
  14. /*    Thomas R. Lawrence can be reached at tomlaw@world.std.com.             */
  15. /*                                                                           */
  16. /*****************************************************************************/
  17.  
  18. #include "MiscInfo.h"
  19. #include "Debug.h"
  20. #include "Audit.h"
  21. #include "Definitions.h"
  22.  
  23. #include "AboutBox.h"
  24. #include "Menus.h"
  25. #include "WindowDispatcher.h"
  26. #include "Memory.h"
  27. #include "DataMunging.h"
  28. #include "Main.h"
  29.  
  30.  
  31. #define WIDTH (420)
  32. #define HEIGHT (240)
  33.  
  34. #define IPWidth (304)
  35. #define IPHeight (54)
  36. #define IPX ((WIDTH - IPWidth) / 2)
  37. #define IPY (22)
  38.  
  39. #define PresentsY (IPY + IPHeight + 2)
  40.  
  41. #define StupidWidth (376)
  42. #define StupidHeight (27)
  43. #define StupidX ((WIDTH - StupidWidth) / 2)
  44. #define StupidY (PresentsY + 42)
  45.  
  46. #define InfoStartY (StupidY + StupidHeight + 20)
  47.  
  48. #define QuillWidth (32)
  49. #define QuillHeight (32)
  50. #define QuillX (WIDTH - QuillWidth - 12)
  51. #define QuillY (12)
  52.  
  53. static char            IntegralProductionsdx[] =
  54.     {
  55.         0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  56.         0x00,0x00,0x00,0x00,0x30,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  57.         0x00,0x00,0x00,0x00,0x30,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  58.         0x00,0x00,0xF8,0x00,0x30,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  59.         0x00,0x03,0xFE,0x00,0x30,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  60.         0x00,0x07,0x7E,0x00,0x30,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  61.         0x00,0x06,0x3E,0x00,0x30,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  62.         0x00,0x0C,0x1E,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  63.         0x00,0x0C,0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  64.         0x00,0x1C,0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  65.         0x00,0x1C,0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  66.         0x00,0x1C,0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  67.         0x00,0x1C,0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  68.         0x00,0x3C,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  69.         0x00,0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  70.         0x00,0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  71.         0x00,0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  72.         0x00,0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  73.         0x00,0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  74.         0x00,0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,
  75.         0x00,0x38,0x00,0x00,0x00,0x00,0x1F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x80,0x0F,0xFC,0x00,0x00,0x00,0x03,0xC0,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0x00,
  76.         0x00,0x38,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x03,0x07,0x00,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,
  77.         0x00,0x38,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x03,0x03,0x00,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,
  78.         0x00,0x38,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x03,0x01,0x80,0x00,0x00,0x00,0xC0,0x00,0x00,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,
  79.         0x00,0x38,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x03,0x01,0x80,0x00,0x00,0x00,0xC0,0x00,0x00,0x03,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,
  80.         0x00,0x38,0x00,0x00,0x00,0x00,0x06,0x06,0x78,0xFE,0x1E,0x01,0xF0,0x33,0x8F,0x81,0x80,0x03,0x01,0x99,0xC3,0xE0,0x1E,0xCF,0x1E,0x03,0xC7,0xF3,0x01,0xF0,0x33,0xC1,0xE8,0x00,0x00,0x7B,0x3E,0x70,
  81.         0x00,0x38,0x00,0x00,0x00,0x00,0x06,0x1F,0x9C,0x30,0x21,0x83,0x1E,0xFD,0x90,0xC1,0x80,0x03,0x01,0xFE,0xC4,0x30,0x31,0xC3,0x06,0x0C,0x61,0x8F,0x02,0x18,0xFC,0xE3,0x18,0x00,0x00,0xC7,0x0C,0x20,
  82.         0x00,0x38,0x00,0x00,0x00,0x00,0x06,0x06,0x0C,0x30,0x60,0x86,0x1C,0x30,0x30,0x61,0x80,0x03,0x03,0x18,0x0C,0x18,0x60,0xC3,0x06,0x18,0x71,0x83,0x06,0x0C,0x30,0x63,0x08,0x00,0x01,0x83,0x0E,0x40,
  83.         0x00,0x78,0x00,0x00,0x00,0x00,0x06,0x06,0x0C,0x30,0x40,0xC6,0x0C,0x30,0x30,0x61,0x80,0x03,0x06,0x18,0x08,0x18,0x40,0xC3,0x06,0x10,0x31,0x83,0x04,0x0C,0x30,0x63,0x08,0x00,0x01,0x03,0x06,0x40,
  84.         0x00,0x78,0x00,0x00,0x00,0x00,0x06,0x06,0x0C,0x30,0xFF,0xC6,0x0C,0x30,0x00,0x61,0x80,0x03,0xF8,0x18,0x18,0x0C,0xC0,0xC3,0x06,0x30,0x01,0x83,0x0C,0x06,0x30,0x63,0xC0,0x00,0x03,0x03,0x03,0x80,
  85.         0x00,0x78,0x00,0x00,0x00,0x00,0x06,0x06,0x0C,0x30,0xC0,0x07,0x0C,0x30,0x01,0xE1,0x80,0x03,0x00,0x18,0x18,0x0C,0xC0,0xC3,0x06,0x30,0x01,0x83,0x0C,0x06,0x30,0x61,0xF0,0x00,0x03,0x03,0x03,0x80,
  86.         0x00,0x78,0x00,0x00,0x00,0x00,0x06,0x06,0x0C,0x30,0xC0,0x03,0x18,0x30,0x06,0x61,0x80,0x03,0x00,0x18,0x18,0x0C,0xC0,0xC3,0x06,0x30,0x01,0x83,0x0C,0x06,0x30,0x60,0x78,0x00,0x03,0x03,0x03,0x80,
  87.         0x00,0x78,0x00,0x00,0x00,0x00,0x06,0x06,0x0C,0x30,0xC0,0x01,0xF0,0x30,0x18,0x61,0x80,0x03,0x00,0x18,0x18,0x0C,0xC0,0xC3,0x06,0x30,0x01,0x83,0x0C,0x06,0x30,0x60,0x1C,0x00,0x03,0x03,0x02,0xC0,
  88.         0x00,0x78,0x00,0x00,0x00,0x00,0x06,0x06,0x0C,0x30,0xE0,0xC2,0x00,0x30,0x30,0x61,0x80,0x03,0x00,0x18,0x0C,0x08,0xC0,0xC3,0x06,0x38,0x31,0x83,0x06,0x04,0x30,0x62,0x0C,0x00,0x03,0x03,0x04,0x60,
  89.         0x00,0x78,0x00,0x00,0x00,0x00,0x06,0x06,0x0C,0x30,0x71,0x84,0x00,0x30,0x30,0x61,0x80,0x03,0x00,0x18,0x0C,0x18,0x60,0xC3,0x06,0x1C,0x61,0x83,0x06,0x0C,0x30,0x62,0x0C,0x00,0x01,0x83,0x08,0x70,
  90.         0x00,0x78,0x00,0x00,0x00,0x00,0x06,0x06,0x0C,0x12,0x7F,0x07,0xF8,0x30,0x38,0xE1,0x80,0x03,0x00,0x18,0x06,0x10,0x71,0xF3,0x8F,0x8F,0xC0,0x93,0x03,0x08,0x30,0x63,0x18,0x00,0x01,0xC7,0xD8,0x38,
  91.         0x00,0x70,0x00,0x00,0x00,0x00,0x1F,0x9F,0xBF,0x1C,0x1E,0x03,0xFE,0xFC,0x1F,0x77,0xE0,0x0F,0xC0,0x7E,0x03,0xE0,0x1E,0xC1,0xF6,0x07,0x80,0xEF,0xC1,0xF0,0xFD,0xFA,0xF0,0x00,0x00,0x7B,0x3C,0x7C,
  92.         0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  93.         0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  94.         0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  95.         0x00,0x70,0x07,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  96.         0x00,0x60,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  97.         0x00,0x60,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  98.         0xF0,0xE0,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  99.         0xF8,0xC0,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  100.         0xFD,0x80,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  101.         0xFF,0x00,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  102.         0x3E,0x00,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  103.         0x00,0x00,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  104.         0x00,0x00,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  105.         0x00,0x00,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  106.         0x00,0x00,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  107.         0x00,0x00,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  108.         0x00,0x00,0x07,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
  109.     };
  110.  
  111. static char            StupidFredTextEditor[] =
  112.     {
  113.         0x07,0xF2,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x07,0xFF,0xFC,0x00,0x00,0x00,0x00,0x07,0xE0,0x60,0x00,0x00,0x00,0x7F,0xFF,0xC0,0x00,0x00,0x00,0x00,0x40,0x00,0x3F,0xFF,0xE0,0x00,0xFC,0x00,0x00,0x80,0x00,0x00,0x00,0x00,
  114.         0x1C,0x1F,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x00,0x01,0xF0,0x7C,0x00,0x00,0x00,0x00,0x01,0xE0,0xF0,0x00,0x00,0x00,0x78,0xE3,0xC0,0x00,0x00,0x00,0x00,0xC0,0x00,0x0F,0x83,0xF0,0x00,0x3C,0x00,0x01,0x80,0x00,0x00,0x00,0x00,
  115.         0x38,0x07,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x1C,0x00,0x00,0xE0,0x1E,0x00,0x00,0x00,0x00,0x00,0xE0,0xF0,0x00,0x00,0x00,0x70,0xE1,0xC0,0x00,0x00,0x00,0x00,0xC0,0x00,0x07,0x00,0x70,0x00,0x1C,0x07,0x01,0x80,0x00,0x00,0x00,0x00,
  116.         0x70,0x03,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x1C,0x00,0x00,0xE0,0x06,0x00,0x00,0x00,0x00,0x00,0xE0,0xF0,0x00,0x00,0x00,0x60,0xE0,0xC0,0x00,0x00,0x00,0x00,0xC0,0x00,0x07,0x00,0x30,0x00,0x1C,0x07,0x01,0x80,0x00,0x00,0x00,0x00,
  117.         0x70,0x01,0x80,0xC0,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x1C,0x00,0x00,0xE0,0x03,0x00,0x00,0x00,0x00,0x00,0xE0,0x10,0x00,0x00,0x00,0xC0,0xE0,0x60,0x00,0x00,0x00,0x00,0xC0,0x00,0x07,0x00,0x18,0x00,0x1C,0x07,0x01,0x80,0x00,0x00,0x00,0x00,
  118.         0x78,0x00,0x83,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x00,0xE0,0x41,0x00,0x00,0x00,0x00,0x00,0xE0,0x20,0x00,0x00,0x00,0xC0,0xE0,0x60,0x00,0x00,0x00,0x03,0xC0,0x00,0x07,0x02,0x08,0x00,0x1C,0x00,0x07,0x80,0x00,0x00,0x00,0x00,
  119.         0x7C,0x00,0x0F,0xFC,0x38,0x0E,0x03,0x8F,0x00,0x70,0x0F,0x9C,0x00,0x00,0xE0,0x40,0x39,0xE0,0x7E,0x00,0x7C,0xE0,0x40,0x3E,0x00,0x00,0x00,0xE0,0x00,0xFC,0x1F,0xC7,0xFF,0xFC,0x00,0x07,0x02,0x00,0x0F,0x9C,0x07,0x1F,0xF8,0x1F,0xC0,0x39,0xE0,
  120.         0x3F,0x00,0x01,0xC1,0xF8,0x7E,0x1F,0xB1,0xC3,0xF0,0x38,0x7C,0x00,0x00,0xE0,0xC1,0xFB,0xE1,0xC7,0x01,0xC3,0xE0,0x00,0x71,0xC0,0x00,0x00,0xE0,0x03,0x8E,0x0F,0xC1,0xC1,0xC0,0x00,0x07,0x06,0x00,0x38,0x7C,0x3F,0x03,0x80,0x30,0x61,0xFB,0xE0,
  121.         0x1F,0xF0,0x01,0xC0,0x78,0x1E,0x07,0xC0,0xE0,0xF0,0x70,0x3C,0x00,0x00,0xE1,0xC0,0x7C,0xE3,0x83,0x83,0x81,0xE0,0x00,0xE0,0x60,0x00,0x00,0xE0,0x07,0x07,0x03,0xC1,0x01,0xC0,0x00,0x07,0x0E,0x00,0x70,0x3C,0x0F,0x03,0x80,0x60,0x30,0x7C,0xE0,
  122.         0x07,0xFE,0x01,0xC0,0x38,0x0E,0x03,0x80,0xE0,0x70,0x70,0x1C,0x00,0x00,0xFF,0xC0,0x38,0x03,0x01,0xC3,0x80,0xE0,0x00,0xE0,0x60,0x00,0x00,0xE0,0x06,0x03,0x81,0xE2,0x01,0xC0,0x00,0x07,0xFE,0x00,0x70,0x1C,0x07,0x03,0x80,0xE0,0x38,0x38,0x00,
  123.         0x00,0xFF,0x81,0xC0,0x38,0x0E,0x03,0x80,0x70,0x70,0xE0,0x1C,0x00,0x00,0xE1,0xC0,0x38,0x07,0x01,0xC7,0x00,0xE0,0x00,0xF0,0x20,0x00,0x00,0xE0,0x0E,0x03,0x80,0xE4,0x01,0xC0,0x00,0x07,0x06,0x00,0xE0,0x1C,0x07,0x03,0x81,0xC0,0x1C,0x38,0x00,
  124.         0x00,0x0F,0x81,0xC0,0x38,0x0E,0x03,0x80,0x70,0x70,0xE0,0x1C,0x00,0x00,0xE0,0xC0,0x38,0x07,0xFF,0xC7,0x00,0xE0,0x00,0xFE,0x00,0x00,0x00,0xE0,0x0F,0xFF,0x80,0xF8,0x01,0xC0,0x00,0x07,0x06,0x00,0xE0,0x1C,0x07,0x03,0x81,0xC0,0x1C,0x38,0x00,
  125.         0x00,0x03,0xC1,0xC0,0x38,0x0E,0x03,0x80,0x70,0x70,0xE0,0x1C,0x00,0x00,0xE0,0x40,0x38,0x07,0x00,0x07,0x00,0xE0,0x00,0x3F,0xC0,0x00,0x00,0xE0,0x0E,0x00,0x00,0x78,0x01,0xC0,0x00,0x07,0x02,0x00,0xE0,0x1C,0x07,0x03,0x81,0xC0,0x1C,0x38,0x00,
  126.         0x80,0x01,0xC1,0xC0,0x38,0x0E,0x03,0x80,0x70,0x70,0xE0,0x1C,0x00,0x00,0xE0,0x40,0x38,0x07,0x00,0x07,0x00,0xE0,0x00,0x0F,0xE0,0x00,0x00,0xE0,0x0E,0x00,0x00,0x7C,0x01,0xC0,0x00,0x07,0x02,0x04,0xE0,0x1C,0x07,0x03,0x81,0xC0,0x1C,0x38,0x00,
  127.         0xC0,0x01,0xC1,0xC0,0x38,0x0E,0x03,0x80,0x70,0x70,0xE0,0x1C,0x00,0x00,0xE0,0x00,0x38,0x07,0x00,0x07,0x00,0xE0,0x01,0x01,0xF0,0x00,0x00,0xE0,0x0E,0x00,0x00,0xDE,0x01,0xC0,0x00,0x07,0x00,0x0C,0xE0,0x1C,0x07,0x03,0x81,0xC0,0x1C,0x38,0x00,
  128.         0x60,0x01,0xC1,0xC0,0x38,0x0E,0x03,0x80,0x70,0x70,0xE0,0x1C,0x00,0x00,0xE0,0x00,0x38,0x07,0x00,0x07,0x00,0xE0,0x01,0x00,0xF0,0x00,0x00,0xE0,0x0E,0x00,0x01,0x8F,0x01,0xC0,0x00,0x07,0x00,0x18,0xE0,0x1C,0x07,0x03,0x81,0xC0,0x1C,0x38,0x00,
  129.         0x70,0x03,0x81,0xC0,0x38,0x1E,0x03,0x80,0xE0,0x70,0x70,0x1C,0x00,0x00,0xE0,0x00,0x38,0x03,0x80,0x03,0x80,0xE0,0x01,0x80,0x70,0x00,0x00,0xE0,0x07,0x00,0x03,0x07,0x01,0xC0,0x00,0x07,0x00,0x38,0x70,0x1C,0x07,0x03,0x80,0xE0,0x38,0x38,0x00,
  130.         0x78,0x03,0x01,0xC0,0x3C,0x2E,0x03,0xC0,0xE0,0x70,0x70,0x3C,0x00,0x00,0xE0,0x00,0x38,0x01,0x80,0x43,0x81,0xE0,0x00,0xC0,0x60,0x00,0x00,0xE0,0x03,0x00,0x86,0x07,0x81,0xC0,0x00,0x07,0x00,0x70,0x70,0x3C,0x07,0x03,0x80,0x60,0x30,0x38,0x00,
  131.         0x7E,0x0E,0x01,0xE2,0x1F,0xCF,0x03,0xE1,0xC0,0xF8,0x38,0x7E,0x00,0x01,0xF0,0x00,0x7C,0x00,0xE1,0x81,0xC3,0xF0,0x00,0xE0,0xE0,0x00,0x01,0xF0,0x01,0xC3,0x0E,0x07,0xE1,0xE2,0x00,0x0F,0x81,0xF0,0x38,0x7E,0x0F,0x83,0xC4,0x30,0x60,0x7C,0x00,
  132.         0x23,0xF8,0x00,0xFC,0x0F,0x0F,0xC3,0x9F,0x03,0xFE,0x0F,0x9F,0x80,0x07,0xFC,0x01,0xFF,0x00,0x7E,0x00,0x7C,0xFC,0x00,0x9F,0x80,0x00,0x07,0xFC,0x00,0xFC,0x3F,0x8F,0xF0,0xFC,0x00,0x3F,0xFF,0xF0,0x0F,0x9F,0xBF,0xE1,0xF8,0x1F,0xC1,0xFF,0x00,
  133.         0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  134.         0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  135.         0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  136.         0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  137.         0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  138.         0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  139.         0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
  140.     };
  141.  
  142. static char            Quill[] =
  143.     {
  144.         0x00,0x01,0x00,0x00,0x00,0x02,0x80,0x00,0x00,0x04,0x40,0x00,0x00,0x08,0x20,0x00,
  145.         0x00,0x10,0x10,0x00,0x00,0x20,0x08,0x00,0x00,0x40,0x64,0x00,0x00,0x81,0x2A,0x00,
  146.         0x01,0x02,0xB1,0x00,0x02,0x02,0x74,0x80,0x04,0x05,0x7C,0x40,0x08,0x04,0xC4,0x20,
  147.         0x10,0x02,0xF8,0x10,0x20,0x09,0x88,0x08,0x40,0x0F,0x70,0x04,0x80,0x03,0x20,0x02,
  148.         0x40,0x0B,0xC0,0x01,0x20,0x0F,0x00,0x02,0x10,0x06,0xC0,0x04,0x08,0x02,0x80,0x08,
  149.         0x04,0x06,0x00,0x10,0x02,0x06,0x00,0x20,0x01,0x04,0x00,0x40,0x00,0x84,0x00,0x80,
  150.         0x00,0x44,0x01,0x00,0x00,0x24,0x02,0x00,0x00,0x10,0x04,0x00,0x00,0x08,0x08,0x00,
  151.         0x00,0x04,0x10,0x00,0x00,0x02,0x20,0x00,0x00,0x01,0x40,0x00,0x00,0x00,0x80,0x00
  152.     };
  153.  
  154.  
  155. struct AboutBoxWindowRec
  156.     {
  157.         WinType*                        ScreenID;
  158.         GenericWindowRec*        MyGenericWindow; /* how the window event dispatcher knows us */
  159.     };
  160.  
  161.  
  162. static AboutBoxWindowRec*        CurrentAboutBox = NIL;
  163.  
  164.  
  165. void                    ShowAboutBox(void)
  166.     {
  167.         if (CurrentAboutBox != NIL)
  168.             {
  169.                 ActivateThisWindow(CurrentAboutBox->ScreenID);
  170.             }
  171.          else
  172.             {
  173.                 CurrentAboutBox = (AboutBoxWindowRec*)AllocPtrCanFail(
  174.                     sizeof(AboutBoxWindowRec),"AboutBoxWindowRec");
  175.                 if (CurrentAboutBox == NIL)
  176.                     {
  177.                      FailurePoint1:
  178.                         return;
  179.                     }
  180.                 CurrentAboutBox->ScreenID = MakeNewWindow(eDocumentWindow,eWindowClosable,
  181.                     eWindowNotZoomable,eWindowNotResizable,DialogLeftEdge(WIDTH),
  182.                     DialogTopEdge(HEIGHT),WIDTH,HEIGHT,
  183.                     (void (*)(void*))&AboutBoxWindowUpdator,CurrentAboutBox);
  184.                 if (CurrentAboutBox->ScreenID == 0)
  185.                     {
  186.                      FailurePoint2:
  187.                         ReleasePtr((char*)CurrentAboutBox);
  188.                         CurrentAboutBox = NIL;
  189.                         goto FailurePoint1;
  190.                     }
  191.                 /* notify window management */
  192.                 CurrentAboutBox->MyGenericWindow
  193.                     = CheckInNewWindow(CurrentAboutBox->ScreenID,CurrentAboutBox,
  194.                     (void (*)(void*,MyBoolean,OrdType,OrdType,ModifierFlags))&AboutBoxWindowDoIdle,
  195.                     (void (*)(void*))&AboutBoxWindowBecomeActive,
  196.                     (void (*)(void*))&AboutBoxWindowBecomeInactive,
  197.                     (void (*)(void*))&AboutBoxWindowJustResized,
  198.                     (void (*)(OrdType,OrdType,ModifierFlags,void*))&AboutBoxWindowDoMouseDown,
  199.                     (void (*)(unsigned char,ModifierFlags,void*))&AboutBoxWindowDoKeyDown,
  200.                     (void (*)(void*))&AboutBoxWindowClose,
  201.                     (void (*)(void*))&AboutBoxWindowMenuSetup,
  202.                     (void (*)(void*,MenuItemType*))&AboutBoxWindowDoMenuCommand);
  203.                 if (CurrentAboutBox->MyGenericWindow == NIL)
  204.                     {
  205.                      FailurePoint3:
  206.                         KillWindow(CurrentAboutBox->ScreenID);
  207.                         goto FailurePoint2;
  208.                     }
  209.                 SetWindowName(CurrentAboutBox->ScreenID,"About TextEditor...");
  210.                 AboutBoxWindowUpdator(CurrentAboutBox);
  211.             }
  212.     }
  213.  
  214.  
  215. void                    HideAnyAboutBoxes(void)
  216.     {
  217.         if (CurrentAboutBox != NIL)
  218.             {
  219.                 CheckPtrExistence(CurrentAboutBox);
  220.                 CheckOutDyingWindow(CurrentAboutBox->MyGenericWindow);
  221.                 KillWindow(CurrentAboutBox->ScreenID);
  222.                 ReleasePtr((char*)CurrentAboutBox);
  223.                 CurrentAboutBox = NIL;
  224.             }
  225.     }
  226.  
  227.  
  228. void                    AboutBoxWindowDoIdle(AboutBoxWindowRec* Window,
  229.                                 MyBoolean CheckCursorFlag, OrdType XLoc, OrdType YLoc)
  230.     {
  231.         CheckPtrExistence(Window);
  232.         ERROR(Window != CurrentAboutBox,PRERR(ForceAbort,
  233.             "AboutBoxWindowDoIdle:  window pointer inconsistency"));
  234.         if (CheckCursorFlag)
  235.             {
  236.                 SetArrowCursor();
  237.             }
  238.     }
  239.  
  240.  
  241. void                    AboutBoxWindowBecomeActive(AboutBoxWindowRec* Window)
  242.     {
  243.         CheckPtrExistence(Window);
  244.         ERROR(Window != CurrentAboutBox,PRERR(ForceAbort,
  245.             "AboutBoxWindowBecomeActive:  window pointer inconsistency"));
  246.     }
  247.  
  248.  
  249. void                    AboutBoxWindowBecomeInactive(AboutBoxWindowRec* Window)
  250.     {
  251.         CheckPtrExistence(Window);
  252.         ERROR(Window != CurrentAboutBox,PRERR(ForceAbort,
  253.             "AboutBoxWindowBecomeInactive:  window pointer inconsistency"));
  254.     }
  255.  
  256.  
  257. void                    AboutBoxWindowJustResized(AboutBoxWindowRec* Window)
  258.     {
  259.         EXECUTE(PRERR(ForceAbort,"AboutBoxWindowJustResized:  about box can't resize"));
  260.     }
  261.  
  262.  
  263. void                    AboutBoxWindowDoMouseDown(OrdType XLoc, OrdType YLoc,
  264.                                 ModifierFlags Modifiers, AboutBoxWindowRec* Window)
  265.     {
  266.         CheckPtrExistence(Window);
  267.         ERROR(Window != CurrentAboutBox,PRERR(ForceAbort,
  268.             "AboutBoxWindowDoMouseDown:  window pointer inconsistency"));
  269.     }
  270.  
  271.  
  272. void                    AboutBoxWindowDoKeyDown(unsigned char KeyCode,
  273.                                 ModifierFlags Modifiers, AboutBoxWindowRec* Window)
  274.     {
  275.         CheckPtrExistence(Window);
  276.         ERROR(Window != CurrentAboutBox,PRERR(ForceAbort,
  277.             "AboutBoxWindowDoKeyDown:  window pointer inconsistency"));
  278.     }
  279.  
  280.  
  281. void                    AboutBoxWindowClose(AboutBoxWindowRec* Window)
  282.     {
  283.         CheckPtrExistence(Window);
  284.         ERROR(Window != CurrentAboutBox,PRERR(ForceAbort,
  285.             "AboutBoxWindowClose:  window pointer inconsistency"));
  286.         HideAnyAboutBoxes();
  287.     }
  288.  
  289.  
  290. static void        DrawImage(WinType* Window, OrdType X, OrdType Y, OrdType Width,
  291.                                 OrdType Height, char* RawData)
  292.     {
  293.         Bitmap*            TheBitmap;
  294.  
  295.         TheBitmap = MakeBitmap(RawData,Width,Height,((Width + 7) / 8));
  296.         if (TheBitmap != NIL)
  297.             {
  298.                 SetClipRect(Window,0,0,WIDTH,HEIGHT);
  299.                 DrawBitmap(Window,X,Y,TheBitmap);
  300.                 DisposeBitmap(TheBitmap);
  301.             }
  302.     }
  303.  
  304.  
  305. static char        VersionStr[] = "Version "VersionString;
  306. static char        Presents[] = "Presents";
  307.  
  308. #define NumberOfInfos (2)
  309. static char*    Info[NumberOfInfos] =
  310.     {
  311.         "Written by Thomas R. Lawrence (tomlaw@world.std.com), 1993",
  312.         "Developed on a Macintosh using THINK C 6.0."
  313.     };
  314.  
  315.  
  316. void                    AboutBoxWindowUpdator(AboutBoxWindowRec* Window)
  317.     {
  318.         OrdType            Top;
  319.         long                Scan;
  320.  
  321.         DrawImage(Window->ScreenID,IPX,IPY,IPWidth,IPHeight,IntegralProductionsdx);
  322.         DrawTextLine(Window->ScreenID,GetScreenFont(),9,Presents,StrLen(Presents),
  323.             (WIDTH - LengthOfText(GetScreenFont(),9,Presents,StrLen(Presents),ePlain)) / 2,
  324.             PresentsY,ePlain);
  325.         DrawImage(Window->ScreenID,StupidX,StupidY,StupidWidth,StupidHeight,
  326.             StupidFredTextEditor);
  327.         DrawImage(Window->ScreenID,QuillX,QuillY,QuillWidth,QuillHeight,Quill);
  328.         Top = InfoStartY;
  329.         for (Scan = 0; Scan < NumberOfInfos; Scan += 1)
  330.             {
  331.                 ERROR(Info[Scan] == NIL,PRERR(ForceAbort,
  332.                     "AboutBoxUpdator:  Forgot some infos"));
  333.                 DrawTextLine(Window->ScreenID,GetScreenFont(),9,Info[Scan],StrLen(Info[Scan]),
  334.                     (WIDTH - LengthOfText(GetScreenFont(),9,Info[Scan],
  335.                     StrLen(Info[Scan]),ePlain)) / 2,Top,ePlain);
  336.                 Top += GetFontHeight(GetScreenFont(),9);
  337.             }
  338.         DrawTextLine(Window->ScreenID,GetScreenFont(),9,VersionStr,StrLen(VersionStr),5,
  339.             HEIGHT - GetFontHeight(GetScreenFont(),9) - 3,ePlain);
  340.     }
  341.  
  342.  
  343. void                    AboutBoxWindowMenuSetup(AboutBoxWindowRec* Window)
  344.     {
  345.         CheckPtrExistence(Window);
  346.         ERROR(Window != CurrentAboutBox,PRERR(ForceAbort,
  347.             "AboutBoxWindowMenuSetup:  window pointer inconsistency"));
  348.         ChangeItemName(mCloseFile,"Close About Box");
  349.         EnableMenuItem(mCloseFile);
  350.     }
  351.  
  352.  
  353. void                    AboutBoxWindowDoMenuCommand(AboutBoxWindowRec* Window,
  354.                                 MenuItemType* MenuItem)
  355.     {
  356.         CheckPtrExistence(Window);
  357.         ERROR(Window != CurrentAboutBox,PRERR(ForceAbort,
  358.             "AboutBoxWindowDoMenuCommand:  window pointer inconsistency"));
  359.         if (MenuItem == mCloseFile)
  360.             {
  361.                 AboutBoxWindowClose(Window);
  362.             }
  363.         else
  364.             {
  365.                 EXECUTE(PRERR(ForceAbort,"AboutBoxWindowDoMenuCommand:  unknown command"));
  366.             }
  367.     }
  368.