• Artigos
  • Projetos
  • Download
  • Lista
  • Docs
  • Comunidade
  • ?

Listas (GtkTreeView) - PHP-GTK2

20/07/2007  bruno rodrigues  Ler e Comentar

Sabe aquela chatiche na hora de adicionar colunas nas lista (GtkTreeView)... Com uma simples classe acabamos com esse problema

Sabe aquela chatiche na hora de adicionar colunas nas lista (GtkTreeView)... Com uma simples classe acabamos com esse problema!!!

* O PROBLEMA:

Imagine que você precise de uma lista que tenha 10 colunas.

Exemplo:

Cliente | CPF | RG | Endereço | ....

Para colocar essas colunas na lista teria que fazer o seguinte:

$treeview = new GtkTreeView($store);

$cell_renderer = new GtkCellRendererText();

$colLanguage1 = new GtkTreeViewColumn('Cliente', $cell_renderer, 'text', 1);
$treeview->append_column($colLanguage1);
$colLanguage2 = new GtkTreeViewColumn('CPF', $cell_renderer, 'text', 2);
$treeview->append_column($colLanguage2);
$colLanguage3 = new GtkTreeViewColumn('RG', $cell_renderer, 'text', 3);
$treeview->append_column($colLanguage3);
$colLanguage4 = new GtkTreeViewColumn('...', $cell_renderer, 'text', 4);
$treeview->append_column($colLanguage4);
$colLanguage5 = new GtkTreeViewColumn('...', $cell_renderer, 'text', 5);
$treeview->append_column($colLanguage5);
$colLanguage6 = new GtkTreeViewColumn('...', $cell_renderer, 'text', 6);
$treeview->append_column($colLanguage6);
$colLanguage7 = new GtkTreeViewColumn('...', $cell_renderer, 'text', 7);
$treeview->append_column($colLanguage7);
$colLanguage8 = new GtkTreeViewColumn('...', $cell_renderer, 'text', 8);
$treeview->append_column($colLanguage8);
$colLanguage9 = new GtkTreeViewColumn('...', $cell_renderer, 'text', 9);
$treeview->append_column($colLanguage9);
$colLanguage10 = new GtkTreeViewColumn('...', $cell_renderer, 'text', 10);
$treeview->append_column($colLanguage10);

Ufa...

E se você tivesse umas 15 listas dessas no seu programa. Pense no tempo que iria gastar para digitar tudo isso.


* A SOLUÇÃO:


Eu fiz uma classe, mas pode ser feita um simples função também para diminuir esta dificuldade.



class InsColunas {

function __construct(&$Lista, $cols, $tipo = 'T'){

switch ($tipo){
case 'T':
$render = new GtkCellRendererText();
$tip = 'text';
break;
}
$nC = 0;
foreach($cols as $col){
$column = new GtkTreeViewColumn($col, $render, $tip, $nC);
$Lista->append_column($column);
$nC++;
}

}
}

Para usa-la faça o segunite:

$treeview = new GtkTreeView($store);

new InsColunas(&$treeview, array('Cliente','CPF','RG','Endereço','...','.....'),'T');

Pronto!!!



OBS: A classe InsColunas cria apena colunas de texto. Para acrescentar outras basta alterar a parte do código:

switch ($tipo){
case 'T':
$render = new GtkCellRendererText();
$tip = 'text';
break;
}



Espero ter ajudado.

<?php
class InsColunas {

    function 
__construct(&$Lista, $cols, $tipo = 'T'){

        switch (
$tipo){
         case 
'T':
          
$render = new GtkCellRendererText();
          
$tip = 'text';
          break;
        }
        
$nC = 0;
        foreach(
$cols as $col){
           
$column = new GtkTreeViewColumn($col, $render, $tip, $nC);
           
$Lista->append_column($column);
           
$nC++;
        }
        
    }
}

//Exemplo

$treeview = new GtkTreeView($store);

new 
InsColunas(&$treeview, array('Cliente','CPF','RG','Endereço'),'T');
?>




Comentários

 Adicionar Comentário
 login
 Senha
 Título
 Comentário

Livros


  • Artigos

    • 1º PHPDF Road Show
    • Encerrando aplicações no "X" da Janela

    Projetos

    • Janelas de alerta
    • GnuGauss
    • GTKlaro
    • Apache error log reader
  • Google

    Parceiros

 
Designed by Wolfgang Bartelme Designed by Wolfgang Bartelme

© 2006 Wordpress Themes | Theme (Not so) Fresh
XHTML CSS

PHP-GTK Brasil