[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: using pango instead of gtk_draw_text ?



I tried to use pango, starting from your code,and  I  replaced  the 
gdk_draw_text
in my function by this below (the function outgtext() is called by my 
drawing functions)
 
Actually it works ... but only at the first displayed window,and during 
the resize of a window.
After any change in the window, pango do not display any text.

Is there something special to with pango with expose and configure event ?

thanks again for your help

Dominique Reymond

///////////////////////////////////////////////////////////////////////////////////
void outgtext(GdkGC *gc,
   GtkWidget *zone_dess,
     int xx, int yy,
    char *text)
{
/*
   gdk_draw_text(zone_dess->window,
                                Text_font,
                                gc,
                                xx,
                                yy,
                                text,
                    strlen(text));
*/

PangoLayout *pl;
pl = gtk_widget_create_pango_layout(zone_dess,NULL);
pango_layout_context_changed(pl);
pango_layout_set_text(pl, text,-1);
gdk_draw_layout( zone_dess->window,gc,xx,yy,pl);

g_object_unref(pl);
}
////////////////////////////////////////////////////////////////////////////////////


Tom Liu wrote:

>Agree! Pango is hard to learn, Hope someone can make an easy interface
>for us.
>
>But, for your problem,
>You don't need to create 32 layout, you just need 1 layout and draw.
>
>PangoLayout     *pl;
>pl = gtk_widget_create_pango_layout(w, NULL);
>for (i=0;i<8;i++) {
>        sprintf(s, "%c", i+'A');
>        pango_layout_set_text(pl, s, -1);
>        gdk_draw_layout(w->window, w->style->black_gc, i*20,0, pl);
>}
>g_object_unref(pl);
>
>this will draw:
>A B C D E F G H
>
>  
>
>>-----Original Message-----
>>From: gtk-app-devel-list-admin@gnome.org [mailto:gtk-app-devel-list-
>>admin@gnome.org] On Behalf Of Reymond Dominique
>>Sent: Tuesday, December 30, 2003 1:05 PM
>>To: Paul Pogonyshev
>>Cc: gtk-app-devel-list@gnome.org
>>Subject: Re: gdtk_draw_text deprecated , what use instead of it ?
>>
>>
>>I approve with you: I don' t know pango, I am not enjoyed  to learn it
>>and modify all my code for placing text lavel;
>>the gdk_draw_text is very convenient, light,  and simple to use.
>>
>>Dominique Reymond
>>----------------------------------------------------------------
>>Paul Pogonyshev wrote:
>>
>>    
>>
>>>Tom Liu wrote:
>>>
>>>
>>>      
>>>
>>>>You should use pango, read the FAQ came with GTK document,there is
>>>>        
>>>>
>an
>  
>
>>>>example over there.
>>>>
>>>>
>>>>        
>>>>
>>>I once raised this issue but got no answer.  Consider a chess board:
>>>
>>>  a b c d e f g h
>>>8		   8
>>>7		   7
>>>6		   6
>>>5		   5
>>>4		   4
>>>3		   3
>>>2		   2
>>>1		   1
>>>  a b c d e f g h
>>>
>>>To draw the labels with Pango one would need 32 layout structures,
>>>      
>>>
>unless
>  
>
>>>i miss something.  Ok, moving further.  I'm writing a program that is
>>>      
>>>
>an
>  
>
>>>interface for the game of go.  Standard go board (goban) is 19x19 and
>>>      
>>>
>so
>  
>
>>>i would have to use 76 Pango layouts, which is simply ridiculous.
>>>
>>>I think deprecating gdk_draw_text() was a hastily decision.  I can
>>>      
>>>
>see
>  
>
>>>absolutely no point in creating a layout for drawing a single letter
>>>      
>>>
>(or
>  
>
>>>even two, like "15") at a certain position.  I understand that Pango
>>>provides better support for unicode, can break lines and so on.  But
>>>      
>>>
>if
>  
>
>>>i simply don't need any of its features?
>>>
>>>It seems to me it was better to _recommend_ using Pango layouts for
>>>      
>>>
>most
>  
>
>>>purposes, rather than deprecating gdk_draw_text() completely.  You
>>>      
>>>
>cannot
>  
>
>>>say that any characters drawn need to be text.  And Pango layouts are
>>>there to handle exactly text, not single characters.
>>>
>>>Performance issues mentioned here are also a good reason to resurrect
>>>gdk_draw_text().
>>>
>>>If no one can point me to a nice and simple way of drawing 76+ labels
>>>scattered on a widget using Pango layouts, i think i'll have to use
>>>gdk_draw_text().  And i can't say i like it this way, because i
>>>currently compile my program with *_DISABLE_DEPRECATED flags defined.
>>>
>>>Paul Pogonyshev
>>>
>>>_______________________________________________
>>>gtk-app-devel-list mailing list
>>>gtk-app-devel-list@gnome.org
>>>http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list
>>>
>>>
>>>
>>>      
>>>
>>_______________________________________________
>>gtk-app-devel-list mailing list
>>gtk-app-devel-list@gnome.org
>>http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list
>>    
>>
>
>
>  
>




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]