GtkCellRenderer GtkCellRenderer
Classe base para exibição de conteúdos de célula em um GtkTreeView.Hierarquia de Objetos
Subclasses imediatas
Descrição
A classe GtkCellRenderer é a classe base de um conjunto de objetos usados para renderizar uma célula para um GdkDrawable. Estes objetos são usados primeiramente pelo widget GtkTreeView, apesar deles não estarem associados de nenhuma forma. Vale mencionar que GtkCellRenderer não é um GtkWidget e não deve ser tratado como um.
Além de apenas renderizar uma célula, os renderizadores podem opcionalmente oferecer uma interface ativa para os elementos. Um renderizador pode ser activatable como GtkCellRendererToggle, que é marcado quando ativado por um clique do mouse, ou pode ser editable como GtkCellRendererText, que permite que o usuário edite o texto usando um GtkEntry.
Mudanças feitas nas células editadas não são automaticamente salvas no modelo; isto tem que ser feito à mão: Conecte ao sinal "edited" (text) ou "toggled" (toggle) e defina o novo valor.
Exemplo 18. Renderizadores de célula editáveis
<?php /* * This sample shows how to use the * GtkCellRenderer along with GtkTreeView */ // Creates the main window $window = new GtkWindow; $window->set_title('Cell Renderers'); $window->connect_simple('destroy', array('Gtk', 'main_quit')); $window->set_position(GTK::WIN_POS_CENTER); $window->set_default_size(280,140); // Creates the data model $model = new GtkListStore(Gtk::TYPE_STRING, Gtk::TYPE_BOOLEAN); // Creates the view to display the content $view = new GtkTreeView($model); // Creates two columns $column1 = new GtkTreeViewColumn('Language'); $column2 = new GtkTreeViewColumn('Open Source?'); // Add the columns to the view $view->append_column($column1); $view->append_column($column2); // Creates two cell-renderers $cell_renderer1 = new GtkCellRendererText(); $cell_renderer2 = new GtkCellRendererToggle(); // change the property 'width' $cell_renderer1->set_property('width', 180); $cell_renderer2->set_property('width', -1); // Pack the cell-renderers $column1->pack_start($cell_renderer1, true); $column2->pack_start($cell_renderer2, true); // link the renderers to the model $column1->set_attributes($cell_renderer1, 'text', 0); $column2->set_attributes($cell_renderer2, 'active', 1); // Add some data $model->append(array('PHP', true)); $model->append(array('Python', true)); $model->append(array('Delphi', false)); $model->append(array('Visual Basic', false)); // pack the view inside the window $window->add($view); // show the window $window->show_all(); Gtk::main(); ?>Métodos
activate() editing_canceled() get_fixed_size() Retorna um array contendo a largura e a altura da célula. render() set_fixed_size() Define o tamanho do renderizador para a largura e altura especificadas, independentemente das propriedades definidas. start_editing() stop_editing() Propriedades
Use os métodos get_property e set_property para acessar estes.
cell-background: A cor de fundo da célula como uma string. Padrão: NULL cell-background-gdk: A cor de fundo de uma célula como um GtkColor cell-background-set: Se TRUE, a cor de fundo da célula é definida por este renderizador. Padrão: FALSE. height: Modifica a altura da célula. Valores permitidos >= -1. Padrão: -1 is-expanded: Se TRUE, a linha possui um child e está expandida para mostrá-lo. is-expander: Se TRUE, a linha possui um child. Padrão: FALSE. sensitive: Se TRUE, a célula exibida como sensitiva. Se FALSE, em tons de cinza. Padrão: TRUE. visible: Se TRUE, a célula é exibida. Padrão: TRUE. width: A largura fixa da célula em pixels. Valores permitidos >= -1. Padrão: -1. xalign: A fração de espaço livre do lado esquerdo da célula. yalign: A fração de espaço livre acima da célula. xpad: A quantidade de preenchimento à esquerda e direita da célula. ypad: A quantidade de preenchimento abaixo da célula. Sinais
"editing-canceled" Emitido quando o usuário cancela a edição de uma célula. "editing-started" Emitido quando uma célula começa a ser editada.




