At last, merge the putty-gtk2 branch back into the trunk!
[u/mdw/putty] / mac / mac_res.r
index 5fbfeef..1a8246f 100644 (file)
@@ -1,6 +1,6 @@
-/* $Id: mac_res.r,v 1.17 2003/01/18 12:25:43 ben Exp $ */
+/* $Id$ */
 /*
- * Copyright (c) 1999, 2002 Ben Harris
+ * Copyright (c) 1999, 2002, 2003 Ben Harris
  * All rights reserved.
  *
  * Permission is hereby granted, free of charge, to any person
 /* Get resource IDs we share with C code */
 #include "macresid.h"
 
-/*
- * Current PuTTY version number.  Minor is in BCD
- */
-#define VERSION_MAJOR 0x00
-#define VERSION_MINOR 0x53
+#include "version.r"
 
 /*
  * Finder-related resources
@@ -61,67 +57,145 @@ resource 'pTTY' (0, purgeable) {
 
 resource 'SIZE' (-1) {
     reserved,
-    ignoreSuspendResumeEvents,
+    acceptSuspendResumeEvents,
     reserved,
     canBackground,
-    needsActivateOnFGSwitch,
+    doesActivateOnFGSwitch,
     backgroundAndForeground,
     dontGetFrontClicks,
     ignoreAppDiedEvents,
     is32BitCompatible,
-    notHighLevelEventAware,
-    onlyLocalHLEvents,
-    notStationeryAware,
+    isHighLevelEventAware,
+    localandRemoteHLEvents,
+    isStationeryAware,
     dontUseTextEditServices,
     reserved,
     reserved,
     reserved,
+    2048 * 1024,       /* Preferred size */
     1024 * 1024,       /* Minimum size */
-    1024 * 1024,       /* Preferred size */
 };
 
-resource 'FREF' (128, purgeable) {
+#define FREF_APPL 128
+#define FREF_Sess 129
+#define FREF_Sesss 130
+#define FREF_HKey 131
+#define FREF_Seed 132
+
+resource 'FREF' (FREF_APPL, purgeable) {
     /* The application itself */
-    'APPL', 128, ""
+    'APPL', FREF_APPL, ""
 };
 
-resource 'FREF' (129, purgeable) {
+resource 'FREF' (FREF_Sess, purgeable) {
     /* Saved session */
-    'Sess', 129, ""
-    };
+    'Sess', FREF_Sess, ""
+};
+
+resource 'FREF' (FREF_Sesss, purgeable) {
+    /* Saved session stationery pad*/
+    'sess', FREF_Sesss, ""
+};
 
-resource 'FREF' (130, purgeable) {
+resource 'FREF' (FREF_HKey, purgeable) {
     /* SSH host keys database */
-    'HKey', 130, ""
+    'HKey', FREF_HKey, ""
 };
 
-resource 'FREF' (131, purgeable) {
+resource 'FREF' (FREF_Seed, purgeable) {
     /* Random seed */
-    'Seed', 131, ""
+    'Seed', FREF_Seed, ""
 };
 
 resource 'BNDL' (128, purgeable) {
     'pTTY', 0,
     {
        'ICN#', {
-           128, 128,
-           129, 129,
-           130, 130,
-           131, 131
+           FREF_APPL, FREF_APPL,
+           FREF_Sess, FREF_Sess,
+           FREF_Sesss, FREF_Sesss
+       },
+       'FREF', {
+           FREF_APPL, FREF_APPL,
+           FREF_Sess, FREF_Sess,
+           FREF_Sesss, FREF_Sesss,
+       };
+    };
+};
+
+/* "Internal" file types, which can't be opened */
+resource 'BNDL' (129, purgeable) {
+    'pTTI', 0,
+    {
+       'ICN#', {
+           FREF_HKey, FREF_HKey,
+           FREF_Seed, FREF_Seed,
        },
        'FREF', {
-           128, 128,
-           129, 129,
-           130, 130,
-           131, 131
+           FREF_HKey, FREF_HKey,
+           FREF_Seed, FREF_Seed,
        };
     };
 };
 
+/* Open resource, for the Translation Manager and Navigation Services */
+resource 'open' (open_pTTY) {
+    'pTTY',
+    { 'Sess' }
+};
+
+/* Kind resources, for Navigation services etc. */
+resource 'kind' (128) {
+    'pTTY',
+    verBritain,
+    {
+       'Sess', "PuTTY saved session",
+    }
+};
+
+resource 'kind' (129) {
+    'pTTI',
+    verBritain,
+    {
+       'HKey', "PuTTY host key database",
+       'Seed', "PuTTY random number seed",
+    }
+};
+
+#if TARGET_API_MAC_CARBON
+/*
+ * Mac OS X Info.plist.
+ * See Tech Note TN2013 for details.
+ * We don't bother with things that Mac OS X seems to be able to get from
+ * other resources.
+ */
+type 'plst' as 'TEXT';
+
+resource 'plst' (0) {
+    "<?xml version='1.0' encoding='UTF-8'?>\n"
+    "<!DOCTYPE plist PUBLIC '-//Apple Computer//DTD PLIST 1.0//EN'\n"
+    " 'http://www.apple.com/DTDs/PropertyList-1.0.dtd'>\n"
+    "<plist version='1.0'>\n"
+    "  <dict>\n"
+    "    <key>CFBundleInfoDictionaryVersion</key> <string>6.0</string>\n"
+    "    <key>CFBundleIdentifier</key>\n"
+    "      <string>org.tartarus.projects.putty.putty</string>\n"
+    "    <key>CFBundleName</key>                  <string>PuTTY</string>\n"
+    "    <key>CFBundlePackageType</key>           <string>APPL</string>\n"
+    "    <key>CFBundleSignature</key>             <string>pTTY</string>\n"
+    "  </dict>\n"
+    "</plist>\n"
+};
+
+/* Mac OS X doesn't use this, but Mac OS 9 does. */
+type 'carb' as 'TEXT';
+resource 'carb' (0) { "" };
+#endif
+
 /* Icons, courtesy of DeRez */
 
 /* Application icon */
-resource 'ICN#' (128, purgeable) {
+resource 'ICN#' (FREF_APPL, purgeable) {
        {       /* array: 2 elements */
                /* [1] */
                $"00003FFE 00004001 00004FF9 00005005"
@@ -143,8 +217,7 @@ resource 'ICN#' (128, purgeable) {
                $"FFFE0000 7FFC0000 7FFC0000 7FFC"
        }
 };
-
-resource 'icl4' (128, purgeable) {
+resource 'icl4' (FREF_APPL, purgeable) {
        $"000000000000000000FFFFFFFFFFFFF0"
        $"00000000000000000FCCCCCCCCCCCCCF"
        $"00000000000000000FCEEEEEEEEEEECF"
@@ -178,8 +251,7 @@ resource 'icl4' (128, purgeable) {
        $"0FCCCDDDEEEEAF000000000000000000"
        $"0FFFFFFFFFFFFF"
 };
-
-resource 'icl8' (128, purgeable) {
+resource 'icl8' (FREF_APPL, purgeable) {
        $"000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFF00"
        $"0000000000000000000000000000000000FF2B2B2B2B2B2B2B2B2B2B2B2B2BFF"
        $"0000000000000000000000000000000000FF2BFCFCFCFCFCFCFCFCFCFCFC2BFF"
@@ -213,8 +285,7 @@ resource 'icl8' (128, purgeable) {
        $"00FF2BF7F8F9FAFAFBFBFCFCFDFF000000000000000000000000000000000000"
        $"00FFFFFFFFFFFFFFFFFFFFFFFFFF"
 };
-
-resource 'ics#' (128, purgeable) {
+resource 'ics#' (FREF_APPL, purgeable) {
        {       /* array: 2 elements */
                /* [1] */
                $"00FF 0081 008D 0035 00D5 0325 F441 822D"
@@ -224,8 +295,7 @@ resource 'ics#' (128, purgeable) {
                $"FFFF FF7E FF00 FF00 FF00 FF00 FF00 7E"
        }
 };
-
-resource 'ics4' (128) {
+resource 'ics4' (FREF_APPL) {
        $"00000000FFFFFFFF"
        $"00000000FCCCCCCF"
        $"00000000FCEEEECF"
@@ -243,8 +313,7 @@ resource 'ics4' (128) {
        $"FCCCCCCF00000000"
        $"0FFFFFF0"
 };
-
-resource 'ics8' (128) {
+resource 'ics8' (FREF_APPL) {
        $"0000000000000000FFFFFFFFFFFFFFFF"
        $"0000000000000000FF2B2B2B2B2B2BFF"
        $"0000000000000000FF2BFCFCFCFC2BFF"
@@ -265,7 +334,7 @@ resource 'ics8' (128) {
 
 /* Saved-session icon */
 
-resource 'ICN#' (129) {
+resource 'ICN#' (FREF_Sess) {
        {       /* array: 2 elements */
                /* [1] */
                $"1FFFFC00 10000600 10200500 103FFC80"
@@ -287,7 +356,7 @@ resource 'ICN#' (129) {
                $"1FFFFFF0 1FFFFFF0 1FFFFFF0 1FFFFFF0"
        }
 };
-resource 'icl4' (129) {
+resource 'icl4' (FREF_Sess) {
        $"000FFFFFFFFFFFFFFFFFFF0000000000"
        $"000F0C0C0C0C0C0C0C0C0FF000000000"
        $"000FC0C0C0F0C0C0C0C0CFCF00000000"
@@ -321,7 +390,7 @@ resource 'icl4' (129) {
        $"000FC0C0C0C0C0C0C0C0C0C0C0CF0000"
        $"000FFFFFFFFFFFFFFFFFFFFFFFFF"
 };
-resource 'icl8' (129, purgeable) {
+resource 'icl8' (FREF_Sess, purgeable) {
        $"000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000"
        $"000000FFF5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5FFFF000000000000000000"
        $"000000FFF5F5F5F5F5F5FFF5F5F5F5F5F5F5F5F5F5FF2BFF0000000000000000"
@@ -355,7 +424,7 @@ resource 'icl8' (129, purgeable) {
        $"000000FFF5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5FF00000000"
        $"000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
 };
-resource 'ics#' (129, purgeable) {
+resource 'ics#' (FREF_Sess, purgeable) {
        {       /* array: 2 elements */
                /* [1] */
                $"7FE0 4030 4028 403C 5AB4 50D4 5334 5444"
@@ -365,7 +434,7 @@ resource 'ics#' (129, purgeable) {
                $"7FFC 7FFC 7FFC 7FFC 7FFC 7FFC 7FFC 7FFC"
        }
 };
-resource 'ics4' (129) {
+resource 'ics4' (FREF_Sess) {
        $"0FFFFFFFFFF00000"
        $"0F0C0C0C0CFF0000"
        $"0FC0C0C0C0FCF000"
@@ -383,7 +452,7 @@ resource 'ics4' (129) {
        $"0FC0C0C0C0C0CF00"
        $"0FFFFFFFFFFFFF"
 };
-resource 'ics8' (129) {
+resource 'ics8' (FREF_Sess) {
        $"00FFFFFFFFFFFFFFFFFFFF0000000000"
        $"00FFF5F5F5F5F5F5F5F5FFFF00000000"
        $"00FFF5F5F5F5F5F5F5F5FF2BFF000000"
@@ -402,8 +471,146 @@ resource 'ics8' (129) {
        $"00FFFFFFFFFFFFFFFFFFFFFFFFFF"
 };
 
+/* Saved session stationery pad icon */
+resource 'ICN#' (FREF_Sesss, purgeable) {
+       {       /* array: 2 elements */
+               /* [1] */
+               $"3FFFFFE0 20000020 20400238 207FFE28"
+               $"20400228 20000028 2F555628 24000A28"
+               $"24403428 24004A28 24409028 24032A28"
+               $"24444428 2408FFA8 24700528 24401B28"
+               $"247E2128 24044328 24498128 24120328"
+               $"24250128 24588328 24A08128 2EEAAFE8"
+               $"20000848 20800888 20FFF908 20800A08"
+               $"20000C08 3FFFF808 08000008 0FFFFFF8",
+               /* [2] */
+               $"3FFFFFE0 3FFFFFE0 3FFFFFF8 3FFFFFF8"
+               $"3FFFFFF8 3FFFFFF8 3FFFFFF8 3FFFFFF8"
+               $"3FFFFFF8 3FFFFFF8 3FFFFFF8 3FFFFFF8"
+               $"3FFFFFF8 3FFFFFF8 3FFFFFF8 3FFFFFF8"
+               $"3FFFFFF8 3FFFFFF8 3FFFFFF8 3FFFFFF8"
+               $"3FFFFFF8 3FFFFFF8 3FFFFFF8 3FFFFFF8"
+               $"3FFFFFF8 3FFFFFF8 3FFFFFF8 3FFFFFF8"
+               $"3FFFFFF8 3FFFFFF8 0FFFFFF8 0FFFFFF8"
+       }
+};
+resource 'icl4' (FREF_Sesss, purgeable) {
+       $"00FFFFFFFFFFFFFFFFFFFFFFFFF00000"
+       $"00FC0C0C0C0C0C0C0C0C0C0C0CF00000"
+       $"00F0C0C0CFC0C0C0C0C0C0F0C0FFF000"
+       $"00FC0C0C0FFFFFFFFFFFFFFC0CFDF000"
+       $"00F0C0C0CFC0C0C0C0C0C0F0C0FDF000"
+       $"00FC0C0C0D0C0C0C0C0C0CDC0CFDF000"
+       $"00F0FFFDDDDDDDDDDDDDDFF0C0FDF000"
+       $"00FC0F0C0D0C0C0C0C0CF1FC0CFDF000"
+       $"00F0CFC0CDC0C0C0C0FF1FD0C0FDF000"
+       $"00FC0F0C0D0C0C0C0F11FCDC0CFDF000"
+       $"00F0CFC0CDC0C0C0F11FC0D0C0FDF000"
+       $"00FC0F0C0D0C0CFF11FCFCDC0CFDF000"
+       $"00F0CFC0CDC0CF111FC0CFD0C0FDF000"
+       $"00FC0F0C0D0CF111FFFFFFFFFCFDF000"
+       $"00F0CFC0CDFF111111111FDFC0FDF000"
+       $"00FC0F0C0F111111111FFCDF0CFDF000"
+       $"00F0CFC0CDFFFFF111F0C0DFC0FDF000"
+       $"00FC0F0C0D0C0F111F0C0CDF0CFDF000"
+       $"00F0CFC0C0C0F11FF0C0C0DFC0FDF000"
+       $"00FC0F0C0C0F11FC0C0C0CDF0CFDF000"
+       $"00F0CFC0C0F11FCFC0C0C0DFC0FDF000"
+       $"00FC0F0C0F1FFC0CFC0C0CDF0CFDF000"
+       $"00F0CFC0F1F0C0C0E0C0C0DFC0FDF000"
+       $"00FCFFFDFFDDDDDDEDDDFFFFFFFDF000"
+       $"00F0C0C0D0C0C0C0C0C0FCCCCFDDF000"
+       $"00FC0C0CFC0C0C0C0C0CFCCCFDDCF000"
+       $"00F0C0C0FFFFFFFFFFFFFCCFDDCCF000"
+       $"00FC0C0CFC0C0C0C0C0CFCFDDCCCF000"
+       $"00F0C0C0C0C0C0C0C0C0FFDDCCCCF000"
+       $"00FFFFFFFFFFFFFFFFFFFDDCCCCCF000"
+       $"0000FDDDDDDDDDDDDDDDDDCCCCCCF000"
+       $"0000FFFFFFFFFFFFFFFFFFFFFFFFF0"
+};
+resource 'icl8' (FREF_Sesss, purgeable) {
+       $"0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000"
+       $"0000FFF5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5FF0000000000"
+       $"0000FFF5F5F5F5F5F5FFF5F5F5F5F5F5F5F5F5F5F5F5FFF5F5F5FFFFFF000000"
+       $"0000FFF5F5F5F5F5F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F5F5FFF9FF000000"
+       $"0000FFF5F5F5F5F5F5FFF5F5F5F5F5F5F5F5F5F5F5F5FFF5F5F5FFF9FF000000"
+       $"0000FFF5F5F5F5F5F5F9F5F5F5F5F5F5F5F5F5F5F5F5F9F5F5F5FFF9FF000000"
+       $"0000FFF5FFFFFFF9F9F9F9F9F9F9F9F9F9F9F9F9F9FFFFF5F5F5FFF9FF000000"
+       $"0000FFF5F5FFF5F5F5F9F5F5F5F5F5F5F5F5F5F5FF05FFF5F5F5FFF9FF000000"
+       $"0000FFF5F5FFF5F5F5F9F5F5F5F5F5F5F5F5FFFF05FFF9F5F5F5FFF9FF000000"
+       $"0000FFF5F5FFF5F5F5F9F5F5F5F5F5F5F5FF0505FFF5F9F5F5F5FFF9FF000000"
+       $"0000FFF5F5FFF5F5F5F9F5F5F5F5F5F5FF0505FFF5F5F9F5F5F5FFF9FF000000"
+       $"0000FFF5F5FFF5F5F5F9F5F5F5F5FFFF0505FFF5FFF5F9F5F5F5FFF9FF000000"
+       $"0000FFF5F5FFF5F5F5F9F5F5F5FF050505FFF5F5F5FFF9F5F5F5FFF9FF000000"
+       $"0000FFF5F5FFF5F5F5F9F5F5FF050505FFFFFFFFFFFFFFFFFFF5FFF9FF000000"
+       $"0000FFF5F5FFF5F5F5F9FFFF050505050505050505FFF9FFF5F5FFF9FF000000"
+       $"0000FFF5F5FFF5F5F5FF050505050505050505FFFFF5F9FFF5F5FFF9FF000000"
+       $"0000FFF5F5FFF5F5F5F9FFFFFFFFFF050505FFF5F5F5F9FFF5F5FFF9FF000000"
+       $"0000FFF5F5FFF5F5F5F9F5F5F5FF050505FFF5F5F5F5F9FFF5F5FFF9FF000000"
+       $"0000FFF5F5FFF5F5F5F5F5F5FF0505FFFFF5F5F5F5F5F9FFF5F5FFF9FF000000"
+       $"0000FFF5F5FFF5F5F5F5F5FF0505FFF5F5F5F5F5F5F5F9FFF5F5FFF9FF000000"
+       $"0000FFF5F5FFF5F5F5F5FF0505FFF5FFF5F5F5F5F5F5F9FFF5F5FFF9FF000000"
+       $"0000FFF5F5FFF5F5F5FF05FFFFF5F5F5FCF5F5F5F5F5F9FFF5F5FFF9FF000000"
+       $"0000FFF5F5FFF5F5FF05FFF5F5F5F5F5FCF5F5F5F5F5F9FFF5F5FFF9FF000000"
+       $"0000FFF5FFFFFFF9FFFFF9F9F9F9F9F9FCF9F9F9FFFFFFFFFFFFFFF9FF000000"
+       $"0000FFF5F5F5F5F5F9F5F5F5F5F5F5F5F5F5F5F5FF2B2B2BF7FFF9F7FF000000"
+       $"0000FFF5F5F5F5F5FFF5F5F5F5F5F5F5F5F5F5F5FF2B2BF7FFF9F72BFF000000"
+       $"0000FFF5F5F5F5F5FFFFFFFFFFFFFFFFFFFFFFFFFF2BF7FFF9F72BF6FF000000"
+       $"0000FFF5F5F5F5F5FFF5F5F5F5F5F5F5F5F5F5F5FFF7FFF9F72BF6F6FF000000"
+       $"0000FFF5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5FFFFF9F72BF6F6F6FF000000"
+       $"0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F72BF6F6F6F6FF000000"
+       $"00000000FFF9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F72BF6F6F6F6F6FF000000"
+       $"00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+};
+resource 'ics#' (FREF_Sesss, purgeable) {
+       {       /* array: 2 elements */
+               /* [1] */
+               $"7FF8 4008 756E 61AA 666A 688A 646A 698A"
+               $"762A 6A8A 507A 5FD2 4062 7FC2 1002 1FFE",
+               /* [2] */
+               $"7FF8 7FF8 7FFE 7FFE 7FFE 7FFE 7FFE 7FFE"
+               $"7FFE 7FFE 7FFE 7FFE 7FFE 7FFE 1FFE 1FFE"
+       }
+};
+resource 'ics4' (FREF_Sesss, purgeable) {
+       $"0FFFFFFFFFFFF000"
+       $"0FC0C0C0C0C0F000"
+       $"0FFDDDDDDFFCFFF0"
+       $"0FF0C0CFF1F0FDF0"
+       $"0FFC0FF11FDCFDF0"
+       $"0FF0F111F0D0FDF0"
+       $"0FFC0F111FDCFDF0"
+       $"0FF0F11FF0D0FDF0"
+       $"0FFF1FFC0CDCFDF0"
+       $"0FFCFDDDDDD0FDF0"
+       $"0F0F0C0C0FFFFDF0"
+       $"0FCFFFFFFFCFDDF0"
+       $"0F0C0C0C0FFDDCF0"
+       $"0FFFFFFFFFDDC0F0"
+       $"000FDDDDDDDC0CF0"
+       $"000FFFFFFFFFFFF0"
+};
+resource 'ics8' (FREF_Sesss, purgeable) {
+       $"00FFFFFFFFFFFFFFFFFFFFFFFF000000"
+       $"00FFF5F5F5F5F5F5F5F5F5F5FF000000"
+       $"00FFFFF9F9F9F9F9F9FFFFF5FFFFFF00"
+       $"00FFFFF5F5F5F5FFFF05FFF5FFF9FF00"
+       $"00FFFFF5F5FFFF0505FFF9F5FFF9FF00"
+       $"00FFFFF5FF050505FFF5F9F5FFF9FF00"
+       $"00FFFFF5F5FF050505FFF9F5FFF9FF00"
+       $"00FFFFF5FF0505FFFFF5F9F5FFF9FF00"
+       $"00FFFFFF05FFFFF5F5F5F9F5FFF9FF00"
+       $"00FFFFF8FFF9F9F9F9F9F9F5FFF9FF00"
+       $"00FFF5FFF5F5F5F5F5FFFFFFFFF9FF00"
+       $"00FFF5FFFFFFFFFFFFFF2BFFF9F9FF00"
+       $"00FFF5F5F5F5F5F5F5FFFFF9F9F5FF00"
+       $"00FFFFFFFFFFFFFFFFFFF9F9F5F5FF00"
+       $"000000FFF9F9F9F9F9F9F9F5F5F5FF00"
+       $"000000FFFFFFFFFFFFFFFFFFFFFFFF"
+};
+
 /* Known hosts icon */
-resource 'ICN#' (130, purgeable) {
+resource 'ICN#' (FREF_HKey, purgeable) {
        {       /* array: 2 elements */
                /* [1] */
                $"1FFFFC00 10000600 10000500 1FFFFC80"
@@ -425,7 +632,7 @@ resource 'ICN#' (130, purgeable) {
                $"1FFFFFF0 1FFFFFF0 1FFFFFF0 1FFFFFF0"
        }
 };
-resource 'icl4' (130, purgeable) {
+resource 'icl4' (FREF_HKey, purgeable) {
        $"000FFFFFFFFFFFFFFFFFFF0000000000"
        $"000F00000000000000000FF000000000"
        $"000F00000000000000000FCF00000000"
@@ -459,7 +666,7 @@ resource 'icl4' (130, purgeable) {
        $"000FC0C0C0C0C0C0C0C0C0C0C0CF0000"
        $"000FFFFFFFFFFFFFFFFFFFFFFFFF"
 };
-resource 'icl8' (130, purgeable) {
+resource 'icl8' (FREF_HKey, purgeable) {
        $"000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000"
        $"000000FF0000000000000000000000000000000000FFFF000000000000000000"
        $"000000FF0000000000000000000000000000000000FFF6FF0000000000000000"
@@ -496,7 +703,7 @@ resource 'icl8' (130, purgeable) {
 
 /* Random seed icon */
 
-resource 'ICN#' (131, purgeable) {
+resource 'ICN#' (FREF_Seed, purgeable) {
        {       /* array: 2 elements */
                /* [1] */
                $"1FFFFC00 18F36600 161EF500 1CC92C80"
@@ -518,7 +725,7 @@ resource 'ICN#' (131, purgeable) {
                $"1FFFFFF0 1FFFFFF0 1FFFFFF0 1FFFFFF0"
        }
 };
-resource 'icl4' (131) {
+resource 'icl4' (FREF_Seed) {
        $"000FFFFFFFFFFFFFFFFFFF0000000000"
        $"000FFC0CFFFF0CFF1FFC0FF000000000"
        $"000F0FF0C0CFFFF1FFFFCFCF00000000"
@@ -552,7 +759,7 @@ resource 'icl4' (131) {
        $"000FCFCFFFC0FFF0CFC0CFC0C0FF0000"
        $"000FFFFFFFFFFFFFFFFFFFFFFFFF"
 };
-resource 'icl8' (131) {
+resource 'icl8' (FREF_Seed) {
        $"000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000"
        $"000000FFFFF5F5F5FFFFFFFFF5F5FFFF05FFFFF5F5FFFF000000000000000000"
        $"000000FFF5FFFFF5F5F5F5FFFFFFFF05FFFFFFFFF5FF2BFF0000000000000000"
@@ -586,7 +793,7 @@ resource 'icl8' (131) {
        $"000000FFF5FFF5FFFFFFF5F5FFFFFFF5F5FFF5F5F5FFF5F5F5F5FFFF00000000"
        $"000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
 };
-resource 'ics#' (131) {
+resource 'ics#' (FREF_Seed) {
        {       /* array: 2 elements */
                /* [1] */
                $"7FE0 56B0 59A8 637C 51DC 6794 59AC 76EC"
@@ -596,7 +803,7 @@ resource 'ics#' (131) {
                $"7FFC 7FFC 7FFC 7FFC 7FFC 7FFC 7FFC 7FFC"
        }
 };
-resource 'ics4' (131) {
+resource 'ics4' (FREF_Seed) {
        $"0FFFFFFFFFF00000"
        $"0F0F0FF1FCFF0000"
        $"0FCFF11FF0FCF000"
@@ -614,7 +821,7 @@ resource 'ics4' (131) {
        $"0FC0CFC0C0F0CF00"
        $"0FFFFFFFFFFFFF"
 };
-resource 'ics8' (131) {
+resource 'ics8' (FREF_Seed) {
        $"00FFFFFFFFFFFFFFFFFFFF0000000000"
        $"00FFF5FFF5FFFF05FFF5FFFF00000000"
        $"00FFF5FFFF0505FFFFF5FF2BFF000000"
@@ -633,52 +840,34 @@ resource 'ics8' (131) {
        $"00FFFFFFFFFFFFFFFFFFFFFFFFFF"
 };
 
-resource 'vers' (1, purgeable) {
-    /* XXX This needs to be updated for each new version */
-    VERSION_MAJOR, VERSION_MINOR,
-#ifdef RELEASE
-    beta,
-#else
-    development,
-#endif
-    0, /* No prerelease version */
-    verBritain,
-#ifdef RELEASESTR
-    RELEASESTR,
-    "Release " RELEASESTR,
-#else
-#ifdef SNAPSHOTSTR
-    SNAPSHOTSTR,
-    "Development snapshot " SNAPSHOTSTR,
-#else
-    "unknown",
-    "Unidentified build, " $$Date " " $$Time,
-#endif
-#endif
+/*
+ * Resources to copy into created files
+ */
+
+/*
+ * Application-missing message string, for random seed and host key database
+ * files.
+ */
+resource 'STR ' (-16397, purgeable) {
+    "This file is used internally by PuTTY.  It cannot be opened."
 };
 
-resource 'vers' (2, purgeable) {
-    /* XXX This needs to be updated for each new version */
-    VERSION_MAJOR, VERSION_MINOR,
-#ifdef RELEASE
-    beta,
-#else
-    development,
-#endif
-    0, /* No prerelease version */
-    verBritain,
-#ifdef RELEASESTR
-    RELEASESTR,
-    "PuTTY " RELEASESTR,
-#else
-#ifdef SNAPSHOTSTR
-    SNAPSHOTSTR,
-    "PuTTY snapshot " SNAPSHOTSTR,
-#else
-    "unknown",
-    "PuTTY",
-#endif
-#endif
+/* Missing-application name string, for saved sessions. */
+resource 'STR ' (-16396, purgeable) {
+    "PuTTY"
+};
+
+/* ResEdit template resource for saved sessions. */
+
+type 'TMPL' {
+    array {
+       pstring;
+       literal longint;
+    };
+};
+
+resource 'TMPL' (TMPL_Int, "Int ", purgeable) {
+    { "Value", 'DLNG' }
 };
 
 /*
@@ -688,7 +877,7 @@ resource 'vers' (2, purgeable) {
 /* Menu bar */
 
 resource 'MBAR' (MBAR_Main, preload) {
-    { mApple, mFile, mEdit }
+    { mApple, mFile, mEdit, mWindow }
 };
 
 resource 'MENU' (mApple, preload) {
@@ -706,13 +895,19 @@ resource 'MENU' (mApple, preload) {
 resource 'MENU' (mFile, preload) {
     mFile,
     textMenuProc,
-    0b11111111111111111111111111110111,
+    0b11111111111111111111110111101011,
     enabled,
-    "Session",
+    "File",
     {
        "New",                  noicon, "N",   nomark, plain,
        "Open\0xc9",            noicon, "O",   nomark, plain,
+       "-",                    noicon, nokey, nomark, plain,
+       "Change Settings",      noicon, nokey, nomark, plain,
+       "-",                    noicon, nokey, nomark, plain,
        "Close",                noicon, "W",   nomark, plain,
+       "Save",                 noicon, "S",   nomark, plain,
+       "Save As\0xc9",         noicon, nokey, nomark, plain,
+       "Duplicate",            noicon, "D",   nomark, plain,
        "-",                    noicon, nokey, nomark, plain,
        "Quit",                 noicon, "Q",   nomark, plain,
     }
@@ -735,6 +930,17 @@ resource 'MENU' (mEdit, preload) {
     }
 };
 
+resource 'MENU' (mWindow, preload) {
+    mWindow,
+    textMenuProc,
+    0b11111111111111111111111111111111,
+    enabled,
+    "Window",
+    {
+       "Show Event Log",       noicon, nokey, nomark, plain,
+    }
+};
+
 /* Fatal error box.  Stolen from the Finder. */
 
 resource 'ALRT' (wFatal, "fatalbox", purgeable) {
@@ -767,6 +973,186 @@ resource 'DITL' (wFatal, "fatalbox", purgeable) {
        }
 };
 
+/* Caution box.  Stolen from the Finder. */
+
+resource 'ALRT' (wQuestion, "questionbox", purgeable) {
+       {54, 67, 152, 435},
+       wQuestion,
+       beepStages,
+       alertPositionMainScreen
+};
+
+resource 'DITL' (wQuestion, "fatalbox", purgeable) {
+       {       /* array DITLarray: 3 elements */
+               /* [1] */
+               {68, 299, 88, 358},
+               Button {
+                       enabled,
+                       "OK"
+               },
+               /* [2] */
+               {68, 227, 88, 286},
+               Button {
+                       enabled,
+                       "Cancel"
+               },
+               /* [3] */
+               {7, 74, 55, 358},
+               StaticText {
+                       disabled,
+                       "^0"
+               }
+       }
+};
+
+/* Absent host key */
+
+resource 'ALRT' (wAbsent, "absent", purgeable) {
+       {37, 67, 337, 435},
+       wAbsent,
+       beepStages,
+       alertPositionMainScreen
+};
+
+resource 'DITL' (wAbsent, "absent", purgeable) {
+       {       /* array DITLarray: 8 elements */
+               /* [1] */
+               {10, 72, 60, 357},
+               StaticText {
+                       disabled,
+                       "The server's host key is not cached.  You "
+                       "have no guarantee that the server is the "
+                       "computer you think it is."
+               },
+               /* [2] */
+               {65, 72, 113, 355},
+               StaticText {
+                       disabled,
+                       "The server's ^0 key fingerprint is:\n^1"
+               },
+               /* [3] */
+               {121, 72, 172, 354},
+               StaticText {
+                       disabled,
+                       "If you trust this host, hit Add Key to add "
+                       "the key to ^2's cache and carry on "
+                       "connecting."
+               },
+               /* [4] */
+               {178, 72, 226, 354},
+               StaticText {
+                       disabled,
+                       "If you want to carry on connecting just "
+                       "once, without adding the key to the cache, "
+                       "select Just Once."
+               },
+               /* [5] */
+               {233, 72, 271, 353},
+               StaticText {
+                       disabled,
+                       "If you do not trust this host, hit Cancel "
+                       "to abandon the connection."
+               },
+               /* [6] */
+               {275, 72, 295, 139},
+               Button {
+                       enabled,
+                       "Add Key"
+               },
+               /* [7] */
+               {275, 217, 295, 277},
+               Button {
+                       enabled,
+                       "Cancel"
+               },
+               /* [8] */
+               {275, 290, 295, 360},
+               Button {
+                       enabled,
+                       "Just Once"
+               }
+       }
+};
+
+/* Wrong host key */
+
+resource 'ALRT' (wWrong, "wrong", purgeable) {
+       {32, 67, 422, 435},
+       wWrong,
+       beepStages,
+       alertPositionMainScreen
+};
+
+resource 'DITL' (wWrong, "wrong", purgeable) {
+       {       /* array DITLarray: 9 elements */
+               /* [1] */
+               {10, 72, 26, 358},
+               StaticText {
+                       disabled,
+                       "WARNING - POTENTIAL SECURITY BREACH!"
+               },
+               /* [2] */
+               {32, 72, 131, 357},
+               StaticText {
+                       disabled,
+                       "The server's host key does not match the "
+                       "one ^0 has cached.  This means that either "
+                       "the server administrator has changed "
+                       "the host key, or you have actually connected "
+                       "to another computer pretending to be the "
+                       "server."
+               },
+               /* [3] */
+               {136, 72, 190, 356},
+               StaticText {
+                       disabled,
+                       "The new ^1 key fingerprint is:\n^2"
+               },
+               /* [4] */
+               {190, 72, 238, 357},
+               StaticText {
+                       disabled,
+                       "If you were expecting this change and "
+                       "trust the new key, hit Update Key to update "
+                       "^0's cache and continue connecting."
+               },
+               /* [5] */
+               {246, 72, 294, 358},
+               StaticText {
+                       disabled,
+                       "If you want to carry on connecting just "
+                       "once, without adding the key to the cache, "
+                       "select Just Once."
+               },
+               /* [6] */
+               {301, 72, 349, 358},
+               StaticText {
+                       disabled,
+                       "If you do not trust this host, hit Cancel "
+                       "to abandon the connection.  This is the "
+                       "ONLY guaranteed safe choice."
+               },
+               /* [7] */
+               {360, 72, 380, 163},
+               Button {
+                       enabled,
+                       "Update Key"
+               },
+               /* [8] */
+               {360, 217, 380, 277},
+               Button {
+                       enabled,
+                       "Cancel"
+               },
+               /* [9] */
+               {360, 290, 380, 360},
+               Button {
+                       enabled,
+                       "Just Once"
+               }
+       }
+};
+
 /* Terminal window */
 
 resource 'WIND' (wTerminal, "terminal", purgeable) {
@@ -787,30 +1173,27 @@ resource 'CNTL' (cVScroll, "vscroll", purgeable) {
 
 /* Settings dialogue */
 
-resource 'DLOG' (wSettings, "settings", purgeable) {
-    { 0, 0, 46, 240 },
+resource 'WIND' (wSettings, "settings", purgeable) {
+    { 0, 0, 432, 626 },
     noGrowDocProc,
     invisible,
     goAway,
-    wSettings,
-    wSettings,
-    "Settings",
+    0x0,
+    "untitled",
     staggerParentWindowScreen
 };
 
-resource 'dlgx' (wSettings, "settings", purgeable) {
-    versionZero {
-       kDialogFlagsUseThemeBackground | kDialogFlagsUseThemeControls
-    }
+/* Event log */
+resource 'WIND' (wEventLog, "event log", purgeable) {
+    { 0, 0, 200, 200 },
+    zoomDocProc,
+    invisible,
+    goAway,
+    0x0,
+    "PuTTY Event Log",
+    staggerParentWindowScreen
 };
 
-resource 'DITL' (wSettings, "settings", purgeable) {
-    {
-       { 13, 13, 33, 227 },
-       Button { enabled, "Open" },
-    }
-};        
-
 /* "About" box */
 
 resource 'DLOG' (wAbout, "about", purgeable) {
@@ -838,7 +1221,7 @@ resource 'DITL' (wAbout, "about", purgeable) {
        StaticText { disabled, "PuTTY"},
        { 42, 13, 74, 227 },
        StaticText { disabled, "Some version or other\n"
-                              "Copyright © 1997-9 Simon Tatham"},
+                              "Copyright © 1997-2008 Simon Tatham"},
     }
 };
 
@@ -859,11 +1242,12 @@ type 'TEXT' {
 };
 
 resource 'TEXT' (wLicence, "licence", purgeable) {
-    "PuTTY is copyright 1997-2003 Simon Tatham.\n"
+    "PuTTY is copyright 1997-2008 Simon Tatham.\n"
     "\n"
-    "Portions copyright Robert de Bath, Joris van Rantwijk, Delian"
-    "Delchev, Andreas Schultz, Jeroen Massar, Wez Furlong, Nicolas Barry,"
-    "Justin Bradford, and CORE SDI S.A.\n"
+    "Portions copyright Robert de Bath, Joris van Rantwijk, Delian "
+    "Delchev, Andreas Schultz, Jeroen Massar, Wez Furlong, Nicolas Barry, "
+    "Justin Bradford, Ben Harris, Malcolm Smith, Ahmad Khalifa, Markus "
+    "Kuhn, Colin Watson, and CORE SDI S.A.\n"
     "\n"    
     "Permission is hereby granted, free of charge, to any person "
     "obtaining a copy of this software and associated documentation "
@@ -886,3 +1270,31 @@ resource 'TEXT' (wLicence, "licence", purgeable) {
     "CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE "
     "SOFTWARE."
 };
+
+/* Custom xDEFs */
+
+data 'CDEF' (CDEF_EditBox) {
+    $"4EF9 00000000"
+};
+data 'CDEF' (CDEF_Default) {
+    $"4EF9 00000000"
+};
+data 'CDEF' (CDEF_ListBox) {
+    $"4EF9 00000000"
+};
+data 'CDEF' (CDEF_GroupBox) {
+    $"43F9 00000000"
+};
+
+/* List box template */
+
+resource 'ldes' (ldes_Default) {
+    versionZero {
+       0, /* rows */
+       1, /* cols */
+       0, 0, /* default cell size */
+       hasVertScroll, noHorizScroll,
+       0, /* LDEF number */
+       noGrowSpace
+    }
+};