OLD | NEW |
1 /* | 1 /* |
2 * Copyright © 2009 Red Hat, Inc. | 2 * Copyright © 2009 Red Hat, Inc. |
3 * Copyright © 2011 Codethink Limited | 3 * Copyright © 2011 Codethink Limited |
4 * Copyright © 2011,2012 Google, Inc. | 4 * Copyright © 2011,2012 Google, Inc. |
5 * | 5 * |
6 * This is part of HarfBuzz, a text shaping library. | 6 * This is part of HarfBuzz, a text shaping library. |
7 * | 7 * |
8 * Permission is hereby granted, without written agreement and without | 8 * Permission is hereby granted, without written agreement and without |
9 * license or royalty fees, to use, copy, modify, and distribute this | 9 * license or royalty fees, to use, copy, modify, and distribute this |
10 * software and its documentation for any purpose, provided that the | 10 * software and its documentation for any purpose, provided that the |
(...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
241
hb_codepoint_t *ab, | 241
hb_codepoint_t *ab, |
242
void *user_data); | 242
void *user_data); |
243 typedef hb_bool_t (*hb_unicode_decompose_func_t)
(hb_unicode_funcs_t *ufuncs, | 243 typedef hb_bool_t (*hb_unicode_decompose_func_t)
(hb_unicode_funcs_t *ufuncs, |
244
hb_codepoint_t ab, | 244
hb_codepoint_t ab, |
245
hb_codepoint_t *a, | 245
hb_codepoint_t *a, |
246
hb_codepoint_t *b, | 246
hb_codepoint_t *b, |
247
void *user_data); | 247
void *user_data); |
248 | 248 |
249 /** | 249 /** |
250 * hb_unicode_decompose_compatibility_func_t: | 250 * hb_unicode_decompose_compatibility_func_t: |
251 * @ufuncs: Unicode function structure | 251 * @ufuncs: a Unicode function structure |
252 * @u: codepoint to decompose | 252 * @u: codepoint to decompose |
253 * @decomposed: address of codepoint array (of length %HB_UNICODE_MAX_DECOMPOSIT
ION_LEN) to write decomposition into | 253 * @decomposed: address of codepoint array (of length %HB_UNICODE_MAX_DECOMPOSIT
ION_LEN) to write decomposition into |
254 * @user_data: user data pointer as passed to hb_unicode_funcs_set_decompose_com
patibility_func() | 254 * @user_data: user data pointer as passed to hb_unicode_funcs_set_decompose_com
patibility_func() |
255 * | 255 * |
256 * Fully decompose @u to its Unicode compatibility decomposition. The codepoints
of the decomposition will be written to @decomposed. | 256 * Fully decompose @u to its Unicode compatibility decomposition. The codepoints
of the decomposition will be written to @decomposed. |
257 * The complete length of the decomposition will be returned. | 257 * The complete length of the decomposition will be returned. |
258 * | 258 * |
259 * If @u has no compatibility decomposition, zero should be returned. | 259 * If @u has no compatibility decomposition, zero should be returned. |
260 * | 260 * |
261 * The Unicode standard guarantees that a buffer of length %HB_UNICODE_MAX_DECOM
POSITION_LEN codepoints will always be sufficient for any | 261 * The Unicode standard guarantees that a buffer of length %HB_UNICODE_MAX_DECOM
POSITION_LEN codepoints will always be sufficient for any |
262 * compatibility decomposition plus an terminating value of 0. Consequently, @d
ecompose must be allocated by the caller to be at least this length. Implementa
tions | 262 * compatibility decomposition plus an terminating value of 0. Consequently, @d
ecompose must be allocated by the caller to be at least this length. Implementa
tions |
263 * of this function type must ensure that they do not write past the provided ar
ray. | 263 * of this function type must ensure that they do not write past the provided ar
ray. |
264 * | 264 * |
265 * Return value: number of codepoints in the full compatibility decomposition of
@u, or 0 if no decomposition available. | 265 * Return value: number of codepoints in the full compatibility decomposition of
@u, or 0 if no decomposition available. |
266 */ | 266 */ |
267 typedef unsigned int (*hb_unicode_decompose_compatibility_fun
c_t) (hb_unicode_funcs_t *ufuncs, | 267 typedef unsigned int (*hb_unicode_decompose_compatibility_fun
c_t) (hb_unicode_funcs_t *ufuncs, |
268
hb_codepoint_t u, | 268
hb_codepoint_t u, |
269
hb_codepoint_t *decomposed, | 269
hb_codepoint_t *decomposed, |
270
void *user_data); | 270
void *user_data); |
271 | 271 |
272 /* See Unicode 6.1 for details on the maximum decomposition length. */ | 272 /* See Unicode 6.1 for details on the maximum decomposition length. */ |
273 #define HB_UNICODE_MAX_DECOMPOSITION_LEN (18+1) /* codepoints */ | 273 #define HB_UNICODE_MAX_DECOMPOSITION_LEN (18+1) /* codepoints */ |
274 | 274 |
275 /* setters */ | 275 /* setters */ |
276 | 276 |
| 277 /** |
| 278 * hb_unicode_funcs_set_combining_class_func: |
| 279 * @ufuncs: a Unicode function structure |
| 280 * @func: (closure user_data) (destroy destroy) (scope notified): |
| 281 * @user_data: |
| 282 * @destroy: |
| 283 * |
| 284 * |
| 285 * |
| 286 * Since: 1.0 |
| 287 **/ |
277 void | 288 void |
278 hb_unicode_funcs_set_combining_class_func (hb_unicode_funcs_t *ufuncs, | 289 hb_unicode_funcs_set_combining_class_func (hb_unicode_funcs_t *ufuncs, |
279 » » » » » hb_unicode_combining_class_func_t com
bining_class_func, | 290 » » » » » hb_unicode_combining_class_func_t fun
c, |
280 void *user_data, hb_destroy_func_t de
stroy); | 291 void *user_data, hb_destroy_func_t de
stroy); |
281 | 292 |
| 293 /** |
| 294 * hb_unicode_funcs_set_eastasian_width_func: |
| 295 * @ufuncs: a Unicode function structure |
| 296 * @func: (closure user_data) (destroy destroy) (scope notified): |
| 297 * @user_data: |
| 298 * @destroy: |
| 299 * |
| 300 * |
| 301 * |
| 302 * Since: 1.0 |
| 303 **/ |
282 void | 304 void |
283 hb_unicode_funcs_set_eastasian_width_func (hb_unicode_funcs_t *ufuncs, | 305 hb_unicode_funcs_set_eastasian_width_func (hb_unicode_funcs_t *ufuncs, |
284 » » » » » hb_unicode_eastasian_width_func_t eas
tasian_width_func, | 306 » » » » » hb_unicode_eastasian_width_func_t fun
c, |
285 void *user_data, hb_destroy_func_t de
stroy); | 307 void *user_data, hb_destroy_func_t de
stroy); |
286 | 308 |
| 309 /** |
| 310 * hb_unicode_funcs_set_general_category_func: |
| 311 * @ufuncs: a Unicode function structure |
| 312 * @func: (closure user_data) (destroy destroy) (scope notified): |
| 313 * @user_data: |
| 314 * @destroy: |
| 315 * |
| 316 * |
| 317 * |
| 318 * Since: 1.0 |
| 319 **/ |
287 void | 320 void |
288 hb_unicode_funcs_set_general_category_func (hb_unicode_funcs_t *ufuncs, | 321 hb_unicode_funcs_set_general_category_func (hb_unicode_funcs_t *ufuncs, |
289 » » » » » hb_unicode_general_category_func_t g
eneral_category_func, | 322 » » » » » hb_unicode_general_category_func_t f
unc, |
290 void *user_data, hb_destroy_func_t d
estroy); | 323 void *user_data, hb_destroy_func_t d
estroy); |
291 | 324 |
| 325 /** |
| 326 * hb_unicode_funcs_set_mirroring_func: |
| 327 * @ufuncs: a Unicode function structure |
| 328 * @func: (closure user_data) (destroy destroy) (scope notified): |
| 329 * @user_data: |
| 330 * @destroy: |
| 331 * |
| 332 * |
| 333 * |
| 334 * Since: 1.0 |
| 335 **/ |
292 void | 336 void |
293 hb_unicode_funcs_set_mirroring_func (hb_unicode_funcs_t *ufuncs, | 337 hb_unicode_funcs_set_mirroring_func (hb_unicode_funcs_t *ufuncs, |
294 » » » » hb_unicode_mirroring_func_t mirroring_func, | 338 » » » » hb_unicode_mirroring_func_t func, |
295 void *user_data, hb_destroy_func_t destroy)
; | 339 void *user_data, hb_destroy_func_t destroy)
; |
296 | 340 |
| 341 /** |
| 342 * hb_unicode_funcs_set_script_func: |
| 343 * @ufuncs: a Unicode function structure |
| 344 * @func: (closure user_data) (destroy destroy) (scope notified): |
| 345 * @user_data: |
| 346 * @destroy: |
| 347 * |
| 348 * |
| 349 * |
| 350 * Since: 1.0 |
| 351 **/ |
297 void | 352 void |
298 hb_unicode_funcs_set_script_func (hb_unicode_funcs_t *ufuncs, | 353 hb_unicode_funcs_set_script_func (hb_unicode_funcs_t *ufuncs, |
299 » » » » hb_unicode_script_func_t script_func, | 354 » » » » hb_unicode_script_func_t func, |
300 void *user_data, hb_destroy_func_t destroy); | 355 void *user_data, hb_destroy_func_t destroy); |
301 | 356 |
| 357 /** |
| 358 * hb_unicode_funcs_set_compose_func: |
| 359 * @ufuncs: a Unicode function structure |
| 360 * @func: (closure user_data) (destroy destroy) (scope notified): |
| 361 * @user_data: |
| 362 * @destroy: |
| 363 * |
| 364 * |
| 365 * |
| 366 * Since: 1.0 |
| 367 **/ |
302 void | 368 void |
303 hb_unicode_funcs_set_compose_func (hb_unicode_funcs_t *ufuncs, | 369 hb_unicode_funcs_set_compose_func (hb_unicode_funcs_t *ufuncs, |
304 » » » » hb_unicode_compose_func_t compose_func, | 370 » » » » hb_unicode_compose_func_t func, |
305 void *user_data, hb_destroy_func_t destroy); | 371 void *user_data, hb_destroy_func_t destroy); |
306 | 372 |
| 373 /** |
| 374 * hb_unicode_funcs_set_decompose_func: |
| 375 * @ufuncs: a Unicode function structure |
| 376 * @func: (closure user_data) (destroy destroy) (scope notified): |
| 377 * @user_data: |
| 378 * @destroy: |
| 379 * |
| 380 * |
| 381 * |
| 382 * Since: 1.0 |
| 383 **/ |
307 void | 384 void |
308 hb_unicode_funcs_set_decompose_func (hb_unicode_funcs_t *ufuncs, | 385 hb_unicode_funcs_set_decompose_func (hb_unicode_funcs_t *ufuncs, |
309 » » » » hb_unicode_decompose_func_t decompose_func, | 386 » » » » hb_unicode_decompose_func_t func, |
310 void *user_data, hb_destroy_func_t destroy)
; | 387 void *user_data, hb_destroy_func_t destroy)
; |
311 | 388 |
| 389 /** |
| 390 * hb_unicode_funcs_set_decompose_compatibility_func: |
| 391 * @ufuncs: a Unicode function structure |
| 392 * @func: (closure user_data) (destroy destroy) (scope notified): |
| 393 * @user_data: |
| 394 * @destroy: |
| 395 * |
| 396 * |
| 397 * |
| 398 * Since: 1.0 |
| 399 **/ |
312 void | 400 void |
313 hb_unicode_funcs_set_decompose_compatibility_func (hb_unicode_funcs_t *ufuncs, | 401 hb_unicode_funcs_set_decompose_compatibility_func (hb_unicode_funcs_t *ufuncs, |
314 » » » » » » hb_unicode_decompose_compatib
ility_func_t decompose_compatibility_func, | 402 » » » » » » hb_unicode_decompose_compatib
ility_func_t func, |
315 void *user_data, hb_destroy_f
unc_t destroy); | 403 void *user_data, hb_destroy_f
unc_t destroy); |
316 | 404 |
317 /* accessors */ | 405 /* accessors */ |
318 | 406 |
319 hb_unicode_combining_class_t | 407 hb_unicode_combining_class_t |
320 hb_unicode_combining_class (hb_unicode_funcs_t *ufuncs, | 408 hb_unicode_combining_class (hb_unicode_funcs_t *ufuncs, |
321 hb_codepoint_t unicode); | 409 hb_codepoint_t unicode); |
322 | 410 |
323 unsigned int | 411 unsigned int |
324 hb_unicode_eastasian_width (hb_unicode_funcs_t *ufuncs, | 412 hb_unicode_eastasian_width (hb_unicode_funcs_t *ufuncs, |
(...skipping 23 matching lines...) Expand all Loading... |
348 hb_codepoint_t *b); | 436 hb_codepoint_t *b); |
349 | 437 |
350 unsigned int | 438 unsigned int |
351 hb_unicode_decompose_compatibility (hb_unicode_funcs_t *ufuncs, | 439 hb_unicode_decompose_compatibility (hb_unicode_funcs_t *ufuncs, |
352 hb_codepoint_t u, | 440 hb_codepoint_t u, |
353 hb_codepoint_t *decomposed); | 441 hb_codepoint_t *decomposed); |
354 | 442 |
355 HB_END_DECLS | 443 HB_END_DECLS |
356 | 444 |
357 #endif /* HB_UNICODE_H */ | 445 #endif /* HB_UNICODE_H */ |
OLD | NEW |