extras:LogBox: added Logt and Tellt for friendly typed-args-array string printing
authorRejean Loyer <rejean.loyer@gmail.com>
Sun, 29 May 2011 13:37:26 +0000 (09:37 -0400)
committerRejean Loyer <rejean.loyer@gmail.com>
Sun, 29 May 2011 13:37:26 +0000 (09:37 -0400)
extras/gui/controls/LogBox.ec

index 3da8e58..f8d8b59 100644 (file)
@@ -6,15 +6,23 @@ class LogBox : EditBox
 {
    bool moved, logging, tell;
 
-   void Logf(char * format, ...)
+   void Logt(typed_object object, ...)
    {
-      char string[MAX_F_STRING*10];
+      va_list args;
+      char buffer[4096];
+      va_start(args, object);
+      PrintStdArgsToBuffer(buffer, sizeof(buffer), object, args);
+      va_end(args);
+      Log(buffer);
+   }
 
+   void Logf(char * format, ...)
+   {
       va_list args;
+      char string[MAX_F_STRING*10];
       va_start(args, format);
       vsprintf(string, format, args);
       va_end(args);
-
       Log(string);
    }
 
@@ -58,15 +66,23 @@ class LogBox : EditBox
       logging = false;
    }
 
-   void Tellf(char * format, ...)
+   void Tellt(typed_object object, ...)
    {
-      char string[MAX_F_STRING*10];
+      va_list args;
+      char buffer[4096];
+      va_start(args, object);
+      PrintStdArgsToBuffer(buffer, sizeof(buffer), object, args);
+      va_end(args);
+      Tell(buffer);
+   }
 
+   void Tellf(char * format, ...)
+   {
       va_list args;
+      char string[MAX_F_STRING*10];
       va_start(args, format);
       vsprintf(string, format, args);
       va_end(args);
-
       Tell(string);
    }