Fw: [PHP-GTK] GTk Related Question
| From: | Steph | Date: | Fri, 19 Sep 2003 04:23:12 +0000 |
| Subject: | Fw: [PHP-GTK] GTk Related Question | ||
| Groups: | php.gtk.dev | ||
| Request: | Send a blank email to php-gtk-dev+get-530@lists.php.net to get a copy of this message | ||
Zitan, your mailbox is fighting me ..
----- Original Message -----
From: "Steph" <steph@php.net>
To: "Zitan Broth" <zitan@mediasculpt.net>
Sent: Friday, September 19, 2003 4:20 AM
Subject: Re: [PHP-GTK] GTk Related Question
> ps The syntax would be weird for gtk, but I don't know enough about
> pango (never having used it) to know if that's related to your
trouble.
>
> The font in GDK is described in XFLD format
> http://gtk.php.net/manual/en/gdk.method.font_load.php
> ..
>
> ----- Original Message -----
> From: "Zitan Broth" <zitan@mediasculpt.net>
> To: <php-gtk-general@lists.php.net>
> Sent: Friday, September 19, 2003 9:44 PM
> Subject: Re: [PHP-GTK] GTk Related Question
>
>
> > Greetings Again,
> >
> > Just thought I'd add this note in case anyway has a brainstorm about
> the
> > problem :-)
> >
> > Pango is actually erroring when I call it from the command line -
> > pango_get_width:5039): Gtk-WARNING **: cannot open display: and
that
> is the
> > reason I'm not getting the output back. Did you all have an issue
> like this
> > with GTK 1 ?
> >
> > Thanks *heaps* again ... Z
> >
> > Example::
> >
> > ./pango/pango_get_width "arial 12" "bumpylove" input gives 1 output
> >
> > Line:0 =>
> > Line:1 => (pango_get_width:5039): Gtk-WARNING **: cannot open
display:
> > Line:2 => Got fontname 'arial 12'
> > Line:3 => Got input text 'bumpylove'
> > Got fontname 'arial 12' Got input text 'bumpylove'
> >
> > ----- Original Message -----
> > From: "Steph" <steph@php.net>
> > To: "Zitan Broth" <zitan@mediasculpt.net>;
> <php-gtk-general@lists.php.net>
> > Sent: Sunday, September 14, 2003 7:58 PM
> > Subject: Re: [PHP-GTK] GTk Related Question
> >
> >
> > > We don't have PHP bindings for GTK2 yet, and Pango isn't
assimilated
> > > into GTK1.
> > >
> > > Try the Python guys (and don't tell anyone I said so ;)
> > >
> > > ----- Original Message -----
> > > From: "Zitan Broth" <zitan@mediasculpt.net>
> > > To: <php-gtk-general@lists.php.net>
> > > Sent: Monday, September 15, 2003 8:40 PM
> > > Subject: [PHP-GTK] GTk Related Question
> > >
> > >
> > > Greetings PHP-GTK Crew,
> > >
> > > This question does not related directly to the php-gtk project,
but
> I am
> > > hoping that you all wont mind and will perhaps be able to offer
some
> > > advice, it would be greatly appreciated.
> > >
> > > I have some c code which accesses Pango to find out what the width
> is of
> > > a given string with font and font size. Works well when called
from
> the
> > > command line. When I call this program from PHP (with exec) it
> works,
> > > but the output array contains no data from after the points I
> initialise
> > > a GTK object ( e.g. gtk_init(&argc, &argv); ). It seems wasteful
to
> > > write the output from the program to file, when I should be able
to
> pipe
> > > it directly into PHP, and I just thought that as Pango is part of
> GTK
> > > you guys might have an idea about what is causing the problem ....
> > >
> > > I've included the code just for fun, it really is a simple
problem,
> but
> > > it is sure causing me a large headache.
> > >
> > > Thanks to all,
> > > Zitan.
> > >
> > >
> > > /*
> > > pango_get_width
> > >
> > > Compile Instructions:
> > >
> > > gcc
pkg-config --cflags gtk+-2.0 pango_get_width.c \
> > > pkg-config --libs gtk+-2.0
> > >
> > > */
> > > #include <stdio.h>
> > > #include <stdlib.h>
> > > #include <string.h>
> > > #include <gtk/gtk.h>
> > >
> > > /* Written by Attin Cotteral */
> > > static gint char_width_from_layout (PangoFontDescription *pfd,
const
> > > gchar *s)
> > > {
> > > GtkWidget *w;
> > > PangoContext *pc;
> > > PangoLayout *pl;
> > > gint width;
> > >
> > > w = gtk_label_new(NULL);
> > > pc = gtk_widget_get_pango_context(w);
> > > pango_context_set_font_description(pc, pfd);
> > >
> > > pl = pango_layout_new(pc);
> > > pango_layout_set_text(pl, s, -1);
> > > pango_layout_get_pixel_size(pl, &width, NULL);
> > >
> > > g_object_unref(G_OBJECT(pl));
> > > g_object_unref(G_OBJECT(pc));
> > > gtk_widget_destroy(w);
> > >
> > > return width;
> > > }
> > >
> > > int main (int argc, char *argv[])
> > > {
> > > gint i, width;
> > > gchar fontname[128];
> > > gchar inputtext[255];
> > > gchar width_output[255];
> > >
> > > PangoFontDescription *pfd;
> > >
> > > if (argc < 2) {
> > > fprintf(stderr, "%s: error fontname < 128 chars\n",argv[0]);
> > > exit(EXIT_FAILURE);
> > > }
> > >
> > > *fontname = 0;
> > >
> > > strcpy(fontname, argv[1]);
> > > strcpy(inputtext, argv[2]);
> > > i = 2;
> > > printf("Got fontname '%s', %d\n", fontname,i);
> > >
> > > gtk_init(&argc, &argv);
> > > // why after calling this command PHP stops getting output?
Have
> > > tested by putting printf statements before and after init call
> > >
> > > pfd = pango_font_description_from_string(fontname);
> > >
> > > width = char_width_from_layout(pfd, inputtext);
> > >
> > > /* Never get this output */
> > > printf("Got char width of %d\n", width);
> > > return 0;
> > > }
> > >
> > > --
> > > PHP-GTK General Mailing List (http://gtk.php.net/)
> > > To unsubscribe, visit: http://www.php.net/unsub.php
> > >
> > >
> >
> > --
> > PHP-GTK General Mailing List (http://gtk.php.net/)
> > To unsubscribe, visit: http://www.php.net/unsub.php
> >
> >
>