diff options
Diffstat (limited to 'SwifTools/Cocoa')
| -rw-r--r-- | SwifTools/Cocoa/CocoaAction.h | 26 | ||||
| -rw-r--r-- | SwifTools/Cocoa/CocoaAction.mm | 28 | ||||
| -rw-r--r-- | SwifTools/Cocoa/SConscript | 8 | 
3 files changed, 62 insertions, 0 deletions
diff --git a/SwifTools/Cocoa/CocoaAction.h b/SwifTools/Cocoa/CocoaAction.h new file mode 100644 index 0000000..a46ef7c --- /dev/null +++ b/SwifTools/Cocoa/CocoaAction.h @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2010 Remko Tronçon + * Licensed under the GNU General Public License v3. + * See Documentation/Licenses/GPLv3.txt for more information. + */ + +#pragma once + +#include <Cocoa/Cocoa.h> +#include <boost/function.hpp> + +@interface CocoaAction : NSObject { +	boost::function<void ()>* function; +} + +/** + * Acquires ownership of 'f'. + */ +- (id) initWithFunction: (boost::function<void()>*) f; + +/** + * Calls the functor passed as a parameter to the contsructor. + */ +- (void) doAction: (id) sender; + +@end diff --git a/SwifTools/Cocoa/CocoaAction.mm b/SwifTools/Cocoa/CocoaAction.mm new file mode 100644 index 0000000..d560787 --- /dev/null +++ b/SwifTools/Cocoa/CocoaAction.mm @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2010 Remko Tronçon + * Licensed under the GNU General Public License v3. + * See Documentation/Licenses/GPLv3.txt for more information. + */ + +#include <SwifTools/Cocoa/CocoaAction.h> + +@implementation CocoaAction + +- (id) initWithFunction: (boost::function<void()>*) f { +    if ([super init]) { +			function = f; +		} +    return self; +} + +- (void) dealloc { +	delete function; +	[super dealloc]; +} + +- (void) doAction: (id) sender { +	(void) sender; +	(*function)(); +} + +@end diff --git a/SwifTools/Cocoa/SConscript b/SwifTools/Cocoa/SConscript new file mode 100644 index 0000000..4ae4a07 --- /dev/null +++ b/SwifTools/Cocoa/SConscript @@ -0,0 +1,8 @@ +Import("swiftools_env", "env") + +sources = [] +if swiftools_env["PLATFORM"] == "darwin" and swiftools_env["target"] == "native" : +	sources += ["CocoaAction.mm"] + +objects = swiftools_env.StaticObject(sources) +swiftools_env.Append(SWIFTOOLS_OBJECTS = [objects])  | 
 Swift