Re: pango layout in irregular (non-rectangular) bounding shape

2009-03-06 Thread Behdad Esfahbod
august wrote:
   In addition, I'd like to render text inside a polygon shape. 
 This is not possible yet.  Here is the bug tracking this issue:

   http://bugzilla.gnome.org/show_bug.cgi?id=435706
 
 
 Behdad,
 
   How far did you get with that?  I also see you were looking at
   Nathan Hurst's code for inkscape.  I'd love to study some of 
 that
   code...but it seems like most of the links on that page are gone
   now.  Is this something I could help implement?


I've not worked on it other than what's on the bug.  Feel free to look into
it.  Everything I had to add is already on the bug.

behdad

   -august.

___
gtk-i18n-list mailing list
gtk-i18n-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-i18n-list


Re: pango layout in irregular (non-rectangular) bounding shape

2009-03-02 Thread Behdad Esfahbod
august wrote:
 hey y'all,
 
I'm just getting started with cairo and pango and trying to figure
out how to render text within a non-rectangular bounding shape?   I
can already render stuff to screen and bound a text segment by width
and heightbut still haven't figgered out how to translate it by
x,y.

If you are using pango_cairo_show_layout(), you need a cairo_move_to() before
that.

   In addition, I'd like to render text inside a polygon shape. 

This is not possible yet.  Here is the bug tracking this issue:

  http://bugzilla.gnome.org/show_bug.cgi?id=435706

Can someone point me in the right direction?  I've been reading the
mailinglist archives and looking at the online api reference trying
to figure this out.  I've also started to inspect the Inkscape code
to see how they do itbut can't yet see where.
 
Do I need to iterate through the text segment, character by
character, and draw each glyph to screen, measuring it's x and y?
Is that slow?  

No.  Just do that one line at a time.

behdad

Any help or pointers would be much appreciated.
 
many thanks -august.
 ___
 gtk-i18n-list mailing list
 gtk-i18n-list@gnome.org
 http://mail.gnome.org/mailman/listinfo/gtk-i18n-list
 
___
gtk-i18n-list mailing list
gtk-i18n-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-i18n-list


Re: pango layout in irregular (non-rectangular) bounding shape

2009-03-02 Thread august
 august,
 
  I
  can already render stuff to screen and bound a text segment by width
  and height
 
 I guess you tried PangoLayout and friends.
 
  how to render text within a non-rectangular bounding shape?
 
  Can someone point me in the right direction?
 
 If I were you, I'd be using PangoItem, PangoGlyphString, and friends.
 They are lower layer interface to pango, and you need to write more
 codes than using PangoLayout, but it gives you better control over
 layout.  (There may be some easier ways if you only needs fill texts
 ina non rectangular area, but I don't know.)
 
 The following outlines what you need to do:
 
 (1) Call pango_itemize() once for your text,
 (2) Call pango_break() for your entire text,
 (3) Call pango_shape() for each PangoItem you got,
 (4) Fold the text into lines, scanning the list of PangoItems, calling
 pango_glyph_string_get_width() for each PangoGlyphString you got,
 also breaking several PangoItem in a middle, referring to
 PangoLogAttr array you got (This will be the most complicated step),
 (5) Either call pango_reorder_items() for each folded line and somehow
 refrect the results to your list of PangoGlyphString (or does an
 equivalent processing manually as suggested by pango document...), and
 (6) Call pango_cairo_show_glyph_string() for each PangoGlyphString,
 moving the cairo current point appropriately.
 
 Hope this helps,
 Alissa

Alissa,

thanks so much for taking the time to outline all of this.  I am
still learning the pango api and this helps.

-august.
___
gtk-i18n-list mailing list
gtk-i18n-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-i18n-list


Re: pango layout in irregular (non-rectangular) bounding shape

2009-03-02 Thread august
 
In addition, I'd like to render text inside a polygon shape. 
 
 This is not possible yet.  Here is the bug tracking this issue:
 
   http://bugzilla.gnome.org/show_bug.cgi?id=435706


Behdad,

How far did you get with that?  I also see you were looking at
Nathan Hurst's code for inkscape.  I'd love to study some of 
that
code...but it seems like most of the links on that page are gone
now.  Is this something I could help implement?

-august.

___
gtk-i18n-list mailing list
gtk-i18n-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-i18n-list


Re: pango layout in irregular (non-rectangular) bounding shape

2009-03-01 Thread Alissa Sabre
august,

 I
 can already render stuff to screen and bound a text segment by width
 and height

I guess you tried PangoLayout and friends.

 how to render text within a non-rectangular bounding shape?

 Can someone point me in the right direction?

If I were you, I'd be using PangoItem, PangoGlyphString, and friends.
They are lower layer interface to pango, and you need to write more
codes than using PangoLayout, but it gives you better control over
layout.  (There may be some easier ways if you only needs fill texts
ina non rectangular area, but I don't know.)

The following outlines what you need to do:

(1) Call pango_itemize() once for your text,
(2) Call pango_break() for your entire text,
(3) Call pango_shape() for each PangoItem you got,
(4) Fold the text into lines, scanning the list of PangoItems, calling
pango_glyph_string_get_width() for each PangoGlyphString you got,
also breaking several PangoItem in a middle, referring to
PangoLogAttr array you got (This will be the most complicated step),
(5) Either call pango_reorder_items() for each folded line and somehow
refrect the results to your list of PangoGlyphString (or does an
equivalent processing manually as suggested by pango document...), and
(6) Call pango_cairo_show_glyph_string() for each PangoGlyphString,
moving the cairo current point appropriately.

Hope this helps,

Alissa

--
Power up the Internet with Yahoo! Toolbar.
http://pr.mail.yahoo.co.jp/toolbar/
___
gtk-i18n-list mailing list
gtk-i18n-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-i18n-list