libs-base/Source/win32/NSRunLoopWin32.m
Richard Frith-Macdonald 43f720e62a Fix accidentally exposed private headers.
Implement code to handle windows messages on a per-window basis.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@21916 72102866-910b-0410-8b05-ffd578937521
2005-10-30 10:42:42 +00:00

45 lines
1.1 KiB
Objective-C

#include "config.h"
#include "GNUstepBase/preface.h"
#include "Foundation/NSRunLoop.h"
#include "../GSRunLoopCtxt.h"
@implementation NSRunLoop (mingw32)
/**
* Adds a target to the loop in the specified mode for the
* win32 messages.<br />
* Only a target+selector is added in one mode. Successive
* calls overwrite the previous.<br />
*/
- (void) addMsgTarget: (id)target
withMethod: (SEL)selector
forMode: (NSString*)mode
{
GSRunLoopCtxt *context;
context = NSMapGet(_contextMap, mode);
if (context == nil)
{
context = [[GSRunLoopCtxt alloc] initWithMode: mode extra: _extra];
NSMapInsert(_contextMap, context->mode, context);
RELEASE(context);
}
context->msgTarget = target;
context->msgSelector = selector;
}
/**
* Delete the target of the loop in the specified mode for the
* win32 messages.<br />
*/
- (void) removeMsgForMode: (NSString*)mode
{
GSRunLoopCtxt *context;
context = NSMapGet(_contextMap, mode);
if (context == nil)
{
return;
}
context->msgTarget = nil;
}
@end