2530 } 2531 2532 return result; 2533 } 2534 2535 /***********************************************/ 2536 static jobject get_string_property(JNIEnv *env, GtkSettings* settings, 2537 const gchar* key) { 2538 jobject result = NULL; 2539 gchar* strval = NULL; 2540 2541 (*fp_g_object_get)(settings, key, &strval, NULL); 2542 result = (*env)->NewStringUTF(env, strval); 2543 (*fp_g_free)(strval); 2544 2545 return result; 2546 } 2547 2548 static jobject get_integer_property(JNIEnv *env, GtkSettings* settings, 2549 const gchar* key) { 2550 gint intval = NULL; 2551 (*fp_g_object_get)(settings, key, &intval, NULL); 2552 return create_Integer(env, intval); 2553 } 2554 2555 static jobject get_boolean_property(JNIEnv *env, GtkSettings* settings, 2556 const gchar* key) { 2557 gint intval = NULL; 2558 (*fp_g_object_get)(settings, key, &intval, NULL); 2559 return create_Boolean(env, intval); 2560 } 2561 2562 static jobject gtk3_get_setting(JNIEnv *env, Setting property) 2563 { 2564 GtkSettings* settings = (*fp_gtk_settings_get_default)(); 2565 2566 switch (property) 2567 { 2568 case GTK_FONT_NAME: 2569 return get_string_property(env, settings, "gtk-font-name"); 2570 case GTK_ICON_SIZES: 2571 return get_string_property(env, settings, "gtk-icon-sizes"); 2572 case GTK_CURSOR_BLINK: 2573 return get_boolean_property(env, settings, "gtk-cursor-blink"); 2574 case GTK_CURSOR_BLINK_TIME: 2575 return get_integer_property(env, settings, "gtk-cursor-blink-time"); 2576 } 2577 | 2530 } 2531 2532 return result; 2533 } 2534 2535 /***********************************************/ 2536 static jobject get_string_property(JNIEnv *env, GtkSettings* settings, 2537 const gchar* key) { 2538 jobject result = NULL; 2539 gchar* strval = NULL; 2540 2541 (*fp_g_object_get)(settings, key, &strval, NULL); 2542 result = (*env)->NewStringUTF(env, strval); 2543 (*fp_g_free)(strval); 2544 2545 return result; 2546 } 2547 2548 static jobject get_integer_property(JNIEnv *env, GtkSettings* settings, 2549 const gchar* key) { 2550 gint intval = 0; 2551 (*fp_g_object_get)(settings, key, &intval, NULL); 2552 return create_Integer(env, intval); 2553 } 2554 2555 static jobject get_boolean_property(JNIEnv *env, GtkSettings* settings, 2556 const gchar* key) { 2557 gint intval = 0; 2558 (*fp_g_object_get)(settings, key, &intval, NULL); 2559 return create_Boolean(env, intval); 2560 } 2561 2562 static jobject gtk3_get_setting(JNIEnv *env, Setting property) 2563 { 2564 GtkSettings* settings = (*fp_gtk_settings_get_default)(); 2565 2566 switch (property) 2567 { 2568 case GTK_FONT_NAME: 2569 return get_string_property(env, settings, "gtk-font-name"); 2570 case GTK_ICON_SIZES: 2571 return get_string_property(env, settings, "gtk-icon-sizes"); 2572 case GTK_CURSOR_BLINK: 2573 return get_boolean_property(env, settings, "gtk-cursor-blink"); 2574 case GTK_CURSOR_BLINK_TIME: 2575 return get_integer_property(env, settings, "gtk-cursor-blink-time"); 2576 } 2577 |