From 866cdb1ec834aae4d1a71ca414238dc6777f5bac Mon Sep 17 00:00:00 2001 From: Patrick Walton Date: Fri, 10 Jun 2016 18:34:41 -0700 Subject: [PATCH] Add bindings for `+[NSRunLoop currentRunLoop]` and `-[NSRunLoop performSelector:target:argument:order:modes:]` --- src/foundation.rs | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/src/foundation.rs b/src/foundation.rs index 0d9e813..ce3dc19 100644 --- a/src/foundation.rs +++ b/src/foundation.rs @@ -9,7 +9,7 @@ use std::mem; use std::ptr; -use base::{id, class, BOOL, nil}; +use base::{id, class, BOOL, SEL, nil}; use core_graphics::base::CGFloat; use core_graphics::geometry::CGRect; use libc; @@ -356,3 +356,33 @@ extern { fn NSInsetRect(rect: NSRect, x: CGFloat, y: CGFloat) -> NSRect; } +pub trait NSRunLoop { + unsafe fn currentRunLoop() -> Self; + + unsafe fn performSelector_target_argument_order_modes_(self, + aSelector: SEL, + target: id, + anArgument: id, + order: NSUInteger, + modes: id); +} + +impl NSRunLoop for id { + unsafe fn currentRunLoop() -> id { + msg_send![class("NSRunLoop"), currentRunLoop] + } + + unsafe fn performSelector_target_argument_order_modes_(self, + aSelector: SEL, + target: id, + anArgument: id, + order: NSUInteger, + modes: id) { + msg_send![self, performSelector:aSelector + target:target + argument:anArgument + order:order + modes:modes] + } +} +