JNIEXPORT void JNICALL Java_org_cef_browser_CefBrowser_1N_N_1RunFileDialog (JNIEnv *env, jobject obj, jobject jmode, jstring jtitle, jstring jdefaultFileName , jobject jacceptTypes, jobject jcallback) { CefRefPtr<CefBrowser> browser = JNI_GET_BROWSER_OR_RETURN(env, obj); std::vector<CefString> accept_types; GetJNIStringVector(env, jacceptTypes, accept_types); CefBrowserHost::FileDialogMode mode; if (IsJNIEnumValue(env, jmode, "org/cef/handler/CefDialogHandler$FileDialogMode", "FILE_DIALOG_OPEN")) { mode = FILE_DIALOG_OPEN; } else if (IsJNIEnumValue(env, jmode, "org/cef/handler/CefDialogHandler$FileDialogMode", "FILE_DIALOG_OPEN_MULTIPLE")) { mode = FILE_DIALOG_OPEN_MULTIPLE; } else if (IsJNIEnumValue(env, jmode, "org/cef/handler/CefDialogHandler$FileDialogMode", "FILE_DIALOG_SAVE")) { mode = FILE_DIALOG_SAVE; } else { mode = FILE_DIALOG_OPEN; } browser->GetHost()->RunFileDialog(mode, GetJNIString(env, jtitle), GetJNIString(env, jdefaultFileName), accept_types, new RunFileDialogCallback(env, jcallback)); }
JNIEXPORT void JNICALL Java_org_cef_misc_CefPrintSettings_1N_N_1SetDuplexMode (JNIEnv *env, jobject obj, jobject jduplex_mode) { CefRefPtr<CefPrintSettings> settings = GetCefFromJNIObject<CefPrintSettings>(env, obj, "CefPrintSettings"); if (!settings) return; CefPrintSettings::DuplexMode mode; if (IsJNIEnumValue(env, jduplex_mode, "org/cef/misc/CefPrintSettings$DuplexMode", "DUPLEX_MODE_SIMPLEX")) { mode = DUPLEX_MODE_SIMPLEX; } else if (IsJNIEnumValue(env, jduplex_mode, "org/cef/misc/CefPrintSettings$DuplexMode", "DUPLEX_MODE_LONG_EDGE")) { mode = DUPLEX_MODE_LONG_EDGE; } else if (IsJNIEnumValue(env, jduplex_mode, "org/cef/misc/CefPrintSettings$DuplexMode", "DUPLEX_MODE_SHORT_EDGE")) { mode = DUPLEX_MODE_SHORT_EDGE; } else { mode = DUPLEX_MODE_UNKNOWN; } settings->SetDuplexMode(mode); }
CefSettings GetJNISettings(JNIEnv* env, jobject obj) { CefString tmp; CefSettings settings; if (!obj) return settings; jclass cls = env->FindClass("org/cef/CefSettings"); if (!cls) return settings; if (GetJNIFieldString(env, cls, obj, "browser_subprocess_path", &tmp) && !tmp.empty()) { CefString(&settings.browser_subprocess_path) = tmp; tmp.clear(); } GetJNIFieldBoolean(env, cls, obj, "windowless_rendering_enabled", &settings.windowless_rendering_enabled); GetJNIFieldBoolean(env, cls, obj, "command_line_args_disabled", &settings.command_line_args_disabled); if (GetJNIFieldString(env, cls, obj, "cache_path", &tmp) && !tmp.empty()) { CefString(&settings.cache_path) = tmp; tmp.clear(); } GetJNIFieldBoolean(env, cls, obj, "persist_session_cookies", &settings.persist_session_cookies); if (GetJNIFieldString(env, cls, obj, "user_agent", &tmp) && !tmp.empty()) { CefString(&settings.user_agent) = tmp; tmp.clear(); } if (GetJNIFieldString(env, cls, obj, "product_version", &tmp) && !tmp.empty()) { CefString(&settings.product_version) = tmp; tmp.clear(); } if (GetJNIFieldString(env, cls, obj, "locale", &tmp) && !tmp.empty()) { CefString(&settings.locale) = tmp; tmp.clear(); } if (GetJNIFieldString(env, cls, obj, "log_file", &tmp) && !tmp.empty()) { CefString(&settings.log_file) = tmp; tmp.clear(); } jobject obj_sev = NULL; if (GetJNIFieldObject(env, cls, obj, "log_severity", &obj_sev, "Lorg/cef/CefSettings$LogSeverity;")) { if (obj_sev != NULL) { if (IsJNIEnumValue(env, obj_sev, "org/cef/CefSettings$LogSeverity", "LOGSEVERITY_VERBOSE")) settings.log_severity = LOGSEVERITY_VERBOSE; else if (IsJNIEnumValue(env, obj_sev, "org/cef/CefSettings$LogSeverity", "LOGSEVERITY_INFO")) settings.log_severity = LOGSEVERITY_INFO; else if (IsJNIEnumValue(env, obj_sev, "org/cef/CefSettings$LogSeverity", "LOGSEVERITY_WARNING")) settings.log_severity = LOGSEVERITY_WARNING; else if (IsJNIEnumValue(env, obj_sev, "org/cef/CefSettings$LogSeverity", "LOGSEVERITY_ERROR")) settings.log_severity = LOGSEVERITY_ERROR; else if (IsJNIEnumValue(env, obj_sev, "org/cef/CefSettings$LogSeverity", "LOGSEVERITY_DISABLE")) settings.log_severity = LOGSEVERITY_DISABLE; else settings.log_severity = LOGSEVERITY_DEFAULT; } } if (GetJNIFieldString(env, cls, obj, "javascript_flags", &tmp) && !tmp.empty()) { CefString(&settings.javascript_flags) = tmp; tmp.clear(); } if (GetJNIFieldString(env, cls, obj, "resources_dir_path", &tmp) && !tmp.empty()) { CefString(&settings.resources_dir_path) = tmp; tmp.clear(); } if (GetJNIFieldString(env, cls, obj, "locales_dir_path", &tmp) && !tmp.empty()) { CefString(&settings.locales_dir_path) = tmp; tmp.clear(); } GetJNIFieldBoolean(env, cls, obj, "pack_loading_disabled", &settings.pack_loading_disabled); GetJNIFieldInt(env, cls, obj, "remote_debugging_port", &settings.remote_debugging_port); GetJNIFieldInt(env, cls, obj, "uncaught_exception_stack_size", &settings.uncaught_exception_stack_size); GetJNIFieldInt(env, cls, obj, "context_safety_implementation", &settings.context_safety_implementation); GetJNIFieldBoolean(env, cls, obj, "ignore_certificate_errors", &settings.ignore_certificate_errors); jobject obj_col = NULL; if (GetJNIFieldObject(env, cls, obj, "background_color", &obj_col, "Lorg/cef/CefSettings$ColorType;")) { if (obj_col != NULL) { jlong jcolor = 0; JNI_CALL_METHOD(env, obj_col, "getColor", "()J", Long, jcolor); settings.background_color = (cef_color_t)jcolor; } } return settings; }
JNIEXPORT void JNICALL Java_org_cef_misc_CefPrintSettings_1N_N_1SetColorModel (JNIEnv *env, jobject obj, jobject jcolor_model) { CefRefPtr<CefPrintSettings> settings = GetCefFromJNIObject<CefPrintSettings>(env, obj, "CefPrintSettings"); if (!settings) return; CefPrintSettings::ColorModel mode; if (IsJNIEnumValue(env, jcolor_model, "org/cef/misc/CefPrintSettings$ColorModel", "COLOR_MODEL_GRAY")) { mode = COLOR_MODEL_GRAY; } else if (IsJNIEnumValue(env, jcolor_model, "org/cef/misc/CefPrintSettings$ColorModel", "COLOR_MODEL_COLOR")) { mode = COLOR_MODEL_COLOR; } else if (IsJNIEnumValue(env, jcolor_model, "org/cef/misc/CefPrintSettings$ColorModel", "COLOR_MODEL_CMYK")) { mode = COLOR_MODEL_CMYK; } else if (IsJNIEnumValue(env, jcolor_model, "org/cef/misc/CefPrintSettings$ColorModel", "COLOR_MODEL_CMY")) { mode = COLOR_MODEL_CMY; } else if (IsJNIEnumValue(env, jcolor_model, "org/cef/misc/CefPrintSettings$ColorModel", "COLOR_MODEL_KCMY")) { mode = COLOR_MODEL_KCMY; } else if (IsJNIEnumValue(env, jcolor_model, "org/cef/misc/CefPrintSettings$ColorModel", "COLOR_MODEL_CMY_K")) { mode = COLOR_MODEL_CMY_K; } else if (IsJNIEnumValue(env, jcolor_model, "org/cef/misc/CefPrintSettings$ColorModel", "COLOR_MODEL_BLACK")) { mode = COLOR_MODEL_BLACK; } else if (IsJNIEnumValue(env, jcolor_model, "org/cef/misc/CefPrintSettings$ColorModel", "COLOR_MODEL_GRAYSCALE")) { mode = COLOR_MODEL_GRAYSCALE; } else if (IsJNIEnumValue(env, jcolor_model, "org/cef/misc/CefPrintSettings$ColorModel", "COLOR_MODEL_RGB")) { mode = COLOR_MODEL_RGB; } else if (IsJNIEnumValue(env, jcolor_model, "org/cef/misc/CefPrintSettings$ColorModel", "COLOR_MODEL_RGB16")) { mode = COLOR_MODEL_RGB16; } else if (IsJNIEnumValue(env, jcolor_model, "org/cef/misc/CefPrintSettings$ColorModel", "COLOR_MODEL_RGBA")) { mode = COLOR_MODEL_RGBA; } else if (IsJNIEnumValue(env, jcolor_model, "org/cef/misc/CefPrintSettings$ColorModel", "COLOR_MODEL_COLORMODE_COLOR")) { mode = COLOR_MODEL_COLORMODE_COLOR; } else if (IsJNIEnumValue(env, jcolor_model, "org/cef/misc/CefPrintSettings$ColorModel", "COLOR_MODEL_COLORMODE_MONOCHROME")) { mode = COLOR_MODEL_COLORMODE_MONOCHROME; } else if (IsJNIEnumValue(env, jcolor_model, "org/cef/misc/CefPrintSettings$ColorModel", "COLOR_MODEL_HP_COLOR_COLOR")) { mode = COLOR_MODEL_HP_COLOR_COLOR; } else if (IsJNIEnumValue(env, jcolor_model, "org/cef/misc/CefPrintSettings$ColorModel", "COLOR_MODEL_HP_COLOR_BLACK")) { mode = COLOR_MODEL_HP_COLOR_BLACK; } else if (IsJNIEnumValue(env, jcolor_model, "org/cef/misc/CefPrintSettings$ColorModel", "COLOR_MODEL_PRINTOUTMODE_NORMAL")) { mode = COLOR_MODEL_PRINTOUTMODE_NORMAL; } else if (IsJNIEnumValue(env, jcolor_model, "org/cef/misc/CefPrintSettings$ColorModel", "COLOR_MODEL_PRINTOUTMODE_NORMAL_GRAY")) { mode = COLOR_MODEL_PRINTOUTMODE_NORMAL_GRAY; } else if (IsJNIEnumValue(env, jcolor_model, "org/cef/misc/CefPrintSettings$ColorModel", "COLOR_MODEL_PROCESSCOLORMODEL_CMYK")) { mode = COLOR_MODEL_PROCESSCOLORMODEL_CMYK; } else if (IsJNIEnumValue(env, jcolor_model, "org/cef/misc/CefPrintSettings$ColorModel", "COLOR_MODEL_PROCESSCOLORMODEL_GREYSCALE")) { mode = COLOR_MODEL_PROCESSCOLORMODEL_GREYSCALE; } else if (IsJNIEnumValue(env, jcolor_model, "org/cef/misc/CefPrintSettings$ColorModel", "COLOR_MODEL_PROCESSCOLORMODEL_RGB")) { mode = COLOR_MODEL_PROCESSCOLORMODEL_RGB; } else { mode = COLOR_MODEL_UNKNOWN; } settings->SetColorModel(mode); }