Changeset 182 for trunk/ICeCoffEE


Ignore:
Timestamp:
05/14/05 02:47:12 (20 years ago)
Author:
Nicholas Riley
Message:

English.lproj/APEInfo.rtfd: Partial documentation update for 1.4.2;
fixed many instances of outdated and incorrect information.

ICeCoffEE.m: Removed completed "to do" comments - that's what
OmniOutliner and Trac are for. Fixed delimiters to make more sense.
Redid ICCF_ParseURL() to make more sense and strip invalid characters
from beginning of URL. Added note about deprecated getCString:.
Fixed ICCF_ServicesMenuItem() to work on Tiger; moved menu population
logic (where services menu delegate used) to new
ICCF_SetServicesMenu() in ICeCoffEESetServicesMenu.[hm]. Remove key
equivalents from services in ICCF_ConsolidateServicesMenu(). First
pass at a workaround for discontiguous selection: only trigger if
there is no selection. This will be fixed to use a timer.

ICeCoffEEServicePrefController: Fixed service population to work on
Tiger, though keyboard equivalents are not provided; will need to
switch to parsing output of CFServiceControllerCopyServicesEntries()
for that one.

ICeCoffEEWebKit.m: Removed Safari 1.0-1.2 support. Fixed incorrect
comment about -selectionRect only being in Safari
1.1-1.2.

ICeCoffEESetServicesMenu.[hm]: Handle getting a usable services menu
for Panther and Tiger.

Location:
trunk/ICeCoffEE
Files:
3 added
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/ICeCoffEE/ICeCoffEE/ICeCoffEE APE.xcode/nicholas.pbxuser

    r181 r182  
    1111        29B97313FDCFA39411CA2CEA = {
    1212                activeBuildStyle = 4A9504CDFFE6A4B311CA0CBA;
    13                 activeExecutable = E1317A3503DF242100050002;
    14                 activeTarget = E120DB7308141CCB00BF8DDC;
     13                activeExecutable = E165AB3C03E7BCDE00050002;
     14                activeTarget = E1ABAE8D0812F4B2007C5427;
    1515                addToTargets = (
     16                        E1ABAE8D0812F4B2007C5427,
     17                        E1ABAEBA0812F4B2007C5427,
    1618                );
    1719                breakpoints = (
     
    169171                                );
    170172                        };
    171                         PBXPerProjectTemplateStateSaveDate = 137300198;
     173                        PBXPerProjectTemplateStateSaveDate = 137730838;
    172174                        PBXPrepackagedSmartGroups_v2 = (
    173175                                {
     
    644646                                WindowFrame = "{{524, 473}, {756, 352}}";
    645647                        };
    646                         PBXWorkspaceStateSaveDate = 137300198;
    647                 };
    648                 perUserProjectItems = {
    649                         E18B483F082F0CC5000E96F5 = E18B483F082F0CC5000E96F5;
    650                         E18B4846082F0CF2000E96F5 = E18B4846082F0CF2000E96F5;
    651                         E18B4847082F0CF2000E96F5 = E18B4847082F0CF2000E96F5;
    652                         E18B484A082F0CF2000E96F5 = E18B484A082F0CF2000E96F5;
    653                         E18B497A082F0DFB000E96F5 = E18B497A082F0DFB000E96F5;
    654                         E18B497B082F0DFB000E96F5 = E18B497B082F0DFB000E96F5;
    655                         E18B498F082F10DD000E96F5 = E18B498F082F10DD000E96F5;
    656                         E18B4990082F10DD000E96F5 = E18B4990082F10DD000E96F5;
    657                         E18B4991082F10DD000E96F5 = E18B4991082F10DD000E96F5;
    658                         E18B4992082F10DD000E96F5 = E18B4992082F10DD000E96F5;
    659                         E18B49AC082F12B8000E96F5 = E18B49AC082F12B8000E96F5;
    660                         E18B49AD082F12B8000E96F5 = E18B49AD082F12B8000E96F5;
    661                         E18B49AE082F12B8000E96F5 = E18B49AE082F12B8000E96F5;
    662                         E18B49AF082F12B8000E96F5 = E18B49AF082F12B8000E96F5;
    663                         E18B49B0082F12B8000E96F5 = E18B49B0082F12B8000E96F5;
    664                         E18B49B1082F12B8000E96F5 = E18B49B1082F12B8000E96F5;
    665                         E18B49B2082F12B8000E96F5 = E18B49B2082F12B8000E96F5;
    666                         E18B49B3082F12B8000E96F5 = E18B49B3082F12B8000E96F5;
    667                         E18B49B6082F12BD000E96F5 = E18B49B6082F12BD000E96F5;
    668                         E18B49BF082F12FB000E96F5 = E18B49BF082F12FB000E96F5;
    669                         E18B49C0082F12FB000E96F5 = E18B49C0082F12FB000E96F5;
    670                         E18B49C1082F12FB000E96F5 = E18B49C1082F12FB000E96F5;
    671                         E18B49C2082F12FB000E96F5 = E18B49C2082F12FB000E96F5;
    672                         E18B49C3082F12FB000E96F5 = E18B49C3082F12FB000E96F5;
    673                         E18B49C6082F1309000E96F5 = E18B49C6082F1309000E96F5;
    674                         E18B49C7082F1309000E96F5 = E18B49C7082F1309000E96F5;
    675                         E18B49DC082F1726000E96F5 = E18B49DC082F1726000E96F5;
    676                         E18B49DE082F1726000E96F5 = E18B49DE082F1726000E96F5;
    677                         E18B49E6082F18B7000E96F5 = E18B49E6082F18B7000E96F5;
    678                         E18B49E7082F18B7000E96F5 = E18B49E7082F18B7000E96F5;
    679                         E18B49E8082F18B7000E96F5 = E18B49E8082F18B7000E96F5;
    680                         E18B49E9082F18B7000E96F5 = E18B49E9082F18B7000E96F5;
    681                         E18B49EA082F18B7000E96F5 = E18B49EA082F18B7000E96F5;
    682                         E18B49EB082F18B7000E96F5 = E18B49EB082F18B7000E96F5;
    683                         E18B49EC082F18B7000E96F5 = E18B49EC082F18B7000E96F5;
    684                         E18B49ED082F18B7000E96F5 = E18B49ED082F18B7000E96F5;
    685                         E18B49EE082F18B7000E96F5 = E18B49EE082F18B7000E96F5;
    686                         E18B49EF082F18B7000E96F5 = E18B49EF082F18B7000E96F5;
    687                         E18B49F0082F18B7000E96F5 = E18B49F0082F18B7000E96F5;
    688                         E18B49F1082F18B7000E96F5 = E18B49F1082F18B7000E96F5;
    689                         E18B49F2082F18B7000E96F5 = E18B49F2082F18B7000E96F5;
    690                         E18B49F3082F18B7000E96F5 = E18B49F3082F18B7000E96F5;
    691                         E18B49F4082F18B7000E96F5 = E18B49F4082F18B7000E96F5;
    692                         E18B49F5082F18B7000E96F5 = E18B49F5082F18B7000E96F5;
    693                         E18B49F6082F18B7000E96F5 = E18B49F6082F18B7000E96F5;
    694                         E18B49F7082F18C6000E96F5 = E18B49F7082F18C6000E96F5;
    695                         E18B49F8082F18C6000E96F5 = E18B49F8082F18C6000E96F5;
    696                         E18B49FC082F18CA000E96F5 = E18B49FC082F18CA000E96F5;
    697                         E18B49FD082F18CA000E96F5 = E18B49FD082F18CA000E96F5;
    698                         E18B49FE082F18CF000E96F5 = E18B49FE082F18CF000E96F5;
    699                         E18B49FF082F18CF000E96F5 = E18B49FF082F18CF000E96F5;
    700                         E18B4A02082F18E1000E96F5 = E18B4A02082F18E1000E96F5;
    701                         E18B4A03082F18E1000E96F5 = E18B4A03082F18E1000E96F5;
     648                        PBXWorkspaceStateSaveDate = 137730838;
    702649                };
    703650                sourceControlManager = E12B21580548C9B600CFF4E9;
     
    787734        E12FEC3D04959F5A00AEFBF9 = {
    788735                uiCtxt = {
    789                         sepNavIntBoundsRect = "{{0, 0}, {609, 4802}}";
    790                         sepNavSelRange = "{9956, 0}";
    791                         sepNavVisRect = "{{0, 3518}, {609, 566}}";
    792                         sepNavWindowFrame = "{{61, 283}, {750, 502}}";
     736                        sepNavIntBoundsRect = "{{0, 0}, {793, 3718}}";
     737                        sepNavSelRange = "{8048, 0}";
     738                        sepNavVisRect = "{{0, 2030}, {793, 944}}";
     739                        sepNavWindowFrame = "{{65, 118}, {832, 982}}";
    793740                };
    794741        };
     
    902849        E1317B2F03DFC4DE00050002 = {
    903850                uiCtxt = {
    904                         sepNavIntBoundsRect = "{{0, 0}, {621, 5687}}";
    905                         sepNavSelRange = "{12497, 0}";
    906                         sepNavVisRect = "{{0, 4344}, {621, 155}}";
     851                        sepNavIntBoundsRect = "{{0, 0}, {813, 5086}}";
     852                        sepNavSelRange = "{12661, 13}";
     853                        sepNavVisRect = "{{0, 3914}, {813, 170}}";
    907854                        sepNavWindowFrame = "{{84, 262}, {750, 502}}";
    908855                };
     
    921868                uiCtxt = {
    922869                        sepNavIntBoundsRect = "{{0, 0}, {508, 682}}";
    923                         sepNavSelRange = "{1772, 0}";
    924                         sepNavVisRect = "{{0, 130}, {508, 551}}";
     870                        sepNavSelRange = "{1665, 38}";
     871                        sepNavVisRect = "{{0, 99}, {508, 551}}";
    925872                        sepNavWindowFrame = "{{174, 96}, {547, 589}}";
    926873                };
     
    1022969        E14343B303DB4CF200050002 = {
    1023970                uiCtxt = {
    1024                         sepNavIntBoundsRect = "{{0, 0}, {733, 825}}";
    1025                         sepNavSelRange = "{1980, 0}";
    1026                         sepNavVisRect = "{{0, 382}, {733, 443}}";
    1027                         sepNavWindowFrame = "{{38, 304}, {750, 502}}";
     971                        sepNavIntBoundsRect = "{{0, 0}, {725, 746}}";
     972                        sepNavSelRange = "{2148, 0}";
     973                        sepNavVisRect = "{{0, 0}, {725, 745}}";
     974                        sepNavWindowFrame = "{{55, 199}, {764, 783}}";
    1028975                };
    1029976        };
    1030977        E14343B403DB4CF200050002 = {
    1031978                uiCtxt = {
    1032                         sepNavIntBoundsRect = "{{0, 0}, {686, 6787}}";
    1033                         sepNavSelRange = "{6810, 0}";
    1034                         sepNavVisRect = "{{0, 2040}, {686, 353}}";
    1035                         sepNavWindowFrame = "{{469, 47}, {750, 502}}";
     979                        sepNavIntBoundsRect = "{{0, 0}, {774, 6798}}";
     980                        sepNavSelRange = "{21057, 0}";
     981                        sepNavVisRect = "{{0, 5995}, {774, 783}}";
     982                        sepNavWindowFrame = "{{281, 288}, {813, 821}}";
     983                };
     984        };
     985        E14343CD03DB66E900050002 = {
     986                uiCtxt = {
     987                        sepNavIntBoundsRect = "{{0, 0}, {796, 776}}";
     988                        sepNavSelRange = "{231, 0}";
     989                        sepNavVisRect = "{{0, 0}, {796, 775}}";
     990                        sepNavWindowFrame = "{{38, 339}, {835, 813}}";
    1036991                };
    1037992        };
     
    10951050        E165AB3603E7A7FC00050002 = {
    10961051                uiCtxt = {
    1097                         sepNavIntBoundsRect = "{{0, 0}, {743, 3645}}";
     1052                        sepNavIntBoundsRect = "{{0, 0}, {766, 3612}}";
    10981053                        sepNavSelRange = "{1396, 0}";
    1099                         sepNavVisRect = "{{0, 341}, {743, 363}}";
     1054                        sepNavVisRect = "{{0, 0}, {0, 0}}";
    11001055                        sepNavWindowFrame = "{{38, 218}, {750, 502}}";
    11011056                };
     
    12391194                uiCtxt = {
    12401195                        sepNavIntBoundsRect = "{{0, 0}, {686, 622}}";
    1241                         sepNavSelRange = "{322, 18}";
     1196                        sepNavSelRange = "{2052, 35}";
    12421197                        sepNavVisRect = "{{0, 0}, {686, 621}}";
    12431198                        sepNavWindowFrame = "{{378, 506}, {725, 659}}";
     
    12471202                fileReference = E14343B403DB4CF200050002;
    12481203                isa = PBXFileBreakpoint;
    1249                 lineNumber = 153;
     1204                lineNumber = 144;
    12501205                state = 1;
    12511206        };
    1252         E18B483F082F0CC5000E96F5 = {
    1253                 comments = "warning: passing argument 3 of 'CFStringCompare' makes integer from pointer without a cast";
    1254                 fRef = F9A6986E03BE1DF000AA4DA5;
    1255                 isa = PBXTextBookmark;
    1256                 rLen = 1;
    1257                 rLoc = 173;
    1258                 rType = 1;
    1259         };
    1260         E18B4840082F0CD6000E96F5 = {
    1261                 isa = PBXFileReference;
    1262                 lastKnownFileType = sourcecode.c.h;
    1263                 name = CFString.h;
    1264                 path = /Developer/SDKs/MacOSX10.3.9.sdk/System/Library/Frameworks/CoreFoundation.framework/Versions/A/Headers/CFString.h;
    1265                 refType = 0;
    1266                 sourceTree = "<absolute>";
    1267                 uiCtxt = {
    1268                         sepNavIntBoundsRect = "{{0, 0}, {792, 8327}}";
    1269                         sepNavSelRange = "{13407, 196}";
    1270                         sepNavVisRect = "{{0, 2693}, {792, 928}}";
    1271                         sepNavWindowFrame = "{{15, 187}, {831, 986}}";
    1272                 };
    1273         };
    1274         E18B4846082F0CF2000E96F5 = {
    1275                 fRef = E18B4840082F0CD6000E96F5;
    1276                 isa = PBXTextBookmark;
    1277                 rLen = 1;
    1278                 rLoc = 336;
    1279                 rType = 1;
    1280         };
    1281         E18B4847082F0CF2000E96F5 = {
    1282                 fRef = E18B4840082F0CD6000E96F5;
    1283                 isa = PBXTextBookmark;
    1284                 name = CFOptionFlags;
    1285                 rLen = 13;
    1286                 rLoc = 17210;
    1287                 rType = 0;
    1288                 vrLen = 4010;
    1289                 vrLoc = 15255;
    1290         };
    1291         E18B484A082F0CF2000E96F5 = {
    1292                 fRef = F9A6986E03BE1DF000AA4DA5;
    1293                 isa = PBXTextBookmark;
    1294                 name = CFStringCompare;
    1295                 rLen = 15;
    1296                 rLoc = 7767;
    1297                 rType = 0;
    1298                 vrLen = 1604;
    1299                 vrLoc = 6944;
    1300         };
    1301         E18B497A082F0DFB000E96F5 = {
    1302                 comments = "warning: passing argument 3 of 'CFStringCompare' makes integer from pointer without a cast";
    1303                 fRef = F9A6986E03BE1DF000AA4DA5;
    1304                 isa = PBXTextBookmark;
    1305                 rLen = 1;
    1306                 rLoc = 173;
    1307                 rType = 1;
    1308         };
    1309         E18B497B082F0DFB000E96F5 = {
    1310                 fRef = F9A6986E03BE1DF000AA4DA5;
    1311                 isa = PBXTextBookmark;
    1312                 name = "if (CFStringCompare(message, kICPreferencesChanged, NULL) == kCFCompareEqualTo)";
    1313                 rLen = 83;
    1314                 rLoc = 7759;
    1315                 rType = 0;
    1316                 vrLen = 454;
    1317                 vrLoc = 7506;
    1318         };
    1319         E18B498F082F10DD000E96F5 = {
    1320                 fRef = F9A6986E03BE1DF000AA4DA5;
    1321                 isa = PBXTextBookmark;
    1322                 name = "APEMain.m: 174";
    1323                 rLen = 0;
    1324                 rLoc = 7816;
    1325                 rType = 0;
    1326                 vrLen = 451;
    1327                 vrLoc = 7506;
    1328         };
    1329         E18B4990082F10DD000E96F5 = {
    1330                 comments = "warning: pointer targets in passing argument 6 of 'CFStringGetBytes' differ in signedness";
    1331                 fRef = E14343B403DB4CF200050002;
    1332                 isa = PBXTextBookmark;
    1333                 rLen = 1;
    1334                 rLoc = 256;
    1335                 rType = 1;
    1336         };
    1337         E18B4991082F10DD000E96F5 = {
    1338                 fRef = F9A6986E03BE1DF000AA4DA5;
    1339                 isa = PBXTextBookmark;
    1340                 name = "APEMain.m: 174";
    1341                 rLen = 0;
    1342                 rLoc = 7816;
    1343                 rType = 0;
    1344                 vrLen = 451;
    1345                 vrLoc = 7506;
    1346         };
    1347         E18B4992082F10DD000E96F5 = {
    1348                 fRef = E14343B403DB4CF200050002;
    1349                 isa = PBXTextBookmark;
    1350                 name = "ICeCoffEE.m: 257";
    1351                 rLen = 0;
    1352                 rLoc = 8955;
    1353                 rType = 0;
    1354                 vrLen = 408;
    1355                 vrLoc = 8784;
    1356         };
    1357         E18B49AC082F12B8000E96F5 = {
    1358                 fRef = E14343B403DB4CF200050002;
    1359                 isa = PBXTextBookmark;
    1360                 name = "ICeCoffEE.m: 187";
    1361                 rLen = 0;
    1362                 rLoc = 6810;
    1363                 rType = 0;
    1364                 vrLen = 1043;
    1365                 vrLoc = 6274;
    1366         };
    1367         E18B49AD082F12B8000E96F5 = {
    1368                 fRef = E19EB4FA03DD35A700050002;
    1369                 isa = PBXTextBookmark;
    1370                 name = "cachedVersion = NULL;";
    1371                 rLen = 23;
    1372                 rLoc = 1186;
    1373                 rType = 0;
    1374                 vrLen = 1076;
    1375                 vrLoc = 797;
    1376         };
    1377         E18B49AE082F12B8000E96F5 = {
    1378                 fRef = E169DBA103E4EF5E00050002;
    1379                 isa = PBXTextBookmark;
    1380                 name = "Delay(blinkDelay, &junk);";
    1381                 rLen = 42;
    1382                 rLoc = 7867;
    1383                 rType = 0;
    1384                 vrLen = 1177;
    1385                 vrLoc = 7166;
    1386         };
    1387         E18B49AF082F12B8000E96F5 = {
    1388                 comments = "warning: value computed is not used";
    1389                 fRef = E1BF166A03DBE27000050002;
    1390                 isa = PBXTextBookmark;
    1391                 rLen = 1;
    1392                 rLoc = 139;
    1393                 rType = 1;
    1394         };
    1395         E18B49B0082F12B8000E96F5 = {
    1396                 fRef = E14343B403DB4CF200050002;
    1397                 isa = PBXTextBookmark;
    1398                 name = "ICeCoffEE.m: 187";
    1399                 rLen = 0;
    1400                 rLoc = 6810;
    1401                 rType = 0;
    1402                 vrLen = 1043;
    1403                 vrLoc = 6274;
    1404         };
    1405         E18B49B1082F12B8000E96F5 = {
    1406                 fRef = E19EB4FA03DD35A700050002;
    1407                 isa = PBXTextBookmark;
    1408                 name = "cachedVersion = NULL;";
    1409                 rLen = 23;
    1410                 rLoc = 1186;
    1411                 rType = 0;
    1412                 vrLen = 1076;
    1413                 vrLoc = 797;
    1414         };
    1415         E18B49B2082F12B8000E96F5 = {
    1416                 fRef = E169DBA103E4EF5E00050002;
    1417                 isa = PBXTextBookmark;
    1418                 name = "Delay(blinkDelay, &junk);";
    1419                 rLen = 42;
    1420                 rLoc = 7867;
    1421                 rType = 0;
    1422                 vrLen = 1177;
    1423                 vrLoc = 7166;
    1424         };
    1425         E18B49B3082F12B8000E96F5 = {
    1426                 fRef = E1BF166A03DBE27000050002;
    1427                 isa = PBXTextBookmark;
    1428                 name = "ICLog(@\"selectedRange %@ selectionRect %@ textBlinkCount %d\", NSStringFromRange(selectedRange), NSStringFromRect(selectionRect), ICCF_prefs.textBlinkCount);";
    1429                 rLen = 161;
    1430                 rLoc = 4705;
    1431                 rType = 0;
    1432                 vrLen = 1469;
    1433                 vrLoc = 3678;
    1434         };
    1435         E18B49B6082F12BD000E96F5 = {
    1436                 fRef = E1BF166A03DBE27000050002;
    1437                 isa = PBXTextBookmark;
    1438                 name = "ICLog(@\"selectedRange %@ selectionRect %@ textBlinkCount %d\", NSStringFromRange(selectedRange), NSStringFromRect(selectionRect), ICCF_prefs.textBlinkCount);";
    1439                 rLen = 161;
    1440                 rLoc = 4705;
    1441                 rType = 0;
    1442                 vrLen = 1469;
    1443                 vrLoc = 3678;
    1444         };
    1445         E18B49BF082F12FB000E96F5 = {
    1446                 fRef = E1BF166A03DBE27000050002;
    1447                 isa = PBXTextBookmark;
    1448                 name = "ICLog(@\"selectedRange %@ selectionRect %@ textBlinkCount %d\", NSStringFromRange(selectedRange), NSStringFromRect(selectionRect), ICCF_prefs.textBlinkCount);";
    1449                 rLen = 161;
    1450                 rLoc = 4705;
    1451                 rType = 0;
    1452                 vrLen = 1469;
    1453                 vrLoc = 3678;
    1454         };
    1455         E18B49C0082F12FB000E96F5 = {
    1456                 fRef = E1BF4A4D0487C77C00C20906;
    1457                 isa = PBXTextBookmark;
    1458                 name = "German: 1";
    1459                 rLen = 0;
    1460                 rLoc = 15;
    1461                 rType = 0;
    1462                 vrLen = 374;
    1463                 vrLoc = 0;
    1464         };
    1465         E18B49C1082F12FB000E96F5 = {
    1466                 fRef = 089C165DFE840E0CC02AAC07;
    1467                 isa = PBXTextBookmark;
    1468                 rLen = 3;
    1469                 rLoc = 103;
    1470                 rType = 0;
    1471         };
    1472         E18B49C2082F12FB000E96F5 = {
    1473                 fRef = E1BF4A4D0487C77C00C20906;
    1474                 isa = PBXTextBookmark;
    1475                 name = "German: 1";
    1476                 rLen = 0;
    1477                 rLoc = 15;
    1478                 rType = 0;
    1479                 vrLen = 374;
    1480                 vrLoc = 0;
    1481         };
    1482         E18B49C3082F12FB000E96F5 = {
    1483                 fRef = 089C165DFE840E0CC02AAC07;
    1484                 isa = PBXTextBookmark;
    1485                 name = "English: 5";
    1486                 rLen = 0;
    1487                 rLoc = 113;
    1488                 rType = 0;
    1489                 vrLen = 238;
    1490                 vrLoc = 0;
    1491         };
    1492         E18B49C6082F1309000E96F5 = {
    1493                 fRef = E1BF166A03DBE27000050002;
    1494                 isa = PBXTextBookmark;
    1495                 name = "ICLog(@\"selectedRange %@ selectionRect %@ textBlinkCount %d\", NSStringFromRange(selectedRange), NSStringFromRect(selectionRect), ICCF_prefs.textBlinkCount);";
    1496                 rLen = 161;
    1497                 rLoc = 4705;
    1498                 rType = 0;
    1499                 vrLen = 1469;
    1500                 vrLoc = 3678;
    1501         };
    1502         E18B49C7082F1309000E96F5 = {
    1503                 fRef = 089C165DFE840E0CC02AAC07;
    1504                 isa = PBXTextBookmark;
    1505                 name = "English: 5";
    1506                 rLen = 0;
    1507                 rLoc = 113;
    1508                 rType = 0;
    1509                 vrLen = 238;
    1510                 vrLoc = 0;
    1511         };
    1512         E18B49C8082F142B000E96F5 = {
    1513                 isa = PBXFileReference;
    1514                 lastKnownFileType = sourcecode.c.h;
    1515                 name = OSUtils.h;
    1516                 path = /Developer/SDKs/MacOSX10.3.9.sdk/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/Headers/OSUtils.h;
    1517                 refType = 0;
    1518                 sourceTree = "<absolute>";
    1519                 uiCtxt = {
    1520                         sepNavIntBoundsRect = "{{0, 0}, {758, 6116}}";
    1521                         sepNavSelRange = "{8211, 7}";
    1522                         sepNavVisRect = "{{0, 3074}, {758, 353}}";
    1523                 };
    1524         };
    1525         E18B49CF082F1466000E96F5 = {
    1526                 isa = PBXFileReference;
    1527                 lastKnownFileType = sourcecode.c.h;
    1528                 name = CFURL.h;
    1529                 path = /Developer/SDKs/MacOSX10.3.9.sdk/System/Library/Frameworks/CoreFoundation.framework/Versions/A/Headers/CFURL.h;
    1530                 refType = 0;
    1531                 sourceTree = "<absolute>";
    1532                 uiCtxt = {
    1533                         sepNavIntBoundsRect = "{{0, 0}, {758, 4642}}";
    1534                         sepNavSelRange = "{1704, 13}";
    1535                         sepNavVisRect = "{{0, 308}, {758, 353}}";
    1536                 };
    1537         };
    1538         E18B49DC082F1726000E96F5 = {
    1539                 fRef = E18B49DD082F1726000E96F5;
    1540                 isa = PBXTextBookmark;
    1541                 rLen = 0;
    1542                 rLoc = 2147483647;
    1543                 rType = 0;
    1544         };
    1545         E18B49DD082F1726000E96F5 = {
    1546                 isa = PBXFileReference;
    1547                 lastKnownFileType = sourcecode.c.h;
    1548                 name = LSInfo.h;
    1549                 path = /Developer/SDKs/MacOSX10.3.9.sdk/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Headers/LSInfo.h;
    1550                 refType = 0;
    1551                 sourceTree = "<absolute>";
    1552                 uiCtxt = {
    1553                         sepNavIntBoundsRect = "{{0, 0}, {686, 12155}}";
    1554                         sepNavSelRange = "{33879, 24}";
    1555                         sepNavVisRect = "{{0, 11533}, {686, 621}}";
    1556                         sepNavWindowFrame = "{{567, 115}, {725, 659}}";
    1557                 };
    1558         };
    1559         E18B49DE082F1726000E96F5 = {
    1560                 fRef = E18B49DF082F1726000E96F5;
    1561                 isa = PBXTextBookmark;
    1562                 name = LSCopyApplicationURLsFor;
    1563                 rLen = 24;
    1564                 rLoc = 33879;
    1565                 rType = 0;
    1566                 vrLen = 1563;
    1567                 vrLoc = 32560;
    1568         };
    1569         E18B49DF082F1726000E96F5 = {
    1570                 isa = PBXFileReference;
    1571                 name = LSInfo.h;
    1572                 path = /Developer/SDKs/MacOSX10.3.9.sdk/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Headers/LSInfo.h;
    1573                 refType = 0;
    1574                 sourceTree = "<absolute>";
    1575         };
    1576         E18B49E6082F18B7000E96F5 = {
    1577                 fRef = E1BF166A03DBE27000050002;
    1578                 isa = PBXTextBookmark;
    1579                 name = "ICLog(@\"selectedRange %@ selectionRect %@ textBlinkCount %d\", NSStringFromRange(selectedRange), NSStringFromRect(selectionRect), ICCF_prefs.textBlinkCount);";
    1580                 rLen = 161;
    1581                 rLoc = 4705;
    1582                 rType = 0;
    1583                 vrLen = 1469;
    1584                 vrLoc = 3678;
    1585         };
    1586         E18B49E7082F18B7000E96F5 = {
    1587                 fRef = E18B49C8082F142B000E96F5;
    1588                 isa = PBXTextBookmark;
    1589                 name = "Delay(";
    1590                 rLen = 7;
    1591                 rLoc = 8211;
    1592                 rType = 0;
    1593                 vrLen = 855;
    1594                 vrLoc = 7848;
    1595         };
    1596         E18B49E8082F18B7000E96F5 = {
    1597                 fRef = E169DBA103E4EF5E00050002;
    1598                 isa = PBXTextBookmark;
    1599                 name = "ICeCoffEETextEdit.c: 148";
    1600                 rLen = 0;
    1601                 rLoc = 7587;
    1602                 rType = 0;
    1603                 vrLen = 1184;
    1604                 vrLoc = 7166;
    1605         };
    1606         E18B49E9082F18B7000E96F5 = {
    1607                 fRef = E19EB4FC03DD35A700050002;
    1608                 isa = PBXTextBookmark;
    1609                 name = "UICookieMonster.h: 1";
    1610                 rLen = 0;
    1611                 rLoc = 0;
    1612                 rType = 0;
    1613                 vrLen = 829;
    1614                 vrLoc = 0;
    1615         };
    1616         E18B49EA082F18B7000E96F5 = {
    1617                 fRef = E19EB4FA03DD35A700050002;
    1618                 isa = PBXTextBookmark;
    1619                 name = "UICookieMonster.m: 106";
    1620                 rLen = 0;
    1621                 rLoc = 2865;
    1622                 rType = 0;
    1623                 vrLen = 416;
    1624                 vrLoc = 2659;
    1625         };
    1626         E18B49EB082F18B7000E96F5 = {
    1627                 fRef = E18B49CF082F1466000E96F5;
    1628                 isa = PBXTextBookmark;
    1629                 name = "const UInt8 *";
    1630                 rLen = 13;
    1631                 rLoc = 1704;
    1632                 rType = 0;
    1633                 vrLen = 1664;
    1634                 vrLoc = 848;
    1635         };
    1636         E18B49EC082F18B7000E96F5 = {
    1637                 fRef = E165AB3603E7A7FC00050002;
    1638                 isa = PBXTextBookmark;
    1639                 name = CFURLCreateWithBytes;
    1640                 rLen = 20;
    1641                 rLoc = 12005;
    1642                 rType = 0;
    1643                 vrLen = 976;
    1644                 vrLoc = 11724;
    1645         };
    1646         E18B49ED082F18B7000E96F5 = {
    1647                 fRef = E1BF166A03DBE27000050002;
    1648                 isa = PBXTextBookmark;
    1649                 name = "ICLog(@\"selectedRange %@ selectionRect %@ textBlinkCount %d\", NSStringFromRange(selectedRange), NSStringFromRect(selectionRect), ICCF_prefs.textBlinkCount);";
    1650                 rLen = 161;
    1651                 rLoc = 4705;
    1652                 rType = 0;
    1653                 vrLen = 1469;
    1654                 vrLoc = 3678;
    1655         };
    1656         E18B49EE082F18B7000E96F5 = {
    1657                 fRef = E169DBA103E4EF5E00050002;
    1658                 isa = PBXTextBookmark;
    1659                 name = "ICeCoffEETextEdit.c: 148";
    1660                 rLen = 0;
    1661                 rLoc = 7587;
    1662                 rType = 0;
    1663                 vrLen = 1184;
    1664                 vrLoc = 7166;
    1665         };
    1666         E18B49EF082F18B7000E96F5 = {
    1667                 fRef = E19EB4FA03DD35A700050002;
    1668                 isa = PBXTextBookmark;
    1669                 name = "UICookieMonster.m: 45";
    1670                 rLen = 0;
    1671                 rLoc = 1200;
    1672                 rType = 0;
    1673                 vrLen = 1076;
    1674                 vrLoc = 797;
    1675         };
    1676         E18B49F0082F18B7000E96F5 = {
    1677                 fRef = E19EB4FC03DD35A700050002;
    1678                 isa = PBXTextBookmark;
    1679                 name = "UICookieMonster.h: 1";
    1680                 rLen = 0;
    1681                 rLoc = 0;
    1682                 rType = 0;
    1683                 vrLen = 829;
    1684                 vrLoc = 0;
    1685         };
    1686         E18B49F1082F18B7000E96F5 = {
    1687                 fRef = E19EB4FA03DD35A700050002;
    1688                 isa = PBXTextBookmark;
    1689                 name = "UICookieMonster.m: 45";
    1690                 rLen = 0;
    1691                 rLoc = 1200;
    1692                 rType = 0;
    1693                 vrLen = 1076;
    1694                 vrLoc = 797;
    1695         };
    1696         E18B49F2082F18B7000E96F5 = {
    1697                 fRef = E19EB4FC03DD35A700050002;
    1698                 isa = PBXTextBookmark;
    1699                 name = "UICookieMonster.h: 1";
    1700                 rLen = 0;
    1701                 rLoc = 0;
    1702                 rType = 0;
    1703                 vrLen = 829;
    1704                 vrLoc = 0;
    1705         };
    1706         E18B49F3082F18B7000E96F5 = {
    1707                 fRef = E19EB4FA03DD35A700050002;
    1708                 isa = PBXTextBookmark;
    1709                 name = "UICookieMonster.m: 106";
    1710                 rLen = 0;
    1711                 rLoc = 2865;
    1712                 rType = 0;
    1713                 vrLen = 416;
    1714                 vrLoc = 2659;
    1715         };
    1716         E18B49F4082F18B7000E96F5 = {
    1717                 fRef = E18B49CF082F1466000E96F5;
    1718                 isa = PBXTextBookmark;
    1719                 name = "const UInt8 *";
    1720                 rLen = 13;
    1721                 rLoc = 1704;
    1722                 rType = 0;
    1723                 vrLen = 1664;
    1724                 vrLoc = 848;
    1725         };
    1726         E18B49F5082F18B7000E96F5 = {
    1727                 fRef = E165AB3603E7A7FC00050002;
    1728                 isa = PBXTextBookmark;
    1729                 name = "ICeCoffEEAction.c: 36";
    1730                 rLen = 0;
    1731                 rLoc = 1396;
    1732                 rType = 0;
    1733                 vrLen = 1588;
    1734                 vrLoc = 975;
    1735         };
    1736         E18B49F6082F18B7000E96F5 = {
    1737                 fRef = 089C165DFE840E0CC02AAC07;
    1738                 isa = PBXTextBookmark;
    1739                 name = "English: 5";
    1740                 rLen = 0;
    1741                 rLoc = 113;
    1742                 rType = 0;
    1743                 vrLen = 238;
    1744                 vrLoc = 0;
    1745         };
    1746         E18B49F7082F18C6000E96F5 = {
    1747                 fRef = E165AB3603E7A7FC00050002;
    1748                 isa = PBXTextBookmark;
    1749                 name = "ICeCoffEEAction.c: 36";
    1750                 rLen = 0;
    1751                 rLoc = 1396;
    1752                 rType = 0;
    1753                 vrLen = 1588;
    1754                 vrLoc = 975;
    1755         };
    1756         E18B49F8082F18C6000E96F5 = {
    1757                 fRef = 089C165DFE840E0CC02AAC07;
    1758                 isa = PBXTextBookmark;
    1759                 name = "English: 5";
    1760                 rLen = 0;
    1761                 rLoc = 113;
    1762                 rType = 0;
    1763                 vrLen = 238;
    1764                 vrLoc = 0;
    1765         };
    1766         E18B49FC082F18CA000E96F5 = {
    1767                 fRef = E165AB3603E7A7FC00050002;
    1768                 isa = PBXTextBookmark;
    1769                 name = "ICeCoffEEAction.c: 36";
    1770                 rLen = 0;
    1771                 rLoc = 1396;
    1772                 rType = 0;
    1773                 vrLen = 1588;
    1774                 vrLoc = 975;
    1775         };
    1776         E18B49FD082F18CA000E96F5 = {
    1777                 fRef = 089C165DFE840E0CC02AAC07;
    1778                 isa = PBXTextBookmark;
    1779                 name = "English: 5";
    1780                 rLen = 0;
    1781                 rLoc = 113;
    1782                 rType = 0;
    1783                 vrLen = 238;
    1784                 vrLoc = 0;
    1785         };
    1786         E18B49FE082F18CF000E96F5 = {
    1787                 fRef = E165AB3603E7A7FC00050002;
    1788                 isa = PBXTextBookmark;
    1789                 name = "ICeCoffEEAction.c: 36";
    1790                 rLen = 0;
    1791                 rLoc = 1396;
    1792                 rType = 0;
    1793                 vrLen = 1588;
    1794                 vrLoc = 975;
    1795         };
    1796         E18B49FF082F18CF000E96F5 = {
    1797                 fRef = 089C165DFE840E0CC02AAC07;
    1798                 isa = PBXTextBookmark;
    1799                 name = "English: 5";
    1800                 rLen = 0;
    1801                 rLoc = 113;
    1802                 rType = 0;
    1803                 vrLen = 238;
    1804                 vrLoc = 0;
    1805         };
    1806         E18B4A02082F18E1000E96F5 = {
    1807                 fRef = E165AB3603E7A7FC00050002;
    1808                 isa = PBXTextBookmark;
    1809                 name = "ICeCoffEEAction.c: 36";
    1810                 rLen = 0;
    1811                 rLoc = 1396;
    1812                 rType = 0;
    1813                 vrLen = 1588;
    1814                 vrLoc = 975;
    1815         };
    1816         E18B4A03082F18E1000E96F5 = {
    1817                 fRef = 089C165DFE840E0CC02AAC07;
    1818                 isa = PBXTextBookmark;
    1819                 name = "English: 5";
    1820                 rLen = 0;
    1821                 rLoc = 113;
    1822                 rType = 0;
    1823                 vrLen = 238;
    1824                 vrLoc = 0;
     1207        E191FC9C0831B8FB003B09BC = {
     1208                uiCtxt = {
     1209                        sepNavIntBoundsRect = "{{0, 0}, {739, 541}}";
     1210                        sepNavSelRange = "{231, 0}";
     1211                        sepNavVisRect = "{{0, 0}, {739, 540}}";
     1212                        sepNavWindowFrame = "{{245, 385}, {778, 578}}";
     1213                };
     1214        };
     1215        E191FC9D0831B8FB003B09BC = {
     1216                uiCtxt = {
     1217                        sepNavIntBoundsRect = "{{0, 0}, {739, 541}}";
     1218                        sepNavSelRange = "{336, 0}";
     1219                        sepNavVisRect = "{{0, 0}, {739, 540}}";
     1220                        sepNavWindowFrame = "{{268, 364}, {778, 578}}";
     1221                };
    18251222        };
    18261223        E19EB4FA03DD35A700050002 = {
     
    19671364        E1BF166A03DBE27000050002 = {
    19681365                uiCtxt = {
    1969                         sepNavIntBoundsRect = "{{0, 0}, {758, 2050}}";
    1970                         sepNavSelRange = "{4705, 161}";
    1971                         sepNavVisRect = "{{0, 1329}, {758, 353}}";
     1366                        sepNavIntBoundsRect = "{{0, 0}, {828, 1258}}";
     1367                        sepNavSelRange = "{833, 0}";
     1368                        sepNavVisRect = "{{0, 11}, {828, 868}}";
     1369                        sepNavWindowFrame = "{{95, 122}, {867, 906}}";
     1370                };
     1371        };
     1372        E1BF166B03DBE27000050002 = {
     1373                uiCtxt = {
     1374                        sepNavIntBoundsRect = "{{0, 0}, {711, 465}}";
     1375                        sepNavSelRange = "{232, 0}";
     1376                        sepNavVisRect = "{{0, 0}, {711, 464}}";
     1377                        sepNavWindowFrame = "{{199, 71}, {750, 502}}";
     1378                };
     1379        };
     1380        E1BF166C03DBE27000050002 = {
     1381                uiCtxt = {
     1382                        sepNavIntBoundsRect = "{{0, 0}, {711, 465}}";
     1383                        sepNavSelRange = "{224, 0}";
     1384                        sepNavVisRect = "{{0, 0}, {711, 464}}";
     1385                        sepNavWindowFrame = "{{222, 50}, {750, 502}}";
     1386                };
     1387        };
     1388        E1BF166D03DBE27000050002 = {
     1389                uiCtxt = {
     1390                        sepNavIntBoundsRect = "{{0, 0}, {711, 465}}";
     1391                        sepNavSelRange = "{0, 0}";
     1392                        sepNavVisRect = "{{0, 0}, {711, 464}}";
    19721393                        sepNavWindowFrame = "{{61, 197}, {750, 502}}";
    19731394                };
    19741395        };
    1975         E1BF166B03DBE27000050002 = {
    1976                 uiCtxt = {
    1977                         sepNavIntBoundsRect = "{{0, 0}, {735, 464}}";
    1978                         sepNavSelRange = "{232, 0}";
    1979                         sepNavVisRect = "{{0, 0}, {735, 464}}";
    1980                         sepNavWindowFrame = "{{199, 71}, {750, 502}}";
    1981                 };
    1982         };
    1983         E1BF166C03DBE27000050002 = {
    1984                 uiCtxt = {
    1985                         sepNavIntBoundsRect = "{{0, 0}, {735, 464}}";
    1986                         sepNavSelRange = "{224, 0}";
    1987                         sepNavVisRect = "{{0, 0}, {735, 464}}";
    1988                         sepNavWindowFrame = "{{222, 50}, {750, 502}}";
    1989                 };
    1990         };
    1991         E1BF166D03DBE27000050002 = {
    1992                 uiCtxt = {
    1993                         sepNavIntBoundsRect = "{{0, 0}, {735, 464}}";
    1994                         sepNavSelRange = "{0, 0}";
    1995                         sepNavVisRect = "{{0, 0}, {735, 464}}";
    1996                         sepNavWindowFrame = "{{61, 197}, {750, 502}}";
    1997                 };
    1998         };
    19991396        E1BF167203DBEAA000050002 = {
    20001397                uiCtxt = {
    2001                         sepNavIntBoundsRect = "{{0, 0}, {585, 4059}}";
    2002                         sepNavSelRange = "{4814, 0}";
    2003                         sepNavVisRect = "{{0, 2104}, {585, 566}}";
     1398                        sepNavIntBoundsRect = "{{0, 0}, {796, 3157}}";
     1399                        sepNavSelRange = "{70, 0}";
     1400                        sepNavVisRect = "{{0, 0}, {796, 775}}";
     1401                        sepNavWindowFrame = "{{61, 318}, {835, 813}}";
    20041402                };
    20051403        };
     
    20471445                };
    20481446        };
     1447        F56276BA03796C8B01AA4DA5 = {
     1448                uiCtxt = {
     1449                        sepNavIntBoundsRect = "{{0, 0}, {828, 2332}}";
     1450                        sepNavSelRange = "{4066, 61}";
     1451                        sepNavVisRect = "{{0, 1463}, {828, 868}}";
     1452                        sepNavWindowFrame = "{{38, 246}, {867, 906}}";
     1453                };
     1454        };
    20491455        F56276C20379923401AA4DA5 = {
    20501456                uiCtxt = {
    2051                         sepNavIntBoundsRect = "{{0, 0}, {735, 5823}}";
    2052                         sepNavSelRange = "{7948, 0}";
    2053                         sepNavVisRect = "{{0, 2619}, {735, 464}}";
    2054                         sepNavWindowFrame = "{{59, 150}, {750, 502}}";
     1457                        sepNavIntBoundsRect = "{{0, 0}, {739, 5988}}";
     1458                        sepNavSelRange = "{16837, 0}";
     1459                        sepNavVisRect = "{{0, 2531}, {739, 540}}";
     1460                        sepNavWindowFrame = "{{59, 74}, {778, 578}}";
    20551461                };
    20561462        };
     
    20661472                uiCtxt = {
    20671473                        sepNavIntBoundsRect = "{{0, 0}, {711, 3613}}";
    2068                         sepNavSelRange = "{7816, 0}";
    2069                         sepNavVisRect = "{{0, 1956}, {711, 444}}";
     1474                        sepNavSelRange = "{9679, 0}";
     1475                        sepNavVisRect = "{{0, 2432}, {711, 464}}";
    20701476                        sepNavWindowFrame = "{{440, 49}, {750, 502}}";
    20711477                };
     
    20801486        F9A6987103BE1DFF00AA4DA5 = {
    20811487                uiCtxt = {
    2082                         sepNavIntBoundsRect = "{{0, 0}, {840, 2027}}";
     1488                        sepNavIntBoundsRect = "{{0, 0}, {828, 1870}}";
    20831489                        sepNavSelRange = "{4986, 0}";
    2084                         sepNavVisRect = "{{0, 0}, {0, 0}}";
     1490                        sepNavVisRect = "{{0, 1001}, {828, 868}}";
     1491                        sepNavWindowFrame = "{{15, 267}, {867, 906}}";
    20851492                };
    20861493        };
  • trunk/ICeCoffEE/ICeCoffEE/ICeCoffEE APE.xcode/project.pbxproj

    r181 r182  
    208208                        buildSettings = {
    209209                                COPY_PHASE_STRIP = YES;
     210                                GCC_C_LANGUAGE_STANDARD = c99;
    210211                                GCC_ENABLE_FIX_AND_CONTINUE = NO;
    211212                                ZERO_LINK = NO;
     
    352353                        refType = 4;
    353354                        sourceTree = "<group>";
     355                        wrapsLines = 1;
    354356                };
    355357                E12FEC3E04959F5A00AEFBF9 = {
     
    510512                        );
    511513                        isa = PBXGroup;
    512                         name = "APE Manager plugin sources";
     514                        name = "APE preference pane plugin sources";
    513515                        path = "";
    514516                        refType = 4;
     
    567569                                E135625E03DC9FC200050002,
    568570                                E182C8F603DE817F00050002,
     571                                E191FC9C0831B8FB003B09BC,
     572                                E191FC9D0831B8FB003B09BC,
    569573                        );
    570574                        isa = PBXGroup;
     
    632636                        refType = 4;
    633637                        sourceTree = "<group>";
     638                };
     639                E191FC9C0831B8FB003B09BC = {
     640                        fileEncoding = 4;
     641                        isa = PBXFileReference;
     642                        lastKnownFileType = sourcecode.c.h;
     643                        path = ICeCoffEESetServicesMenu.h;
     644                        refType = 4;
     645                        sourceTree = "<group>";
     646                };
     647                E191FC9D0831B8FB003B09BC = {
     648                        fileEncoding = 4;
     649                        isa = PBXFileReference;
     650                        lastKnownFileType = sourcecode.c.objc;
     651                        path = ICeCoffEESetServicesMenu.m;
     652                        refType = 4;
     653                        sourceTree = "<group>";
     654                };
     655                E191FC9E0831B8FB003B09BC = {
     656                        fileRef = E191FC9C0831B8FB003B09BC;
     657                        isa = PBXBuildFile;
     658                        settings = {
     659                        };
     660                };
     661                E191FC9F0831B8FB003B09BC = {
     662                        fileRef = E191FC9D0831B8FB003B09BC;
     663                        isa = PBXBuildFile;
     664                        settings = {
     665                        };
     666                };
     667                E191FCA00831B8FB003B09BC = {
     668                        fileRef = E191FC9C0831B8FB003B09BC;
     669                        isa = PBXBuildFile;
     670                        settings = {
     671                        };
     672                };
     673                E191FCA10831B8FB003B09BC = {
     674                        fileRef = E191FC9D0831B8FB003B09BC;
     675                        isa = PBXBuildFile;
     676                        settings = {
     677                        };
    634678                };
    635679                E19EB4F503DD359100050002 = {
     
    735779                                E1ABAE9C0812F4B2007C5427,
    736780                                E1ABAE9D0812F4B2007C5427,
     781                                E191FC9E0831B8FB003B09BC,
    737782                        );
    738783                        isa = PBXHeadersBuildPhase;
     
    861906                                E1ABAEAE0812F4B2007C5427,
    862907                                E1ABAEAF0812F4B2007C5427,
     908                                E191FC9F0831B8FB003B09BC,
    863909                        );
    864910                        isa = PBXSourcesBuildPhase;
     
    10541100                                E1ABAEC10812F4B2007C5427,
    10551101                                E1ABAEC20812F4B2007C5427,
     1102                                E191FCA00831B8FB003B09BC,
    10561103                        );
    10571104                        isa = PBXHeadersBuildPhase;
     
    11321179                                E1ABAECD0812F4B2007C5427,
    11331180                                E1ABAECE0812F4B2007C5427,
     1181                                E191FCA10831B8FB003B09BC,
    11341182                        );
    11351183                        isa = PBXSourcesBuildPhase;
     
    14931541                E1BF166A03DBE27000050002 = {
    14941542                        fileEncoding = 30;
     1543                        indentWidth = 4;
    14951544                        isa = PBXFileReference;
    14961545                        lastKnownFileType = sourcecode.c.objc;
     
    14981547                        refType = 4;
    14991548                        sourceTree = "<group>";
     1549                        tabWidth = 8;
     1550                        usesTabs = 1;
    15001551                };
    15011552                E1BF166B03DBE27000050002 = {
  • trunk/ICeCoffEE/ICeCoffEE/ICeCoffEE.m

    r181 r182  
    1 // ICeCoffEE - Internet Config Cocoa Editor Extension
     1// ICeCoffEE - Internet Config Carbon/Cocoa Editor Extension
    22// Nicholas Riley <mailto:icecoffee@sabi.net>
    33
    44/* To do/think about:
    55
    6 - TXNClick - MLTE has its own support in Jaguar and later, but it's lousy
    7 
    8 Done:
    9 
    10 - TEClick - TextEdit
    11 - flash on success (like BBEdit)
    12 - display dialog on failure (decode OSStatus)
    13 - adjust URL blinking
    14 - app exclusion list - make a pref pane (see AquaShade config)
    15 - _LSCopyApplicationURLsForItemURL - list apps
    16 - Menu on command-option-click: add bookmark, open with other helper, pass to configurable service, ...?
     6- TXNClick - MLTE has its own (lousy) support in Jaguar, seems improved in Panther, good enough to leave?
    177
    188*/
     
    2212#include <unistd.h>
    2313#import "ICeCoffEESuper.h"
     14#import "ICeCoffEESetServicesMenu.h"
    2415
    2516iccfPrefRec ICCF_prefs;
     
    9182
    9283        [set autorelease];
    93         [set formUnionWithCharacterSet: [[NSCharacterSet characterSetWithRange: NSMakeRange(0, 128)] invertedSet]]; // remove non-ASCII characters
     84        [set formUnionWithCharacterSet: [[NSCharacterSet characterSetWithRange: NSMakeRange(0x21, 0x5e)] invertedSet]]; // nonprintable and non-ASCII characters
    9485        [set formUnionWithCharacterSet: [NSCharacterSet punctuationCharacterSet]];
    95         [set removeCharactersInString: @";/?:@&=+$,-_.!~*'()%#"]; // RFC 2396 ¤2.2, 2.3, 2.4, plus #
     86        [set removeCharactersInString: @";/?:@&=+$,-_.!~*'()%#"]; // RFC 2396 ¤2.2, 2.3, 2.4, plus % and # from "delims" set
    9687
    9788        tmpSet = [[set mutableCopy] autorelease];
     
    198189}
    199190
     191// input/output 'range' is the range of source document which contains 'string'
    200192void ICCF_ParseURL(NSString *string, NSRange *range) {
    201193    OSStatus err;
    202194    Handle h;
    203     long selStart, selEnd;
     195    long selStart = 0, selEnd = range->length; // local offsets within 'string'
    204196    char *urlData = NULL;
    205197
    206     NSCAssert(range->length == [string length], @"Internal error: URL string is wrong length");
     198    NSCAssert(selEnd == [string length], @"Internal error: URL string is wrong length");
    207199   
    208200    NS_DURING
    209201        if ([[NSCharacterSet characterSetWithCharactersInString: @";,."] characterIsMember:
    210             [string characterAtIndex: range->length - 1]]) {
    211             range->length--;
    212         }
    213 
    214         string = [string substringToIndex: range->length];
     202            [string characterAtIndex: selEnd - 1]]) {
     203            selEnd--;
     204        }
     205        NSCharacterSet *alphanumericCharacterSet = [NSCharacterSet alphanumericCharacterSet];
     206        while (![alphanumericCharacterSet characterIsMember: [string characterAtIndex: selStart]]) {
     207            selStart++;
     208            NSCAssert(selStart < selEnd, @"No URL is selected");
     209        }
     210
     211        string = [string substringWithRange: NSMakeRange(selStart, selEnd - selStart)];
    215212
    216213        ICLog(@"Parsing URL |%@|", string);
     
    221218        NSCAssert(urlData != NULL, @"Internal error: can't allocate memory for URL string");
    222219
    223         selStart = 0; selEnd = range->length;
    224 
     220        // XXX getCString: is deprecated in 10.4, but this is safe and shouldn't assert because we've already verified the string can be converted to ASCII, which should be a subset of any possible system encoding.  The replacement (getCString:maxLength:encoding:) is not available until 10.4, so we leave this until we dump Internet Config and gain IDN friendliness.
    225221        [string getCString: urlData];
    226222
     
    402398NSMenuItem *ICCF_ServicesMenuItem() {
    403399    NSMenuItem *servicesItem;
    404     NSMenu *servicesMenu;
    405     // don't want to use [[NSApp servicesMenu] title] because the Services menu may not have been created yet
    406     NSString *servicesTitle = [[NSBundle bundleWithIdentifier: @"com.apple.AppKit"] localizedStringForKey: @"Services" value: nil table: @"ServicesMenu"];
    407     if (servicesTitle == nil) {
    408         ICLog(@"Can't get localized text for 'Services' in AppKit.framework");
    409         servicesTitle = @"Services";
     400    NSString *servicesTitle = nil;
     401    NSMenu *servicesMenu = [NSApp servicesMenu];
     402   
     403    if (servicesMenu != nil) {
     404        servicesTitle = [servicesMenu title];
     405        if (servicesTitle == nil) {
     406            ICLog(@"Can't get service menu title");
     407            servicesTitle = @"Services";
     408        }
     409    } else {
     410        servicesTitle = [[NSBundle bundleWithIdentifier: @"com.apple.AppKit"] localizedStringForKey: @"Services" value: nil table: @"ServicesMenu"];
     411        if (servicesTitle == nil) {
     412            ICLog(@"Can't get localized text for 'Services' in AppKit.framework");
     413            servicesTitle = @"Services";
     414        }
    410415    }
    411416    servicesMenu = [[NSMenu alloc] initWithTitle: servicesTitle];
    412417    servicesItem = [[NSMenuItem alloc] initWithTitle: servicesTitle action:nil keyEquivalent:@""];
    413     [[NSApplication sharedApplication] setServicesMenu: servicesMenu];
     418    ICCF_SetServicesMenu(servicesMenu);
    414419    [servicesItem setSubmenu: servicesMenu];
    415420    [servicesItem setRepresentedObject: ICCF_SERVICES_ITEM];
     
    448453            }
    449454        } else {
     455            [menuItem setKeyEquivalent: @""];
    450456            shouldKeepItem = [menuItem isEnabled];
    451457        }
     
    494500}
    495501
     502
     503@interface NSTextView (IC_NSSharing)
     504// only in Mac OS X 10.4 and later
     505- (NSArray *)selectedRanges;
     506@end
     507
    496508@implementation ICeCoffEE
    497509
     
    536548#endif
    537549    if (ICCF_enabled && ICCF_prefs.commandClickEnabled && ICCF_EventIsCommandMouseDown(e)) {
    538         // don't want to trigger selection extension or anything else; pass through as a plain click
     550        if ([self respondsToSelector: @selector(selectedRanges)]) {
     551            // discontiguous selection support, Mac OS X 10.4 or later
     552            NSArray *ranges = [self selectedRanges];
     553            ICLog(@"ICeCoffEE selected ranges: %@", ranges);
     554            if ([ranges count] > 1 || [[ranges objectAtIndex: 0] rangeValue].length != 0)
     555                goto bypass;
     556        } else {
     557            // don't want to trigger selection extension or anything else; pass through as a plain click
     558            // (on Panther and earlier, command does not modify behavior)
     559        }
    539560        [super mouseDown: [NSEvent mouseEventWithType: NSLeftMouseDown location: [e locationInWindow] modifierFlags: 0 timestamp: [e timestamp] windowNumber: [e windowNumber] context: [e context] eventNumber: [e eventNumber] clickCount: 1 pressure: 0]];
    540561        // we don't actually get a mouseUp event, just wait for mouseDown to return
     
    548569        }
    549570    } else {
     571bypass:
    550572        [super mouseDown: e];
    551573    }
  • trunk/ICeCoffEE/ICeCoffEE/ICeCoffEEServicePrefController.m

    r167 r182  
    88
    99#import "ICeCoffEEShared.h"
     10#import "ICeCoffEESetServicesMenu.h"
    1011#import "ICeCoffEEServicePrefController.h"
    1112#import "ICeCoffEENonHighlightingButtonCell.h"
     
    222223{
    223224    if (servicesMenu == nil) {
    224         servicesMenu = [[NSMenu alloc] initWithTitle: @""];
    225         [[NSApplication sharedApplication] setServicesMenu: servicesMenu];
    226         [servicesMenu update];
     225        servicesMenu = [[NSMenu alloc] initWithTitle: @""];
     226        ICCF_SetServicesMenu(servicesMenu);
     227        [servicesMenu update]; // XXX necessary on 10.3? or anywhere?
    227228        NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    228229        NSDictionary *icDefaults = [defaults persistentDomainForName: (NSString *)kICBundleIdentifier];
  • trunk/ICeCoffEE/ICeCoffEE/ICeCoffEEWebKit.m

    r169 r182  
    1515- (NSDictionary *)elementAtPoint:(NSPoint)point;
    1616- (NSString *)selectedString;
    17 - (void)deselectAll;
    18 
    19 // only in Safari 1.0-1.2
    20 - (void)setSelectionFrom:(id /* WebDOMNode */)start startOffset:(int)startOffset to:(id /* WebDOMNode */)end endOffset:(int) endOffset;
    21 
    22 - (id /* WebDOMNode */)selectionStart;
    23 - (int)selectionStartOffset;
    24 - (id /* WebDOMNode */)selectionEnd;
    25 - (int)selectionEndOffset;
    26 
    27 // only in Safari 1.1-1.2
    2817- (NSRect)selectionRect;
    2918
    30 // only in Safari 1.3
    3119- (void)selectNSRange:(NSRange)range;
     20- (void)deselectAll;
    3221
    3322@end
     
    3827- (WebCoreBridge *)_bridge;
    3928
    40 // only in Safari 1.3
    4129- (NSRange)selectedRange;
    4230
     
    5240
    5341static NSEvent *downEvent = nil;
    54 
    55 // used in Safari < 1.3 because there's no sane way to set the selection
    56 typedef struct {
    57     int startOffset;
    58     int endOffset;
    59     id fromNode;
    60     id toNode;
    61 } ICCF_WebCoreSelection;
    62 
    63 static ICCF_WebCoreSelection selection = {nil, nil, 0, 0};
    64 
    65 void ICCF_GetWebCoreBridgeSelection(WebCoreBridge *bridge, ICCF_WebCoreSelection *ioSel) {
    66     [ioSel->fromNode release]; ioSel->fromNode = nil;
    67     [ioSel->toNode release]; ioSel->toNode = nil;
    68     ioSel->startOffset = [bridge selectionStartOffset];
    69     ioSel->endOffset = [bridge selectionEndOffset];
    70     ioSel->fromNode = [[bridge selectionStart] retain];
    71     ioSel->toNode = [[bridge selectionEnd] retain];
    72 }
    73 
    74 void ICCF_SetWebCoreBridgeSelection(WebCoreBridge *bridge, ICCF_WebCoreSelection *inSel) {
    75     if (inSel->fromNode == nil || inSel->toNode == nil)
    76         [bridge deselectAll];
    77     [bridge setSelectionFrom: inSel->fromNode
    78                  startOffset: inSel->startOffset
    79                           to: inSel->toNode
    80                    endOffset: inSel->endOffset];
    81 }
    82 // end Safari < 1.3 section
    83 
    8442static NSString *selectedString = nil;
    8543static NSRange selectedRange;
     
    8745- (void)mouseDown:(NSEvent *)e;
    8846{
    89         [downEvent release]; downEvent = nil;
    90     // don't want command-option-click, command-shift-click, etc. to trigger
     47    [downEvent release]; downEvent = nil;
     48    // don't want command-control-click, command-shift-click, etc. to trigger
    9149    if (ICCF_enabled && ICCF_prefs.commandClickEnabled && ICCF_EventIsCommandMouseDown(e)) {
    9250        WebCoreBridge *bridge = [(WebHTMLView *)self _bridge];
    93                 if ([self respondsToSelector: @selector(selectedRange)]) {
    94                         // Safari 1.3 save selection: it may be deselected on super mouseDown
    95                         selectedRange = [(WebHTMLView *)self selectedRange];
    96                 } else if ([bridge respondsToSelector: @selector(selectionStartOffset)]) {
    97                         // Safari < 1.3 save selection: it will be deselected on super mouseDown
    98                         ICCF_GetWebCoreBridgeSelection(bridge, &selection);
    99                         ICLog(@"selection start %d@%@ end %d@%@ string %@", [bridge selectionStartOffset], [bridge selectionStart], [bridge selectionEndOffset], [bridge selectionEnd], [bridge selectedString]);
    100                 }
    101                 [selectedString release]; selectedString = nil;
    102                 selectedString = [[bridge selectedString] retain];
     51        if ([self respondsToSelector: @selector(selectedRange)]) {
     52            // save selection: it may be deselected on super mouseDown
     53            selectedRange = [(WebHTMLView *)self selectedRange];
     54        }
     55        [selectedString release]; selectedString = nil;
     56        selectedString = [[bridge selectedString] retain];
    10357        downEvent = [e retain];
    10458    }
     
    12680                NS_VOIDRETURN; // donÕt activate on links
    12781            }
    128                         if (selectedString == nil || [selectedString length] == 0) {
    129                                 ICLog(@"no selected string");
    130                                 NS_VOIDRETURN;
    131                         }
    132                         ICCF_StartIC();
    133                         ICCF_LaunchURL(selectedString, ICCF_KeyboardAction());
    134                         if (ICCF_prefs.textBlinkEnabled &&
    135                                 [bridge respondsToSelector: @selector(selectNSRange:)]) {
    136                                 // blink text in Safari 1.3
    137                                 [bridge selectNSRange: selectedRange];
    138                                 int i;
    139                                 NSRect selectionRect = [bridge selectionRect];
    140                                 ICLog(@"selectedRange %@ selectionRect %@ textBlinkCount %d", NSStringFromRange(selectedRange), NSStringFromRect(selectionRect), ICCF_prefs.textBlinkCount);
    141                                 for (i = 0 ; i < ICCF_prefs.textBlinkCount ; i++) {
    142                                         [bridge deselectAll];
    143                                         [self setNeedsDisplayInRect: selectionRect];
    144                                         [self display];
    145                                         usleep(kICBlinkDelayUsecs);
    146                                         [bridge selectNSRange: selectedRange];
    147                                         [self setNeedsDisplayInRect: selectionRect];
    148                                         [self display];
    149                                         usleep(kICBlinkDelayUsecs);
    150                                 }
    151                         } else {
    152                                 // select text in Safari 1.0-1.2
    153                                 ICCF_SetWebCoreBridgeSelection(bridge, &selection);
    154                                 if (ICCF_prefs.textBlinkEnabled &&
    155                                         [bridge respondsToSelector: @selector(selectionRect)]) {
    156                                         // blink text in Safari 1.1/1.2
    157                                         int i;
    158                                         NSRect selectionRect = [bridge selectionRect];
    159                                         for (i = 0 ; i < ICCF_prefs.textBlinkCount ; i++) {
    160                                                 [bridge deselectAll];
    161                                                 [self setNeedsDisplayInRect: selectionRect];
    162                                                 [self display];
    163                                                 usleep(kICBlinkDelayUsecs);
    164                                                 ICCF_SetWebCoreBridgeSelection(bridge, &selection);
    165                                                 [self setNeedsDisplayInRect: selectionRect];
    166                                                 [self display];
    167                                                 usleep(kICBlinkDelayUsecs);
    168                                         }
    169                                 }
    170                         }
     82            if (selectedString == nil || [selectedString length] == 0) {
     83                ICLog(@"no selected string");
     84                NS_VOIDRETURN;
     85            }
     86            ICCF_StartIC();
     87            ICCF_LaunchURL(selectedString, ICCF_KeyboardAction());
     88            if (ICCF_prefs.textBlinkEnabled && [bridge respondsToSelector: @selector(selectNSRange:)]) {
     89                [bridge selectNSRange: selectedRange];
     90                int i;
     91                NSRect selectionRect = [bridge selectionRect];
     92                ICLog(@"selectedRange %@ selectionRect %@ textBlinkCount %d", NSStringFromRange(selectedRange), NSStringFromRect(selectionRect), ICCF_prefs.textBlinkCount);
     93                for (i = 0 ; i < ICCF_prefs.textBlinkCount ; i++) {
     94                    [bridge deselectAll];
     95                    [self setNeedsDisplayInRect: selectionRect];
     96                    [self display];
     97                    usleep(kICBlinkDelayUsecs);
     98                    [bridge selectNSRange: selectedRange];
     99                    [self setNeedsDisplayInRect: selectionRect];
     100                    [self display];
     101                    usleep(kICBlinkDelayUsecs);
     102                }
     103            }
    171104        NS_HANDLER
    172105            ICCF_HandleException(localException);
Note: See TracChangeset for help on using the changeset viewer.