thank you very much, that solved one of my problems. here is the second: i'm using a pipe to catch the output of a specific command and store it as a label in the panel; the problem is that if the array containing the output is smaller than the output itself, the line is cut, and the applet is show all middle aligned; if the output is bigger, i get the label splitted in two lines: the first one containing the entire output, and the second one is empty. How could i solve this? maybe with dynamic allocation of memory, but in order to know the output width size, i gotta insert a while that overload the applet isn't it? tnx in advance for the help M@ On Sun, 2007-11-04 at 13:33 +1100, Michael Lamothe wrote: > Hi Matteo, > > Look at g_timeout_add() or the new gdk_threads_add_timeout(). > > Thanks, > > Michael > > > On 04/11/2007, Matteo Landi <matteo.landi@xxxxxxxx> wrote: > > hi all > > i'm a complete newbie in developing with gtk, but yesterday i had an > > idea about develope a gnome panel which could substitute conky.. > > In fact i'm in need of a panel that simply display the output of a bash > > script.. > > well, after have googled a bit, i found a guide for implementing gnome > > applet and here is the result > > > > #include <string.h> > > #include <panel-applet.h> > > #include <gtk/gtklabel.h> > > #include <stdio.h> > > > > static gboolean on_button_press (GtkWidget *event_box, GdkEventButton > > *event, GtkWidget* label){ > > if (event->button != 1) > > return FALSE; > > else { > > FILE* fp; > > char line[160]; > > fp = popen("~/scripts/allin1", "r"); > > fgets( line, sizeof line, fp); > > pclose(fp); > > gtk_label_set_text (label,(const char*) line); > > } > > return TRUE; > > } > > > > static gboolean my_applet_fill (PanelApplet *applet, const gchar *iid, > > gpointer data){ > > FILE* fp; > > int pid; > > char line[160]; > > GtkWidget *label; > > > > fp = popen("~/scripts/allin1", "r"); > > fgets( line, sizeof line, fp); > > pclose(fp); > > > > label = gtk_label_new (line); > > gtk_container_add (GTK_CONTAINER (applet), label); > > > > g_signal_connect (G_OBJECT(applet), "button_press_event", G_CALLBACK > > (on_button_press), label); > > > > gtk_widget_show_all (GTK_WIDGET (applet)); > > > > > > return TRUE; > > } > > > > PANEL_APPLET_BONOBO_FACTORY ("OAFIID:my_applet_Factory", > > PANEL_TYPE_APPLET, "Conky Porting", "0", my_applet_fill, NULL); > > > > what i'm asking for is how could i refresh the label of the applet after > > a fixed period of time... (now the applets refresh when mouse-clicked) > > tnx in advance > > > > M@ > > > > _______________________________________________ > > gtk-list mailing list > > gtk-list@xxxxxxxxx > > http://mail.gnome.org/mailman/listinfo/gtk-list > > _______________________________________________ gtk-list mailing list gtk-list@xxxxxxxxx http://mail.gnome.org/mailman/listinfo/gtk-list