зеркало из https://github.com/mozilla/gecko-dev.git
use static variables and class methods for resource loading. b=358165 r=hwaara
This commit is contained in:
Родитель
457a7bb799
Коммит
971ab33afc
|
@ -165,8 +165,6 @@
|
||||||
@interface nsResourceCursor : nsMacCursor
|
@interface nsResourceCursor : nsMacCursor
|
||||||
{
|
{
|
||||||
@private
|
@private
|
||||||
short mRefNum;
|
|
||||||
short mSaveResFile;
|
|
||||||
int mFirstFrame;
|
int mFirstFrame;
|
||||||
int mLastFrame;
|
int mLastFrame;
|
||||||
}
|
}
|
||||||
|
@ -382,20 +380,14 @@
|
||||||
@end
|
@end
|
||||||
|
|
||||||
@implementation nsResourceCursor
|
@implementation nsResourceCursor
|
||||||
-(id) initWithFirstFrame: (int) aFirstFrame lastFrame: (int) aLastFrame
|
|
||||||
{
|
static short sRefNum = kResFileNotOpened;
|
||||||
self= [super init];
|
static short sSaveResFile = 0;
|
||||||
//Appearance Manager cursors all fall into the range 0..127. Custom application CURS resources begin at id 128.
|
|
||||||
NS_ASSERTION(aFirstFrame >= 128 && aLastFrame >= 128 && aLastFrame >= aFirstFrame, "Nonsensical frame indicies");
|
|
||||||
mFirstFrame = aFirstFrame;
|
|
||||||
mLastFrame = aLastFrame;
|
|
||||||
return self;
|
|
||||||
}
|
|
||||||
|
|
||||||
// this could be simplified if it was rewritten using Cocoa
|
// this could be simplified if it was rewritten using Cocoa
|
||||||
-(void)openLocalResourceFile
|
+(void)openLocalResourceFile
|
||||||
{
|
{
|
||||||
if (mRefNum == kResFileNotOpened) {
|
if (sRefNum == kResFileNotOpened) {
|
||||||
CFBundleRef appBundle = ::CFBundleGetMainBundle();
|
CFBundleRef appBundle = ::CFBundleGetMainBundle();
|
||||||
if (appBundle) {
|
if (appBundle) {
|
||||||
CFURLRef executable = ::CFBundleCopyExecutableURL(appBundle);
|
CFURLRef executable = ::CFBundleCopyExecutableURL(appBundle);
|
||||||
|
@ -407,7 +399,7 @@
|
||||||
if (resourceFile) {
|
if (resourceFile) {
|
||||||
FSRef resourceRef;
|
FSRef resourceRef;
|
||||||
if (::CFURLGetFSRef(resourceFile, &resourceRef))
|
if (::CFURLGetFSRef(resourceFile, &resourceRef))
|
||||||
::FSOpenResourceFile(&resourceRef, 0, NULL, fsRdPerm, &mRefNum);
|
::FSOpenResourceFile(&resourceRef, 0, NULL, fsRdPerm, &sRefNum);
|
||||||
::CFRelease(resourceFile);
|
::CFRelease(resourceFile);
|
||||||
}
|
}
|
||||||
::CFRelease(binDir);
|
::CFRelease(binDir);
|
||||||
|
@ -417,31 +409,42 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mRefNum == kResFileNotOpened)
|
if (sRefNum == kResFileNotOpened)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
mSaveResFile = ::CurResFile();
|
sSaveResFile = ::CurResFile();
|
||||||
::UseResFile(mRefNum);
|
::UseResFile(sRefNum);
|
||||||
}
|
}
|
||||||
|
|
||||||
-(void)closeLocalResourceFile
|
+(void)closeLocalResourceFile
|
||||||
{
|
{
|
||||||
if (mRefNum == kResFileNotOpened)
|
if (sRefNum == kResFileNotOpened)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
::UseResFile(mSaveResFile);
|
::UseResFile(sSaveResFile);
|
||||||
|
}
|
||||||
|
|
||||||
|
-(id) initWithFirstFrame: (int) aFirstFrame lastFrame: (int) aLastFrame
|
||||||
|
{
|
||||||
|
if ((self = [super init])) {
|
||||||
|
//Appearance Manager cursors all fall into the range 0..127. Custom application CURS resources begin at id 128.
|
||||||
|
NS_ASSERTION(aFirstFrame >= 128 && aLastFrame >= 128 && aLastFrame >= aFirstFrame, "Nonsensical frame indicies");
|
||||||
|
mFirstFrame = aFirstFrame;
|
||||||
|
mLastFrame = aLastFrame;
|
||||||
|
}
|
||||||
|
return self;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void) setFrame: (int) aFrameIndex
|
- (void) setFrame: (int) aFrameIndex
|
||||||
{
|
{
|
||||||
[self openLocalResourceFile];
|
[nsResourceCursor openLocalResourceFile];
|
||||||
CursHandle cursHandle = ::GetCursor(mFirstFrame + aFrameIndex);
|
CursHandle cursHandle = ::GetCursor(mFirstFrame + aFrameIndex);
|
||||||
NS_ASSERTION(cursHandle, "Can't load cursor, is the resource file installed correctly?");
|
NS_ASSERTION(cursHandle, "Can't load cursor, is the resource file installed correctly?");
|
||||||
if (cursHandle)
|
if (cursHandle)
|
||||||
{
|
{
|
||||||
::SetCursor(*cursHandle);
|
::SetCursor(*cursHandle);
|
||||||
}
|
}
|
||||||
[self closeLocalResourceFile];
|
[nsResourceCursor closeLocalResourceFile];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (int) numFrames
|
- (int) numFrames
|
||||||
|
|
Загрузка…
Ссылка в новой задаче