Just another question.. what is the right way to fix the functions for closing the applet? i noticed that if i shutdown the cpu and i've got the applet running, it freezes waiting for killing remaining process; after that i gotta shut it down manually using the front button.. what is the close function i gotta call for closing applet rised up with bonobo? tnx again M@
On Wed, 2007-11-07 at 01:07 +0100, Matteo Landi wrote: > well > thank you so much for the help you gave me > i created my first gnome applet (there is also a cpu graph) and it looks > very good! > M@ > > On Mon, 2007-11-05 at 23:50 +1100, Michael Lamothe wrote: > > Oh dear, > > > > #include <sys/utsname.h> > > > > struct utsname name; > > uname(&name); > > printf("%s\n", name.sysname); > > printf("%s\n", name.nodename); > > printf("%s\n", name.release); > > printf("%s\n", name.version); > > printf("%s\n", name.machine); > > > > Thanks, > > > > Michael > > > > > > On 05/11/2007, Matteo Landi <[EMAIL PROTECTED]> wrote: > > > > > > On Mon, 2007-11-05 at 22:55 +1100, Michael Lamothe wrote: > > > > Hi Matteo, > > > > > > > > I'm not following. What box? A GtkBox? What "row"? > > > > > > they are just examples > > > > > > > Have you thought of using Glade to do your UI work? > > > > > > the fact is that i've started working with gtk two days ago because i > > > was interested in make a gnome panel monitor, and in the tutorial i've > > > found, i create a panel with the bonobo inititialization.. > > > i dont know if i can do this even with glade.. > > > > > > Talking about the spawn, i think the problem is due to the command > > > itself (uname) that at the end print a "\n"; So i gotta throw away that > > > char from the string to obtaine a one line label, isn't it? > > > > > > M@ > > > > > > > Thanks, > > > > > > > > Michael > > > > > > > > On 05/11/2007, Matteo Landi <[EMAIL PROTECTED]> wrote: > > > > > ok ok that worked, but the output is the same as before... > > > > > > > > > > just try to create a box with two labels inside: > > > > > > > > > > one createt with label = gtk_label_new ("foo"); > > > > > and the other created with label = gtk_label_new (std_output); > > > > > > > > > > i got the foo one middle aligned and the second placed on the top of > > > > > the > > > > > row.. am i wrong? > > > > > > > > > > M@ > > > > > > > > > > On Mon, 2007-11-05 at 22:06 +1100, Michael Lamothe wrote: > > > > > > Your pseudo makes no sense, how can you pass a char * into > > > > > > parameter 2 > > > > > > of g_spawn_command_line_sync() when its a gchar**. This worked for > > > > > > me, > > > > > > > > > > > > > > > > > > gchar* std_output = NULL; > > > > > > g_spawn_command_line_sync("ls -al", &std_output, NULL, NULL, > > > > > > NULL); > > > > > > printf(std_output); > > > > > > > > > > > > Thanks, > > > > > > > > > > > > Michael > > > > > > > > > > > > > > > > > > On 05/11/2007, Matteo Landi <[EMAIL PROTECTED]> wrote: > > > > > > > Tnx i think that the first one is the function i'm in need of; by > > > > > > > the > > > > > > > way i cant' make it work, and my gnome panel crashs everytime i > > > > > > > run the > > > > > > > applet, so i think there is some problems with memory: > > > > > > > well, i've got: > > > > > > > const char* data (as argoment of a function) > > > > > > > char *std_out (created in the function) > > > > > > > > > > > > > > g_spawn_command_line_sync(data, std_out, NULL, NULL, NULL); > > > > > > > > > > > > > > is this call right? i think not...but why?? > > > > > > > > > > > > > > tnx again > > > > > > > M@ > > > > > > > > > > > > > > On Mon, 2007-11-05 at 15:21 +1100, Michael Lamothe wrote: > > > > > > > > Hi Matteo, > > > > > > > > > > > > > > > > There's a few ways to do this, two of which I'll tell you now. > > > > > > > > Hopefully, you can change your application to use these > > > > > > > > functions > > > > > > > > instead. > > > > > > > > > > > > > > > > Firstly, there's the g_spawn_ set of APIs designed for this. I > > > > > > > > think > > > > > > > > that something like g_spawn_command_line_sync() will do exactly > > > > > > > > what > > > > > > > > you want. Basically, GLib calculates and allocates the space > > > > > > > > required. The documentation mentions nothing about freeing the > > > > > > > > allocated strings afterwards but I imagine you will have to > > > > > > > > free the > > > > > > > > standard_output and standard_error parameters with g_free(). > > > > > > > > > > > > > > > > Secondly, if the spawned program is meant to run asynchronously > > > > > > > > in the > > > > > > > > background then you'll need to use something like > > > > > > > > g_spawn_async_with_pipes(). I don't think that this is what > > > > > > > > you want > > > > > > > > because you were talking about having to allocate the length of > > > > > > > > the > > > > > > > > output. > > > > > > > > > > > > > > > > Thanks, > > > > > > > > > > > > > > > > Michael > > > > > > > > > > > > > > > > On 05/11/2007, Matteo Landi <[EMAIL PROTECTED]> wrote: > > > > > > > > > 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 <[EMAIL PROTECTED]> 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 > > > > > > > > > > > [EMAIL PROTECTED] > > > > > > > > > > > http://mail.gnome.org/mailman/listinfo/gtk-list > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > _______________________________________________ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list