Index: branches/gui/src/lib/util/executor/executor_functional.h
===================================================================
--- branches/gui/src/lib/util/executor/executor_functional.h	(revision 8017)
+++ branches/gui/src/lib/util/executor/executor_functional.h	(revision 8033)
@@ -421,6 +421,6 @@
  * @brief enables us to easily retrieve an Executor of Class T with modular Argument-count, (without thinking about args at all)
  */
-#define EXECUTOR_FUNCTIONAL_CREATOR0() \
-template<class T> Executor* createExecutor(void (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)() __EXECUTOR_FUNCTIONAL_CONST) \
+#define EXECUTOR_FUNCTIONAL_CREATOR0(ret) \
+template<class T> Executor* createExecutor(ret (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)() __EXECUTOR_FUNCTIONAL_CONST) \
 { \
   return new __EXECUTOR_FUNCTIONAL_NAME(0)<T>(functionPointer); \
@@ -431,6 +431,6 @@
  * @param type0 for internal usage: the first Argument
  */
-#define EXECUTOR_FUNCTIONAL_CREATOR1(type0) \
-template<class T> Executor* createExecutor(void (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)(type0##_TYPE) __EXECUTOR_FUNCTIONAL_CONST) \
+#define EXECUTOR_FUNCTIONAL_CREATOR1(ret, type0) \
+template<class T> Executor* createExecutor(ret (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)(type0##_TYPE) __EXECUTOR_FUNCTIONAL_CONST) \
 { \
   return new __EXECUTOR_FUNCTIONAL_NAME(1)<T, type0##_TYPE>(functionPointer); \
@@ -442,6 +442,6 @@
  * @param type1 for internal usage: the second Argument
  */
-#define EXECUTOR_FUNCTIONAL_CREATOR2(type0, type1) \
-template<class T> Executor* createExecutor(void (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)(type0##_TYPE, type1##_TYPE) __EXECUTOR_FUNCTIONAL_CONST) \
+#define EXECUTOR_FUNCTIONAL_CREATOR2(ret, type0, type1) \
+template<class T> Executor* createExecutor(ret (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)(type0##_TYPE, type1##_TYPE) __EXECUTOR_FUNCTIONAL_CONST) \
 { \
   return new __EXECUTOR_FUNCTIONAL_NAME(2)<T, type0##_TYPE, type1##_TYPE>(functionPointer); \
@@ -454,6 +454,6 @@
  * @param type2 for internal usage: the third Argument
  */
-#define EXECUTOR_FUNCTIONAL_CREATOR3(type0, type1, type2) \
-template<class T> Executor* createExecutor(void (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)(type0##_TYPE, type1##_TYPE, type2##_TYPE) __EXECUTOR_FUNCTIONAL_CONST) \
+#define EXECUTOR_FUNCTIONAL_CREATOR3(ret, type0, type1, type2) \
+template<class T> Executor* createExecutor(ret (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)(type0##_TYPE, type1##_TYPE, type2##_TYPE) __EXECUTOR_FUNCTIONAL_CONST) \
 { \
   return new __EXECUTOR_FUNCTIONAL_NAME(3)<T, type0##_TYPE, type1##_TYPE, type2##_TYPE>(functionPointer); \
@@ -467,6 +467,6 @@
  * @param type3 for internal usage: the fourth Argument
  */
-#define EXECUTOR_FUNCTIONAL_CREATOR4(type0, type1, type2, type3) \
-template<class T> Executor* createExecutor(void (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)(type0##_TYPE, type1##_TYPE, type2##_TYPE, type3##_TYPE) __EXECUTOR_FUNCTIONAL_CONST) \
+#define EXECUTOR_FUNCTIONAL_CREATOR4(ret, type0, type1, type2, type3) \
+template<class T> Executor* createExecutor(ret (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)(type0##_TYPE, type1##_TYPE, type2##_TYPE, type3##_TYPE) __EXECUTOR_FUNCTIONAL_CONST) \
 { \
   return new __EXECUTOR_FUNCTIONAL_NAME(4)<T, type0##_TYPE, type1##_TYPE, type2##_TYPE, type3##_TYPE>(functionPointer); \
@@ -481,6 +481,6 @@
  * @param type4 for internal usage: the fifth Argument
  */
-#define EXECUTOR_FUNCTIONAL_CREATOR5(type0, type1, type2, type3, type4) \
-template<class T> Executor* createExecutor(void (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)(type0##_TYPE, type1##_TYPE, type2##_TYPE, type3##_TYPE, type4##_TYPE) __EXECUTOR_FUNCTIONAL_CONST) \
+#define EXECUTOR_FUNCTIONAL_CREATOR5(ret, type0, type1, type2, type3, type4) \
+template<class T> Executor* createExecutor(ret (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)(type0##_TYPE, type1##_TYPE, type2##_TYPE, type3##_TYPE, type4##_TYPE) __EXECUTOR_FUNCTIONAL_CONST) \
 { \
     return new __EXECUTOR_FUNCTIONAL_NAME(5)<T, type0##_TYPE, type1##_TYPE, type2##_TYPE, type3##_TYPE, type4##_TYPE>(functionPointer); \
Index: branches/gui/src/lib/util/executor/functor_list.h
===================================================================
--- branches/gui/src/lib/util/executor/functor_list.h	(revision 8017)
+++ branches/gui/src/lib/util/executor/functor_list.h	(revision 8033)
@@ -90,57 +90,57 @@
 #ifdef FUNCTOR_LIST
 
-  FUNCTOR_LIST(0)();
+  FUNCTOR_LIST(0)(void);
   //! makes functions with one string
-  FUNCTOR_LIST(1)(l_STRING);
+  FUNCTOR_LIST(1)(void, l_STRING);
   //! makes functions with two strings
-  FUNCTOR_LIST(2)(l_STRING, l_STRING);
+  FUNCTOR_LIST(2)(void, l_STRING, l_STRING);
   //! makes functions with three strings
-  FUNCTOR_LIST(3)(l_STRING, l_STRING, l_STRING);
+  FUNCTOR_LIST(3)(void, l_STRING, l_STRING, l_STRING);
   //! makes functions with four strings
-  FUNCTOR_LIST(4)(l_STRING, l_STRING, l_STRING, l_STRING);
+  FUNCTOR_LIST(4)(void, l_STRING, l_STRING, l_STRING, l_STRING);
 
 
   //! makes functions with one bool
-  FUNCTOR_LIST(1)(l_BOOL);
+  FUNCTOR_LIST(1)(void, l_BOOL);
 
   //! makes functions with one int
-  FUNCTOR_LIST(1)(l_INT);
+  FUNCTOR_LIST(1)(void, l_INT);
   //! makes functions with two ints
-  FUNCTOR_LIST(2)(l_INT, l_INT);
+  FUNCTOR_LIST(2)(void, l_INT, l_INT);
   //! makes functions with three ints
-  FUNCTOR_LIST(3)(l_INT, l_INT, l_INT);
+  FUNCTOR_LIST(3)(void, l_INT, l_INT, l_INT);
   //! makes functions with four ints
-  FUNCTOR_LIST(4)(l_INT, l_INT, l_INT, l_INT);
+  FUNCTOR_LIST(4)(void, l_INT, l_INT, l_INT, l_INT);
 
 
   //! makes functions with one unsigned int
-  FUNCTOR_LIST(1)(l_UINT);
+  FUNCTOR_LIST(1)(void, l_UINT);
   //! makes functions with two unsigned ints
-  FUNCTOR_LIST(2)(l_UINT, l_UINT);
+  FUNCTOR_LIST(2)(void, l_UINT, l_UINT);
   //! makes functions with three unsigned ints
-  FUNCTOR_LIST(3)(l_UINT, l_UINT, l_UINT);
+  FUNCTOR_LIST(3)(void, l_UINT, l_UINT, l_UINT);
   //! makes functions with four unsigned ints
-  FUNCTOR_LIST(4)(l_UINT, l_UINT, l_UINT, l_UINT);
+  FUNCTOR_LIST(4)(void, l_UINT, l_UINT, l_UINT, l_UINT);
 
   //! makes functions with one float
-  FUNCTOR_LIST(1)(l_FLOAT);
+  FUNCTOR_LIST(1)(void, l_FLOAT);
   //! makes functions with two floats
-  FUNCTOR_LIST(2)(l_FLOAT, l_FLOAT);
+  FUNCTOR_LIST(2)(void, l_FLOAT, l_FLOAT);
   //! makes functions with three floats
-  FUNCTOR_LIST(3)(l_FLOAT, l_FLOAT, l_FLOAT);
+  FUNCTOR_LIST(3)(void, l_FLOAT, l_FLOAT, l_FLOAT);
   //! makes functions with four floats
-  FUNCTOR_LIST(4)(l_FLOAT, l_FLOAT, l_FLOAT, l_FLOAT);
+  FUNCTOR_LIST(4)(void, l_FLOAT, l_FLOAT, l_FLOAT, l_FLOAT);
   //! makes functions with four floats
-  FUNCTOR_LIST(5)(l_FLOAT, l_FLOAT, l_FLOAT, l_FLOAT, l_FLOAT);
+  FUNCTOR_LIST(5)(void, l_FLOAT, l_FLOAT, l_FLOAT, l_FLOAT, l_FLOAT);
 
   //! mixed values:
-  FUNCTOR_LIST(2)(l_STRING, l_FLOAT);
-  FUNCTOR_LIST(2)(l_UINT, l_LONG);
-  FUNCTOR_LIST(2)(l_STRING, l_UINT);
+  FUNCTOR_LIST(2)(void, l_STRING, l_FLOAT);
+  FUNCTOR_LIST(2)(void, l_UINT, l_LONG);
+  FUNCTOR_LIST(2)(void, l_STRING, l_UINT);
 
-  FUNCTOR_LIST(3)(l_STRING, l_FLOAT, l_UINT);
-  FUNCTOR_LIST(4)(l_STRING, l_FLOAT, l_UINT, l_UINT);
-  FUNCTOR_LIST(3)(l_STRING, l_INT, l_UINT);
-  FUNCTOR_LIST(3)(l_STRING, l_UINT, l_UINT);
+  FUNCTOR_LIST(3)(void, l_STRING, l_FLOAT, l_UINT);
+  FUNCTOR_LIST(4)(void, l_STRING, l_FLOAT, l_UINT, l_UINT);
+  FUNCTOR_LIST(3)(void, l_STRING, l_INT, l_UINT);
+  FUNCTOR_LIST(3)(void, l_STRING, l_UINT, l_UINT);
 
 #endif /* FUNCTOR_LIST */
