JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkClasspathFontPeer_setFont (JNIEnv *env, jobject self, jstring family_name_str, jint style_int, jint size) { struct peerfont *pfont = NULL; PangoFontMap *map = NULL; char const *family_name = NULL; gdk_threads_enter (); enum java_awt_font_style style = (enum java_awt_font_style) style_int; g_assert (self != NULL); pfont = (struct peerfont *)NSA_GET_FONT_PTR (env, self); g_assert (pfont != NULL); if (pfont->ctx != NULL) g_object_unref (pfont->ctx); if (pfont->font != NULL) g_object_unref (pfont->font); if (pfont->desc != NULL) pango_font_description_free (pfont->desc); pfont->desc = pango_font_description_new (); g_assert (pfont->desc != NULL); family_name = (*env)->GetStringUTFChars(env, family_name_str, 0); g_assert (family_name != NULL); pango_font_description_set_family (pfont->desc, family_name); (*env)->ReleaseStringUTFChars(env, family_name_str, family_name); pango_font_description_set_size (pfont->desc, size * PANGO_SCALE); if (style & java_awt_font_BOLD) pango_font_description_set_weight (pfont->desc, PANGO_WEIGHT_BOLD); if (style & java_awt_font_ITALIC) pango_font_description_set_style (pfont->desc, PANGO_STYLE_ITALIC); /* FIXME: these are possibly wrong, and should in any case probably be cached between calls. */ map = pango_ft2_font_map_for_display (); g_assert (map != NULL); if (pfont->ctx == NULL) pfont->ctx = pango_ft2_font_map_create_context (PANGO_FT2_FONT_MAP (map)); g_assert (pfont->ctx != NULL); if (pfont->font != NULL) g_object_unref (pfont->font); pfont->font = pango_font_map_load_font (map, pfont->ctx, pfont->desc); g_assert (pfont->font != NULL); gdk_threads_leave (); }
/** * gnome_print_pango_create_context: * @fontmap: a #PangoFontMap from gnome_print_pango_get_default_font_map() * or gnome_print_pango_create_font_map(). * * Creates a new #PangoContext object for the specified fontmap. * * Return value: a newly created #PangoContext object **/ PangoContext * gnome_print_pango_create_context (PangoFontMap *fontmap) { PangoContext *context; g_return_val_if_fail (PANGO_FT2_IS_FONT_MAP (fontmap), NULL); g_return_val_if_fail (is_gnome_print_object (G_OBJECT (fontmap)), NULL); context = pango_ft2_font_map_create_context (PANGO_FT2_FONT_MAP (fontmap)); set_is_gnome_print_object (G_OBJECT (context)); return context; }
FontSupport::FontSupport(WPaintDevice *paintDevice) : device_(paintDevice), matchFont_(0) { PANGO_LOCK; if (!pangoFontMap) pangoFontMap = pango_ft2_font_map_new(); context_ = pango_ft2_font_map_create_context((PangoFT2FontMap*)pangoFontMap); currentFont_ = 0; }
FontSupport::FontSupport(WPaintDevice *paintDevice) : device_(paintDevice), cache_(10) { PANGO_LOCK; if (!pangoFontMap) pangoFontMap = pango_ft2_font_map_new(); #if PANGO_VERSION_MAJOR > 1 || PANGO_VERSION_MINOR > 21 context_ = pango_font_map_create_context(pangoFontMap); #else context_ = pango_ft2_font_map_create_context(PANGO_FT2_FONT_MAP(pangoFontMap)); #endif currentFont_ = 0; }
void gimp_font_list_restore (GimpFontList *list) { PangoFontMap *fontmap; PangoContext *context; g_return_if_fail (GIMP_IS_FONT_LIST (list)); if (font_desc_to_string == NULL) { PangoFontDescription *desc; gchar *name; gchar last_char; desc = pango_font_description_new (); pango_font_description_set_family (desc, "Wilber 12"); name = pango_font_description_to_string (desc); last_char = name[strlen (name) - 1]; g_free (name); pango_font_description_free (desc); if (last_char != ',') font_desc_to_string = &gimp_font_util_pango_font_description_to_string; else font_desc_to_string = &pango_font_description_to_string; } fontmap = pango_ft2_font_map_new (); pango_ft2_font_map_set_resolution (PANGO_FT2_FONT_MAP (fontmap), list->xresolution, list->yresolution); context = pango_ft2_font_map_create_context (PANGO_FT2_FONT_MAP (fontmap)); g_object_unref (fontmap); gimp_container_freeze (GIMP_CONTAINER (list)); gimp_font_list_load_names (list, fontmap, context); g_object_unref (context); gimp_list_sort_by_name (GIMP_LIST (list)); gimp_container_thaw (GIMP_CONTAINER (list)); }
static bool lnx_pango_objects_intialize() { bool t_success; t_success = true; PangoFontMap *t_font_map; PangoContext *t_pango; PangoLayout *t_layout; if (t_success) { t_font_map = (PangoFontMap *)pthread_getspecific(s_font_map_key); t_pango = (PangoContext *)pthread_getspecific(s_pango_key); t_layout = (PangoLayout *)pthread_getspecific(s_layout_key); } if (t_success) if (t_font_map == NULL) { t_font_map = pango_ft2_font_map_new(); t_success = t_font_map != NULL; if (t_success) pthread_setspecific(s_font_map_key, t_font_map); } if (t_success) if (t_pango == NULL) { t_pango = pango_ft2_font_map_create_context((PangoFT2FontMap *) t_font_map); t_success = t_pango != NULL; if (t_success) pthread_setspecific(s_pango_key, t_pango); } if (t_success) if (t_layout == NULL) { t_layout = pango_layout_new(t_pango); t_success = t_layout != NULL; if (t_success) pthread_setspecific(s_layout_key, t_layout); } return t_success; }
FontSupport::FontSupport(WPaintDevice *paintDevice, EnabledFontFormats enabledFontFormats) : device_(paintDevice), enabledFontFormats_(enabledFontFormats), cache_(10) { PANGO_LOCK; if (!pangoFontMap) { pangoFontMap = pango_ft2_font_map_new(); pango_ft2_font_map_set_default_substitute(PANGO_FT2_FONT_MAP(pangoFontMap), addTrueTypePattern, NULL, NULL); } #if PANGO_VERSION_MAJOR > 1 || PANGO_VERSION_MINOR > 21 context_ = pango_font_map_create_context(pangoFontMap); #else context_ = pango_ft2_font_map_create_context(PANGO_FT2_FONT_MAP(pangoFontMap)); #endif currentFont_ = nullptr; }
static bool lnx_pango_initialize(void) { bool t_success; t_success = true; // MW-2013-12-19: [[ Bug 11559 ]] Use '=' not '=='! if (t_success) t_success = initialise_weak_link_pango() != 0 && initialise_weak_link_pangoft2() != 0 && initialise_weak_link_gobject() != 0 && initialise_weak_link_glib() != 0; if (t_success) if (s_font_map == NULL) { s_font_map = pango_ft2_font_map_new(); t_success = s_font_map != NULL; } if (t_success) if (s_pango == NULL) { s_pango = pango_ft2_font_map_create_context((PangoFT2FontMap *) s_font_map); t_success = s_pango != nil; } if (t_success) if (s_layout == NULL) { s_layout = pango_layout_new(s_pango); t_success = s_layout != NULL; } return t_success; }
static PangoContext * pangoft2_view_get_context (gpointer instance) { return pango_ft2_font_map_create_context (PANGO_FT2_FONT_MAP (instance)); }
JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkFontPeer_setFont (JNIEnv *env, jobject self, jstring family_name_str, jint style_int, jint size, jboolean useGraphics2D) { struct peerfont *pfont = NULL; char const *family_name = NULL; enum java_awt_font_style style; PangoFT2FontMap *ft2_map; gdk_threads_enter (); style = (enum java_awt_font_style) style_int; g_assert (self != NULL); pfont = (struct peerfont *)NSA_GET_FONT_PTR (env, self); g_assert (pfont != NULL); if (pfont->ctx != NULL) g_object_unref (pfont->ctx); if (pfont->font != NULL) g_object_unref (pfont->font); if (pfont->desc != NULL) pango_font_description_free (pfont->desc); pfont->desc = pango_font_description_new (); g_assert (pfont->desc != NULL); family_name = (*env)->GetStringUTFChars(env, family_name_str, 0); g_assert (family_name != NULL); pango_font_description_set_family (pfont->desc, family_name); (*env)->ReleaseStringUTFChars(env, family_name_str, family_name); if (style & java_awt_font_BOLD) pango_font_description_set_weight (pfont->desc, PANGO_WEIGHT_BOLD); if (style & java_awt_font_ITALIC) pango_font_description_set_style (pfont->desc, PANGO_STYLE_ITALIC); if (useGraphics2D) { pango_font_description_set_size (pfont->desc, size * PANGO_SCALE); if (pfont->ctx == NULL) { ft2_map = PANGO_FT2_FONT_MAP(pango_ft2_font_map_for_display ()); pfont->ctx = pango_ft2_font_map_create_context (ft2_map); } } else { /* GDK uses a slightly different DPI setting. */ pango_font_description_set_size (pfont->desc, size * dpi_conversion_factor); if (pfont->ctx == NULL) pfont->ctx = gdk_pango_context_get(); } g_assert (pfont->ctx != NULL); if (pfont->font != NULL) { g_object_unref (pfont->font); pfont->font = NULL; } pango_context_set_font_description (pfont->ctx, pfont->desc); pango_context_set_language (pfont->ctx, gtk_get_default_language()); pfont->font = pango_context_load_font (pfont->ctx, pfont->desc); g_assert (pfont->font != NULL); if (pfont->layout == NULL) pfont->layout = pango_layout_new (pfont->ctx); g_assert (pfont->layout != NULL); gdk_threads_leave (); }