@@ -276,11 +276,11 @@ /*! * @brief Performs the specified selector with the specified objects. * * @param selector The selector to perform * @param object1 The first object that is passed to the method specified by the - * selector + * selector * @param object2 The second object that is passed to the method specified by * the selector * @return The object returned by the method specified by the selector */ - (nullable id)performSelector: (SEL)selector @@ -290,11 +290,11 @@ /*! * @brief Performs the specified selector with the specified objects. * * @param selector The selector to perform * @param object1 The first object that is passed to the method specified by the - * selector + * selector * @param object2 The second object that is passed to the method specified by * the selector * @param object3 The third object that is passed to the method specified by the * selector * @return The object returned by the method specified by the selector @@ -302,10 +302,30 @@ - (nullable id)performSelector: (SEL)selector withObject: (nullable id)object1 withObject: (nullable id)object2 withObject: (nullable id)object3; +/*! + * @brief Performs the specified selector with the specified objects. + * + * @param selector The selector to perform + * @param object1 The first object that is passed to the method specified by the + * selector + * @param object2 The second object that is passed to the method specified by + * the selector + * @param object3 The third object that is passed to the method specified by the + * selector + * @param object4 The fourth object that is passed to the method specified by + * the selector + * @return The object returned by the method specified by the selector + */ +- (nullable id)performSelector: (SEL)selector + withObject: (nullable id)object1 + withObject: (nullable id)object2 + withObject: (nullable id)object3 + withObject: (nullable id)object4; + /*! * @brief Checks two objects for equality. * * Classes containing data (like strings, arrays, lists etc.) should reimplement * this! @@ -740,37 +760,59 @@ * @brief Performs the specified selector with the specified objects after the * specified delay. * * @param selector The selector to perform * @param object1 The first object that is passed to the method specified by the - * selector + * selector + * @param object2 The second object that is passed to the method specified by + * the selector + * @param delay The delay after which the selector will be performed + */ +- (void)performSelector: (SEL)selector + withObject: (nullable id)object1 + withObject: (nullable id)object2 + afterDelay: (of_time_interval_t)delay; + +/*! + * @brief Performs the specified selector with the specified objects after the + * specified delay. + * + * @param selector The selector to perform + * @param object1 The first object that is passed to the method specified by the + * selector * @param object2 The second object that is passed to the method specified by * the selector + * @param object3 The third object that is passed to the method specified by the + * selector * @param delay The delay after which the selector will be performed */ - (void)performSelector: (SEL)selector withObject: (nullable id)object1 withObject: (nullable id)object2 + withObject: (nullable id)object3 afterDelay: (of_time_interval_t)delay; /*! * @brief Performs the specified selector with the specified objects after the * specified delay. * * @param selector The selector to perform * @param object1 The first object that is passed to the method specified by the - * selector + * selector * @param object2 The second object that is passed to the method specified by * the selector * @param object3 The third object that is passed to the method specified by the * selector + * @param object4 The fourth object that is passed to the method specified by + * the selector * @param delay The delay after which the selector will be performed */ - (void)performSelector: (SEL)selector withObject: (nullable id)object1 withObject: (nullable id)object2 withObject: (nullable id)object3 + withObject: (nullable id)object4 afterDelay: (of_time_interval_t)delay; #ifdef OF_HAVE_THREADS /*! * @brief Performs the specified selector on the specified thread. @@ -803,40 +845,64 @@ * specified objects. * * @param selector The selector to perform * @param thread The thread on which to perform the selector * @param object1 The first object that is passed to the method specified by the - * selector + * selector + * @param object2 The second object that is passed to the method specified by + * the selector + * @param waitUntilDone Whether to wait until the perform finished + */ +- (void)performSelector: (SEL)selector + onThread: (OFThread *)thread + withObject: (nullable id)object1 + withObject: (nullable id)object2 + waitUntilDone: (bool)waitUntilDone; + +/*! + * @brief Performs the specified selector on the specified thread with the + * specified objects. + * + * @param selector The selector to perform + * @param thread The thread on which to perform the selector + * @param object1 The first object that is passed to the method specified by the + * selector * @param object2 The second object that is passed to the method specified by * the selector + * @param object3 The third object that is passed to the method specified by the + * selector * @param waitUntilDone Whether to wait until the perform finished */ - (void)performSelector: (SEL)selector onThread: (OFThread *)thread withObject: (nullable id)object1 withObject: (nullable id)object2 + withObject: (nullable id)object3 waitUntilDone: (bool)waitUntilDone; /*! * @brief Performs the specified selector on the specified thread with the * specified objects. * * @param selector The selector to perform * @param thread The thread on which to perform the selector * @param object1 The first object that is passed to the method specified by the - * selector + * selector * @param object2 The second object that is passed to the method specified by * the selector * @param object3 The third object that is passed to the method specified by the * selector + * @param object4 The fourth object that is passed to the method specified by + * the selector * @param waitUntilDone Whether to wait until the perform finished */ - (void)performSelector: (SEL)selector onThread: (OFThread *)thread withObject: (nullable id)object1 withObject: (nullable id)object2 withObject: (nullable id)object3 + withObject: (nullable id)object4 waitUntilDone: (bool)waitUntilDone; /*! * @brief Performs the specified selector on the main thread. * @@ -863,37 +929,59 @@ * @brief Performs the specified selector on the main thread with the specified * objects. * * @param selector The selector to perform * @param object1 The first object that is passed to the method specified by the - * selector + * selector + * @param object2 The second object that is passed to the method specified by + * the selector + * @param waitUntilDone Whether to wait until the perform finished + */ +- (void)performSelectorOnMainThread: (SEL)selector + withObject: (nullable id)object1 + withObject: (nullable id)object2 + waitUntilDone: (bool)waitUntilDone; + +/*! + * @brief Performs the specified selector on the main thread with the specified + * objects. + * + * @param selector The selector to perform + * @param object1 The first object that is passed to the method specified by the + * selector * @param object2 The second object that is passed to the method specified by * the selector + * @param object3 The third object that is passed to the method specified by the + * selector * @param waitUntilDone Whether to wait until the perform finished */ - (void)performSelectorOnMainThread: (SEL)selector withObject: (nullable id)object1 withObject: (nullable id)object2 + withObject: (nullable id)object3 waitUntilDone: (bool)waitUntilDone; /*! * @brief Performs the specified selector on the main thread with the specified * objects. * * @param selector The selector to perform * @param object1 The first object that is passed to the method specified by the - * selector + * selector * @param object2 The second object that is passed to the method specified by * the selector * @param object3 The third object that is passed to the method specified by the * selector + * @param object4 The fourth object that is passed to the method specified by + * the selector * @param waitUntilDone Whether to wait until the perform finished */ - (void)performSelectorOnMainThread: (SEL)selector withObject: (nullable id)object1 withObject: (nullable id)object2 withObject: (nullable id)object3 + withObject: (nullable id)object4 waitUntilDone: (bool)waitUntilDone; /*! * @brief Performs the specified selector on the specified thread after the * specified delay. @@ -926,40 +1014,64 @@ * specified objects after the specified delay. * * @param selector The selector to perform * @param thread The thread on which to perform the selector * @param object1 The first object that is passed to the method specified by the - * selector + * selector + * @param object2 The second object that is passed to the method specified by + * the selector + * @param delay The delay after which the selector will be performed + */ +- (void)performSelector: (SEL)selector + onThread: (OFThread *)thread + withObject: (nullable id)object1 + withObject: (nullable id)object2 + afterDelay: (of_time_interval_t)delay; + +/*! + * @brief Performs the specified selector on the specified thread with the + * specified objects after the specified delay. + * + * @param selector The selector to perform + * @param thread The thread on which to perform the selector + * @param object1 The first object that is passed to the method specified by the + * selector * @param object2 The second object that is passed to the method specified by * the selector + * @param object3 The third object that is passed to the method specified by the + * selector * @param delay The delay after which the selector will be performed */ - (void)performSelector: (SEL)selector onThread: (OFThread *)thread withObject: (nullable id)object1 withObject: (nullable id)object2 + withObject: (nullable id)object3 afterDelay: (of_time_interval_t)delay; /*! * @brief Performs the specified selector on the specified thread with the * specified objects after the specified delay. * * @param selector The selector to perform * @param thread The thread on which to perform the selector * @param object1 The first object that is passed to the method specified by the - * selector + * selector * @param object2 The second object that is passed to the method specified by * the selector * @param object3 The third object that is passed to the method specified by the * selector + * @param object4 The fourth object that is passed to the method specified by + * the selector * @param delay The delay after which the selector will be performed */ - (void)performSelector: (SEL)selector onThread: (OFThread *)thread withObject: (nullable id)object1 withObject: (nullable id)object2 withObject: (nullable id)object3 + withObject: (nullable id)object4 afterDelay: (of_time_interval_t)delay; #endif /*! * @brief This method is called when @ref resolveClassMethod: or