From cairo Mon May 10 14:59:57 2021 From: Theo Veenker Date: Mon, 10 May 2021 14:59:57 +0000 To: cairo Subject: Re: [cairo] pango+cairo how to get position of each character? Message-Id: <00ad7d21-d34f-9ceb-c949-3f5e153563e0 () beexy ! nl> X-MARC-Message: https://marc.info/?l=cairo&m=162065878806408 T24gNS8xMC8yMSA0OjEwIFBNLCDnjJsg6YOdIHdyb3RlOgo+IEhpIFRoZW8sIHRoYW5rIHlvdSwg dGhhdCdzIGdyZWF0LiB3aGF0IEkgd2FudCBpcyBmaXJzdDogZ2V0IGVhY2ggZ2x5cGg7IHRoZW4g Z2V0IGNvbnRvdXIgCj4gYW5kIG91dGxpbmUgcG9pbnRzIG9mIGVhY2ggZ2x5cGg7IHRoZW4gdXNl IGNhaXJvIGJlemllciByZWxhdGVkIGZ1bnRpb25zIHRvIGRyYXcgdGhvc2UgCj4gZ2x5cGhzLiBi ZWNhdXNlIEkgd2FudCB0byBkbyBzb21lIHRyYW5zZm9ybSBiYXNlZCBvbiB0aG9zZSBvdXRsaW5l IGFuZCBwb2ludHMgaW5mb3JtYXRpb24uCgpTbyB5b3Ugd2FudCB0byBjb252ZXJ0IGVhY2ggY2hh cmFjdGVyIGluIGEgdGV4dCB0byBwYXRoIGFuZCB0aGVuIG9wZXJhdGUgb24gdGhhdC4gSSdtIAph ZnJhaWQgdGhhdCdzIGZhciBiZXlvbmQgbXkgZXhwZXJ0aXNlLiBJIHRoaW5rIEkgd291bGQgc3R1 ZHkgSW5rc2NhcGUgKHRoZSBzb3VyY2UgY29kZSkgCmFuZCBsZWFybiBmcm9tIHRoYXQuCgo+IAo+ IE5vdyBteSBxdWVzdGlvbiBpcyBpZiBJIGNhbiB1c2Ugc29tZSBidWlsdC1pbiBjYWlyby9wYW5n byBmdW5jdGlvbiB0byBnZXQgYW5kIHJlbmRlciB0aG9zZSAKPiBvdXRsaW5lIGFuZCBwb2ludHMg d2l0aG91dCBmcmVldHlwZSBsaWJyYXJ5PyBJIGFtIG5vdCBmYW1pbGlhciB3aXRoIGhvdyBjYWly byBkcmF3cyBlYWNoIAo+IGdseXBoIGluIGRldGFpbCAoYml0bWFwIG9yIGJlemllci9saW5lPykK CkkgZG9uJ3Qga25vdyBmb250IHJlbmRlcmluZyBpbiBkZXB0aCwgc29ycnkuIElmIHlvdSBjYW4g ZG8gdGhlIHRleHQgdG8gcGF0aCBzdHVmZiB5b3UgY2FuIApvZiBjb3Vyc2UgZHJhdyBvciBmaWxs IHRoZSBwYXRoIGFzIHlvdSBwbGVhc2UuIEJ1dCBzZWVtcyBhIGJpdCBvZiBhbiBvdmVya2lsbCBp ZiBhbGwgeW91IAp3YW50IGlzIHRvIGNvbG9yIHRoZSBpbmRpdmlkdWFsIGNoYXJhY3RlcnMuCgo+ IAo+IAo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICpGcm9tOiogY2Fpcm8g PGNhaXJvLWJvdW5jZXNAY2Fpcm9ncmFwaGljcy5vcmc+IG9uIGJlaGFsZiBvZiBUaGVvIFZlZW5r ZXIgCj4gPHRoZW8udmVlbmtlckBiZWV4eS5ubD4KPiAqU2VudDoqIFNhdHVyZGF5LCBNYXkgOCwg MjAyMSA5OjU5IFBNCj4gKlRvOiogY2Fpcm9AY2Fpcm9ncmFwaGljcy5vcmcgPGNhaXJvQGNhaXJv Z3JhcGhpY3Mub3JnPgo+ICpTdWJqZWN0OiogUmU6IFtjYWlyb10gcGFuZ28rY2Fpcm8gaG93IHRv IGdldCBwb3NpdGlvbiBvZiBlYWNoIGNoYXJhY3Rlcj8KPiBPbiAwOC8wNS8yMDIxIDEwOjMyLCBt aGFvMTk5OUBsaXZlLmNuIHdyb3RlOgo+PiBGb3IgZXhhbXBsZSwgSSBoYXZlIGEgdGV4dCBzdHJp bmcgImhlbGxvIiBhbmQgYSB0cnVldHlwZSBmb250IGZpbGUsIGFuZCAKPj4gSSB3YW50IHRvIGFw cGx5IGRpZmZlcmVudCBjb2xvciB0byBkaWZmZXJlbnQgY2hhcmFjdGVyLCBjdXJyZW50bHkgSSAK Pj4gY2Fubm90IGZpbmQgYSB3YXkgdG8gaW1wbGVtZW50IGl0Lgo+PiAKPj4gTXkgdGhvdWdodCBp czoKPj4gZmlyc3QgZ2V0IGVhY2ggcG9zaXRpb24gb2YgZWFjaCBjaGFyYWN0ZXIgZnJvbSBwYW5n by9jYWlybywgdGhlbiBpZiBubyAKPj4gYXBpIHRvIHJlbmRlciBvbmUgYnkgb25lLCBJIGNhbiB1 c2UgZnJlZXR5cGUgbGlicmFyeSB0byByZW5kZXIgZWFjaCAKPj4gZ2x5cGgsIGRvZXMgaXQgd29y az8KPj4gCj4+IFRoYW5rcyBmb3IgYW55IGlkZWEuCj4+IAo+IAo+IEkgdGhpbmsgeW91IG5lZWQg dG8gY3JlYXRlIGEgcGFuZ28gbGF5b3V0IGZvciB0aGUgdGV4dC4gVGhlbiB1c2UgYSBwYW5nbwo+ IGl0ZXJhdG9yIHRvIGl0ZXJhdGUgb3ZlciB0aGUgbGluZXMgYW5kIGVhY2ggbGluZSdzIGNvbnRl bnQuIFRoaXMgc2hvdWxkCj4gZ2l2ZSB5b3UgdGhlIHBvc2l0aW9uIGFuZCBzaXplIG9mIGVhY2gg Z2x5cGguIFRoZW4geW91IGNhbiByZW5kZXIgZWFjaAo+IGNoYXJhY3RlciBzZXBhcmF0ZWx5IGlu IHRoZSBkZXNpcmVkIGNvbG9yIGF0IHRoZSBjYWxjdWxhdGVkIHBvc2l0aW9uLgo+IE1heWJlIGl0 IGNhbiBiZSBkb25lIHNtYXJ0ZXIgdGhhbiB0aGF0Lgo+IAo+IElmIHlvdXIgZ29hbCBpcyBqdXN0 IHRvIGRpc3BsYXkgZmFuY3kgY29sb3JlZCB0ZXh0IHJhdGhlciB0aGFuIHVzZSBhCj4gc3BlY2lm aWMgY29sb3IgZm9yIGVhY2ggY2hhcmFjdGVyLCBJIHdvdWxkIHNpbXBseSBjcmVhdGUgYSByYWlu Ym93Cj4gZ3JhZGllbnQgb3Igd2hhdGV2ZXIgYW5kIHVzZSB0aGF0IGFzIHRoZSBwYWludCBzb3Vy Y2UgZm9yIHlvdXIgdGV4dC4KPiBUaGF0J3MgbXVjaCBlYXNpZXIgYW5kIG1heSBhbHNvIGxvb2sg YmV0dGVyLgo+IAo+IEhUSC4KPiAKPiBUaGVvCj4gCj4gCj4gLS0gCj4gVGhlbyBWZWVua2VywqAg fMKgIEJlZXh5IC0gQmVoYXZpb3JhbCBFeHBlcmltZW50IFNvZnR3YXJlCj4gKzMxKDApNTI0LTU0 MTUzMcKgIHzCoCArMzEoMCk2LTQyNTI1Nzc3IG1vYmlsZQo+IHRoZW8udmVlbmtlckBiZWV4eS5u bMKgIHwgd3d3LmJlZXh5Lm5sIDxodHRwOi8vd3d3LmJlZXh5Lm5sPgo+IC0tIAo+IGNhaXJvIG1h aWxpbmcgbGlzdAo+IGNhaXJvQGNhaXJvZ3JhcGhpY3Mub3JnCj4gaHR0cHM6Ly9saXN0cy5jYWly b2dyYXBoaWNzLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2NhaXJvIAo+IDxodHRwczovL2xpc3RzLmNh aXJvZ3JhcGhpY3Mub3JnL21haWxtYW4vbGlzdGluZm8vY2Fpcm8+CgoKLS0gClRoZW8gVmVlbmtl ciAgfCAgQmVleHkgLSBCZWhhdmlvcmFsIEV4cGVyaW1lbnQgU29mdHdhcmUKKzMxKDApNTI0LTU0 MTUzMSAgfCAgKzMxKDApNi00MjUyNTc3NyBtb2JpbGUKdGhlby52ZWVua2VyQGJlZXh5Lm5sICB8 ICB3d3cuYmVleHkubmwKLS0gCmNhaXJvIG1haWxpbmcgbGlzdApjYWlyb0BjYWlyb2dyYXBoaWNz Lm9yZwpodHRwczovL2xpc3RzLmNhaXJvZ3JhcGhpY3Mub3JnL21haWxtYW4vbGlzdGluZm8vY2Fp cm8K