Index: /branches/gui/src/lib/gui/gl_gui/signal_connector.cc
===================================================================
--- /branches/gui/src/lib/gui/gl_gui/signal_connector.cc	(revision 7989)
+++ /branches/gui/src/lib/gui/gl_gui/signal_connector.cc	(revision 7990)
@@ -64,3 +64,38 @@
   }
 
+  void SignalConnector::operator()(const MultiType& value0, const MultiType& value1) const
+  {
+    if (exec != NULL && object != NULL)
+    {
+      MultiType mt[] = { value0, value1 };
+      (*this->exec)(this->object, 2, mt);
+    }
+  }
+
+  void SignalConnector::operator()(const MultiType& value0, const MultiType& value1, const MultiType& value2) const
+  {
+    if (exec != NULL && object != NULL)
+    {
+      MultiType mt[] = { value0, value1, value2 };
+      (*this->exec)(this->object, 3, mt);
+    }
+  }
+
+  void SignalConnector::operator()(const MultiType& value0, const MultiType& value1, const MultiType& value2, const MultiType& value3) const
+  {
+    if (exec != NULL && object != NULL)
+    {
+      MultiType mt[] = { value0, value1, value2, value3 };
+      (*this->exec)(this->object, 4, mt);
+    }
+  }
+
+  void SignalConnector::operator()(const MultiType& value0, const MultiType& value1, const MultiType& value2, const MultiType& value3, const MultiType& value4) const
+  {
+    if (exec != NULL && object != NULL)
+    {
+      MultiType mt[] = { value0, value1, value2, value3, value4 };
+      (*this->exec)(this->object, 5, mt);
+    }
+  }
 }
Index: /branches/gui/src/lib/gui/gl_gui/signal_connector.h
===================================================================
--- /branches/gui/src/lib/gui/gl_gui/signal_connector.h	(revision 7989)
+++ /branches/gui/src/lib/gui/gl_gui/signal_connector.h	(revision 7990)
@@ -40,6 +40,6 @@
 
   /**
- * @brief declares a new Signal.
- * @param SignalName the Name of the Signal.
+   * @brief declares a new Signal.
+   * @param SignalName the Name of the Signal.
    */
 #define DeclareSignal1(SignalName, param0) \
@@ -49,4 +49,16 @@
        SignalName ## connected[i] (val0); \
     }\
+    DeclareSignalEnd(SignalName)
+
+  /**
+ * @brief declares a new Signal.
+ * @param SignalName the Name of the Signal.
+   */
+#define DeclareSignal2(SignalName, param0, param1) \
+  DeclareSignalBegin(SignalName) \
+   void  SignalName (param0 val0, param1 val1) { \
+     for (unsigned int i = 0; i < SignalName ## connected .size(); i++) \
+       SignalName ## connected[i] (val0, val1); \
+}\
     DeclareSignalEnd(SignalName)
 
@@ -85,4 +97,8 @@
     void operator()() const;
     void operator()(const MultiType& value0) const;
+    void operator()(const MultiType& value0, const MultiType& value1) const;
+    void operator()(const MultiType& value0, const MultiType& value1, const MultiType& value2) const;
+    void operator()(const MultiType& value0, const MultiType& value1, const MultiType& value2, const MultiType& value3) const;
+    void operator()(const MultiType& value0, const MultiType& value1, const MultiType& value2, const MultiType& value3, const MultiType& value4) const;
 
     bool isValid() const { return (this->object && this->exec); };
Index: /branches/gui/src/lib/util/executor/executor_functional.h
===================================================================
--- /branches/gui/src/lib/util/executor/executor_functional.h	(revision 7989)
+++ /branches/gui/src/lib/util/executor/executor_functional.h	(revision 7990)
@@ -163,11 +163,6 @@
   virtual void operator()(BaseObject* object, unsigned int count, const MultiType* values) const
   {
-    switch(count)
-    {
-      case 0:
-        return (__EXECUTOR_FUNCTIONAL_FUNCTION_EXEC)(fromMulti<type0>(this->defaultValue[0]));
-      default:
-       return (__EXECUTOR_FUNCTIONAL_FUNCTION_EXEC)(fromMulti<type0>(values[0]));
-    }
+    return (__EXECUTOR_FUNCTIONAL_FUNCTION_EXEC)(
+             fromMulti<type0>((count > 0)? values[0] : this->defaultValue[0]) );
   }
 
@@ -180,10 +175,4 @@
   virtual void operator()(BaseObject* object, const SubString& sub = SubString()) const
   {
-
-    /* // THE VERY COOL DEBUG
-      printf("SUB[0] : %s\n", sub[0].c_str());
-      printf("getDefault<type0>(this->defaultValue, 0):::: %d\n", getDefault<type0>(this->defaultValue, 0));
-      printf("VALUE: %d\n", fromString<type0>(sub[0], getDefault<type0>(this->defaultValue, 0)));
-    */
     (__EXECUTOR_FUNCTIONAL_FUNCTION_EXEC)(
       fromString<type0>(sub[0], getDefault<type0>(this->defaultValue, 0)) );
@@ -236,4 +225,7 @@
   virtual void operator()(BaseObject* object, unsigned int count, const MultiType* values) const
   {
+    return (__EXECUTOR_FUNCTIONAL_FUNCTION_EXEC)(
+             fromMulti<type0>((count > 0) ? values[0] : this->defaultValue[0]),
+             fromMulti<type1>((count > 1) ? values[1] : this->defaultValue[1]) );
   }
 
@@ -286,4 +278,8 @@
   virtual void operator()(BaseObject* object, unsigned int count, const MultiType* values) const
   {
+    return (__EXECUTOR_FUNCTIONAL_FUNCTION_EXEC)(
+             fromMulti<type0>((count > 0) ? values[0] : this->defaultValue[0]),
+             fromMulti<type1>((count > 1) ? values[1] : this->defaultValue[1]),
+             fromMulti<type2>((count > 2) ? values[2] : this->defaultValue[2]) );
   }
 
@@ -338,4 +334,9 @@
   virtual void operator()(BaseObject* object, unsigned int count, const MultiType* values) const
   {
+    return (__EXECUTOR_FUNCTIONAL_FUNCTION_EXEC)(
+             fromMulti<type0>((count > 0) ? values[0] : this->defaultValue[0]),
+             fromMulti<type1>((count > 1) ? values[1] : this->defaultValue[1]),
+             fromMulti<type2>((count > 2) ? values[2] : this->defaultValue[2]),
+             fromMulti<type3>((count > 3) ? values[3] : this->defaultValue[3]) );
   }
 
@@ -391,4 +392,10 @@
   virtual void operator()(BaseObject* object, unsigned int count, const MultiType* values) const
   {
+    return (__EXECUTOR_FUNCTIONAL_FUNCTION_EXEC)(
+             fromMulti<type0>((count > 0) ? values[0] : this->defaultValue[0]),
+             fromMulti<type1>((count > 1) ? values[1] : this->defaultValue[1]),
+             fromMulti<type2>((count > 2) ? values[2] : this->defaultValue[2]),
+             fromMulti<type3>((count > 3) ? values[3] : this->defaultValue[3]),
+             fromMulti<type4>((count > 4) ? values[4] : this->defaultValue[4]) );
   }
 
