diff options
Diffstat (limited to 'lib/imgui-1.90.7/examples/example_android_opengl3/android/app')
3 files changed, 110 insertions, 0 deletions
diff --git a/lib/imgui-1.90.7/examples/example_android_opengl3/android/app/build.gradle b/lib/imgui-1.90.7/examples/example_android_opengl3/android/app/build.gradle new file mode 100644 index 0000000..53181ba --- /dev/null +++ b/lib/imgui-1.90.7/examples/example_android_opengl3/android/app/build.gradle @@ -0,0 +1,46 @@ +apply plugin: 'com.android.application' +apply plugin: 'kotlin-android' + +android { +    compileSdkVersion 33 +    buildToolsVersion "33.0.2" +    ndkVersion "25.2.9519653" + +    defaultConfig { +        applicationId "imgui.example.android" +        namespace "imgui.example.android" +        minSdkVersion 24 +        targetSdkVersion 33 +        versionCode 1 +        versionName "1.0" +    } + +    buildTypes { +        release { +            minifyEnabled false +            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt') +        } +    } + +    compileOptions { +        sourceCompatibility JavaVersion.VERSION_11 +        targetCompatibility JavaVersion.VERSION_11 +    } + +    kotlinOptions { +        jvmTarget="11" +    } + +    externalNativeBuild { +        cmake { +            path "../../CMakeLists.txt" +            version '3.22.1' +        } +    } +} +repositories { +    mavenCentral() +} +dependencies { +    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" +} diff --git a/lib/imgui-1.90.7/examples/example_android_opengl3/android/app/src/main/AndroidManifest.xml b/lib/imgui-1.90.7/examples/example_android_opengl3/android/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..a87b95b --- /dev/null +++ b/lib/imgui-1.90.7/examples/example_android_opengl3/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="utf-8"?> +<manifest xmlns:android="http://schemas.android.com/apk/res/android"> + +    <application +        android:label="ImGuiExample" +        android:allowBackup="false" +        android:fullBackupContent="false" +        android:hasCode="true"> + +        <activity +            android:name="imgui.example.android.MainActivity" +            android:theme="@android:style/Theme.NoTitleBar.Fullscreen" +            android:configChanges="orientation|keyboardHidden|screenSize" +            android:exported="false"> +            <meta-data android:name="android.app.lib_name" +                android:value="ImGuiExample" /> + +            <intent-filter> +                <action android:name="android.intent.action.MAIN" /> +                <category android:name="android.intent.category.LAUNCHER" /> +            </intent-filter> +        </activity> +    </application> +</manifest> diff --git a/lib/imgui-1.90.7/examples/example_android_opengl3/android/app/src/main/java/MainActivity.kt b/lib/imgui-1.90.7/examples/example_android_opengl3/android/app/src/main/java/MainActivity.kt new file mode 100644 index 0000000..896a88c --- /dev/null +++ b/lib/imgui-1.90.7/examples/example_android_opengl3/android/app/src/main/java/MainActivity.kt @@ -0,0 +1,40 @@ +package imgui.example.android + +import android.app.NativeActivity +import android.os.Bundle +import android.content.Context +import android.view.inputmethod.InputMethodManager +import android.view.KeyEvent +import java.util.concurrent.LinkedBlockingQueue + +class MainActivity : NativeActivity() { +    public override fun onCreate(savedInstanceState: Bundle?) { +        super.onCreate(savedInstanceState) +    } + +    fun showSoftInput() { +        val inputMethodManager = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager +        inputMethodManager.showSoftInput(this.window.decorView, 0) +    } + +    fun hideSoftInput() { +        val inputMethodManager = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager +        inputMethodManager.hideSoftInputFromWindow(this.window.decorView.windowToken, 0) +    } + +    // Queue for the Unicode characters to be polled from native code (via pollUnicodeChar()) +    private var unicodeCharacterQueue: LinkedBlockingQueue<Int> = LinkedBlockingQueue() + +    // We assume dispatchKeyEvent() of the NativeActivity is actually called for every +    // KeyEvent and not consumed by any View before it reaches here +    override fun dispatchKeyEvent(event: KeyEvent): Boolean { +        if (event.action == KeyEvent.ACTION_DOWN) { +            unicodeCharacterQueue.offer(event.getUnicodeChar(event.metaState)) +        } +        return super.dispatchKeyEvent(event) +    } + +    fun pollUnicodeChar(): Int { +        return unicodeCharacterQueue.poll() ?: 0 +    } +}  | 
