Scrolled Window Question...

From: Date: Tue, 26 Mar 2002 21:09:22 +0000
Subject: Scrolled Window Question...
Groups: php.gtk.general 
Request: Send a blank email to php-gtk-general+get-1654@lists.php.net to get a copy of this message
Hi all, I'm pretty new to PHP-GTK, and reasonably new to programming in general. (I've used PHP for some web stuff, but never tried apps programming before.) I have a program with a table, and the last thing I attach to my table is a scrolled window, for output from a ping function. (Just a straight exec of system ping.) I have the ping in a separate function that gets called when the user clicks a button. What I'd like it to do is to update the scrolled window in that second function, but no matter what I try, I can't get it to work. Here's a quick pseudo-code example: <?php function ping (scrolled_window, ip, num) { //ip and num are gtkentries do ping here, get output output_display is a gtktext for loop output_display-> insert output output_scrolled_window = scrolled_window; output_scrolled_window->hide(); output_scrolled_window->add(output_display) output_scrolled_window->show(); } function createtable(notebook) { create label create gtkentry (ip) create label create gtkentry (num) create gtkbutton this notebook = notebook create gtkscrolledwindow scrolled_window->set_reallocate_redraws(TRUE) table->attach(label) table->attach(gtkentry) table->attach(label) table->attach(gtkentry) table->attach(button) table->attach(scrolled_window) button->connect_object (clicked, ping, scrolled_window, ip, num) this notebook = notebook; return this notebook; } function main() { create new gtknotebook //add stuff to notebook... createtable(notebook); } main(); Gtk::main(); ?> Basically, no matter what I do, I can't get the scrolled window to update with the information. I've tried the following: 1) I have tried passing in the scrolled window, and trying to get it to redraw in the ping function. 2) I have tried passing the whole table to the ping function, to get it to redraw. 3) I have tried using a GtkCList instead of a GtkText with no avail. 4) I have tried using queue_draw(), queue_resize(), and hide() and show(). 5) I have tried using unmap(). I know that the output is there, because if I echo it, it prints to the terminal I run the program from. Here's the results of what I tried: 1) Sometimes, the program will echo the results to the terminal, and the scrollbar will get smaller, like something is in the scrolled window, but nothing is visible. Other times, I get the error message "Gtk-CRITICAL **: file gtkscrolledwindow.c: line 899 (gtk_scrolled_window_add): assertion 'bin->child == NULL' failed." That makes me think it's a bug. 2) If I pass in the whole table, the same thing happens as in number 1. 3) Nothing happens in the window. (The output is still echoed to the terminal.) 4) Nothing happens in the window. (The output is still echoed to the terminal.) 5) The scrolled window disappears, which means that the unmap() is working, but trying to get another one with the results to appear hasn't worked. I have also tried many combinations of the above. However, I can't see that I'm doing anything wrong. (That, of course, should be the first hint that I am. [;)] ) Basically, I want to pass in a scrolled window, get some output, and redraw it, and nothing I do seems to be able to make that happen. The full source code (as it is so far) is available at http://phpgtk.bc90021.net . Thanks in advance! Tom

« previous php.gtk.general (#1654) next »