From 277afc9a84d5ea2e5f1aae3ad4915208b56e9b0b Mon Sep 17 00:00:00 2001 From: Maxime Graulich <maxime.graulich@gmail.com> Date: Fri, 4 Apr 2014 12:03:08 +0000 Subject: [PATCH] Android: adapt font size according to screen density --- contrib/mobile/Android/src/org/geuz/onelab/Gmsh.java | 6 +++--- .../mobile/Android/src/org/geuz/onelab/MainActivity.java | 2 +- contrib/mobile/androidGModel.cpp | 4 ++-- contrib/mobile/androidGModel.h | 4 ++-- contrib/mobile/drawContext.cpp | 4 ++-- contrib/mobile/drawContext.h | 2 +- contrib/mobile/iOS/Onelab/EAGLView.mm | 2 +- 7 files changed, 12 insertions(+), 12 deletions(-) diff --git a/contrib/mobile/Android/src/org/geuz/onelab/Gmsh.java b/contrib/mobile/Android/src/org/geuz/onelab/Gmsh.java index fbcc0f0e6a..1436341aa3 100644 --- a/contrib/mobile/Android/src/org/geuz/onelab/Gmsh.java +++ b/contrib/mobile/Android/src/org/geuz/onelab/Gmsh.java @@ -14,7 +14,7 @@ public class Gmsh implements Parcelable { System.loadLibrary("GetDP"); System.loadLibrary("Onelab"); } - private native long init(); // Init Gmsh + private native long init(float fontFactor); // Init Gmsh private native void loadFile(long ptr, String name); // load a file(OpenProjet) private native void initView(long ptr, int w, int h); // Called each time the GLView change private native void drawView(long ptr); // Called each time the GLView request a render @@ -44,8 +44,8 @@ public class Gmsh implements Parcelable { private long ptr; private Handler handler; - public Gmsh(Handler handler) { - ptr = this.init(); + public Gmsh(Handler handler, float fontFactor) { + ptr = this.init(fontFactor); this.handler = handler; } diff --git a/contrib/mobile/Android/src/org/geuz/onelab/MainActivity.java b/contrib/mobile/Android/src/org/geuz/onelab/MainActivity.java index 0234b3796b..c3464620f4 100644 --- a/contrib/mobile/Android/src/org/geuz/onelab/MainActivity.java +++ b/contrib/mobile/Android/src/org/geuz/onelab/MainActivity.java @@ -50,7 +50,7 @@ public class MainActivity extends Activity{ getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); getWindow().requestFeature(Window.FEATURE_ACTION_BAR_OVERLAY); setContentView(R.layout.main_activity_layout); - _gmsh = new Gmsh(mainHandler); + _gmsh = new Gmsh(mainHandler, getResources().getDisplayMetrics().density); _notify = false; ActionBar actionBar = getActionBar(); actionBar.setDisplayHomeAsUpEnabled(true); diff --git a/contrib/mobile/androidGModel.cpp b/contrib/mobile/androidGModel.cpp index 3df9cb27f1..d7096b0e4b 100644 --- a/contrib/mobile/androidGModel.cpp +++ b/contrib/mobile/androidGModel.cpp @@ -126,13 +126,13 @@ extern "C" { return JNI_VERSION_1_6; } JNIEXPORT jlong JNICALL Java_org_geuz_onelab_Gmsh_init - (JNIEnv *env, jobject obj) + (JNIEnv *env, jobject obj, jfloat fontFactor) { if(gCallbackObject != NULL) env->DeleteGlobalRef(gCallbackObject); gCallbackObject = env->NewGlobalRef(obj); gJavaVM->GetEnv((void**)&env, JNI_VERSION_1_6); Msg::SetCallback(new MobileMessage()); - return reinterpret_cast<jlong>(new drawContext()); + return reinterpret_cast<jlong>(new drawContext(fontFactor)); } JNIEXPORT void JNICALL Java_org_geuz_onelab_Gmsh_loadFile (JNIEnv *env, jobject obj, jlong jptr, jstring jname) diff --git a/contrib/mobile/androidGModel.h b/contrib/mobile/androidGModel.h index 35d4d565d4..fca4dfdd68 100644 --- a/contrib/mobile/androidGModel.h +++ b/contrib/mobile/androidGModel.h @@ -12,10 +12,10 @@ extern "C" { /* * Class: org_geuz_onelab_Gmsh * Method: init - * Signature: (Ljava/lang/String;)J + * Signature: (F)J */ JNIEXPORT jlong JNICALL Java_org_geuz_onelab_Gmsh_init - (JNIEnv *, jobject); + (JNIEnv *, jobject, jfloat); /* * Class: org_geuz_onelab_Gmsh diff --git a/contrib/mobile/drawContext.cpp b/contrib/mobile/drawContext.cpp index 758465ad3a..24a19cb4c1 100644 --- a/contrib/mobile/drawContext.cpp +++ b/contrib/mobile/drawContext.cpp @@ -53,7 +53,7 @@ static bool locked = false; static bool onelabStop = false; -drawContext::drawContext(bool isRetina) +drawContext::drawContext(float fontFactor) { GmshInitialize(); GmshSetOption("General", "Terminal", 1.0); @@ -66,7 +66,7 @@ drawContext::drawContext(bool isRetina) _fillMesh = false; _gradiant = true; - _fontFactor = isRetina ? 1.5 : 1; + _fontFactor = fontFactor; } static void checkGlError(const char* op) diff --git a/contrib/mobile/drawContext.h b/contrib/mobile/drawContext.h index 0f49820607..4ce28c7905 100644 --- a/contrib/mobile/drawContext.h +++ b/contrib/mobile/drawContext.h @@ -44,7 +44,7 @@ private: void drawPView(PView *p); void drawVectorArray(PViewOptions *opt, VertexArray *va); public: - drawContext(bool isRetina=false); + drawContext(float fontFactor=1.); ~drawContext(){} void load(std::string filename); void eventHandler(int event, float x=0, float y=0); diff --git a/contrib/mobile/iOS/Onelab/EAGLView.mm b/contrib/mobile/iOS/Onelab/EAGLView.mm index 5922c73004..04b4cba825 100644 --- a/contrib/mobile/iOS/Onelab/EAGLView.mm +++ b/contrib/mobile/iOS/Onelab/EAGLView.mm @@ -54,7 +54,7 @@ //[self release]; return nil; } - mContext = new drawContext(eaglLayer.contentsScale==2); + mContext = new drawContext((eaglLayer.contentsScale==2)? 1.5:1); } rendering = NO; return self; -- GitLab