GtkList update problem
| From: | NetNITCO Web Dept. | Date: | Mon, 08 Apr 2002 17:28:55 +0000 |
| Subject: | GtkList update problem | ||
| Groups: | php.gtk.general | ||
| Request: | Send a blank email to php-gtk-general+get-1763@lists.php.net to get a copy of this message | ||
Hello, I am new to PHP-GTK (about 2 days now) and im working on my first app. I have most of what i
want to do figured out but im stuck on one thing... can you update GtkList from within a function.
The program updates everything else but refuses to update the list. If anyone can help it would be
much appreciated.
Program as follows:
______________________________________________________________________
<?
if (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN')
dl('php_gtk.dll');
else
dl('php_gtk.so');
function delete_event()
{ return false; }
function destroy()
{ Gtk::main_quit(); }
function update()
{
global $text;
global $list;
global $scrolled_window;
global $box;
global $table;
// Update the hit count //
$db = mysql_connect("bsdard.web-promo.com", "homepage", "-------");
mysql_select_db("netnitcocount",$db);
$info = mysql_fetch_array(mysql_query("SELECT * FROM count_daily ORDER BY day desc LIMIT
1"), MYSQL_ASSOC);
$hits = $info[visitors];
mysql_close($db);
$text->set_text("Hits Today: $hits");
// Should update the list //
$list->set_selection_mode(GTK_SELECTION_BROWSE);
$db = mysql_connect("bsdard.web-promo.com", "homepage", "-------");
mysql_select_db("testdb");
$sql = mysql_query("SELECT login, timestamp FROM testusers Order By timestamp desc LIMIT
5");
while ($users = mysql_fetch_array($sql, MYSQL_ASSOC))
{
$items[] = &new GtkListItem(date("h:i",$users[timestamp])." -
".$users[login]);
}
mysql_close($db);
$list->append_items($items);
$list->unselect_all();
$scrolled_window->set_policy(GTK_POLICY_NEVER, GTK_POLICY_NEVER);
$scrolled_window->add_with_viewport($list);
$box->pack_start($scrolled_window);
}
// setup the window //
$window = &new GtkWindow();
$window->connect('destroy', 'destroy');
$window->connect('delete-event', 'delete_event');
$window->set_border_width(5);
$window->set_usize(300, 110);
$window->set_title('Webpage Stats');
$window->set_policy(false, false, false);
// Set the table //
$table = &new GtkTable(3,4);
$table->set_col_spacings(10);
$table->set_row_spacings(10);
$window->add($table);
// get the current hit count //
$db = mysql_connect("bsdard.web-promo.com", "homepage", "--------");
mysql_select_db("netnitcocount",$db);
$info = mysql_fetch_array(mysql_query("SELECT * FROM count_daily ORDER BY day desc LIMIT
1"), MYSQL_ASSOC);
$hits = $info[visitors];
mysql_close($db);
// Hits Label //
$text = &new GtkLabel();
$text->set_text("Hits Today: $hits");
$table->attach($text,0,1,0,1);
// HBar //
$line = &new GtkHSeparator();
$table->attach($line,0,1,1,2);
// Username list //
$box = &new GtkVBox(false, 10);
$box->set_border_width(0);
$list = &new GtkList();
$list->set_selection_mode(GTK_SELECTION_BROWSE);
$db = mysql_connect("bsdard.web-promo.com", "homepage", "---------");
mysql_select_db("testdb");
$sql = mysql_query("SELECT login, timestamp FROM testusers Order By timestamp desc LIMIT
5");
while ($users = mysql_fetch_array($sql, MYSQL_ASSOC))
{
$items[] = &new GtkListItem(date("h:i",$users[timestamp])." -
".$users[login]);
}
mysql_close($db);
$list->append_items($items);
$list->unselect_all();
$scrolled_window = &new GtkScrolledWindow();
$scrolled_window->set_policy(GTK_POLICY_NEVER, GTK_POLICY_NEVER);
$scrolled_window->add_with_viewport($list);
$box->pack_start($scrolled_window);
$table->attach($box,1,4,0,3);
// Refresh Button //
$button = &new GtkButton("Refresh");
$button->connect('clicked', 'update');
$table->attach($button,0,1,2,3);
$window->show_all();
Gtk::main();
?>