From ff256cffc4a168e23e459bd627508d931ca6ff55 Mon Sep 17 00:00:00 2001 From: perry.werneck@gmail.com Date: Thu, 26 Jul 2012 11:24:16 +0000 Subject: [PATCH] Iniciando implmentação do menu android --- android/Makefile | 38 ++++++++++++++++++++++++++++++++------ android/ic_connect.svg | 93 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ android/ic_disconnect.svg | 89 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ android/ic_settings.svg | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ android/jni/actions.cpp | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ android/res/layout/menu.xml | 15 +++++++++++++++ android/res/values/drawables.xml | 3 +++ android/src/br/com/bb/pw3270/PW3270Activity.java | 54 ++++++++++++++++++++++++++++++++++++++++++++++-------- android/src/br/com/bb/pw3270/lib3270.java | 16 +++++----------- 9 files changed, 413 insertions(+), 25 deletions(-) create mode 100644 android/ic_connect.svg create mode 100644 android/ic_disconnect.svg create mode 100644 android/ic_settings.svg create mode 100644 android/jni/actions.cpp create mode 100644 android/res/layout/menu.xml create mode 100644 android/res/values/drawables.xml diff --git a/android/Makefile b/android/Makefile index b9ca47e..79a216b 100644 --- a/android/Makefile +++ b/android/Makefile @@ -40,39 +40,65 @@ bin/classes/$(CLASSPATH)/%.class: src/$(CLASSPATH)/%.java @echo "Compile thumb : `basename $@` <= `basename $<`" @$(JAVAC) -classpath $(ANDROIDSDK)/platforms/android-15/android.jar -d bin/classes $< +res/drawable-xhdpi/%.png: %.svg + @echo "Gen XHDPI : `basename $@` <= `basename $<`" + @$(MKDIR) `dirname $@` + @$(CONVERT) --format=png --width=96 --height=96 --output=$@ $< + +res/drawable-mdpi/%.png: %.svg + @echo "Gen MDPI : `basename $@` <= `basename $<`" + @$(MKDIR) `dirname $@` + @$(CONVERT) --format=png --width=48 --height=48 --output=$@ $< + +res/drawable-ldpi/%.png: %.svg + @echo "Gen LDPI : `basename $@` <= `basename $<`" + @$(MKDIR) `dirname $@` + @$(CONVERT) --format=png --width=36 --height=36 --output=$@ $< + +res/drawable-hdpi/%.png: %.svg + @echo "Gen HDPI : `basename $@` <= `basename $<`" + @$(MKDIR) `dirname $@` + @$(CONVERT) --format=png --width=72 --height=72 --output=$@ $< + #---[ Targets ]---------------------------------------------------------------- +all: jni/lib3270jni.h icons + @$(NDKBUILD) + Debug: jni/lib3270jni.h icons @$(NDKBUILD) -icons: $(foreach DIR, $(RESOLUTION), res/drawable-$(DIR)/ic_launcher.png) +icons: $(foreach DIR, $(RESOLUTION), res/drawable-$(DIR)/ic_launcher.png) \ + $(foreach DIR, $(RESOLUTION), res/drawable-$(DIR)/ic_connect.png) \ + $(foreach DIR, $(RESOLUTION), res/drawable-$(DIR)/ic_disconnect.png) \ + $(foreach DIR, $(RESOLUTION), res/drawable-$(DIR)/ic_settings.png) clean: @rm -fr obj @rm -f jni/lib3270jni.h @rm -f sigs.txt @rm -f bin/classes/$(CLASSPATH)/lib3270.class - @rm -f $(foreach DIR, $(RESOLUTION), res/drawable-$(DIR)/ic_launcher.png) + @rm -f $(foreach DIR, $(RESOLUTION), res/drawable-$(DIR)/*.png) cleanDebug: clean res/drawable-xhdpi/ic_launcher.png: ../src/pw3270/pixmaps/pw3270.svg - @echo " ICON xhdpi" + @echo "Laucher xhdpi : `basename $@` <= `basename $<`" @$(MKDIR) `dirname $@` @$(CONVERT) --format=png --width=96 --height=96 --output=$@ $< res/drawable-mdpi/ic_launcher.png: ../src/pw3270/pixmaps/pw3270.svg - @echo " ICON mdpi" + @echo "Laucher mdpi : `basename $@` <= `basename $<`" @$(MKDIR) `dirname $@` @$(CONVERT) --format=png --width=48 --height=48 --output=$@ $< res/drawable-ldpi/ic_launcher.png: ../src/pw3270/pixmaps/pw3270.svg - @echo " ICON ldpi" + @echo "Laucher ldpi : `basename $@` <= `basename $<`" @$(MKDIR) `dirname $@` @$(CONVERT) --format=png --width=36 --height=36 --output=$@ $< res/drawable-hdpi/ic_launcher.png: ../src/pw3270/pixmaps/pw3270.svg - @echo " ICON hdpi" + @echo "Laucher hdpi : `basename $@` <= `basename $<`" @$(MKDIR) `dirname $@` @$(CONVERT) --format=png --width=72 --height=72 --output=$@ $< diff --git a/android/ic_connect.svg b/android/ic_connect.svg new file mode 100644 index 0000000..c88cae2 --- /dev/null +++ b/android/ic_connect.svg @@ -0,0 +1,93 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + diff --git a/android/ic_disconnect.svg b/android/ic_disconnect.svg new file mode 100644 index 0000000..e18c7d5 --- /dev/null +++ b/android/ic_disconnect.svg @@ -0,0 +1,89 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + diff --git a/android/ic_settings.svg b/android/ic_settings.svg new file mode 100644 index 0000000..f690681 --- /dev/null +++ b/android/ic_settings.svg @@ -0,0 +1,77 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + diff --git a/android/jni/actions.cpp b/android/jni/actions.cpp new file mode 100644 index 0000000..455b858 --- /dev/null +++ b/android/jni/actions.cpp @@ -0,0 +1,53 @@ +/* + * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270 + * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a + * aplicativos mainframe. Registro no INPI sob o nome G3270. Registro no INPI sob o nome G3270. + * + * Copyright (C) <2008> + * + * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob + * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela + * Free Software Foundation. + * + * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER + * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO + * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para + * obter mais detalhes. + * + * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este + * programa; se não, escreva para a Free Software Foundation, Inc., 59 Temple + * Place, Suite 330, Boston, MA, 02111-1307, USA + * + * Este programa está nomeado como actions.cpp e possui - linhas de código. + * + * Contatos: + * + * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) + * + */ + + #include "globals.h" + #include + #include + +/*--[ Implement ]------------------------------------------------------------------------------------*/ + +JNIEXPORT void JNICALL Java_br_com_bb_pw3270_lib3270_sendEnter(JNIEnv *env, jobject obj) +{ + PW3270_JNI_BEGIN + + lib3270_enter(PW3270_SESSION); + + PW3270_JNI_END +} + +JNIEXPORT void JNICALL Java_br_com_bb_pw3270_lib3270_sendPFkey(JNIEnv *env, jobject obj, jint key) +{ + PW3270_JNI_BEGIN + + lib3270_pfkey(PW3270_SESSION,key); + + PW3270_JNI_END +} + + diff --git a/android/res/layout/menu.xml b/android/res/layout/menu.xml new file mode 100644 index 0000000..4d761d5 --- /dev/null +++ b/android/res/layout/menu.xml @@ -0,0 +1,15 @@ + + + + + + + diff --git a/android/res/values/drawables.xml b/android/res/values/drawables.xml new file mode 100644 index 0000000..045e125 --- /dev/null +++ b/android/res/values/drawables.xml @@ -0,0 +1,3 @@ + + + diff --git a/android/src/br/com/bb/pw3270/PW3270Activity.java b/android/src/br/com/bb/pw3270/PW3270Activity.java index 68ddd18..1fef3bb 100644 --- a/android/src/br/com/bb/pw3270/PW3270Activity.java +++ b/android/src/br/com/bb/pw3270/PW3270Activity.java @@ -15,6 +15,10 @@ import android.webkit.WebViewClient; import android.webkit.WebResourceResponse; import android.webkit.WebChromeClient; import android.app.ProgressDialog; +import android.view.Menu; +import android.view.MenuInflater; +import android.view.MenuItem; + // import java.io.InputStream; // import android.app.Dialog; @@ -63,17 +67,21 @@ public class PW3270Activity extends Activity view.reload(); } - protected void showProgramMessage(int id) + protected boolean showProgramMessage(int id) { - String message[] = res.getStringArray(R.array.program_msg); - try - { - showProgressDialog(message[id]); - } catch(Exception e) + if(!super.showProgramMessage(id)) { - Log.e(TAG,e.getLocalizedMessage()); - showProgressDialog("?"); + String message[] = res.getStringArray(R.array.program_msg); + try + { + showProgressDialog(message[id]); + } catch(Exception e) + { + Log.e(TAG,e.getLocalizedMessage()); + showProgressDialog("?"); + } } + return true; } protected void popupMessage(int type, String title, String text, String info) @@ -88,6 +96,7 @@ public class PW3270Activity extends Activity d.show(); } + @SuppressWarnings("unused") public String getscreencontents() { String text; @@ -170,4 +179,33 @@ public class PW3270Activity extends Activity } + @Override + public boolean onCreateOptionsMenu(Menu menu) + { + MenuInflater inflater = getMenuInflater(); + Log.d(TAG,"Popup menu"); + inflater.inflate(R.layout.menu, menu); + return true; + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) + { + // Handle item selection + Log.d(TAG,"Menu item selected"); + /* + switch (item.getItemId()) { + case R.id.new_game: + newGame(); + return true; + case R.id.help: + showHelp(); + return true; + default: + return super.onOptionsItemSelected(item); + } + */ + return super.onOptionsItemSelected(item); + } + } diff --git a/android/src/br/com/bb/pw3270/lib3270.java b/android/src/br/com/bb/pw3270/lib3270.java index 9d68e70..d5dffc3 100644 --- a/android/src/br/com/bb/pw3270/lib3270.java +++ b/android/src/br/com/bb/pw3270/lib3270.java @@ -259,7 +259,7 @@ public class lib3270 { break; case 1: // OIA message has changed - updateProgramMessage(msg.arg1); + showProgramMessage(msg.arg1); break; case 2: // Screen changed @@ -302,22 +302,16 @@ public class lib3270 { /*---[ Signal methods ]--------------------------------------------------*/ - protected void showProgramMessage(int id) - { - - } - - private void updateProgramMessage(int id) + protected boolean showProgramMessage(int id) { if(id == 0 && screenState != 0) { screenState = 0; updateScreen(); + return true; } - else - { - showProgramMessage(id); - } + + return false; } protected void popupMessage(int type, String title, String text, String info) { -- libgit2 0.21.2