public static Signature ForFunction(SignatureType type, ISignatureOwner owner, Parser.SignatureData sd, ApiTypeBuilder api) { if (owner.CefName.Contains("::get_") && sd.Arguments.Count == 2) { if (sd.ReturnType.Name == "void" && string.IsNullOrEmpty(sd.ReturnType.Indirection)) { if (sd.Arguments[1].ArgumentType.Name.StartsWith("cef_string_list") || sd.Arguments[1].ArgumentType.Name.StartsWith("cef_string_m")) { return(new StringCollectionAsRetvalSignature(owner, sd, api)); } } } if (owner.CefConfig.CountFunction != null && sd.Arguments.Count == 3 && sd.ReturnType.Name == "void") { //Debug.Print(owner.CefName); } switch (owner.CefName) { case "cef_browser::get_frame_identifiers": return(new GetFrameIdentifiersSignature(owner, sd, api)); case "cef_v8value::execute_function_with_context": return(new SignatureWithStructPtrArray(SignatureType.LibraryCall, owner, sd, api, 4, 3)); case "cef_v8value::execute_function": return(new SignatureWithStructPtrArray(SignatureType.LibraryCall, owner, sd, api, 3, 2)); case "cef_render_handler::on_paint": return(new SignatureWithStructArray(SignatureType.ClientCallback, owner, sd, api, 4, 3)); case "cef_post_data::get_elements": case "cef_sslinfo::get_derencoded_issuer_chain": case "cef_sslinfo::get_pemencoded_issuer_chain": return(new StructArrayGetterSignature(owner, sd, api)); case "cef_v8handler::execute": return(new CefV8HandlerExecuteSignature(owner, sd, api)); case "cef_print_settings::set_page_ranges": return(new SignatureWithStructArray(SignatureType.LibraryCall, owner, sd, api, 2, 1)); case "cef_print_settings::get_page_ranges": return(new GetPageRangesSignature(owner, sd, api, 2, 1)); case "cef_drag_handler::on_draggable_regions_changed": return(new SignatureWithStructArray(SignatureType.ClientCallback, owner, sd, api, 3, 2)); default: return(null); } }
public static Signature Create(SignatureType type, ISignatureOwner owner, Parser.SignatureData sd, ApiTypeBuilder api) { var s = CustomSignatures.ForFunction(type, owner, sd, api); if (s == null) { return(new Signature(type, owner, sd, api)); } else { return(s); } }
public CefV8HandlerExecuteSignature(ISignatureOwner owner, Parser.SignatureData sd, ApiTypeBuilder api) : base(SignatureType.ClientCallback, owner, sd, api, 4, 3) { Arguments[6] = new Argument(Arguments[6], new CefStringOutType()); base.ManagedArguments[5] = new Argument(base.ManagedArguments[5], new CefStringOutType()); var list = new List <Argument>(); foreach (var arg in base.ManagedArguments) { if (arg.VarName != "retval") { list.Add(arg); } } m_publicArguments = list.ToArray(); }
protected Signature(SignatureType type, Parser.SignatureData sd, ApiTypeBuilder api) { Type = type; var args = new List <Argument>(); var index = 0; foreach (var arg in sd.Arguments) { args.Add(new Argument(arg, api, index)); index += 1; } this.Arguments = args.ToArray(); this.ReturnType = api.GetApiType(sd.ReturnType, false); this.ReturnValueIsConst = sd.ReturnValueIsConst; }
public SignatureWithStructArray(SignatureType type, ISignatureOwner parent, Parser.SignatureData sd, ApiTypeBuilder api, int arrayIndex, int countIndex) : base(type, parent, sd, api) { var list = new List <Argument>(); for (var i = 0; i <= Arguments.Length - 1; i++) { if (i != arrayIndex && i != countIndex) { list.Add(Arguments[i]); } else if (i == arrayIndex) { var a = new Argument(Arguments[arrayIndex], new CefStructArrayType(Arguments[arrayIndex], Arguments[countIndex])); list.Add(a); Arguments[i] = a; } } m_publicArguments = list.ToArray(); }
protected Signature(SignatureType type, ISignatureOwner owner, Parser.SignatureData sd, ApiTypeBuilder api) { Type = type; Owner = owner; var args = new List <Argument>(); var index = 0; foreach (var arg in sd.Arguments) { args.Add(new Argument(arg, api, index)); index += 1; } this.Arguments = args.ToArray(); this.ReturnType = api.GetApiType(sd.ReturnType, false); this.ReturnValueIsConst = sd.ReturnValueIsConst; var comments = owner.Comments; DebugPrintUnhandledArrayArguments(); }
public CefCallbackFunction(CefStructType parent, StructCategory category, string name, CefConfigData cefConfig, Parser.SignatureData sd, ApiTypeBuilder api, CommentData comments) { Name = name; this.Parent = parent; this.Comments = comments; if (cefConfig == null) { CefConfig = new CefConfigData(); } else { CefConfig = cefConfig; } if (category == StructCategory.ApiCallbacks) { m_callMode = CfxCallMode.Callback; this.Signature = Signature.Create(SignatureType.ClientCallback, CefName, CefConfig, CallMode, sd, api); } else { m_callMode = CfxCallMode.FunctionCall; this.Signature = Signature.Create(SignatureType.LibraryCall, CefName, CefConfig, CallMode, sd, api); } }
public static Signature Create(SignatureType type, string cefName, CefConfigData cefConfig, CfxCallMode callMode, Parser.SignatureData sd, ApiTypeBuilder api) { var s = new Signature(type, sd, api); var cs = CustomSignatures.ForFunction(s, cefName, cefConfig); if (cs == null) { s.DebugPrintUnhandledArrayArguments(cefName, cefConfig, callMode); AllSignatures.Add(s); return(s); } else { cs.DebugPrintUnhandledArrayArguments(cefName, cefConfig, callMode); AllSignatures.Add(cs); return(cs); } }
public StructArrayGetterSignature(ISignatureOwner owner, Parser.SignatureData sd, ApiTypeBuilder api) : base(SignatureType.LibraryCall, owner, sd, api) { }