--- np2/macosx/toolwin.cpp 2003/11/05 17:58:01 1.7
+++ np2/macosx/toolwin.cpp 2003/11/12 19:06:33 1.10
@@ -107,24 +107,27 @@ static const OSType subcommand[11] ={ '-
'exit',
};
+#define BASENUMBER 4
static const ControlID popup[2] = { {'pop1', 1}, {'pop2', 2} };
-static void openpopup(HIPoint location);
-static void skinchange(void);
static DragReceiveHandlerUPP dr;
-
static bool isPUMA;
+static void openpopup(HIPoint location);
+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));
+ return(getBMPfromResource("np2tool", bounds, CFSTR("bmp")));
}
// ----
@@ -523,12 +526,25 @@ static pascal OSStatus cfWinproc(EventHa
}
}
break;
-
+
+ case kEventWindowFocusAcquired:
+ SelectWindow(hWndMain);
+ break;
+
default:
break;
}
}
+ else if (GetEventClass(event)==kEventClassKeyboard && GetEventKind(event)==kEventRawKeyDown) {
+ UInt32 modif;
+ GetEventParameter (event, kEventParamKeyModifiers, typeUInt32, NULL, sizeof(UInt32), NULL, &modif);
+ if (modif & cmdKey) {
+ EventRecord eve;
+ ConvertEventRefToEventRecord( event,&eve );
+ recieveCommand(MenuEvent(&eve));
+ }
+ }
(void)myHandler;
return err;
@@ -552,7 +568,7 @@ OSErr setDropFile(FSSpec spec, int drv)
case FTYPE_TEXT:
strcpy(np2tool.skin, fname);
- skinchange();
+ skinchange(true);
break;
case FTYPE_THD:
@@ -624,10 +640,12 @@ static WindowRef makeNibWindow (IBNibRef
if (err == noErr) {
InstallStandardEventHandler(GetWindowEventTarget(win));
EventTypeSpec list[]={
- { kEventClassCommand, kEventCommandProcess },
- { kEventClassWindow, kEventWindowClose },
- { kEventClassWindow, kEventWindowShown },
- { kEventClassWindow, kEventWindowDrawContent },
+ { kEventClassCommand, kEventCommandProcess },
+ { kEventClassWindow, kEventWindowClose },
+ { kEventClassWindow, kEventWindowShown },
+ { kEventClassWindow, kEventWindowDrawContent },
+ { kEventClassWindow, kEventWindowFocusAcquired },
+ { kEventClassKeyboard, kEventRawKeyDown},
};
EventHandlerRef ref;
InstallWindowEventHandler (win, NewEventHandlerUPP(cfWinproc), GetEventTypeCount(list), list, (void *)win, &ref);
@@ -657,63 +675,48 @@ static void createskinmenu(MenuRef ret)
const char *base;
char *p;
UINT i;
- UINT j;
- UINT id[SKINMRU_MAX];
-const char *file[SKINMRU_MAX];
- Str255 seltext, deftext;
+ char longname[256];
- mkstr255(seltext, str_skinsel);
- AppendMenu(ret, seltext);
+ AppendMenuItemTextWithCFString(ret, CFCopyLocalizedString(CFSTR("Select Skin..."),"Slect Skin"), kMenuItemAttrIconDisabled, NULL,NULL);
AppendMenu(ret, "\p-");
base = np2tool.skin;
- mkstr255(deftext, str_skindef);
- AppendMenu(ret, deftext);
- if (base[0] != '\0') {
- EnableMenuItem(ret, 3);
+ AppendMenuItemTextWithCFString(ret, CFCopyLocalizedString(CFSTR(""),"Base Skin"), kMenuItemAttrIconDisabled, NULL,NULL);
+ if (base[0] == '\0') {
+ 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