PHP-GTK: Criando Aplicações Gráficas com PHP Adianti Framework para PHP PHP Programando com Orientação a Objetos Criando Relatórios com PHP

FW: [PHP-GTK] Problemas com janelas

Diego do Nascimento Feitosa diego em dnfeitosa.com
Sexta Agosto 4 10:39:12 CDT 2006


Pelo o que eu percebi, a classe Win é sempre a classe de uma janela secundária, certo? Nesse caso, seria interessante repassar o objeto que a criou, no caso, o objeto da classe Main, por exemplo:

$n = new Win($this); // eu não considero essa forma muito correta, mas é uma possibilidade

ou adicionar um método em que você possa repassar essa janela pricipal, o que seria, do meu ponto de vista, o mais correto, pois você pode trocar esse objeto pricipal dinamicamente durante a execução do seu programa...

Ahh!! Eu sei que não precisaria, mas vale a pena lembrar, se você for usar esse esquema no PHP-GTK 1, não esqueça de passar o objeto por referência!! 8¬D

[]'s
Diego
www.dnfeitosa.com


********** Original Email *********
** To:   lista em php-gtk.com.br
** From: zendrael em gmail.com
** Date: Thu, 3 Aug 2006 15:31:46
**********

Olás!

Numa aplicação possuo 2 janelas, a principal cria a 2º janela e
através da principal eu posso alterar algumas propriedades da 2º
janela - o problema é: como fazer com que a 2º janela também possa
alterar alguma propriedade ou objeto da janela principal?

Segue o código do que fiz até agora:

//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\
<?
  dl('php_gtk.'.PHP_SHLIB_SUFFIX);

  class main{
    function main(){
      $w = $this->w = new gtkwindow();
      $v = $this->v = new gtkVbox();
      $b1 = $this->b1 = new gtkbutton('change name');
      $b2 = $this->b2 = new gtkbutton('change height');
      $b3 = $this->b3 = new gtkbutton('change width');

      $w->add($v);
      $v->pack_start($b1);
      $v->pack_start($b2);
      $v->pack_start($b3);
		
      //aqui chamando a classe win
      $n = new win();

      $b1->connect_object('clicked', array($n,'do_name'), 'abc' );
      $b2->connect_object('clicked', array($n,'do_h'), 300 );
      $b3->connect_object('clicked', array($n,'do_w'), 300 );

      $w->connect_object('destroy',array('gtk','main_quit'));

      $w->show_all();
    }

  }

  class win{
    var $w;

    function win(){
      $this->w = new gtkwindow();
      $this->w->realize();
      $this->w->show_all();
    }

    function do_name( $nam ){
      $this->w->set_title( $nam );
    }

    function do_h( $val ){
      $wid = $this->w->window->width;
      //width, height
      $this->w->set_default_size( $wid, $val );
      $this->w->show();
    }

    function do_w( $val ){
      $hei = $this->w->window->height;
      $this->w->set_default_size( $val, $hei );
      $this->w->show();
    }

  }

  new main();

  gtk::main();

?>
//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//

Em outro sistema, no evento delete-event da janela principal eu chamo
a janela de confirmação pra sair do sistema, mas a janela principal
desaparece! Como mantê-la visível ou fazer com que reapareça caso o
usuário clique no botão cancelar da janela de confirmação?


Obrigado pelo help!


Zendrael ·.·
_______________________________________________
Lista mailing list
Lista em php-gtk.com.br
http://lists.php-gtk.com.br/cgi-bin/mailman/listinfo/lista



More information about the Lista mailing list