Hi Behdad
Thanks for your response.
You are right. But I am new to Pango and Gtk+ and I could not find any tutorial explaining a sample test program that utilizes Pango's font-related APIs.
Can you explain the procedure (specifically for Persian)?
I have installed a series of standard Persian fonts which I think Mr.Pournader have
published. Other programs like OpenOffice work well.
RegardsAliOn 5/8/06, Behdad Esfahbod < behdad cs toronto edu> wrote:
Didn't you send this already? I think anyone would have replied
the first time if they had something to add. With the
information you give in your problem report (or lack thereof), I
don't think anybody can help you. You have not even attached
your complete test program with the Persian text.
behdad
On Mon, 8 May 2006, Ali Majdzadeh wrote:
> Hi Everybody
> I tried to compile and run an example which I found from the list.
> I installed Persian fonts and changed the source in order to show
> some Farsi texts, the program compiles and runs without any errors, but
> it can not load the font which I specify.
> Other applications like OpenOffice and KOffice recognize my fonts.
> Any ideas?
>
> Regards
> Ali
>
> Code:
>
> #include <gtk/gtk.h>
> int size=15;
> void g_exit_callback(GtkWidget *w) { gtk_main_quit(); }
>
>
> gboolean play_font(gpointer data)
> {
> GdkRectangle updateRect;
> updateRect.x=0; updateRect.y=0;
> updateRect.width=240; updateRect.height=320;
> gtk_widget_draw(GTK_WIDGET(data),&updateRect);
> }
>
>
> void drawing_callback(GtkWidget *lWidget)
> {
> printf("drawing_callback\n");
> PangoContext *context=NULL;
> PangoLayout *layout=NULL;
> PangoFontDescription *fontdesc=NULL;
>
>
> context = gtk_widget_get_pango_context(lWidget);
> layout = pango_layout_new(context);
> fontdesc = pango_font_description_new();
>
>
> // function that i suspect of leaks -
> one
> pango_font_description_set_family(fontdesc,"Terafik");
> // function that i suspect of leaks - two
> pango_font_description_set_size(fontdesc,size*PANGO_SCALE);
>
>
> pango_layout_set_font_description (layout, fontdesc);
> pango_layout_set_text(layout, "Farsi Text Here", 6); //I could not paste
> Farsi!
> pango_layout_set_font_description (layout, fontdesc);
> pango_layout_set_text(layout, "Farsi Text Here", 6); //I could not paste
> Farsi!
>
>
> gdk_draw_layout(lWidget->window, lWidget->style->fg_gc[GTK_STATE_NORMAL] , 5
> , 10 , layout);
>
>
> pango_font_description_free (fontdesc);
> g_object_unref (layout);
> size++;
> }
>
>
>
>
> int main(int argc, char **argv)
> {
> gtk_init(NULL,NULL);
>
>
> GtkWidget *pwWindow;
> GtkWidget *pWidget;
>
>
> pwWindow = gtk_window_new (GTK_WINDOW_TOPLEVEL);
> gtk_window_set_title (GTK_WINDOW (pwWindow), "TEST Widget");
> gtk_window_set_position (GTK_WINDOW (pwWindow), GTK_WIN_POS_CENTER_ALWAYS);
> g_signal_connect (G_OBJECT (pwWindow), "destroy",G_CALLBACK
> (g_exit_callback), NULL);
>
>
> pWidget = gtk_drawing_area_new();
> gtk_container_add(GTK_CONTAINER(pwWindow), pWidget);
> g_signal_connect (G_OBJECT (pWidget),"expose_event", G_CALLBACK
> (drawing_callback), NULL);
> g_timeout_add(100,(GSourceFunc)play_font,pWidget);
>
>
> gtk_widget_show (pWidget);
> gtk_widget_show (pwWindow);
> gtk_main ();
> return 0;
> }
>
--behdad
http://behdad.org/
"Commandment Three says Do Not Kill, Amendment Two says Blood Will Spill"
-- Dan Bern, "New American Language"
Attachment:
pango.c
Description: Binary data