Initial work for Android menu support

git-svn-id: trunk@36392 -
This commit is contained in:
sekelsenmat 2012-03-28 12:23:05 +00:00
parent 6edfeb2724
commit 348a233427
5 changed files with 42 additions and 3 deletions

View File

@ -9,6 +9,7 @@ import android.graphics.*;
import android.text.*; import android.text.*;
import android.view.*; import android.view.*;
import android.view.inputmethod.*; import android.view.inputmethod.*;
import android.view.MenuItem.*;
import android.content.res.Configuration; import android.content.res.Configuration;
import android.content.Intent; import android.content.Intent;
import android.hardware.Sensor; import android.hardware.Sensor;
@ -247,6 +248,40 @@ public class LCLActivity extends Activity implements SensorEventListener, Locati
//Log.i("lclapp", "onConfigurationChanged finished"); //Log.i("lclapp", "onConfigurationChanged finished");
} }
@Override public boolean onPrepareOptionsMenu (Menu menu)
{
super.onPrepareOptionsMenu(menu);
int i;
// First clear the captions list
for (i = 0; i<6; i++)
lclmenu_captions[i] = "";
// Now ask the LCL to fill it
LCLOnMenuAction(0, 0);
// And fill the menus with it
menu.clear();
for (i = 0; i<6; i++)
{
if (lclmenu_captions[i] != "")
{
MenuItem lMenuItem = menu.add(0, i, 0, lclmenu_captions[i]);
lMenuItem.setOnMenuItemClickListener(new OnMenuItemClickListener()
{
public boolean onMenuItemClick(MenuItem item)
{
LCLOnMenuAction(1, item.getItemId());
return true;
}
});
};
};
return true;
}
// ------------------------------------------- // -------------------------------------------
// JNI table of Pascal functions // JNI table of Pascal functions
// ------------------------------------------- // -------------------------------------------
@ -258,6 +293,7 @@ public class LCLActivity extends Activity implements SensorEventListener, Locati
public native int LCLOnTimer(Runnable timerid); public native int LCLOnTimer(Runnable timerid);
public native int LCLOnConfigurationChanged(int ANewDPI, int ANewWidth); public native int LCLOnConfigurationChanged(int ANewDPI, int ANewWidth);
public native int LCLOnSensorChanged(int ASensorKind, double[] AValues); public native int LCLOnSensorChanged(int ASensorKind, double[] AValues);
public native int LCLOnMenuAction(int kind, int itemIndex);
// ------------------------------------------- // -------------------------------------------
// Functions exported to the Pascal side // Functions exported to the Pascal side
@ -628,6 +664,8 @@ public class LCLActivity extends Activity implements SensorEventListener, Locati
// for LazDeviceAPIs // for LazDeviceAPIs
public String lcldestination; public String lcldestination;
public int lclkind; public int lclkind;
// for the menus
public String[] lclmenu_captions = new String[6];
static static
{ {

View File

@ -72,7 +72,7 @@
</Target> </Target>
<SearchPaths> <SearchPaths>
<IncludeFiles Value="$(ProjOutDir)"/> <IncludeFiles Value="$(ProjOutDir)"/>
<Libraries Value="C:/Programas/android-ndk-r7/platforms/android-8/arch-arm/usr/lib"/> <Libraries Value="C:/Programas/android-ndk-r7b/platforms/android-8/arch-arm/usr/lib"/>
<UnitOutputDirectory Value="lib/$(TargetCPU)-$(TargetOS)"/> <UnitOutputDirectory Value="lib/$(TargetCPU)-$(TargetOS)"/>
</SearchPaths> </SearchPaths>
<CodeGeneration> <CodeGeneration>

View File

@ -17,6 +17,7 @@ exports
Java_com_pascal_lclproject_LCLActivity_LCLOnTimer name 'Java_com_pascal_lcltest_LCLActivity_LCLOnTimer', Java_com_pascal_lclproject_LCLActivity_LCLOnTimer name 'Java_com_pascal_lcltest_LCLActivity_LCLOnTimer',
Java_com_pascal_lclproject_LCLActivity_LCLOnConfigurationChanged name 'Java_com_pascal_lcltest_LCLActivity_LCLOnConfigurationChanged', Java_com_pascal_lclproject_LCLActivity_LCLOnConfigurationChanged name 'Java_com_pascal_lcltest_LCLActivity_LCLOnConfigurationChanged',
Java_com_pascal_lclproject_LCLActivity_LCLOnSensorChanged name 'Java_com_pascal_lcltest_LCLActivity_LCLOnSensorChanged', Java_com_pascal_lclproject_LCLActivity_LCLOnSensorChanged name 'Java_com_pascal_lcltest_LCLActivity_LCLOnSensorChanged',
Java_com_pascal_lclproject_LCLActivity_LCLOnMenuAction name 'Java_com_pascal_lcltest_LCLActivity_LCLOnMenuAction',
JNI_OnLoad name 'JNI_OnLoad', JNI_OnLoad name 'JNI_OnLoad',
JNI_OnUnload name 'JNI_OnUnload'; JNI_OnUnload name 'JNI_OnUnload';

View File

@ -88,7 +88,7 @@ object Form1: TForm1
end end
object ComboBox1: TComboBox object ComboBox1: TComboBox
Left = 72 Left = 72
Height = 27 Height = 21
Top = 128 Top = 128
Width = 140 Width = 140
AutoSize = False AutoSize = False

View File

@ -7,7 +7,7 @@ interface
uses uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs,
LCLProc, Arrow, StdCtrls, ComCtrls, LCLType, LCLIntf, InterfaceBase, LCLProc, Arrow, StdCtrls, ComCtrls, LCLType, LCLIntf, InterfaceBase,
lazdeviceapis; lazdeviceapis, Menus;
type type
TSubControl = class; TSubControl = class;