Android: Finishes the large rework of the callback system. Now it can implement many more callbacks.

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@1833 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
sekelsenmat 2011-08-26 07:29:13 +00:00
parent 2f3114d122
commit c20f4e1ede
4 changed files with 589 additions and 241 deletions

View File

@ -39,7 +39,7 @@
<PackageName Value="LCL"/>
</Item2>
</RequiredPackages>
<Units Count="34">
<Units Count="35">
<Unit0>
<Filename Value="android_bindings_generator.pas"/>
<IsPartOfProject Value="True"/>
@ -48,7 +48,7 @@
<WindowIndex Value="0"/>
<TopLine Value="1"/>
<CursorPos X="15" Y="14"/>
<UsageCount Value="61"/>
<UsageCount Value="73"/>
<Loaded Value="True"/>
</Unit0>
<Unit1>
@ -59,9 +59,9 @@
<UnitName Value="mainform"/>
<EditorIndex Value="0"/>
<WindowIndex Value="0"/>
<TopLine Value="1"/>
<TopLine Value="7"/>
<CursorPos X="3" Y="39"/>
<UsageCount Value="61"/>
<UsageCount Value="73"/>
<Loaded Value="True"/>
<LoadedDesigner Value="True"/>
</Unit1>
@ -71,7 +71,7 @@
<WindowIndex Value="0"/>
<TopLine Value="51"/>
<CursorPos X="25" Y="24"/>
<UsageCount Value="12"/>
<UsageCount Value="11"/>
</Unit2>
<Unit3>
<Filename Value="../../../p-tools/turbochessclock4android/androidutil.pas"/>
@ -79,7 +79,7 @@
<WindowIndex Value="0"/>
<TopLine Value="1"/>
<CursorPos X="1" Y="1"/>
<UsageCount Value="13"/>
<UsageCount Value="12"/>
</Unit3>
<Unit4>
<Filename Value="../../../p-tools/turbochessclock4android/androidview.pas"/>
@ -87,7 +87,7 @@
<WindowIndex Value="0"/>
<TopLine Value="1"/>
<CursorPos X="82" Y="10"/>
<UsageCount Value="13"/>
<UsageCount Value="12"/>
</Unit4>
<Unit5>
<Filename Value="../../../p-tools/turbochessclock4android/androiddialog.pas"/>
@ -95,7 +95,7 @@
<WindowIndex Value="0"/>
<TopLine Value="1"/>
<CursorPos X="1" Y="1"/>
<UsageCount Value="13"/>
<UsageCount Value="12"/>
</Unit5>
<Unit6>
<Filename Value="../../../p-tools/turbochessclock4android/androidinputevent.pas"/>
@ -103,25 +103,26 @@
<WindowIndex Value="0"/>
<TopLine Value="1"/>
<CursorPos X="1" Y="1"/>
<UsageCount Value="7"/>
<UsageCount Value="6"/>
</Unit6>
<Unit7>
<Filename Value="../../../p-tools/turbochessclock4android/android/src/com/pascal/turbochessclock/AndroidMenu.java"/>
<WindowIndex Value="0"/>
<TopLine Value="54"/>
<CursorPos X="87" Y="37"/>
<UsageCount Value="14"/>
<UsageCount Value="13"/>
<DefaultSyntaxHighlighter Value="Java"/>
</Unit7>
<Unit8>
<Filename Value="android_sdk_bindings_gen.pas"/>
<IsPartOfProject Value="True"/>
<UnitName Value="android_sdk_bindings_gen"/>
<IsVisibleTab Value="True"/>
<EditorIndex Value="3"/>
<WindowIndex Value="0"/>
<TopLine Value="677"/>
<CursorPos X="1" Y="692"/>
<UsageCount Value="61"/>
<TopLine Value="435"/>
<CursorPos X="3" Y="454"/>
<UsageCount Value="73"/>
<Loaded Value="True"/>
</Unit8>
<Unit9>
@ -130,7 +131,7 @@
<WindowIndex Value="0"/>
<TopLine Value="1"/>
<CursorPos X="1" Y="60"/>
<UsageCount Value="13"/>
<UsageCount Value="12"/>
</Unit9>
<Unit10>
<Filename Value="../../../p-tools/turbochessclock4android/androidpipescomm.pas"/>
@ -138,14 +139,14 @@
<WindowIndex Value="0"/>
<TopLine Value="1"/>
<CursorPos X="1" Y="1"/>
<UsageCount Value="7"/>
<UsageCount Value="6"/>
</Unit10>
<Unit11>
<Filename Value="../../../fpcbuild/fpcsrc/rtl/objpas/sysutils/sysstrh.inc"/>
<WindowIndex Value="0"/>
<TopLine Value="92"/>
<CursorPos X="18" Y="116"/>
<UsageCount Value="7"/>
<UsageCount Value="6"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit11>
<Unit12>
@ -153,7 +154,7 @@
<WindowIndex Value="0"/>
<TopLine Value="232"/>
<CursorPos X="111" Y="259"/>
<UsageCount Value="13"/>
<UsageCount Value="12"/>
<DefaultSyntaxHighlighter Value="Java"/>
</Unit12>
<Unit13>
@ -162,7 +163,7 @@
<WindowIndex Value="0"/>
<TopLine Value="127"/>
<CursorPos X="17" Y="161"/>
<UsageCount Value="11"/>
<UsageCount Value="10"/>
</Unit13>
<Unit14>
<Filename Value="sdk_level_7/android_all.pas"/>
@ -170,7 +171,7 @@
<WindowIndex Value="0"/>
<TopLine Value="1"/>
<CursorPos X="1" Y="1"/>
<UsageCount Value="10"/>
<UsageCount Value="9"/>
</Unit14>
<Unit15>
<Filename Value="../../../p-tools/systeminfo4android/javalang.pas"/>
@ -178,7 +179,7 @@
<WindowIndex Value="0"/>
<TopLine Value="1"/>
<CursorPos X="1" Y="1"/>
<UsageCount Value="8"/>
<UsageCount Value="7"/>
</Unit15>
<Unit16>
<Filename Value="../../../p-tools/systeminfo4android/androidtimer.pas"/>
@ -186,23 +187,23 @@
<WindowIndex Value="0"/>
<TopLine Value="1"/>
<CursorPos X="3" Y="20"/>
<UsageCount Value="8"/>
<UsageCount Value="7"/>
</Unit16>
<Unit17>
<Filename Value="sdk_level_7/AndroidAll.java"/>
<WindowIndex Value="0"/>
<TopLine Value="441"/>
<CursorPos X="16" Y="441"/>
<UsageCount Value="10"/>
<UsageCount Value="9"/>
<DefaultSyntaxHighlighter Value="Java"/>
</Unit17>
<Unit18>
<Filename Value="sdk_level_7/android_all.txt"/>
<EditorIndex Value="4"/>
<WindowIndex Value="0"/>
<TopLine Value="92"/>
<CursorPos X="64" Y="131"/>
<UsageCount Value="23"/>
<TopLine Value="1"/>
<CursorPos X="1" Y="1"/>
<UsageCount Value="28"/>
<Loaded Value="True"/>
<DefaultSyntaxHighlighter Value="None"/>
</Unit18>
@ -212,14 +213,14 @@
<WindowIndex Value="0"/>
<TopLine Value="501"/>
<CursorPos X="54" Y="525"/>
<UsageCount Value="8"/>
<UsageCount Value="7"/>
</Unit19>
<Unit20>
<Filename Value="../../../test/androidlcl/android/src/com/pascal/androidlcl/AndroidAll.java"/>
<WindowIndex Value="0"/>
<TopLine Value="365"/>
<CursorPos X="38" Y="381"/>
<UsageCount Value="8"/>
<UsageCount Value="7"/>
<DefaultSyntaxHighlighter Value="Java"/>
</Unit20>
<Unit21>
@ -229,36 +230,37 @@
<WindowIndex Value="0"/>
<TopLine Value="1"/>
<CursorPos X="26" Y="9"/>
<UsageCount Value="23"/>
<UsageCount Value="28"/>
<Loaded Value="True"/>
</Unit21>
<Unit22>
<Filename Value="../../examples/androidlcl/android/src/com/pascal/androidlcl/AndroidAll.java"/>
<EditorIndex Value="6"/>
<WindowIndex Value="0"/>
<TopLine Value="53"/>
<CursorPos X="1" Y="1"/>
<UsageCount Value="8"/>
<TopLine Value="151"/>
<CursorPos X="35" Y="120"/>
<UsageCount Value="12"/>
<Loaded Value="True"/>
<DefaultSyntaxHighlighter Value="Java"/>
</Unit22>
<Unit23>
<Filename Value="../../../lazarus/lcl/interfaces/android/android_all.pas"/>
<UnitName Value="android_all"/>
<IsVisibleTab Value="True"/>
<EditorIndex Value="5"/>
<WindowIndex Value="0"/>
<TopLine Value="404"/>
<CursorPos X="21" Y="144"/>
<UsageCount Value="23"/>
<TopLine Value="99"/>
<CursorPos X="15" Y="99"/>
<UsageCount Value="28"/>
<Loaded Value="True"/>
</Unit23>
<Unit24>
<Filename Value="../../../lazarus/lcl/interfaces/android/androidpipescomm.pas"/>
<UnitName Value="androidpipescomm"/>
<EditorIndex Value="12"/>
<EditorIndex Value="7"/>
<WindowIndex Value="0"/>
<TopLine Value="38"/>
<CursorPos X="15" Y="62"/>
<UsageCount Value="23"/>
<UsageCount Value="28"/>
<Loaded Value="True"/>
</Unit24>
<Unit25>
@ -267,200 +269,200 @@
<WindowIndex Value="0"/>
<TopLine Value="74"/>
<CursorPos X="1" Y="1"/>
<UsageCount Value="8"/>
<UsageCount Value="7"/>
</Unit25>
<Unit26>
<Filename Value="../../../lazarus/lcl/arrow.pp"/>
<UnitName Value="Arrow"/>
<EditorIndex Value="6"/>
<WindowIndex Value="0"/>
<TopLine Value="21"/>
<CursorPos X="3" Y="45"/>
<UsageCount Value="19"/>
<Loaded Value="True"/>
<UsageCount Value="18"/>
</Unit26>
<Unit27>
<Filename Value="../../../lazarus/lcl/extctrls.pp"/>
<UnitName Value="ExtCtrls"/>
<EditorIndex Value="7"/>
<WindowIndex Value="0"/>
<TopLine Value="388"/>
<CursorPos X="3" Y="412"/>
<UsageCount Value="19"/>
<Loaded Value="True"/>
<UsageCount Value="18"/>
</Unit27>
<Unit28>
<Filename Value="../../../lazarus/lcl/comctrls.pp"/>
<UnitName Value="ComCtrls"/>
<EditorIndex Value="10"/>
<WindowIndex Value="0"/>
<TopLine Value="1952"/>
<CursorPos X="26" Y="1976"/>
<UsageCount Value="19"/>
<Loaded Value="True"/>
<UsageCount Value="18"/>
</Unit28>
<Unit29>
<Filename Value="../../../lazarus/lcl/stdctrls.pp"/>
<UnitName Value="StdCtrls"/>
<EditorIndex Value="9"/>
<WindowIndex Value="0"/>
<TopLine Value="1025"/>
<CursorPos X="32" Y="1049"/>
<UsageCount Value="19"/>
<Loaded Value="True"/>
<UsageCount Value="18"/>
</Unit29>
<Unit30>
<Filename Value="../../../lazarus/lcl/grids.pas"/>
<UnitName Value="Grids"/>
<EditorIndex Value="8"/>
<WindowIndex Value="0"/>
<TopLine Value="606"/>
<CursorPos X="3" Y="630"/>
<UsageCount Value="19"/>
<Loaded Value="True"/>
<UsageCount Value="18"/>
</Unit30>
<Unit31>
<Filename Value="../../../lazarus/lcl/toolwin.pp"/>
<UnitName Value="Toolwin"/>
<EditorIndex Value="11"/>
<WindowIndex Value="0"/>
<TopLine Value="31"/>
<CursorPos X="3" Y="56"/>
<UsageCount Value="19"/>
<Loaded Value="True"/>
<UsageCount Value="18"/>
</Unit31>
<Unit32>
<Filename Value="../../../lazarus/lcl/interfaces/wince/winceobject.inc"/>
<WindowIndex Value="0"/>
<TopLine Value="301"/>
<CursorPos X="12" Y="339"/>
<UsageCount Value="9"/>
<UsageCount Value="8"/>
</Unit32>
<Unit33>
<Filename Value="../../../lazarus/lcl/interfaces/carbon/carbonobject.inc"/>
<WindowIndex Value="0"/>
<TopLine Value="520"/>
<CursorPos X="44" Y="552"/>
<UsageCount Value="9"/>
<UsageCount Value="8"/>
</Unit33>
<Unit34>
<Filename Value="../../examples/androidlcl/android/src/com/pascal/androidlcl/AndroidApp.java"/>
<WindowIndex Value="0"/>
<TopLine Value="1"/>
<CursorPos X="1" Y="1"/>
<UsageCount Value="10"/>
<DefaultSyntaxHighlighter Value="Java"/>
</Unit34>
</Units>
<JumpHistory Count="29" HistoryIndex="28">
<JumpHistory Count="30" HistoryIndex="29">
<Position1>
<Filename Value="android_sdk_bindings_gen.pas"/>
<Caret Line="402" Column="39" TopLine="379"/>
<Caret Line="57" Column="26" TopLine="31"/>
</Position1>
<Position2>
<Filename Value="android_sdk_bindings_gen.pas"/>
<Caret Line="30" Column="29" TopLine="6"/>
<Caret Line="784" Column="46" TopLine="743"/>
</Position2>
<Position3>
<Filename Value="android_sdk_bindings_gen.pas"/>
<Caret Line="39" Column="20" TopLine="6"/>
<Caret Line="57" Column="15" TopLine="31"/>
</Position3>
<Position4>
<Filename Value="android_sdk_bindings_gen.pas"/>
<Caret Line="41" Column="20" TopLine="15"/>
<Caret Line="784" Column="46" TopLine="743"/>
</Position4>
<Position5>
<Filename Value="android_sdk_bindings_gen.pas"/>
<Caret Line="867" Column="11" TopLine="831"/>
<Caret Line="859" Column="60" TopLine="834"/>
</Position5>
<Position6>
<Filename Value="android_sdk_bindings_gen.pas"/>
<Caret Line="857" Column="11" TopLine="843"/>
<Filename Value="../../examples/androidlcl/android/src/com/pascal/androidlcl/AndroidAll.java"/>
<Caret Line="140" Column="50" TopLine="96"/>
</Position6>
<Position7>
<Filename Value="android_sdk_bindings_gen.pas"/>
<Caret Line="886" Column="23" TopLine="862"/>
<Filename Value="../../examples/androidlcl/android/src/com/pascal/androidlcl/AndroidAll.java"/>
<Caret Line="1" Column="1" TopLine="1"/>
</Position7>
<Position8>
<Filename Value="android_sdk_bindings_gen.pas"/>
<Caret Line="889" Column="16" TopLine="878"/>
<Filename Value="../../examples/androidlcl/android/src/com/pascal/androidlcl/AndroidAll.java"/>
<Caret Line="39" Column="50" TopLine="1"/>
</Position8>
<Position9>
<Filename Value="android_sdk_bindings_gen.pas"/>
<Caret Line="876" Column="3" TopLine="863"/>
<Filename Value="../../examples/androidlcl/android/src/com/pascal/androidlcl/AndroidAll.java"/>
<Caret Line="52" Column="1" TopLine="27"/>
</Position9>
<Position10>
<Filename Value="android_sdk_bindings_gen.pas"/>
<Caret Line="852" Column="3" TopLine="834"/>
<Caret Line="192" Column="34" TopLine="178"/>
</Position10>
<Position11>
<Filename Value="android_sdk_bindings_gen.pas"/>
<Caret Line="877" Column="8" TopLine="853"/>
<Caret Line="427" Column="17" TopLine="386"/>
</Position11>
<Position12>
<Filename Value="android_sdk_bindings_gen.pas"/>
<Caret Line="849" Column="1" TopLine="834"/>
<Caret Line="1176" Column="46" TopLine="1138"/>
</Position12>
<Position13>
<Filename Value="android_sdk_bindings_gen.pas"/>
<Caret Line="429" Column="3" TopLine="410"/>
<Caret Line="1" Column="1" TopLine="1"/>
</Position13>
<Position14>
<Filename Value="android_sdk_bindings_gen.pas"/>
<Caret Line="432" Column="1" TopLine="410"/>
<Caret Line="71" Column="27" TopLine="30"/>
</Position14>
<Position15>
<Filename Value="android_sdk_bindings_gen.pas"/>
<Caret Line="35" Column="1" TopLine="16"/>
<Caret Line="490" Column="1" TopLine="448"/>
</Position15>
<Position16>
<Filename Value="android_sdk_bindings_gen.pas"/>
<Caret Line="44" Column="41" TopLine="15"/>
<Caret Line="626" Column="1" TopLine="584"/>
</Position16>
<Position17>
<Filename Value="sdk_level_7/android_all.txt"/>
<Caret Line="32" Column="1" TopLine="1"/>
<Filename Value="android_sdk_bindings_gen.pas"/>
<Caret Line="915" Column="1" TopLine="872"/>
</Position17>
<Position18>
<Filename Value="sdk_level_7/android_all.txt"/>
<Caret Line="93" Column="19" TopLine="52"/>
<Filename Value="android_sdk_bindings_gen.pas"/>
<Caret Line="920" Column="17" TopLine="879"/>
</Position18>
<Position19>
<Filename Value="sdk_level_7/android_all.txt"/>
<Caret Line="207" Column="1" TopLine="166"/>
<Filename Value="android_sdk_bindings_gen.pas"/>
<Caret Line="923" Column="17" TopLine="882"/>
</Position19>
<Position20>
<Filename Value="android_sdk_bindings_gen.pas"/>
<Caret Line="844" Column="58" TopLine="815"/>
<Caret Line="926" Column="17" TopLine="885"/>
</Position20>
<Position21>
<Filename Value="../../../lazarus/lcl/interfaces/android/android_all.pas"/>
<Caret Line="8" Column="51" TopLine="1"/>
<Filename Value="android_sdk_bindings_gen.pas"/>
<Caret Line="1180" Column="17" TopLine="1152"/>
</Position21>
<Position22>
<Filename Value="../../../lazarus/lcl/interfaces/android/android_all.pas"/>
<Caret Line="14" Column="19" TopLine="1"/>
<Filename Value="android_sdk_bindings_gen.pas"/>
<Caret Line="1219" Column="17" TopLine="1178"/>
</Position22>
<Position23>
<Filename Value="../../../lazarus/lcl/interfaces/android/android_all.pas"/>
<Caret Line="63" Column="19" TopLine="22"/>
<Filename Value="android_sdk_bindings_gen.pas"/>
<Caret Line="1244" Column="17" TopLine="1203"/>
</Position23>
<Position24>
<Filename Value="../../../lazarus/lcl/interfaces/android/android_all.pas"/>
<Caret Line="235" Column="21" TopLine="194"/>
<Filename Value="android_sdk_bindings_gen.pas"/>
<Caret Line="1" Column="1" TopLine="1"/>
</Position24>
<Position25>
<Filename Value="android_sdk_bindings_gen.pas"/>
<Caret Line="40" Column="15" TopLine="16"/>
<Caret Line="20" Column="19" TopLine="1"/>
</Position25>
<Position26>
<Filename Value="android_sdk_bindings_gen.pas"/>
<Caret Line="842" Column="3" TopLine="835"/>
<Caret Line="192" Column="34" TopLine="151"/>
</Position26>
<Position27>
<Filename Value="../../../lazarus/lcl/interfaces/android/android_all.pas"/>
<Caret Line="330" Column="61" TopLine="318"/>
<Filename Value="android_sdk_bindings_gen.pas"/>
<Caret Line="427" Column="17" TopLine="386"/>
</Position27>
<Position28>
<Filename Value="../../../lazarus/lcl/interfaces/android/android_all.pas"/>
<Caret Line="1" Column="1" TopLine="1"/>
<Filename Value="android_sdk_bindings_gen.pas"/>
<Caret Line="1179" Column="17" TopLine="1138"/>
</Position28>
<Position29>
<Filename Value="../../../lazarus/lcl/interfaces/android/android_all.pas"/>
<Caret Line="14" Column="19" TopLine="1"/>
<Filename Value="android_sdk_bindings_gen.pas"/>
<Caret Line="1219" Column="17" TopLine="1178"/>
</Position29>
<Position30>
<Filename Value="android_sdk_bindings_gen.pas"/>
<Caret Line="917" Column="23" TopLine="909"/>
</Position30>
</JumpHistory>
</ProjectOptions>
<CompilerOptions>

View File

@ -22,17 +22,27 @@ type
FClassNum, FMethodNum: Integer;
FIsGlobalObject: Boolean;
FGlobalObject: string;
// List of Callback types which are used later
FCallbackTypesJavaName: TStringList;
FCallbackTypesParams: TStringList;
FCallbackTypesInnerName: TStringList;
FCallbackTypesFirstParam: TStringList;
//
// ProcessMethodReturnValue
FMethodReturnPas, FDeclarationBase: string;
FDeclarationIsFunction: Boolean;
// ProcessMethodName
FMethodName: string;
// ProcessMethodPreface
FJavaParamSelf: String;
FIDString: String;
FIDSetter, FIDStart, FIDFinished: String;
FCallbackName, FSetterName, FCallerName: string;
// ProcessMethodParameters
FPascalParams, FJavaParams: string;
FPascalParams, FJavaParams, FFirstParam: string;
FHasStringParam: Boolean;
FPasOutputImplCurLine: Integer;
FCallbackTypePas: string;
FCallbackTypePas, FCallbackTypeJava: string;
//
procedure GeneratePascalFile(ASourceFile: string; ADest: TStringList);
procedure GenerateJavaFile(ASourceFile: string; ADest: TStringList);
@ -47,6 +57,7 @@ type
//
procedure ProcessMethodReturnValue(ASourceLine: string; var lReaderPos: Integer);
procedure ProcessMethodName(ASourceLine: string; var lReaderPos: Integer);
procedure ProcessMethodPreface(ASourceLine: string; AIsCallback: Boolean);
procedure ProcessMethodParameters(ASourceLine: string; var lReaderPos: Integer; AAddParamRead: Boolean = True);
//
function GetNextWord(ALine: string; var AStartPos: Integer): string;
@ -162,6 +173,7 @@ begin
ADest.Add(' JavaLang MyJavaLang;');
ADest.Add(' // lists of variables');
ADest.Add(' ArrayList ViewElements;');
ADest.Add(' ArrayList ViewElementsTags;');
ADest.Add('');
ADest.Add(' public AndroidAll(AndroidPipesComm AAndroidPipesComm, Activity AActivity, JavaLang AJavaLang)');
ADest.Add(' {');
@ -169,6 +181,7 @@ begin
ADest.Add(' MyAndroidPipesComm = AAndroidPipesComm;');
ADest.Add(' MyJavaLang = AJavaLang;');
ADest.Add(' ViewElements = new ArrayList();');
ADest.Add(' ViewElementsTags = new ArrayList();');
ADest.Add(' }');
ADest.Add('');
ADest.Add(' public void DebugOut(String Str)');
@ -205,13 +218,15 @@ begin
ADest.Add(' ArrayAdapter<String> param_self_ArrayAdapter_String_;');
ADest.Add(' AdapterView param_self_AdapterView;');
ADest.Add(' AlertDialog.Builder param_self_AlertDialog_Builder;');
ADest.Add(' Dialog param_self_Dialog;');
ADest.Add(' AlertDialog param_self_AlertDialog;');
ADest.Add(' //');
ADest.Add(' // Params');
ADest.Add(' //');
ADest.Add(' ViewGroup.LayoutParams lViewGroup_LayoutParams_1, lViewGroup_LayoutParams_2, lViewGroup_LayoutParams_3;');
ADest.Add(' SpinnerAdapter lSpinnerAdapter_1;');
ADest.Add(' DisplayMetrics lDisplayMetrics_1;');
ADest.Add(' CharSequence lCharSequence_1;');
ADest.Add(' CharSequence lCharSequence_1, lCharSequence_2;');
ADest.Add(' String lString_1;');
ADest.Add(' View lView_1;');
ADest.Add(' int lint_1, lint_2, lint_3, lint_4;');
@ -579,6 +594,7 @@ begin
else
begin
FJavaOutputMethods.Add(Format(' ViewElements.add(%s);', [lMethodReturnJavaIdentifier]));
FJavaOutputMethods.Add( ' ViewElementsTags.add(null);');
FJavaOutputMethods.Add(Format(' MyAndroidPipesComm.%s(ViewElements.size() - 1);', [GetJavaResultFunction(lMethodReturn)]))
end;
end;
@ -673,6 +689,7 @@ begin
FPasOutputImpl.Add('end;');
FJavaOutputMethods.Add(' ViewElements.add(new ' + FClassName + '(' + lConstructorJavaParams + '));');
FJavaOutputMethods.Add(' ViewElementsTags.add(null);');
FJavaOutputMethods.Add(' MyAndroidPipesComm.SendIntResult(ViewElements.size() - 1);');
FJavaOutputMethods.Add(' break;');
@ -701,10 +718,12 @@ procedure TAndroidSDKBindingsGen.ProcessModelCallbackSetter(ASourceLine: string)
var
lReaderPos: Integer = 1;
lCurWord: string;
lSetterName, lCallerName, lCallbackName, lCallbackDeclaration: string;
lIDSetter, lIDStart, lIDFinished: String;
lJavaParamSelf: string;
lStr: String;
lSeparator: String;
lJavaCallbackIndex: Integer;
lJavaCallbackParams, lJavaCallbackInnerName, lFirstCallbackParam: String;
lHugeParamList: TStringList;
lHugeParamListText: String;
begin
if ASourceLine = '' then Exit;
@ -712,49 +731,40 @@ begin
ProcessMethodReturnValue(ASourceLine, lReaderPos);
ProcessMethodName(ASourceLine, lReaderPos);
// Pascal and Java Implementation Start
ProcessMethodPreface(ASourceLine, True);
ProcessMethodParameters(ASourceLine, lReaderPos);
lSetterName := FMethodName;
lIDSetter := GetIDString(lSetterName);
lCallbackName := Copy(lSetterName, 4, Length(lSetterName)); // remove the "set" from the setter name
lCallerName := 'call' + lCallbackName;
AddOutputIDs(lIDSetter);
Inc(FMethodNum);
lIDStart := GetIDString(lCallbackName + '_Start');
AddOutputIDs(lIDStart);
Inc(FMethodNum);
lIDFinished := GetIDString(lCallbackName + '_Finished');
AddOutputIDs(lIDFinished);
Inc(FMethodNum);
// Pascal implementation continuation
if FPascalParams = '' then lSeparator := ''
else lSeparator := '; ';
FPasOutputImpl.Insert(FPasOutputImplCurLine,
Format('procedure %s.%s(%s%sACallback: %s);', [FClassNamePas, FSetterName, FPascalParams, lSeparator, FCallbackTypePas]));
FPasOutputClasses.Add( ' public');
FPasOutputClasses.Add(Format(' %s: %s;', [lCallbackName, FCallbackTypePas]));
FPasOutputClasses.Add(Format(' procedure %s(ACallback: %s);', [lSetterName, FCallbackTypePas]));
FPasOutputClasses.Add(Format(' procedure %s();', [lCallerName]));
FPasOutputClasses.Add( ' public');
FPasOutputImpl.Add(Format('procedure %s.%s(ACallback: %s);', [FClassNamePas, lSetterName, FCallbackTypePas]));
FPasOutputImpl.Add( 'begin');
FPasOutputImpl.Add( ' OnClickListener := ACallback;');
FPasOutputImpl.Add( ' vAndroidPipesComm.SendByte(ShortInt(amkUICommand));');
FPasOutputImpl.Add( ' vAndroidPipesComm.SendInt(' + lIDSetter + ');');
FPasOutputImpl.Add( ' vAndroidPipesComm.SendInt(Index); // Self, Java Index');
FPasOutputImpl.Add( ' vAndroidPipesComm.SendInt(PtrInt(Self)); // Self, Pascal pointer');
FPasOutputImpl.Add( ' vAndroidPipesComm.WaitForReturn();');
FPasOutputImpl.Add( 'end;');
FPasOutputImpl.Add( '');
FPasOutputImpl.Add(Format('procedure %s.%s();', [FClassNamePas, lCallerName]));
FPasOutputImpl.Add(Format('procedure %s.%s();', [FClassNamePas, FCallerName]));
FPasOutputImpl.Add( 'begin');
FPasOutputImpl.Add( ' if Assigned(OnClickListener) then OnClickListener(Self);');
FPasOutputImpl.Add(Format(' if Assigned(%s) then %s();', [FCallbackName, FCallbackName]));
FPasOutputImpl.Add( 'end;');
// Method type and name
FPasOutputMessages.Add(' ' + lIDStart + ':');
FPasOutputMessages.Add(' begin');
FPasOutputMessages.Add(' lPascalPointer := vAndroidPipesComm.ReadInt();');
FPasOutputMessages.Add(' TTextView(lPascalPointer).callOnClickListener();');
FPasOutputMessages.Add(' vAndroidPipesComm.SendMessage(amkUICommand, ' + lIDFinished + ');');
FPasOutputMessages.Add(' end;');
// Pascal Interface
FPasOutputClasses.Add( ' public');
FPasOutputClasses.Add(Format(' %s: %s;', [FCallbackName, FCallbackTypePas]));
FPasOutputClasses.Add(Format(' procedure %s(%s%sACallback: %s);', [FSetterName, FPascalParams, lSeparator, FCallbackTypePas]));
FPasOutputClasses.Add(Format(' procedure %s();', [FCallerName]));
FPasOutputClasses.Add( ' public');
// Pascal Message Reader
FPasOutputMessages.Add( ' ' + FIDStart + ':');
FPasOutputMessages.Add( ' begin');
FPasOutputMessages.Add( ' lPascalPointer := vAndroidPipesComm.ReadInt();');
FPasOutputMessages.Add(Format(' %s(lPascalPointer).%s();', [FClassNamePas, FCallerName]));
FPasOutputMessages.Add( ' vAndroidPipesComm.SendMessage(amkUICommand, ' + FIDFinished + ');');
FPasOutputMessages.Add( ' end;');
{ amkUI_MenuItem_setOnMenuItemClickListener_Start:
begin
lInt := ReadInt();
@ -766,36 +776,35 @@ begin
end;
end;}
// -----------------------------------------------
// Now Java:
// -----------------------------------------------
lJavaParamSelf := 'param_self_' + FClassName;
FJavaOutputMethods.Add( ' // ' + ASourceLine);
FJavaOutputMethods.Add( ' case ' + lIDSetter + ':');
FJavaOutputMethods.Add( ' DebugOut("' + lIDSetter + '");');
FJavaOutputMethods.Add( ' // Self');
FJavaOutputMethods.Add( ' lInt = MyAndroidPipesComm.GetInt();');
FJavaOutputMethods.Add( ' ' + lJavaParamSelf + ' = (' + FClassName + ') ViewElements.get(lInt);');
FJavaOutputMethods.Add( ' lPascalPointer = MyAndroidPipesComm.GetInt();');
FJavaOutputMethods.Add(Format(' %s.setTag(Integer.valueOf(lPascalPointer));', [lJavaParamSelf]));
FJavaOutputMethods.Add( '');
lJavaCallbackIndex := FCallbackTypesJavaName.IndexOf(FCallbackTypeJava);
lJavaCallbackParams := FCallbackTypesParams.Strings[lJavaCallbackIndex];
lJavaCallbackInnerName := FCallbackTypesInnerName.Strings[lJavaCallbackIndex];
lFirstCallbackParam := FCallbackTypesFirstParam.Strings[lJavaCallbackIndex];
lHugeParamList := TStringList.Create;
lHugeParamList.Add(Format(' new %s()', [FCallbackTypeJava]));
lHugeParamList.Add( ' {');
lHugeParamList.Add(Format(' public void %s(%s)', [lJavaCallbackInnerName, lJavaCallbackParams]));
lHugeParamList.Add( ' {');
lHugeParamList.Add( ' // Perform action');
lHugeParamList.Add(Format(' DebugOut("START %s");', [FCallbackTypeJava]));
lHugeParamList.Add(Format(' MyAndroidPipesComm.SendMessage(AndroidPipesComm.amkUICommand, %s);', [FIDStart]));
lHugeParamList.Add(Format(' Integer lTag = (Integer) ViewElementsTags.get(ViewElements.indexOf(%s));', [lFirstCallbackParam]));
//FJavaOutputMethods.Add( ' Integer lTag = (Integer) v.getTag();');
lHugeParamList.Add( ' MyAndroidPipesComm.SendInt(lTag.intValue());');
lHugeParamList.Add(Format(' MyAndroidPipesComm.WaitForPascalMessage(AndroidPipesComm.amkUICommand, %s);', [FIDFinished]));
lHugeParamList.Add(Format(' DebugOut("END %s");', [FCallbackTypeJava]));
lHugeParamList.Add( ' }');
lHugeParamList.Add( ' }');
lHugeParamListText := StringReplace(FJavaParams, '$', lHugeParamList.Text, []);
lHugeParamList.Free;
FJavaOutputMethods.Add( ' // Run the code');
FJavaOutputMethods.Add(Format(' %s.setOnClickListener(', [lJavaParamSelf]));
FJavaOutputMethods.Add(Format(' new View.OnClickListener()', []));
FJavaOutputMethods.Add( ' {');
FJavaOutputMethods.Add( ' public void onClick(View v)');
FJavaOutputMethods.Add( ' {');
FJavaOutputMethods.Add( ' // Perform action');
FJavaOutputMethods.Add( ' DebugOut("START TextView OnClickListener");');
FJavaOutputMethods.Add(Format(' MyAndroidPipesComm.SendMessage(AndroidPipesComm.amkUICommand, %s);', [lIDStart]));
FJavaOutputMethods.Add( ' Integer lTag = (Integer) v.getTag();');
FJavaOutputMethods.Add( ' MyAndroidPipesComm.SendInt(lTag.intValue());');
FJavaOutputMethods.Add(Format(' MyAndroidPipesComm.WaitForPascalMessage(AndroidPipesComm.amkUICommand, %s);', [lIDFinished]));
FJavaOutputMethods.Add( ' DebugOut("END TextView OnClickListener");');
FJavaOutputMethods.Add( ' }');
FJavaOutputMethods.Add( ' });');
FJavaOutputMethods.Add(Format(' %s.%s(%s);', [FJavaParamSelf, FMethodName, lHugeParamListText]));
FJavaOutputMethods.Add( ' MyAndroidPipesComm.SendResult();');
FJavaOutputMethods.Add( ' break;');
(* case amkUI_TextView_setOnClickListener:
@ -833,22 +842,40 @@ var
lReaderPos: Integer = 1;
lCurWord: string;
lStr, lCallbackDeclaration, lPascalType: String;
lJavaName, lJavaParams, lFirstParam: String;
begin
if ASourceLine = '' then Exit;
lStr := GetNextWord(ASourceLine, lReaderPos);
lStr := GetNextWord(ASourceLine, lReaderPos);
lJavaName := lStr;
lPascalType := GetPascalTypeName(lStr);
ProcessMethodReturnValue(ASourceLine, lReaderPos);
ProcessMethodName(ASourceLine, lReaderPos);
lJavaParams := Copy(ASourceLine, lReaderPos, Length(ASourceLine));
lJavaParams := Trim(lJavaParams);
lJavaParams := Copy(lJavaParams, 2, Length(lJavaParams)-2);
ProcessMethodParameters(ASourceLine, lReaderPos, False);
// Correct code, but at the moment too complex
{$IFDEF CORRECT_TYPES}
if FDeclarationIsFunction then
FPasOutputTypes.Add(Format(' %s = %s (%s): %s of object;', [lPascalType, FDeclarationBase, FPascalParams, FMethodReturnPas]))
else
FPasOutputTypes.Add(Format(' %s = %s (%s) of object;', [lPascalType, FDeclarationBase, FPascalParams]));
{$ELSE}
FPasOutputTypes.Add(Format(' %s = procedure () of object;', [lPascalType, FDeclarationBase, FPascalParams]));
{$ENDIF}
// Also add to the lists
FCallbackTypesJavaName.Add(lJavaName);
FCallbackTypesParams.Add(lJavaParams);
FCallbackTypesInnerName.Add(FMethodName);
FCallbackTypesFirstParam.Add(FFirstParam);
end;
procedure TAndroidSDKBindingsGen.ProcessMethodReturnValue(ASourceLine: string;
@ -878,6 +905,65 @@ begin
FMethodName := GetNextWord(ASourceLine, lReaderPos);
end;
procedure TAndroidSDKBindingsGen.ProcessMethodPreface(ASourceLine: string; AIsCallback: Boolean);
begin
FIDString := GetIDString(FMethodName);
// Lists of constants for the IDs
if not AIsCallback then AddOutputIDs(FIDString)
else
begin
FSetterName := FMethodName;
FIDSetter := GetIDString(FSetterName);
FCallbackName := Copy(FSetterName, 4, Length(FSetterName)); // remove the "set" from the setter name
FCallerName := 'call' + FCallbackName;
AddOutputIDs(FIDSetter);
Inc(FMethodNum);
FIDStart := GetIDString(FCallbackName + '_Start');
AddOutputIDs(FIDStart);
Inc(FMethodNum);
FIDFinished := GetIDString(FCallbackName + '_Finished');
AddOutputIDs(FIDFinished);
Inc(FMethodNum);
end;
// Pascal implementation start, without method title
FPasOutputImplCurLine := FPasOutputImpl.Count;
FPasOutputImpl.Add( 'begin');
if AIsCallback then
FPasOutputImpl.Add(Format(' %s := ACallback;', [FCallbackName]));
FPasOutputImpl.Add( ' vAndroidPipesComm.SendByte(ShortInt(amkUICommand));');
FPasOutputImpl.Add( ' vAndroidPipesComm.SendInt(' + FIDSetter + ');');
if not FIsGlobalObject then
FPasOutputImpl.Add( ' vAndroidPipesComm.SendInt(Index); // Self, Java Index');
if AIsCallback then
FPasOutputImpl.Add( ' vAndroidPipesComm.SendInt(PtrInt(Self)); // Self, Pascal pointer');
// Java implementation
FJavaParamSelf := 'param_self_' + JavaRemoveGeneric(ConvertPointToUnderline(FClassName));
FJavaOutputMethods.Add(Format(' // %s', [ASourceLine]));
FJavaOutputMethods.Add(Format(' case %s:', [FIDString]));
FJavaOutputMethods.Add(Format(' DebugOut("%s");', [FIDString]));
if not FIsGlobalObject then
begin
FJavaOutputMethods.Add( ' // Self');
FJavaOutputMethods.Add( ' lInt = MyAndroidPipesComm.GetInt();');
FJavaOutputMethods.Add(Format(' %s = (%s) ViewElements.get(lInt);', [FJavaParamSelf, FClassName]));
end
else
FJavaParamSelf := FGlobalObject;
FJavaOutputMethods.Add(' // params');
if AIsCallback then
begin
FJavaOutputMethods.Add( ' lPascalPointer = MyAndroidPipesComm.GetInt();');
FJavaOutputMethods.Add(Format(' ViewElementsTags.set(lInt, new Integer(lPascalPointer));', [fJavaParamSelf]));
//FJavaOutputMethods.Add(Format(' %s.setTag(Integer.valueOf(lPascalPointer));', [lJavaParamSelf]));
FJavaOutputMethods.Add( '');
end;
end;
// callbacksetter void setOnClickListener($View.OnClickListener l)
// $ indicates that this parameter should be skipped
procedure TAndroidSDKBindingsGen.ProcessMethodParameters(ASourceLine: string;
@ -889,12 +975,14 @@ var
lParamTypePas, lParamName, lParamPrefix: String;
lJavaParams, lJavaParamVar: String;
StringParamCount: Integer = 0;
i: Integer;
begin
// Add all parameters
TmpStr := '';
lJavaParams := '';
FHasStringParam := False;
FCallbackTypePas := '';
FFirstParam := '';
repeat
lParamType := GetNextWord(ASourceLine, lReaderPos);
@ -909,10 +997,11 @@ begin
Continue;
end;
// Parameter to skip because it is a callback name, just write $,
// Parameter to skip because it is a callback name, just write "$, " to the Java Params
if lParamType[1] = '$' then
begin
TmpStr := TmpStr + '$, ';
lJavaParams := lJavaParams + '$, ';
FCallbackTypeJava := StringReplace(lParamType, '$', '', [rfReplaceAll]);
FCallbackTypePas := GetPascalTypeName(lParamType);
FCallbackTypePas := StringReplace(FCallbackTypePas, '$', '', [rfReplaceAll]);
lParamType := GetNextWord(ASourceLine, lReaderPos);
@ -921,6 +1010,7 @@ begin
lParamTypePas := GetPascalTypeName(lParamType);
lParamName := GetNextWord(ASourceLine, lReaderPos);
if FFirstParam = '' then FFirstParam := lParamName;
if PassByReference(lParamType) then lParamPrefix := 'var '
else lParamPrefix := '';
@ -961,6 +1051,21 @@ begin
FPascalParams := TmpStr;
// And for Java params too
FJavaParams := System.Copy(lJavaParams, 0, Length(lJavaParams)-2);
// Insert the start
//FPasOutputClasses.Add(' ' + DeclarationBase + TmpStr + lPascalMethodModifiers);
//FPasOutputImpl.Insert(FPasOutputImplCurLine, DeclarationBase + FClassNamePas + '.' + TmpStr);
if FHasStringParam then
begin
FPasOutputImpl.Insert(FPasOutputImplCurLine, 'var');
for i := 1 to StringParamCount do
begin
FPasOutputImpl.Insert(FPasOutputImplCurLine+i, Format(' lString_%d: TString;', [i]));
FPasOutputImpl.Add(Format(' lString_%d.Free;', [i]));
end;
end;
//FPasOutputImpl.Add('end;');
//FPasOutputImpl.Add('');
end;
{ Reads one word in a string, starting at AStartPos (1-based index)
@ -1114,6 +1219,11 @@ begin
FJavaOutputIDs := TStringList.Create;
FJavaOutputMethods := TStringList.Create;
FCallbackTypesJavaName := TStringList.Create;
FCallbackTypesParams := TStringList.Create;
FCallbackTypesInnerName := TStringList.Create;
FCallbackTypesFirstParam := TStringList.Create;
FClassNum := $100;
end;
@ -1134,6 +1244,11 @@ begin
FJavaOutputIDs.Free;
FJavaOutputMethods.Free;
FCallbackTypesJavaName.Free;
FCallbackTypesParams.Free;
FCallbackTypesInnerName.Free;
FCallbackTypesFirstParam.Free;
inherited Destroy;
end;

View File

@ -50,12 +50,116 @@ method void getMetrics(DisplayMetrics outMetrics)
method Display getDefaultDisplay()
[Dialog] TJavaObject
#void addContentView(View view, ViewGroup.LayoutParams params)
#void cancel()
#void closeOptionsMenu()
#void dismiss()
#boolean dispatchGenericMotionEvent(MotionEvent ev)
#boolean dispatchKeyEvent(KeyEvent event)
#boolean dispatchKeyShortcutEvent(KeyEvent event)
#boolean dispatchPopulateAccessibilityEvent(AccessibilityEvent event)
#boolean dispatchTouchEvent(MotionEvent ev)
#boolean dispatchTrackballEvent(MotionEvent ev)
#View findViewById(int id)
#ActionBar getActionBar()
#final Context getContext()
#View getCurrentFocus()
#LayoutInflater getLayoutInflater()
#final Activity getOwnerActivity()
#final int getVolumeControlStream()
#Window getWindow()
#void hide()
#void invalidateOptionsMenu()
#boolean isShowing()
#void onActionModeFinished(ActionMode mode)
#void onActionModeStarted(ActionMode mode)
#void onAttachedToWindow()
#void onBackPressed()
#void onContentChanged()
#boolean onContextItemSelected(MenuItem item)
#void onContextMenuClosed(Menu menu)
#void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo)
#boolean onCreateOptionsMenu(Menu menu)
#boolean onCreatePanelMenu(int featureId, Menu menu)
#View onCreatePanelView(int featureId)
#void onDetachedFromWindow()
#boolean onGenericMotionEvent(MotionEvent event)
#boolean onKeyDown(int keyCode, KeyEvent event)
#boolean onKeyLongPress(int keyCode, KeyEvent event)
#boolean onKeyMultiple(int keyCode, int repeatCount, KeyEvent event)
#boolean onKeyShortcut(int keyCode, KeyEvent event)
#boolean onKeyUp(int keyCode, KeyEvent event)
#boolean onMenuItemSelected(int featureId, MenuItem item)
#boolean onMenuOpened(int featureId, Menu menu)
#boolean onOptionsItemSelected(MenuItem item)
#void onOptionsMenuClosed(Menu menu)
#void onPanelClosed(int featureId, Menu menu)
#boolean onPrepareOptionsMenu(Menu menu)
#boolean onPreparePanel(int featureId, View view, Menu menu)
#void onRestoreInstanceState(Bundle savedInstanceState)
#Bundle onSaveInstanceState()
#boolean onSearchRequested()
#boolean onTouchEvent(MotionEvent event)
#boolean onTrackballEvent(MotionEvent event)
#void onWindowAttributesChanged(WindowManager.LayoutParams params)
#void onWindowFocusChanged(boolean hasFocus)
#ActionMode onWindowStartingActionMode(ActionMode.Callback callback)
#void openContextMenu(View view)
#void openOptionsMenu()
#void registerForContextMenu(View view)
#final boolean requestWindowFeature(int featureId)
#void setCancelMessage(Message msg)
#void setCancelable(boolean flag)
#void setCanceledOnTouchOutside(boolean cancel)
#void setContentView(View view)
#void setContentView(int layoutResID)
#void setContentView(View view, ViewGroup.LayoutParams params)
#void setDismissMessage(Message msg)
#final void setFeatureDrawable(int featureId, Drawable drawable)
#final void setFeatureDrawableAlpha(int featureId, int alpha)
#final void setFeatureDrawableResource(int featureId, int resId)
#final void setFeatureDrawableUri(int featureId, Uri uri)
#void setOnCancelListener(DialogInterface.OnCancelListener listener)
#void setOnDismissListener(DialogInterface.OnDismissListener listener)
#void setOnKeyListener(DialogInterface.OnKeyListener onKeyListener)
#void setOnShowListener(DialogInterface.OnShowListener listener)
#final void setOwnerActivity(Activity activity)
#void setTitle(int titleId)
#void setTitle(CharSequence title)
#final void setVolumeControlStream(int streamType)
method void show()
#void takeKeyEvents(boolean get)
#void unregisterForContextMenu(View view)
[AlertDialog] Dialog
const THEME_HOLO_DARK = $00000002;
const THEME_HOLO_LIGHT = $00000003;
const THEME_TRADITIONAL = $00000001;
# Button getButton(int whichButton)
# ListView getListView()
# boolean onKeyDown(int keyCode, KeyEvent event)
# boolean onKeyUp(int keyCode, KeyEvent event)
# void setButton(CharSequence text, Message msg)
callbacksetter void setButton(int whichButton, CharSequence text, $DialogInterface.OnClickListener listener)
# void setButton(CharSequence text, DialogInterface.OnClickListener listener)
# void setButton(int whichButton, CharSequence text, Message msg)
# void setButton2(CharSequence text, DialogInterface.OnClickListener listener)
# void setButton2(CharSequence text, Message msg)
# void setButton3(CharSequence text, DialogInterface.OnClickListener listener)
# void setButton3(CharSequence text, Message msg)
# void setCustomTitle(View customTitleView)
#void setIcon(Drawable icon)
#void setIcon(int resId)
#void setIconAttribute(int attrId)
# void setInverseBackgroundForced(boolean forceInverseBackground)
method void setMessage(CharSequence message)
method void setTitle(CharSequence title)
#void setView(View view, int viewSpacingLeft, int viewSpacingTop, int viewSpacingRight, int viewSpacingBottom)
method void setView(View view)
[AlertDialog.Builder] TJavaObject
constructor Create(Activity)
#public AlertDialog create ()
method AlertDialog create ()
#public Context getContext ()
#public AlertDialog.Builder setAdapter (ListAdapter adapter, DialogInterface.OnClickListener listener)
#public AlertDialog.Builder setCancelable (boolean cancelable)
@ -79,7 +183,7 @@ method AlertDialog.Builder setMessage (CharSequence message)
#public AlertDialog.Builder setOnKeyListener (DialogInterface.OnKeyListener onKeyListener)
#public AlertDialog.Builder setPositiveButton (int textId, DialogInterface.OnClickListener listener)
#public AlertDialog.Builder setPositiveButton (CharSequence text, DialogInterface.OnClickListener listener)
# callbacksetter AlertDialog.Builder setPositiveButton (CharSequence text, DialogInterface.OnClickListener $listener)
#callbacksetter AlertDialog.Builder setPositiveButton (CharSequence text, $DialogInterface.OnClickListener listener)
#public AlertDialog.Builder setSingleChoiceItems (CharSequence[] items, int checkedItem, DialogInterface.OnClickListener listener)
#public AlertDialog.Builder setSingleChoiceItems (ListAdapter adapter, int checkedItem, DialogInterface.OnClickListener listener)
#public AlertDialog.Builder setSingleChoiceItems (int itemsId, int checkedItem, DialogInterface.OnClickListener listener)

View File

@ -19,6 +19,7 @@ public class AndroidAll
JavaLang MyJavaLang;
// lists of variables
ArrayList ViewElements;
ArrayList ViewElementsTags;
public AndroidAll(AndroidPipesComm AAndroidPipesComm, Activity AActivity, JavaLang AJavaLang)
{
@ -26,6 +27,7 @@ public class AndroidAll
MyAndroidPipesComm = AAndroidPipesComm;
MyJavaLang = AJavaLang;
ViewElements = new ArrayList();
ViewElementsTags = new ArrayList();
}
public void DebugOut(String Str)
@ -42,88 +44,97 @@ public class AndroidAll
static final int amkUI_TDisplayMetrics_widthPixels_5 = 0x00101005;
static final int amkUI_TDisplayMetrics_xdpi_6 = 0x00101006;
static final int amkUI_TDisplayMetrics_ydpi_7 = 0x00101007;
// DialogInterface
// Activity
static final int amkUI_TActivity_setTitle_0 = 0x00102000;
static final int amkUI_TActivity_getTitle_1 = 0x00102001;
static final int amkUI_TActivity_setTitle_0 = 0x00103000;
static final int amkUI_TActivity_getTitle_1 = 0x00103001;
// Display
static final int amkUI_TDisplay_getMetrics_0 = 0x00103000;
static final int amkUI_TDisplay_getMetrics_0 = 0x00104000;
// WindowManager
static final int amkUI_TWindowManager_getDefaultDisplay_0 = 0x00104000;
static final int amkUI_TWindowManager_getDefaultDisplay_0 = 0x00105000;
// Dialog
static final int amkUI_TDialog_show_0 = 0x00106000;
// AlertDialog
static final int amkUI_TAlertDialog_setButton_0 = 0x00107000;
static final int amkUI_TAlertDialog_Button_Start_1 = 0x00107001;
static final int amkUI_TAlertDialog_Button_Finished_2 = 0x00107002;
static final int amkUI_TAlertDialog_setMessage_3 = 0x00107003;
static final int amkUI_TAlertDialog_setTitle_4 = 0x00107004;
static final int amkUI_TAlertDialog_setView_5 = 0x00107005;
// AlertDialog.Builder
static final int amkUI_TAlertDialog_Builder_Create_0 = 0x00107000;
static final int amkUI_TAlertDialog_Builder_setMessage_1 = 0x00107001;
static final int amkUI_TAlertDialog_Builder_setTitle_2 = 0x00107002;
static final int amkUI_TAlertDialog_Builder_setView_3 = 0x00107003;
static final int amkUI_TAlertDialog_Builder_show_4 = 0x00107004;
static final int amkUI_TAlertDialog_Builder_Create_0 = 0x00108000;
static final int amkUI_TAlertDialog_Builder_create_1 = 0x00108001;
static final int amkUI_TAlertDialog_Builder_setMessage_2 = 0x00108002;
static final int amkUI_TAlertDialog_Builder_setTitle_3 = 0x00108003;
static final int amkUI_TAlertDialog_Builder_setView_4 = 0x00108004;
static final int amkUI_TAlertDialog_Builder_show_5 = 0x00108005;
// ViewGroup.LayoutParams
static final int amkUI_TViewGroup_LayoutParams_Create_0 = 0x00108000;
static final int amkUI_TViewGroup_LayoutParams_Create_0 = 0x00109000;
// View
static final int amkUI_TView_setLayoutParams_0 = 0x00109000;
static final int amkUI_TView_setVisibility_1 = 0x00109001;
static final int amkUI_TView_setLayoutParams_0 = 0x0010A000;
static final int amkUI_TView_setVisibility_1 = 0x0010A001;
// ViewGroup
static final int amkUI_TViewGroup_addView_0 = 0x0010A000;
static final int amkUI_TViewGroup_addView_1 = 0x0010A001;
static final int amkUI_TViewGroup_addView_2 = 0x0010A002;
static final int amkUI_TViewGroup_addView_3 = 0x0010A003;
static final int amkUI_TViewGroup_addView_4 = 0x0010A004;
static final int amkUI_TViewGroup_addView_0 = 0x0010B000;
static final int amkUI_TViewGroup_addView_1 = 0x0010B001;
static final int amkUI_TViewGroup_addView_2 = 0x0010B002;
static final int amkUI_TViewGroup_addView_3 = 0x0010B003;
static final int amkUI_TViewGroup_addView_4 = 0x0010B004;
// LinearLayout
static final int amkUI_TLinearLayout_Create_0 = 0x0010B000;
static final int amkUI_TLinearLayout_setOrientation_1 = 0x0010B001;
static final int amkUI_TLinearLayout_Create_0 = 0x0010C000;
static final int amkUI_TLinearLayout_setOrientation_1 = 0x0010C001;
// AbsoluteLayout
static final int amkUI_TAbsoluteLayout_Create_0 = 0x0010C000;
static final int amkUI_TAbsoluteLayout_Create_0 = 0x0010D000;
// AbsoluteLayout.LayoutParams
static final int amkUI_TAbsoluteLayout_LayoutParams_Create_0 = 0x0010D000;
static final int amkUI_TAbsoluteLayout_LayoutParams_Create_0 = 0x0010E000;
// TextView
static final int amkUI_TTextView_Create_0 = 0x0010E000;
static final int amkUI_TTextView_setText_1 = 0x0010E001;
static final int amkUI_TTextView_setOnClickListener_2 = 0x0010E002;
static final int amkUI_TTextView_OnClickListener_Start_3 = 0x0010E003;
static final int amkUI_TTextView_OnClickListener_Finished_4 = 0x0010E004;
static final int amkUI_TTextView_setTextSize_5 = 0x0010E005;
static final int amkUI_TTextView_getText_6 = 0x0010E006;
static final int amkUI_TTextView_Create_0 = 0x0010F000;
static final int amkUI_TTextView_setText_1 = 0x0010F001;
static final int amkUI_TTextView_setOnClickListener_2 = 0x0010F002;
static final int amkUI_TTextView_OnClickListener_Start_3 = 0x0010F003;
static final int amkUI_TTextView_OnClickListener_Finished_4 = 0x0010F004;
static final int amkUI_TTextView_setTextSize_5 = 0x0010F005;
static final int amkUI_TTextView_getText_6 = 0x0010F006;
// EditText
static final int amkUI_TEditText_Create_0 = 0x0010F000;
static final int amkUI_TEditText_Create_0 = 0x00110000;
// Button
static final int amkUI_TButton_Create_0 = 0x00110000;
static final int amkUI_TButton_Create_0 = 0x00111000;
// FrameLayout
// TimePicker
static final int amkUI_TTimePicker_Create_0 = 0x00112000;
static final int amkUI_TTimePicker_getCurrentHour_1 = 0x00112001;
static final int amkUI_TTimePicker_setCurrentHour_2 = 0x00112002;
static final int amkUI_TTimePicker_getCurrentMinute_3 = 0x00112003;
static final int amkUI_TTimePicker_setCurrentMinute_4 = 0x00112004;
static final int amkUI_TTimePicker_is24HourView_5 = 0x00112005;
static final int amkUI_TTimePicker_setIs24HourView_6 = 0x00112006;
static final int amkUI_TTimePicker_Create_0 = 0x00113000;
static final int amkUI_TTimePicker_getCurrentHour_1 = 0x00113001;
static final int amkUI_TTimePicker_setCurrentHour_2 = 0x00113002;
static final int amkUI_TTimePicker_getCurrentMinute_3 = 0x00113003;
static final int amkUI_TTimePicker_setCurrentMinute_4 = 0x00113004;
static final int amkUI_TTimePicker_is24HourView_5 = 0x00113005;
static final int amkUI_TTimePicker_setIs24HourView_6 = 0x00113006;
// ScrollView
static final int amkUI_TScrollView_Create_0 = 0x00113000;
static final int amkUI_TScrollView_Create_0 = 0x00114000;
// CompoundButton
static final int amkUI_TCompoundButton_isChecked_0 = 0x00114000;
static final int amkUI_TCompoundButton_performClick_1 = 0x00114001;
static final int amkUI_TCompoundButton_setChecked_2 = 0x00114002;
static final int amkUI_TCompoundButton_toggle_3 = 0x00114003;
static final int amkUI_TCompoundButton_isChecked_0 = 0x00115000;
static final int amkUI_TCompoundButton_performClick_1 = 0x00115001;
static final int amkUI_TCompoundButton_setChecked_2 = 0x00115002;
static final int amkUI_TCompoundButton_toggle_3 = 0x00115003;
// CheckBox
static final int amkUI_TCheckBox_Create_0 = 0x00115000;
static final int amkUI_TCheckBox_Create_0 = 0x00116000;
// AdapterView
static final int amkUI_TAdapterView_getSelectedItemPosition_0 = 0x00116000;
static final int amkUI_TAdapterView_getSelectedItemPosition_0 = 0x00117000;
// AbsSpinner
static final int amkUI_TAbsSpinner_getCount_0 = 0x00117000;
static final int amkUI_TAbsSpinner_setAdapter_1 = 0x00117001;
static final int amkUI_TAbsSpinner_setSelection_2 = 0x00117002;
static final int amkUI_TAbsSpinner_getCount_0 = 0x00118000;
static final int amkUI_TAbsSpinner_setAdapter_1 = 0x00118001;
static final int amkUI_TAbsSpinner_setSelection_2 = 0x00118002;
// Spinner
static final int amkUI_TSpinner_Create_0 = 0x00118000;
static final int amkUI_TSpinner_Create_0 = 0x00119000;
// Filterable
// Adapter
// ListAdapter
// SpinnerAdapter
// BaseAdapter
// ArrayAdapter<String>
static final int amkUI_TArrayAdapter_String__Create_0 = 0x0011E000;
static final int amkUI_TArrayAdapter_String__add_1 = 0x0011E001;
static final int amkUI_TArrayAdapter_String__clear_2 = 0x0011E002;
static final int amkUI_TArrayAdapter_String__insert_3 = 0x0011E003;
static final int amkUI_TArrayAdapter_String__remove_4 = 0x0011E004;
static final int amkUI_TArrayAdapter_String__Create_0 = 0x0011F000;
static final int amkUI_TArrayAdapter_String__add_1 = 0x0011F001;
static final int amkUI_TArrayAdapter_String__clear_2 = 0x0011F002;
static final int amkUI_TArrayAdapter_String__insert_3 = 0x0011F003;
static final int amkUI_TArrayAdapter_String__remove_4 = 0x0011F004;
// layout
public boolean ProcessCommand(int Buffer)
@ -153,13 +164,15 @@ public class AndroidAll
ArrayAdapter<String> param_self_ArrayAdapter_String_;
AdapterView param_self_AdapterView;
AlertDialog.Builder param_self_AlertDialog_Builder;
Dialog param_self_Dialog;
AlertDialog param_self_AlertDialog;
//
// Params
//
ViewGroup.LayoutParams lViewGroup_LayoutParams_1, lViewGroup_LayoutParams_2, lViewGroup_LayoutParams_3;
SpinnerAdapter lSpinnerAdapter_1;
DisplayMetrics lDisplayMetrics_1;
CharSequence lCharSequence_1;
CharSequence lCharSequence_1, lCharSequence_2;
String lString_1;
View lView_1;
int lint_1, lint_2, lint_3, lint_4;
@ -182,6 +195,7 @@ public class AndroidAll
case amkUI_TDisplayMetrics_Create_0:
DebugOut("amkUI_TDisplayMetrics_Create_0");
ViewElements.add(new DisplayMetrics());
ViewElementsTags.add(null);
MyAndroidPipesComm.SendIntResult(ViewElements.size() - 1);
break;
// field float density
@ -302,16 +316,112 @@ public class AndroidAll
//
lResult_Display = param_self_WindowManager.getDefaultDisplay();
ViewElements.add(lResult_Display);
ViewElementsTags.add(null);
MyAndroidPipesComm.SendIntResult(ViewElements.size() - 1);
break;
// method void show()
case amkUI_TDialog_show_0:
DebugOut("amkUI_TDialog_show_0");
// Self
lInt = MyAndroidPipesComm.GetInt();
param_self_Dialog = (Dialog) ViewElements.get(lInt);
// params
//
param_self_Dialog.show();
MyAndroidPipesComm.SendResult();
break;
// callbacksetter void setButton(int whichButton, CharSequence text, $DialogInterface.OnClickListener listener)
case amkUI_TAlertDialog_setButton_0:
DebugOut("amkUI_TAlertDialog_setButton_0");
// Self
lInt = MyAndroidPipesComm.GetInt();
param_self_AlertDialog = (AlertDialog) ViewElements.get(lInt);
// params
lPascalPointer = MyAndroidPipesComm.GetInt();
ViewElementsTags.set(lInt, new Integer(lPascalPointer));
lInt = MyAndroidPipesComm.GetInt();
lint_1 = lInt;
lInt = MyAndroidPipesComm.GetInt();
lCharSequence_2 = (CharSequence) MyJavaLang.LangElements.get(lInt);
// Run the code
param_self_AlertDialog.setButton(lint_1, lCharSequence_2, new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int which)
{
// Perform action
DebugOut("START DialogInterface.OnClickListener");
MyAndroidPipesComm.SendMessage(AndroidPipesComm.amkUICommand, amkUI_TAlertDialog_Button_Start_1);
Integer lTag = (Integer) ViewElementsTags.get(ViewElements.indexOf(dialog));
MyAndroidPipesComm.SendInt(lTag.intValue());
MyAndroidPipesComm.WaitForPascalMessage(AndroidPipesComm.amkUICommand, amkUI_TAlertDialog_Button_Finished_2);
DebugOut("END DialogInterface.OnClickListener");
}
}
);
MyAndroidPipesComm.SendResult();
break;
// method void setMessage(CharSequence message)
case amkUI_TAlertDialog_setMessage_3:
DebugOut("amkUI_TAlertDialog_setMessage_3");
// Self
lInt = MyAndroidPipesComm.GetInt();
param_self_AlertDialog = (AlertDialog) ViewElements.get(lInt);
// params
lInt = MyAndroidPipesComm.GetInt();
lCharSequence_1 = (CharSequence) MyJavaLang.LangElements.get(lInt);
//
param_self_AlertDialog.setMessage(lCharSequence_1);
MyAndroidPipesComm.SendResult();
break;
// method void setTitle(CharSequence title)
case amkUI_TAlertDialog_setTitle_4:
DebugOut("amkUI_TAlertDialog_setTitle_4");
// Self
lInt = MyAndroidPipesComm.GetInt();
param_self_AlertDialog = (AlertDialog) ViewElements.get(lInt);
// params
lInt = MyAndroidPipesComm.GetInt();
lCharSequence_1 = (CharSequence) MyJavaLang.LangElements.get(lInt);
//
param_self_AlertDialog.setTitle(lCharSequence_1);
MyAndroidPipesComm.SendResult();
break;
// method void setView(View view)
case amkUI_TAlertDialog_setView_5:
DebugOut("amkUI_TAlertDialog_setView_5");
// Self
lInt = MyAndroidPipesComm.GetInt();
param_self_AlertDialog = (AlertDialog) ViewElements.get(lInt);
// params
lInt = MyAndroidPipesComm.GetInt();
lView_1 = (View) ViewElements.get(lInt);
//
param_self_AlertDialog.setView(lView_1);
MyAndroidPipesComm.SendResult();
break;
case amkUI_TAlertDialog_Builder_Create_0:
DebugOut("amkUI_TAlertDialog_Builder_Create_0");
ViewElements.add(new AlertDialog.Builder(activity));
ViewElementsTags.add(null);
MyAndroidPipesComm.SendIntResult(ViewElements.size() - 1);
break;
// method AlertDialog create ()
case amkUI_TAlertDialog_Builder_create_1:
DebugOut("amkUI_TAlertDialog_Builder_create_1");
// Self
lInt = MyAndroidPipesComm.GetInt();
param_self_AlertDialog_Builder = (AlertDialog.Builder) ViewElements.get(lInt);
// params
//
lResult_AlertDialog = param_self_AlertDialog_Builder.create();
ViewElements.add(lResult_AlertDialog);
ViewElementsTags.add(null);
MyAndroidPipesComm.SendIntResult(ViewElements.size() - 1);
break;
// method AlertDialog.Builder setMessage (CharSequence message)
case amkUI_TAlertDialog_Builder_setMessage_1:
DebugOut("amkUI_TAlertDialog_Builder_setMessage_1");
case amkUI_TAlertDialog_Builder_setMessage_2:
DebugOut("amkUI_TAlertDialog_Builder_setMessage_2");
// Self
lInt = MyAndroidPipesComm.GetInt();
param_self_AlertDialog_Builder = (AlertDialog.Builder) ViewElements.get(lInt);
@ -321,11 +431,12 @@ public class AndroidAll
//
lResult_AlertDialog_Builder = param_self_AlertDialog_Builder.setMessage(lCharSequence_1);
ViewElements.add(lResult_AlertDialog_Builder);
ViewElementsTags.add(null);
MyAndroidPipesComm.SendIntResult(ViewElements.size() - 1);
break;
// method AlertDialog.Builder setTitle (CharSequence title)
case amkUI_TAlertDialog_Builder_setTitle_2:
DebugOut("amkUI_TAlertDialog_Builder_setTitle_2");
case amkUI_TAlertDialog_Builder_setTitle_3:
DebugOut("amkUI_TAlertDialog_Builder_setTitle_3");
// Self
lInt = MyAndroidPipesComm.GetInt();
param_self_AlertDialog_Builder = (AlertDialog.Builder) ViewElements.get(lInt);
@ -335,11 +446,12 @@ public class AndroidAll
//
lResult_AlertDialog_Builder = param_self_AlertDialog_Builder.setTitle(lCharSequence_1);
ViewElements.add(lResult_AlertDialog_Builder);
ViewElementsTags.add(null);
MyAndroidPipesComm.SendIntResult(ViewElements.size() - 1);
break;
// method AlertDialog.Builder setView (View view)
case amkUI_TAlertDialog_Builder_setView_3:
DebugOut("amkUI_TAlertDialog_Builder_setView_3");
case amkUI_TAlertDialog_Builder_setView_4:
DebugOut("amkUI_TAlertDialog_Builder_setView_4");
// Self
lInt = MyAndroidPipesComm.GetInt();
param_self_AlertDialog_Builder = (AlertDialog.Builder) ViewElements.get(lInt);
@ -349,11 +461,12 @@ public class AndroidAll
//
lResult_AlertDialog_Builder = param_self_AlertDialog_Builder.setView(lView_1);
ViewElements.add(lResult_AlertDialog_Builder);
ViewElementsTags.add(null);
MyAndroidPipesComm.SendIntResult(ViewElements.size() - 1);
break;
// method AlertDialog show ()
case amkUI_TAlertDialog_Builder_show_4:
DebugOut("amkUI_TAlertDialog_Builder_show_4");
case amkUI_TAlertDialog_Builder_show_5:
DebugOut("amkUI_TAlertDialog_Builder_show_5");
// Self
lInt = MyAndroidPipesComm.GetInt();
param_self_AlertDialog_Builder = (AlertDialog.Builder) ViewElements.get(lInt);
@ -361,6 +474,7 @@ public class AndroidAll
//
lResult_AlertDialog = param_self_AlertDialog_Builder.show();
ViewElements.add(lResult_AlertDialog);
ViewElementsTags.add(null);
MyAndroidPipesComm.SendIntResult(ViewElements.size() - 1);
break;
case amkUI_TViewGroup_LayoutParams_Create_0:
@ -368,6 +482,7 @@ public class AndroidAll
lint_1 = MyAndroidPipesComm.GetInt();
lint_2 = MyAndroidPipesComm.GetInt();
ViewElements.add(new ViewGroup.LayoutParams(lint_1, lint_2));
ViewElementsTags.add(null);
MyAndroidPipesComm.SendIntResult(ViewElements.size() - 1);
break;
// method void setLayoutParams(ViewGroup.LayoutParams params);
@ -476,6 +591,7 @@ public class AndroidAll
case amkUI_TLinearLayout_Create_0:
DebugOut("amkUI_TLinearLayout_Create_0");
ViewElements.add(new LinearLayout(activity));
ViewElementsTags.add(null);
MyAndroidPipesComm.SendIntResult(ViewElements.size() - 1);
break;
// method void setOrientation(int orientation);
@ -494,6 +610,7 @@ public class AndroidAll
case amkUI_TAbsoluteLayout_Create_0:
DebugOut("amkUI_TAbsoluteLayout_Create_0");
ViewElements.add(new AbsoluteLayout(activity));
ViewElementsTags.add(null);
MyAndroidPipesComm.SendIntResult(ViewElements.size() - 1);
break;
case amkUI_TAbsoluteLayout_LayoutParams_Create_0:
@ -503,11 +620,13 @@ public class AndroidAll
lint_3 = MyAndroidPipesComm.GetInt();
lint_4 = MyAndroidPipesComm.GetInt();
ViewElements.add(new AbsoluteLayout.LayoutParams(lint_1, lint_2, lint_3, lint_4));
ViewElementsTags.add(null);
MyAndroidPipesComm.SendIntResult(ViewElements.size() - 1);
break;
case amkUI_TTextView_Create_0:
DebugOut("amkUI_TTextView_Create_0");
ViewElements.add(new TextView(activity));
ViewElementsTags.add(null);
MyAndroidPipesComm.SendIntResult(ViewElements.size() - 1);
break;
// method void setText(CharSequence AText); virtual;
@ -523,30 +642,31 @@ public class AndroidAll
param_self_TextView.setText(lCharSequence_1);
MyAndroidPipesComm.SendResult();
break;
// callbacksettercaller setOnClickListener callOnClickListener OnClickListener = procedure (v: TView) of object;
// callbacksetter void setOnClickListener($View.OnClickListener l)
case amkUI_TTextView_setOnClickListener_2:
DebugOut("amkUI_TTextView_setOnClickListener_2");
// Self
lInt = MyAndroidPipesComm.GetInt();
param_self_TextView = (TextView) ViewElements.get(lInt);
// params
lPascalPointer = MyAndroidPipesComm.GetInt();
param_self_TextView.setTag(Integer.valueOf(lPascalPointer));
ViewElementsTags.set(lInt, new Integer(lPascalPointer));
// Run the code
param_self_TextView.setOnClickListener(
new View.OnClickListener()
param_self_TextView.setOnClickListener( new View.OnClickListener()
{
public void onClick(View v)
{
// Perform action
DebugOut("START TextView OnClickListener");
DebugOut("START View.OnClickListener");
MyAndroidPipesComm.SendMessage(AndroidPipesComm.amkUICommand, amkUI_TTextView_OnClickListener_Start_3);
Integer lTag = (Integer) v.getTag();
Integer lTag = (Integer) ViewElementsTags.get(ViewElements.indexOf(v));
MyAndroidPipesComm.SendInt(lTag.intValue());
MyAndroidPipesComm.WaitForPascalMessage(AndroidPipesComm.amkUICommand, amkUI_TTextView_OnClickListener_Finished_4);
DebugOut("END TextView OnClickListener");
DebugOut("END View.OnClickListener");
}
});
}
);
MyAndroidPipesComm.SendResult();
break;
// method void setTextSize(int unit_; float size);
@ -578,16 +698,19 @@ public class AndroidAll
case amkUI_TEditText_Create_0:
DebugOut("amkUI_TEditText_Create_0");
ViewElements.add(new EditText(activity));
ViewElementsTags.add(null);
MyAndroidPipesComm.SendIntResult(ViewElements.size() - 1);
break;
case amkUI_TButton_Create_0:
DebugOut("amkUI_TButton_Create_0");
ViewElements.add(new Button(activity));
ViewElementsTags.add(null);
MyAndroidPipesComm.SendIntResult(ViewElements.size() - 1);
break;
case amkUI_TTimePicker_Create_0:
DebugOut("amkUI_TTimePicker_Create_0");
ViewElements.add(new TimePicker(activity));
ViewElementsTags.add(null);
MyAndroidPipesComm.SendIntResult(ViewElements.size() - 1);
break;
// method int getCurrentHour();
@ -665,6 +788,7 @@ public class AndroidAll
case amkUI_TScrollView_Create_0:
DebugOut("amkUI_TScrollView_Create_0");
ViewElements.add(new ScrollView(activity));
ViewElementsTags.add(null);
MyAndroidPipesComm.SendIntResult(ViewElements.size() - 1);
break;
// method boolean isChecked()
@ -716,6 +840,7 @@ public class AndroidAll
case amkUI_TCheckBox_Create_0:
DebugOut("amkUI_TCheckBox_Create_0");
ViewElements.add(new CheckBox(activity));
ViewElementsTags.add(null);
MyAndroidPipesComm.SendIntResult(ViewElements.size() - 1);
break;
// method int getSelectedItemPosition()
@ -769,12 +894,14 @@ public class AndroidAll
case amkUI_TSpinner_Create_0:
DebugOut("amkUI_TSpinner_Create_0");
ViewElements.add(new Spinner(activity));
ViewElementsTags.add(null);
MyAndroidPipesComm.SendIntResult(ViewElements.size() - 1);
break;
case amkUI_TArrayAdapter_String__Create_0:
DebugOut("amkUI_TArrayAdapter_String__Create_0");
lint_1 = MyAndroidPipesComm.GetInt();
ViewElements.add(new ArrayAdapter<String>(activity, lint_1));
ViewElementsTags.add(null);
MyAndroidPipesComm.SendIntResult(ViewElements.size() - 1);
break;
// method void add(String aobject)