Re: [PHP-GTK] New to GTK

[email protected] (loll)
Newsgroups php.gtk
Message-ID <[email protected]>
Attached is the program code :)

thanks agian,

Loll

Steph wrote:

>darn sorry did it again (hit wrong button)
>
>could you please post yr code as an attachment to the list?
>
>something isn't being recognised somewhere ..
>
>----- Original Message ----- 
>From: "loll" <[email protected]>
>To: <[email protected]>
>Sent: Thursday, August 02, 2001 3:30 PM
>Subject: Re: [PHP-GTK] New to GTK
>
>
>Steph,
>
>Thansk for the help :) ,
>
>I tried using the $window->remove($box); command which got rid of the 
>window..(not sure if it got rid of the window the "proper" way or not 
>but the window dissapeared with no errors..
>
>So i then moved the main code into a function and now i get an error 
>"call to member function on a non -object(line 32)
>
>I have globalized the variables but im still getting that error.. not 
>sure what i have done
>
>Thanks for the help :)
>
>Loll
>
>=========================================================
>below is the code im using
><?
>$fcontents = @file ('preferences.inc');
>$uph = explode(":",$fcontents[0]);
>$username = $uph[0];
>$password = $uph[1];
>$host = $uph[2];
>
>$windows = array();
>
>if (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN')
>    dl('php_gtk.dll');
>else
>    dl('php_gtk.so');
>
>
>function shutdown(){
>    Gtk::main_quit();
>}
>
>function write_preferences(){
>    global $username,$password,$host,$entry,$hbox,$window,$box;
>
>    $user = $entry['username']->get_text();
>    $pass = $entry['password']->get_text();
>    $hst = $entry['host']->get_text();
>
>    $file = fopen("preferences.inc", "w");
>    fputs($file, "$user:$pass:$hst");
>
>    fclose($file);
>echo "debug:$window:$box:";
>$window->remove($box);
>mainwindow();
>
>}
>//end write_preference function
>
>function mainwindow() {
>
>  global 
>$window,$box,$vbox,$label,$hbox,$entry,$fields,$username,$password,$host,$button;
>
>  $window = &new GtkWindow();
>  $window->set_title('GTK Test');
>  $window->connect('destroy','shutdown');
>  $window->set_border_width(10);
>
>  $box = &new GtkVBox();
>  $window->add($box);
>  $box->show();
>
>        if($username == "" || $password == "" || $host == ""){
>
>            $vbox = &new GtkVBox();
>            $box->pack_start($vbox,false,false);
>            $vbox->show();
>            $vbox->set_border_width(3);
>
>            $label = &new GtkLabel("Please enter in your MySQL 
>connection information");
>            $label->set_usize(150,40);
>            $vbox->pack_start($label,false);
>            $label->show();
>
>            $fields = array(
>                  username => 'Username: ',
>                password => 'Password: ',
>                host => 'Host: ');
>
> 
>            while(list($f,$l) = each($fields)) {
>               $vbox = &new GtkVBox();
>              $box->pack_start($vbox,false,false);
>              $vbox->show();
>              $vbox->set_border_width(3);
>
>               $hbox = &new GtkHBox();
>                $vbox->pack_start($hbox,false,false);
>                $hbox->show();
>
>                $label = &new GtkLabel("$l");
>                $label->set_usize(150,10);
>                $hbox->pack_start($label,false);
>                $label->show();
>
>                $entry[$f] = &new GtkEntry();
>
>                $hbox->pack_start($entry[$f],false);
>                $entry[$f]->show();
>
>
>              }
>
>
>      $vbox = &new GtkVBox();
>    $box->pack_start($vbox,false,false);
>    $vbox->show();
>    $vbox->set_border_width(3);
>
>    $hbox = &new GtkHBox();
>    $vbox->pack_start($hbox,false,false);
>    $hbox->show();
>
>      $button = &new GtkButton('Save Settings');
>    $button->connect('clicked',write_preferences);
>    $hbox->pack_start($button);
>    $button->show();
>
>
>}
>else
>{
>  $vbox = &new GtkVBox();
>  $box->pack_start($vbox,false,false);
>  $vbox->show();
>  $vbox->set_border_width(3);
>
> 
>  $buttons = array(
>          Query => 'update_clist',
>        Quit => 'shutdown');
>
>  $hbox = &new GtkHBox();
>  $hbox->set_border_width(3);
>  $vbox->pack_start($hbox,false,false);
>  $hbox->show();
>
>    while(list($l,$f) = each($buttons))
>         {
>            $button = &new GtkButton($l);
>           $button->connect('clicked',$f);
>            $hbox->pack_start($button);
>            $button->show();
>          }
>    }
>  $window->show_all();
>}
>// end of mainwindow function
>
>mainwindow();
>Gtk::main();
>?>
>
>Steph wrote:
>
>>Loll, your smtp hates my smtp.  Try $window->remove($firstvbox); & globalise $window in each function to add($newvbox) to, show_all() at the end of each function as well as just before main().  If it's not having any, you might need to hide() the main window and create a fresh one in every function.  You can't display a vbox without a window.
>>hth
>>& please write via the list, it's easier!
>>
>>----- Original Message ----- 
>>From: "loll" <[email protected]>
>>To: <[email protected]>
>>Sent: Wednesday, August 01, 2001 2:45 PM
>>Subject: [PHP-GTK] New to GTK
>>
>>
>>Hi,
>>
>>Im new to GTK and im using some of the example scripts to try and learn 
>>how it all works
>>
>>Using the menu example script thats available.. Im trying to add text 
>>boxes to the main box...
>>
>>here is a code snippet from the menu.php example:
>>
>>$window = &new GtkWindow();
>>$window->connect('destroy', shutdown);
>>$window->set_position(GTK_WIN_POS_CENTER);
>>$window->set_usize(450,400);
>>$window->set_policy(FALSE,TRUE,FALSE);
>>
>>$box = &new GtkVBox();
>>$window->add($box);
>>$box->show();
>>
>>$vpane= &new GtkVPaned();
>>$vpane->set_border_width(0);
>>$vpane->set_handle_size(0);
>>
>>
>>$box->add($vpane);
>>
>>
>>$vpane->show();
>>
>>$accel = &new GtkAccelGroup();
>>$window->add_accel_group($accel);
>>
>>
>>$label = &new GtkLabel("");
>>$label->set_line_wrap(TRUE);
>>
>>$scrl_win = &new GtkScrolledWindow();
>>$scrl_win->set_policy(GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
>>$col1 = &new GdkColor(60000,60000,60000);
>>$col2 = &new GdkColor(0,0,0);
>>$style = $scrl_win->style;
>>$style->bg[GTK_STATE_NORMAL] = $col1;
>>$style->fg[GTK_STATE_NORMAL] = $col2;
>>$vpane->add2($scrl_win);
>>$scrl_win->show();
>>$scrl_win->add_with_viewport($label);
>>$label->show();
>>
>>
>>$window->show_all();
>>
>>if i change it to be like this:
>>
>>$window = &new GtkWindow();
>>$window->connect('destroy', shutdown);
>>$window->set_position(GTK_WIN_POS_CENTER);
>>$window->set_usize(450,400);
>>$window->set_policy(FALSE,TRUE,FALSE);
>>
>>$box = &new GtkVBox();
>>$window->add($box);
>>$box->show();
>>
>>$vpane= &new GtkVPaned();
>>$vpane->set_border_width(0);
>>$vpane->set_handle_size(0);
>>//===================================
>>$entry = &new GtkEntry();
>>$box->add($entry);
>>$entry->show();
>>//====================================
>>$box->add($vpane);
>>
>>this adds a text box but it puts it centered under the main 
>>box(expanding the window etc) ... How do i get the box to be inside the 
>>main box ?
>>
>>Thansk for your help
>>
>>Loll
>>
>>
>>
>
>
>
loll.php (application/x-photoparade, 3 KB)
<?
$fcontents = @file ('preferences.inc');
$uph = explode(":",$fcontents[0]);
$username = $uph[0];
$password = $uph[1];
$host = $uph[2];

$windows = array();

if (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN')
	dl('php_gtk.dll');
else
	dl('php_gtk.so');


function shutdown(){ 
    Gtk::main_quit(); 
} 

function write_preferences(){
	global $username,$password,$host,$entry,$hbox,$window,$box;

	$user = $entry['username']->get_text();
	$pass = $entry['password']->get_text();
	$hst = $entry['host']->get_text();

	$file = fopen("preferences.inc", "w");
	fputs($file, "$user:$pass:$hst");

	fclose($file);
echo "debug:$window:$box:";
$window->remove($box);
mainwindow();

}
//end write_preference function

function mainwindow() {

  global $window,$box,$vbox,$label,$hbox,$entry,$fields,$username,$password,$host,$button;

  $window = &new GtkWindow();
  $window->set_title('GTK Test');
  $window->connect('destroy','shutdown');
  $window->set_border_width(10);

  $box = &new GtkVBox();
  $window->add($box);
  $box->show();

		if($username == "" || $password == "" || $host == ""){

		    $vbox = &new GtkVBox();
		    $box->pack_start($vbox,false,false);
		    $vbox->show();
		    $vbox->set_border_width(3);

		    $label = &new GtkLabel("Please enter in your MySQL connection information");
		    $label->set_usize(150,40);
		    $vbox->pack_start($label,false);
		    $label->show();

			$fields = array(
		  		username => 'Username: ',
				password => 'Password: ',
				host => 'Host: ');

  
			while(list($f,$l) = each($fields)) {
			   $vbox = &new GtkVBox();
			  $box->pack_start($vbox,false,false);
			  $vbox->show();
			  $vbox->set_border_width(3);

			   $hbox = &new GtkHBox();
			    $vbox->pack_start($hbox,false,false);
			    $hbox->show();

			    $label = &new GtkLabel("$l");
			    $label->set_usize(150,10);
			    $hbox->pack_start($label,false);
			    $label->show();

			    $entry[$f] = &new GtkEntry();

			    $hbox->pack_start($entry[$f],false);
			    $entry[$f]->show();


			  }


      $vbox = &new GtkVBox();
    $box->pack_start($vbox,false,false);
    $vbox->show();
    $vbox->set_border_width(3);

    $hbox = &new GtkHBox();
    $vbox->pack_start($hbox,false,false);
    $hbox->show();

  	$button = &new GtkButton('Save Settings');
    $button->connect('clicked',write_preferences);
    $hbox->pack_start($button);
    $button->show();


}
else
{
  $vbox = &new GtkVBox();
  $box->pack_start($vbox,false,false);
  $vbox->show();
  $vbox->set_border_width(3);

  
  $buttons = array(
  		Query => 'update_clist',
		Quit => 'shutdown');

  $hbox = &new GtkHBox();
  $hbox->set_border_width(3);
  $vbox->pack_start($hbox,false,false);
  $hbox->show();

	while(list($l,$f) = each($buttons))
		 {
		    $button = &new GtkButton($l);
		   $button->connect('clicked',$f);
		    $hbox->pack_start($button);
		    $button->show();
		  }
	}
  $window->show_all();
}
// end of mainwindow function

mainwindow();
Gtk::main();
?>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.