mirror of
https://github.com/gnustep/libs-gui.git
synced 2025-05-30 03:40:39 +00:00
Reorganize location of theme proxy code. Add some more comments too.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@27831 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
9ef46af7f5
commit
570b8a4963
4 changed files with 103 additions and 84 deletions
|
@ -26,15 +26,17 @@
|
|||
Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#import "Foundation/NSBundle.h"
|
||||
#import "Foundation/NSDictionary.h"
|
||||
#import "Foundation/NSFileManager.h"
|
||||
#import "Foundation/NSMapTable.h"
|
||||
#import "Foundation/NSNotification.h"
|
||||
#import "Foundation/NSNull.h"
|
||||
#import "Foundation/NSPathUtilities.h"
|
||||
#import "Foundation/NSSet.h"
|
||||
#import "Foundation/NSUserDefaults.h"
|
||||
#import <Foundation/NSBundle.h>
|
||||
#import <Foundation/NSDictionary.h>
|
||||
#import <Foundation/NSFileManager.h>
|
||||
#import <Foundation/NSInvocvation.h>
|
||||
#import <Foundation/NSMapTable.h>
|
||||
#import <Foundation/NSMethodSignature.h>
|
||||
#import <Foundation/NSNotification.h>
|
||||
#import <Foundation/NSNull.h>
|
||||
#import <Foundation/NSPathUtilities.h>
|
||||
#import <Foundation/NSSet.h>
|
||||
#import <Foundation/NSUserDefaults.h>
|
||||
#import "GNUstepGUI/GSTheme.h"
|
||||
#import "AppKit/NSApplication.h"
|
||||
#import "AppKit/NSButton.h"
|
||||
|
@ -849,3 +851,50 @@ typedef struct {
|
|||
}
|
||||
@end
|
||||
|
||||
@implementation GSThemeProxy
|
||||
- (id) _resource
|
||||
{
|
||||
return _resource;
|
||||
}
|
||||
- (void) _setResource: (id)resource
|
||||
{
|
||||
ASSIGN(_resource, resource);
|
||||
}
|
||||
- (void) dealloc
|
||||
{
|
||||
DESTROY(_resource);
|
||||
[super dealloc];
|
||||
}
|
||||
- (void) forwardInvocation: (NSInvocation*)anInvocation
|
||||
{
|
||||
[anInvocation invokeWithTarget: _resource];
|
||||
}
|
||||
- (NSMethodSignature*) methodSignatureForSelector: (SEL)aSelector
|
||||
{
|
||||
if (_resource != nil)
|
||||
{
|
||||
return [_resource methodSignatureForSelector: aSelector];
|
||||
}
|
||||
else
|
||||
{
|
||||
/*
|
||||
* Evil hack to prevent recursion - if we are asking a remote
|
||||
* object for a method signature, we can't ask it for the
|
||||
* signature of methodSignatureForSelector:, so we hack in
|
||||
* the signature required manually :-(
|
||||
*/
|
||||
if (sel_eq(aSelector, _cmd))
|
||||
{
|
||||
static NSMethodSignature *sig = nil;
|
||||
|
||||
if (sig == nil)
|
||||
{
|
||||
sig = RETAIN([NSMethodSignature signatureWithObjCTypes: "@@::"]);
|
||||
}
|
||||
return sig;
|
||||
}
|
||||
return nil;
|
||||
}
|
||||
}
|
||||
@end
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue