Index: gfx/gtk_util.cc |
diff --git a/gfx/gtk_util.cc b/gfx/gtk_util.cc |
index c45e13344cbb7916971b42fa5489b6f9fc7ec3f3..b30b82716e9aecf02d74f68999d00e0060cd9c11 100644 |
--- a/gfx/gtk_util.cc |
+++ b/gfx/gtk_util.cc |
@@ -9,6 +9,7 @@ |
#include <stdlib.h> |
#include "base/basictypes.h" |
+#include "base/command_line.h" |
#include "base/linux_util.h" |
#include "gfx/rect.h" |
#include "third_party/skia/include/core/SkBitmap.h" |
@@ -52,6 +53,24 @@ std::string ConvertAmperstandsTo(const std::string& label, |
namespace gfx { |
+void GtkInitFromCommandLine(const CommandLine& command_line) { |
+ const std::vector<std::string>& args = command_line.argv(); |
+ int argc = args.size(); |
+ scoped_array<char *> argv(new char *[argc + 1]); |
Evan Stade
2010/11/05 20:35:03
are these weird spaces necessary?
|
+ for (size_t i = 0; i < args.size(); ++i) { |
+ // TODO(piman@google.com): can gtk_init modify argv? Just being safe |
Evan Stade
2010/11/05 20:35:03
I think you can just remove the comment
|
+ // here. |
+ argv[i] = strdup(args[i].c_str()); |
+ } |
+ argv[argc] = NULL; |
+ char **argv_pointer = argv.get(); |
Evan Stade
2010/11/05 20:35:03
* on left
|
+ |
+ gtk_init(&argc, &argv_pointer); |
+ for (size_t i = 0; i < args.size(); ++i) { |
+ free(argv[i]); |
+ } |
+} |
+ |
GdkPixbuf* GdkPixbufFromSkBitmap(const SkBitmap* bitmap) { |
if (bitmap->isNull()) |
return NULL; |