mirror of
https://bitbucket.org/chromiumembedded/cef
synced 2025-02-16 20:20:51 +01:00
- Add CefCommandLine::GetArgv method (issue #707).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@751 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
This commit is contained in:
parent
30ecc8a4db
commit
c15048d75f
@ -100,6 +100,13 @@ typedef struct _cef_command_line_t {
|
||||
///
|
||||
void (CEF_CALLBACK *reset)(struct _cef_command_line_t* self);
|
||||
|
||||
///
|
||||
// Retrieve the original command line string as a vector of strings. The argv
|
||||
// array: { program, [(--|-|/)switch[=value]]*, [--], [argument]* }
|
||||
///
|
||||
void (CEF_CALLBACK *get_argv)(struct _cef_command_line_t* self,
|
||||
cef_string_list_t argv);
|
||||
|
||||
///
|
||||
// Constructs and returns the represented command line string. Use this
|
||||
// function cautiously because quoting behavior is unclear.
|
||||
|
@ -113,6 +113,13 @@ class CefCommandLine : public virtual CefBase {
|
||||
/*--cef()--*/
|
||||
virtual void Reset() =0;
|
||||
|
||||
///
|
||||
// Retrieve the original command line string as a vector of strings.
|
||||
// The argv array: { program, [(--|-|/)switch[=value]]*, [--], [argument]* }
|
||||
///
|
||||
/*--cef()--*/
|
||||
virtual void GetArgv(std::vector<CefString>& argv) =0;
|
||||
|
||||
///
|
||||
// Constructs and returns the represented command line string. Use this method
|
||||
// cautiously because quoting behavior is unclear.
|
||||
|
@ -57,6 +57,14 @@ void CefCommandLineImpl::Reset() {
|
||||
const_cast<CommandLine::SwitchMap*>(&map)->clear();
|
||||
}
|
||||
|
||||
void CefCommandLineImpl::GetArgv(std::vector<CefString>& argv) {
|
||||
CEF_VALUE_VERIFY_RETURN_VOID(false);
|
||||
const CommandLine::StringVector& cmd_argv = const_value().argv();
|
||||
CommandLine::StringVector::const_iterator it = cmd_argv.begin();
|
||||
for (; it != cmd_argv.end(); ++it)
|
||||
argv.push_back(*it);
|
||||
}
|
||||
|
||||
CefString CefCommandLineImpl::GetCommandLineString() {
|
||||
CEF_VALUE_VERIFY_RETURN(false, CefString());
|
||||
return const_value().GetCommandLineString();
|
||||
|
@ -25,6 +25,7 @@ class CefCommandLineImpl : public CefValueBase<CefCommandLine, CommandLine> {
|
||||
virtual void InitFromArgv(int argc, const char* const* argv) OVERRIDE;
|
||||
virtual void InitFromString(const CefString& command_line) OVERRIDE;
|
||||
virtual void Reset() OVERRIDE;
|
||||
virtual void GetArgv(std::vector<CefString>& argv) OVERRIDE;
|
||||
virtual CefString GetCommandLineString() OVERRIDE;
|
||||
virtual CefString GetProgram() OVERRIDE;
|
||||
virtual void SetProgram(const CefString& program) OVERRIDE;
|
||||
|
@ -128,6 +128,31 @@ void CEF_CALLBACK command_line_reset(struct _cef_command_line_t* self) {
|
||||
CefCommandLineCppToC::Get(self)->Reset();
|
||||
}
|
||||
|
||||
void CEF_CALLBACK command_line_get_argv(struct _cef_command_line_t* self,
|
||||
cef_string_list_t argv) {
|
||||
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
|
||||
|
||||
DCHECK(self);
|
||||
if (!self)
|
||||
return;
|
||||
// Verify param: argv; type: string_vec_byref
|
||||
DCHECK(argv);
|
||||
if (!argv)
|
||||
return;
|
||||
|
||||
// Translate param: argv; type: string_vec_byref
|
||||
std::vector<CefString> argvList;
|
||||
transfer_string_list_contents(argv, argvList);
|
||||
|
||||
// Execute
|
||||
CefCommandLineCppToC::Get(self)->GetArgv(
|
||||
argvList);
|
||||
|
||||
// Restore param: argv; type: string_vec_byref
|
||||
cef_string_list_clear(argv);
|
||||
transfer_string_list_contents(argvList, argv);
|
||||
}
|
||||
|
||||
cef_string_userfree_t CEF_CALLBACK command_line_get_command_line_string(
|
||||
struct _cef_command_line_t* self) {
|
||||
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
|
||||
@ -361,6 +386,7 @@ CefCommandLineCppToC::CefCommandLineCppToC(CefCommandLine* cls)
|
||||
struct_.struct_.init_from_argv = command_line_init_from_argv;
|
||||
struct_.struct_.init_from_string = command_line_init_from_string;
|
||||
struct_.struct_.reset = command_line_reset;
|
||||
struct_.struct_.get_argv = command_line_get_argv;
|
||||
struct_.struct_.get_command_line_string =
|
||||
command_line_get_command_line_string;
|
||||
struct_.struct_.get_program = command_line_get_program;
|
||||
|
@ -136,6 +136,30 @@ void CefCommandLineCToCpp::Reset() {
|
||||
struct_->reset(struct_);
|
||||
}
|
||||
|
||||
void CefCommandLineCToCpp::GetArgv(std::vector<CefString>& argv) {
|
||||
if (CEF_MEMBER_MISSING(struct_, get_argv))
|
||||
return;
|
||||
|
||||
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
|
||||
|
||||
// Translate param: argv; type: string_vec_byref
|
||||
cef_string_list_t argvList = cef_string_list_alloc();
|
||||
DCHECK(argvList);
|
||||
if (argvList)
|
||||
transfer_string_list_contents(argv, argvList);
|
||||
|
||||
// Execute
|
||||
struct_->get_argv(struct_,
|
||||
argvList);
|
||||
|
||||
// Restore param:argv; type: string_vec_byref
|
||||
if (argvList) {
|
||||
argv.clear();
|
||||
transfer_string_list_contents(argvList, argv);
|
||||
cef_string_list_free(argvList);
|
||||
}
|
||||
}
|
||||
|
||||
CefString CefCommandLineCToCpp::GetCommandLineString() {
|
||||
if (CEF_MEMBER_MISSING(struct_, get_command_line_string))
|
||||
return CefString();
|
||||
|
@ -18,6 +18,7 @@
|
||||
#pragma message("Warning: "__FILE__" may be accessed wrapper-side only")
|
||||
#else // USING_CEF_SHARED
|
||||
|
||||
#include <vector>
|
||||
#include "include/cef_command_line.h"
|
||||
#include "include/capi/cef_command_line_capi.h"
|
||||
#include "libcef_dll/ctocpp/ctocpp.h"
|
||||
@ -40,6 +41,7 @@ class CefCommandLineCToCpp
|
||||
virtual void InitFromArgv(int argc, const char* const* argv) OVERRIDE;
|
||||
virtual void InitFromString(const CefString& command_line) OVERRIDE;
|
||||
virtual void Reset() OVERRIDE;
|
||||
virtual void GetArgv(std::vector<CefString>& argv) OVERRIDE;
|
||||
virtual CefString GetCommandLineString() OVERRIDE;
|
||||
virtual CefString GetProgram() OVERRIDE;
|
||||
virtual void SetProgram(const CefString& program) OVERRIDE;
|
||||
|
Loading…
x
Reference in New Issue
Block a user