(method ComponentDefinitionMethod, w LanguageWriter, NameSpace string, ClassName string, isGlobal bool, spacing string)
| 1075 | } |
| 1076 | |
| 1077 | func writePascalFunctionType(method ComponentDefinitionMethod, w LanguageWriter, NameSpace string, ClassName string, isGlobal bool, spacing string) error { |
| 1078 | |
| 1079 | PascalCallbackName := "" |
| 1080 | parameters := "" |
| 1081 | if isGlobal { |
| 1082 | PascalCallbackName = fmt.Sprintf("T%s%sFunc", NameSpace, method.MethodName) |
| 1083 | } else { |
| 1084 | PascalCallbackName = fmt.Sprintf("T%s%s_%sFunc", NameSpace, ClassName, method.MethodName) |
| 1085 | parameters = fmt.Sprintf("p%s: T%sHandle", ClassName, NameSpace) |
| 1086 | } |
| 1087 | |
| 1088 | w.Writeln(spacing + "(**") |
| 1089 | w.Writeln(spacing+"* %s", method.MethodDescription) |
| 1090 | w.Writeln(spacing + "*") |
| 1091 | if !isGlobal { |
| 1092 | w.Writeln(spacing+"* @param[in] p%s - %s instance.", ClassName, ClassName) |
| 1093 | } |
| 1094 | |
| 1095 | for k := 0; k < len(method.Params); k++ { |
| 1096 | param := method.Params[k] |
| 1097 | |
| 1098 | pascalParams, err := generatePlainPascalParameter(param, ClassName, method.MethodName, NameSpace) |
| 1099 | if err != nil { |
| 1100 | return err |
| 1101 | } |
| 1102 | |
| 1103 | for _, pascalParam := range pascalParams { |
| 1104 | w.Writeln(spacing + pascalParam.ParamComment) |
| 1105 | if parameters != "" { |
| 1106 | parameters = parameters + "; " |
| 1107 | } |
| 1108 | parameters = parameters + pascalParam.ParamConvention + pascalParam.ParamName + ": " + pascalParam.ParamType |
| 1109 | } |
| 1110 | |
| 1111 | } |
| 1112 | |
| 1113 | w.Writeln(spacing + "* @return error code or 0 (success)") |
| 1114 | w.Writeln(spacing + "*)") |
| 1115 | |
| 1116 | w.Writeln(spacing+"%s = function(%s): T%sResult; cdecl;", PascalCallbackName, parameters, NameSpace) |
| 1117 | w.Writeln(spacing + "") |
| 1118 | |
| 1119 | return nil |
| 1120 | } |
| 1121 | |
| 1122 | func generatePlainPascalParameters(method ComponentDefinitionMethod, className string, NameSpace string) ([]pascalParameter, error) { |
| 1123 | parameters := []pascalParameter{} |
no test coverage detected