Mercurial > dwindows
diff android/dw.cpp @ 2544:dbfcc0e357d6
Android: Clean up the menus... add separator, remove tildes and implement callbacks.
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Thu, 13 May 2021 20:46:07 +0000 |
parents | f9367eb9a6e7 |
children | f803f3b164cf |
line wrap: on
line diff
--- a/android/dw.cpp Thu May 13 19:54:15 2021 +0000 +++ b/android/dw.cpp Thu May 13 20:46:07 2021 +0000 @@ -492,6 +492,15 @@ return timerfunc((void *)data); } +/* A more simple method for quicker calls */ +JNIEXPORT void JNICALL +Java_org_dbsoft_dwindows_DWMenu_eventHandlerSimple(JNIEnv* env, jobject obj, jobject obj1, jint message) { + void *params[8] = { nullptr }; + + _dw_event_handler(obj1, params, message); +} + + /* This function adds a signal handler callback into the linked list. */ void _dw_new_signal(ULONG message, HWND window, int msgid, void *signalfunction, void *discfunc, void *data) @@ -3984,6 +3993,27 @@ { } +char _dw_removetilde(char *dest, const char *src) +{ + int z, cur=0; + char accel = '\0'; + + for(z=0;z<strlen(src);z++) + { + if(src[z] != '~') + { + dest[cur] = src[z]; + cur++; + } + else + { + accel = src[z+1]; + } + } + dest[cur] = 0; + return accel; +} + /* * Adds a menuitem or submenu to an existing menu. * Parameters: @@ -4003,8 +4033,10 @@ if((env = (JNIEnv *)pthread_getspecific(_dw_env_key))) { + char *newtitle = (char *)alloca(strlen(title)+1); + char accel = _dw_removetilde(newtitle, title); // Create a string - jstring jstr = env->NewStringUTF(title); + jstring jstr = env->NewStringUTF(newtitle); // First get the class that contains the method you need to call jclass clazz = _dw_find_class(env, DW_CLASS_NAME); // Get the method that you want to call