Browse Source

Allow the C++ JS binding function to accept arbitrary long arguments

Cheng Zhao 9 years ago
parent
commit
1578d2fda9
3 changed files with 7 additions and 10 deletions
  1. 3 8
      atom/browser/api/atom_api_dialog.cc
  2. 3 1
      atom/browser/api/lib/dialog.coffee
  3. 1 1
      vendor/native_mate

+ 3 - 8
atom/browser/api/atom_api_dialog.cc

@@ -43,17 +43,12 @@ void ShowMessageBox(int type,
                     const std::vector<std::string>& buttons,
                     int cancel_id,
                     int options,
-                    const std::vector<std::string>& texts,
+                    const std::string& title,
+                    const std::string& message,
+                    const std::string& detail,
                     const gfx::ImageSkia& icon,
                     atom::NativeWindow* window,
                     mate::Arguments* args) {
-  // FIXME We are exceeding the parameters limit of base::Bind here, so we have
-  // to pass some parameters in an array. We should remove this once we have
-  // variadic template support in base::Bind.
-  const std::string& title = texts[0];
-  const std::string& message = texts[1];
-  const std::string& detail = texts[2];
-
   v8::Local<v8::Value> peek = args->PeekNext();
   atom::MessageBoxCallback callback;
   if (mate::Converter<atom::MessageBoxCallback>::FromV8(args->isolate(),

+ 3 - 1
atom/browser/api/lib/dialog.coffee

@@ -105,7 +105,9 @@ module.exports =
                            options.buttons,
                            options.cancelId,
                            0,
-                           [options.title, options.message, options.detail],
+                           options.title,
+                           options.message,
+                           options.detail,
                            options.icon,
                            window,
                            callback

+ 1 - 1
vendor/native_mate

@@ -1 +1 @@
-Subproject commit 41cd6d13c9c9be164f427864277f3cc36b69eb39
+Subproject commit 656e403f0102c59428261c1eaad22912d2bbd3c5