--- np2/macosx/toolwin.cpp 2003/11/11 16:33:50 1.9 +++ np2/macosx/toolwin.cpp 2003/11/13 18:17:42 1.11 @@ -107,24 +107,27 @@ static const OSType subcommand[11] ={ '- 'exit', }; +#define BASENUMBER 4 static const ControlID popup[2] = { {'pop1', 1}, {'pop2', 2} }; static DragReceiveHandlerUPP dr; static bool isPUMA; static void openpopup(HIPoint location); -static void skinchange(void); +static void skinchange(bool remake); // ---- static void checkOSVersion(void) { - long res; - Gestalt(gestaltSystemVersion, &res); - if (res<0x1020) { - isPUMA = true; - } - else { - isPUMA = false; + static long res = 0; + if (!res) { + Gestalt(gestaltSystemVersion, &res); + if (res<0x1020) { + isPUMA = true; + } + else { + isPUMA = false; + } } } @@ -165,7 +168,7 @@ static PicHandle skinload(const char *pa return(ret); } } - return(getBMPfromResource("np2tool", bounds, CFSTR("bmp"))); + return(getBMPfromResource("np2tool.bmp", bounds)); } // ---- @@ -565,7 +568,7 @@ OSErr setDropFile(FSSpec spec, int drv) case FTYPE_TEXT: strcpy(np2tool.skin, fname); - skinchange(); + skinchange(true); break; case FTYPE_THD: @@ -672,9 +675,6 @@ static void createskinmenu(MenuRef ret) const char *base; char *p; UINT i; - UINT j; - UINT id[SKINMRU_MAX]; -const char *file[SKINMRU_MAX]; char longname[256]; AppendMenuItemTextWithCFString(ret, CFCopyLocalizedString(CFSTR("Select Skin..."),"Slect Skin"), kMenuItemAttrIconDisabled, NULL,NULL); @@ -683,50 +683,40 @@ const char *file[SKINMRU_MAX]; base = np2tool.skin; AppendMenuItemTextWithCFString(ret, CFCopyLocalizedString(CFSTR(""),"Base Skin"), kMenuItemAttrIconDisabled, NULL,NULL); if (base[0] == '\0') { - DisableMenuItem(ret, 3); + CheckMenuItem(ret, BASENUMBER-1, true); } for (cnt=0; cnti; j--) { - id[j] = id[j-1]; - } - id[i] = cnt; - file[cnt] = p; + UInt32 attr = kMenuItemAttrIconDisabled; + if (file_attr(p) != FILEATTR_ARCHIVE) { + attr |= kMenuItemAttrDisabled; + } + ZeroMemory(longname, sizeof(longname)); + if (!getLongFileName(longname, p)) { + strcpy(longname, file_getname(p)); + } + AppendMenuItemTextWithCFString(ret, CFStringCreateWithCString(NULL, longname, kCFStringEncodingUTF8), attr, NULL, NULL); } for (i=0; i