@@ -1020,6 +1020,90 @@ void OnAfterParentChanged(CefRefPtr<CefBrowser> browser) {
10201020 }
10211021}
10221022
1023+ jobject NewJNILongVector (JNIEnv* env, const std::vector<int64>& vals) {
1024+ ScopedJNIObjectLocal jvector (env, " java/util/Vector" );
1025+ if (!jvector)
1026+ return NULL ;
1027+
1028+ std::vector<int64>::const_iterator iter;
1029+ for (iter = vals.begin (); iter != vals.end (); ++iter) {
1030+ ScopedJNIObjectLocal argument (
1031+ env, NewJNIObject (env, " java/lang/Long" , " (J)V" , (jlong)*iter));
1032+ JNI_CALL_VOID_METHOD (env, jvector, " addElement" , " (Ljava/lang/Object;)V" ,
1033+ argument.get ());
1034+ }
1035+ return jvector.Release ();
1036+ }
1037+
1038+ CefPdfPrintSettings GetJNIPdfPrintSettings (JNIEnv* env, jobject obj) {
1039+ CefString tmp;
1040+ CefPdfPrintSettings settings;
1041+ if (!obj)
1042+ return settings;
1043+
1044+ ScopedJNIClass cls (env, " org/cef/misc/CefPdfPrintSettings" );
1045+ if (!cls)
1046+ return settings;
1047+
1048+ GetJNIFieldBoolean (env, cls, obj, " header_footer_enabled" ,
1049+ &settings.header_footer_enabled );
1050+
1051+ if (GetJNIFieldString (env, cls, obj, " header_footer_title" , &tmp) &&
1052+ !tmp.empty ()) {
1053+ CefString (&settings.header_footer_title ) = tmp;
1054+ tmp.clear ();
1055+ }
1056+
1057+ if (GetJNIFieldString (env, cls, obj, " header_footer_url" , &tmp) &&
1058+ !tmp.empty ()) {
1059+ CefString (&settings.header_footer_url ) = tmp;
1060+ tmp.clear ();
1061+ }
1062+
1063+ GetJNIFieldBoolean (env, cls, obj, " landscape" , &settings.landscape );
1064+
1065+ GetJNIFieldBoolean (env, cls, obj, " backgrounds_enabled" ,
1066+ &settings.backgrounds_enabled );
1067+
1068+ GetJNIFieldInt (env, cls, obj, " page_width" , &settings.page_width );
1069+
1070+ GetJNIFieldInt (env, cls, obj, " page_height" , &settings.page_height );
1071+
1072+ GetJNIFieldBoolean (env, cls, obj, " selection_only" , &settings.selection_only );
1073+
1074+ GetJNIFieldInt (env, cls, obj, " scale_factor" , &settings.scale_factor );
1075+
1076+ jobject obj_margin_type = NULL ;
1077+ if (GetJNIFieldObject (env, cls, obj, " margin_type" , &obj_margin_type,
1078+ " Lorg/cef/misc/CefPdfPrintSettings$MarginType;" )) {
1079+ ScopedJNIObjectLocal margin_type (env, obj_margin_type);
1080+ if (IsJNIEnumValue (env, margin_type,
1081+ " org/cef/misc/CefPdfPrintSettings$MarginType" ,
1082+ " DEFAULT" )) {
1083+ settings.margin_type = PDF_PRINT_MARGIN_DEFAULT;
1084+ } else if (IsJNIEnumValue (env, margin_type,
1085+ " org/cef/misc/CefPdfPrintSettings$MarginType" ,
1086+ " NONE" )) {
1087+ settings.margin_type = PDF_PRINT_MARGIN_NONE;
1088+ } else if (IsJNIEnumValue (env, margin_type,
1089+ " org/cef/misc/CefPdfPrintSettings$MarginType" ,
1090+ " MINIMUM" )) {
1091+ settings.margin_type = PDF_PRINT_MARGIN_MINIMUM;
1092+ } else if (IsJNIEnumValue (env, margin_type,
1093+ " org/cef/misc/CefPdfPrintSettings$MarginType" ,
1094+ " CUSTOM" )) {
1095+ settings.margin_type = PDF_PRINT_MARGIN_CUSTOM;
1096+ }
1097+ }
1098+
1099+ GetJNIFieldInt (env, cls, obj, " margin_top" , &settings.margin_top );
1100+ GetJNIFieldInt (env, cls, obj, " margin_bottom" , &settings.margin_bottom );
1101+ GetJNIFieldInt (env, cls, obj, " margin_right" , &settings.margin_right );
1102+ GetJNIFieldInt (env, cls, obj, " margin_left" , &settings.margin_left );
1103+
1104+ return settings;
1105+ }
1106+
10231107} // namespace
10241108
10251109JNIEXPORT jboolean JNICALL
@@ -1473,7 +1557,7 @@ Java_org_cef_browser_CefBrowser_1N_N_1SendKeyEvent(JNIEnv* env,
14731557 jobject obj,
14741558 jobject key_event) {
14751559 CefRefPtr<CefBrowser> browser = JNI_GET_BROWSER_OR_RETURN (env, obj);
1476- jclass cls = env->GetObjectClass (key_event);
1560+ ScopedJNIClass cls (env, env->GetObjectClass (key_event) );
14771561 if (!cls)
14781562 return ;
14791563
@@ -1688,7 +1772,7 @@ Java_org_cef_browser_CefBrowser_1N_N_1SendMouseEvent(JNIEnv* env,
16881772 jobject obj,
16891773 jobject mouse_event) {
16901774 CefRefPtr<CefBrowser> browser = JNI_GET_BROWSER_OR_RETURN (env, obj);
1691- jclass cls = env->GetObjectClass (mouse_event);
1775+ ScopedJNIClass cls (env, env->GetObjectClass (mouse_event) );
16921776 if (!cls)
16931777 return ;
16941778
@@ -1753,7 +1837,7 @@ Java_org_cef_browser_CefBrowser_1N_N_1SendMouseWheelEvent(
17531837 jobject obj,
17541838 jobject mouse_wheel_event) {
17551839 CefRefPtr<CefBrowser> browser = JNI_GET_BROWSER_OR_RETURN (env, obj);
1756- jclass cls = env->GetObjectClass (mouse_wheel_event);
1840+ ScopedJNIClass cls (env, env->GetObjectClass (mouse_wheel_event) );
17571841 if (!cls)
17581842 return ;
17591843
@@ -1802,7 +1886,7 @@ Java_org_cef_browser_CefBrowser_1N_N_1DragTargetDragEnter(JNIEnv* env,
18021886 GetCefFromJNIObject<CefDragData>(env, jdragData, " CefDragData" );
18031887 if (!drag_data.get ())
18041888 return ;
1805- jclass cls = FindClass (env, " java/awt/event/MouseEvent" );
1889+ ScopedJNIClass cls (env, " java/awt/event/MouseEvent" );
18061890 if (!cls)
18071891 return ;
18081892
@@ -1821,7 +1905,7 @@ Java_org_cef_browser_CefBrowser_1N_N_1DragTargetDragOver(JNIEnv* env,
18211905 jobject pos,
18221906 jint jmodifiers,
18231907 jint allowedOps) {
1824- jclass cls = FindClass (env, " java/awt/event/MouseEvent" );
1908+ ScopedJNIClass cls (env, " java/awt/event/MouseEvent" );
18251909 if (!cls)
18261910 return ;
18271911
@@ -1846,7 +1930,7 @@ Java_org_cef_browser_CefBrowser_1N_N_1DragTargetDrop(JNIEnv* env,
18461930 jobject obj,
18471931 jobject pos,
18481932 jint jmodifiers) {
1849- jclass cls = FindClass (env, " java/awt/event/MouseEvent" );
1933+ ScopedJNIClass cls (env, " java/awt/event/MouseEvent" );
18501934 if (!cls)
18511935 return ;
18521936
0 commit comments