291 |
struct peerfont *pfont = NULL; |
struct peerfont *pfont = NULL; |
292 |
struct graphics *g = NULL; |
struct graphics *g = NULL; |
293 |
const char *cstr = NULL; |
const char *cstr = NULL; |
294 |
|
const char *sTmp = NULL; |
295 |
|
char *tmp = NULL; |
296 |
|
char *p = NULL; |
297 |
|
int count = 0; |
298 |
|
int charSize = 0; |
299 |
int baseline_y = 0; |
int baseline_y = 0; |
300 |
PangoLayoutIter *iter = NULL; |
PangoLayoutIter *iter = NULL; |
301 |
|
|
308 |
g_assert (pfont != NULL); |
g_assert (pfont != NULL); |
309 |
|
|
310 |
cstr = (*env)->GetStringUTFChars (env, str, NULL); |
cstr = (*env)->GetStringUTFChars (env, str, NULL); |
311 |
|
g_assert (cstr != NULL); |
312 |
|
|
313 |
|
charSize = sizeof(char); |
314 |
|
p = malloc((strlen(cstr) + 1) * charSize); |
315 |
|
g_assert (p != NULL); |
316 |
|
|
317 |
|
tmp = p; |
318 |
|
sTmp = cstr; |
319 |
|
for (; *sTmp != '\0'; sTmp++) |
320 |
|
if (((unsigned char) *sTmp) >= ' ') |
321 |
|
{ |
322 |
|
*p = *sTmp; |
323 |
|
count++; |
324 |
|
p++; |
325 |
|
} |
326 |
|
*p = '\0'; |
327 |
|
|
328 |
|
p = realloc(tmp, (count + 1) * charSize); |
329 |
|
g_assert (p != NULL); |
330 |
|
pango_layout_set_text (pfont->layout, p, -1); |
331 |
|
free(p); |
332 |
|
|
333 |
pango_layout_set_font_description (pfont->layout, pfont->desc); |
pango_layout_set_font_description (pfont->layout, pfont->desc); |
|
pango_layout_set_text (pfont->layout, cstr, -1); |
|
334 |
iter = pango_layout_get_iter (pfont->layout); |
iter = pango_layout_get_iter (pfont->layout); |
335 |
|
|
336 |
baseline_y = pango_layout_iter_get_baseline (iter); |
baseline_y = pango_layout_iter_get_baseline (iter); |
342 |
|
|
343 |
pango_layout_iter_free (iter); |
pango_layout_iter_free (iter); |
344 |
pango_layout_set_text (pfont->layout, "", -1); |
pango_layout_set_text (pfont->layout, "", -1); |
345 |
|
|
346 |
gdk_flush (); |
gdk_flush (); |
347 |
|
|
348 |
(*env)->ReleaseStringUTFChars (env, str, cstr); |
(*env)->ReleaseStringUTFChars (env, str, cstr); |