Exemplo n.º 1
0
 function __construct($parent = null)
 {
     parent::__construct();
     if ($parent) {
         $this->set_screen($parent->get_screen());
     } else {
         $this->connect_simple('destroy', array('gtk', 'main_quit'));
     }
     $this->set_title(__CLASS__);
     $this->set_position(Gtk::WIN_POS_CENTER);
     $this->set_default_size(-1, 500);
     $this->set_border_width(8);
     $hbox = new GtkHBox(false, 8);
     $this->add($hbox);
     $scrolled = new GtkScrolledWindow();
     $scrolled->set_shadow_type(Gtk::SHADOW_ETCHED_IN);
     $scrolled->set_policy(Gtk::POLICY_NEVER, Gtk::POLICY_AUTOMATIC);
     $hbox->pack_start($scrolled, false, false, 0);
     $model = $this->create_model();
     $treeview = new GtkTreeView($model);
     $scrolled->add($treeview);
     $column = new GtkTreeViewColumn();
     $column->set_title('Icon and Constant');
     $cell_renderer = new GtkCellRendererPixbuf();
     $column->pack_start($cell_renderer, false);
     $column->set_attributes($cell_renderer, 'stock-id', 1);
     $cell_renderer = new GtkCellRendererText();
     $column->pack_start($cell_renderer, true);
     $column->set_cell_data_func($cell_renderer, 'constant_setter');
     $treeview->append_column($column);
     $cell_renderer = new GtkCellRendererText();
     $treeview->insert_column_with_data_func(-1, 'Label', $cell_renderer, 'label_setter');
     $cell_renderer = new GtkCellRendererText();
     $treeview->insert_column_with_data_func(-1, 'Accelerator', $cell_renderer, 'accel_setter');
     $cell_renderer = new GtkCellRendererText();
     $treeview->insert_column_with_data_func(-1, 'ID', $cell_renderer, 'id_setter');
     $align = new GtkAlignment(0.5, 0, 0, 0);
     $hbox->pack_end($align, true, true, 0);
     $frame = new GtkFrame('Selection Info');
     $align->add($frame);
     $vbox = new GtkVBox(false, 8);
     $vbox->set_border_width(4);
     $frame->add($vbox);
     $display = new StockItemDisplay();
     $treeview->set_data('stock-display', $display);
     $display->type_label = new GtkLabel();
     $display->constant_label = new GtkLabel();
     $display->id_label = new GtkLabel();
     $display->accel_label = new GtkLabel();
     $display->icon_image = new GtkImage();
     $vbox->pack_start($display->type_label, false, false, 0);
     $vbox->pack_start($display->icon_image, false, false, 0);
     $vbox->pack_start($display->accel_label, false, false, 0);
     $vbox->pack_start($display->constant_label, false, false, 0);
     $vbox->pack_start($display->id_label, false, false, 0);
     $selection = $treeview->get_selection();
     $selection->set_mode(Gtk::SELECTION_SINGLE);
     $selection->connect('changed', array($this, 'on_selection_changed'));
     $this->show_all();
 }
Exemplo n.º 2
0
 /**
  * Class Constructor
  * @param  $name  = Name of the column in the database
  * @param  $label = Text label that will be shown in the header
  * @param  $align = Column align (left, center, right)
  * @param  $width = Column Width (pixels)
  */
 public function __construct($name, $label, $align, $width = NULL)
 {
     $this->name = $name;
     $this->label = $label;
     $this->align = $align;
     $this->width = (int) $width;
     if ($align == 'left') {
         $alignment = 0.0;
     } else {
         if ($align == 'center') {
             $alignment = 0.5;
         } else {
             if ($align == 'right') {
                 $alignment = 1.0;
             }
         }
     }
     parent::__construct();
     $this->renderer = new GtkCellRendererText();
     if ($width) {
         $this->renderer->set_property('width', $width);
         parent::set_fixed_width($width);
     }
     $this->renderer->set_property('xalign', $alignment);
     parent::pack_start($this->renderer, true);
     parent::set_alignment($alignment);
     parent::set_title($label);
     $header_hbox = new GtkHBox();
     $header_label = new GtkLabel($this->label);
     $header_hbox->pack_start($header_label);
     $this->sort_up = GtkImage::new_from_stock(GTK::STOCK_GO_UP, Gtk::ICON_SIZE_MENU);
     $this->sort_down = GtkImage::new_from_stock(GTK::STOCK_GO_DOWN, Gtk::ICON_SIZE_MENU);
     $header_hbox->pack_start($this->sort_up);
     $header_hbox->pack_start($this->sort_down);
     $header_hbox->show_all();
     // hide the ordering images
     $this->sort_up->hide();
     $this->sort_down->hide();
     parent::set_widget($header_hbox);
 }
$view->insert_column($column, 0);
// Create a renderer for the column.
$cell_renderer = new GtkCellRendererText();
$column->pack_start($cell_renderer, true);
$column->set_attributes($cell_renderer, 'text', 0);
// Create columns for each type of data.
$column = new GtkTreeViewColumn();
$column->set_title('Inventory');
$view->insert_column($column, 1);
// Create a renderer for the column.
$cell_renderer = new GtkCellRendererText();
$column->pack_start($cell_renderer, true);
$column->set_attributes($cell_renderer, 'text', 1);
// Create columns for each type of data.
$column = new GtkTreeViewColumn();
$column->set_title('Price');
$view->insert_column($column, 2);
// Create a renderer for the column.
$cell_renderer = new GtkCellRendererText();
$column->pack_start($cell_renderer, true);
$column->set_attributes($cell_renderer, 'text', 2);
// Create a window and show everything.
$window = new GtkWindow();
$window->add($view);
$window->show_all();
$window->connect_simple('destroy', array('gtk', 'main_quit'));
gtk::main();
/*
 * Local variables:
 * tab-width: 4
 * c-basic-offset: 4