/** * Construct treeview */ function __construct() { parent::__construct(); parent::set_headers_visible(FALSE); $this->model = new GtkTreeStore(GObject::TYPE_OBJECT, GObject::TYPE_STRING, GObject::TYPE_PHP_VALUE, GObject::TYPE_STRING); parent::set_model($this->model); parent::connect('row-activated', array($this, 'onClick')); $column1 = new GtkTreeViewColumn(); $cell_renderer1 = new GtkCellRendererPixbuf(); $cell_renderer2 = new GtkCellRendererText(); $column1->pack_start($cell_renderer1, false); $column1->pack_start($cell_renderer2, false); $column1->set_attributes($cell_renderer1, 'pixbuf', 0); $column1->set_attributes($cell_renderer2, 'text', 1); parent::append_column($column1); }
function __create_box() { $box = new GtkVBox(); $box->pack_start(new GtkLabel('Double click with the mouse on a file, or select by key and press return'), false); $paned = new GtkHPaned(); $paned->set_position(200); //filename, markup-filename, fullpath, is_dir, preview image $mFile = new GtkListStore(GObject::TYPE_STRING, GObject::TYPE_STRING, GObject::TYPE_STRING, GObject::TYPE_BOOLEAN, GdkPixbuf::gtype); $mFile->set_sort_column_id(0, Gtk::SORT_ASCENDING); $vFile = new GtkTreeView($mFile); $col = new GtkTreeViewColumn('Image', new GtkCellRendererPixbuf(), 'pixbuf', 4); $text = new GtkCellRendererText(); $col->pack_start($text); $col->add_attribute($text, 'markup', 1); $vFile->append_column($col); $vFile->set_headers_visible(false); $vFile->connect('key-press-event', array($this, 'onPressFile')); $vFile->connect('button-press-event', array($this, 'onPressFile')); /* GtkIconView has some problems with text that are too long and missing icons $vFile = new GtkIconView(); $vFile->set_model($mFile); $vFile->set_columns(1); $vFile->set_pixbuf_column(3); $vFile->set_text_column(0); $vFile->set_item_width(100); */ $this->loadFiles($mFile, getcwd()); $scrwndFiles = new GtkScrolledWindow(); $scrwndFiles->add($vFile); $scrwndFiles->set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC); $vboxFile = new GtkVBox(); $vboxFile->pack_start($scrwndFiles); $chkImg = new GtkCheckbutton('Load preview images'); $chkImg->set_active(true); $chkImg->connect('toggled', array($this, 'onCheckPreview')); $vboxFile->pack_start($chkImg, false); $paned->add1($vboxFile); $this->img = new GtkImage(); $scrwndImg = new GtkScrolledWindow(); $scrwndImg->add_with_viewport($this->img); $scrwndImg->set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC); $paned->add2($scrwndImg); $box->pack_end($paned); return $box; }
function uprav_behy() { global $G, $model, $view; #debug_log('úprava behov'); $dialog = new GtkDialog(); // note 1 $viewport1 = new GtkViewPort(); $dialog->set_title('Behy'); $dialog->set_position(GTK::WIN_POS_CENTER); $dialog->set_default_size(960, 420); $model = new GtkListStore(Gobject::TYPE_STRING, Gobject::TYPE_STRING, Gobject::TYPE_STRING, Gobject::TYPE_STRING, Gobject::TYPE_STRING, Gobject::TYPE_STRING, Gobject::TYPE_STRING, Gobject::TYPE_STRING, Gobject::TYPE_STRING); #datum #nazov #druh (OA, OJ, A1, A2, A3, J1, J2, J3) #rozhodca #$rozhodcovia=explode(",",$G["config"]->__get("rozhodca")); $view = new GtkTreeView($model); # $view->set_grid_lines(Gtk::TREE_VIEW_GRID_LINES_BOTH); $column1 = new GtkTreeViewColumn('Kód'); $column2 = new GtkTreeViewColumn('Názov'); $column3 = new GtkTreeViewColumn('Filter'); $column4 = new GtkTreeViewColumn('Dátum'); $column5 = new GtkTreeViewColumn('Rozhodca'); $column6 = new GtkTreeViewColumn('Dĺžka'); $column7 = new GtkTreeViewColumn('Prekážky'); $column8 = new GtkTreeViewColumn('Štd.č'); $column9 = new GtkTreeViewColumn('Max.č'); $view->append_column($column1); $view->append_column($column2); $view->append_column($column3); $view->append_column($column4); $view->append_column($column5); $view->append_column($column6); $view->append_column($column7); $view->append_column($column8); $view->append_column($column9); $cell_renderer1 = new GtkCellRendererText(); $cell_renderer2 = new GtkCellRendererText(); $cell_renderer3 = new GtkCellRendererText(); $cell_renderer4 = new GtkCellRendererText(); $cell_renderer5 = new GtkCellRendererText(); $cell_renderer6 = new GtkCellRendererText(); $cell_renderer7 = new GtkCellRendererText(); $cell_renderer8 = new GtkCellRendererText(); $cell_renderer9 = new GtkCellRendererText(); $cell_renderer1->set_property('width', 60); $cell_renderer1->set_property('editable', true); $cell_renderer2->set_property('width', 220); $cell_renderer2->set_property('editable', true); $cell_renderer3->set_property('width', 50); $cell_renderer3->set_property('editable', true); $cell_renderer4->set_property('width', 80); $cell_renderer4->set_property('editable', true); $cell_renderer5->set_property('width', 180); $cell_renderer5->set_property('editable', true); $cell_renderer6->set_property('width', 50); $cell_renderer6->set_property('editable', true); $cell_renderer7->set_property('width', 50); $cell_renderer7->set_property('editable', true); $cell_renderer8->set_property('width', 50); $cell_renderer8->set_property('editable', true); $cell_renderer9->set_property('width', 50); $cell_renderer9->set_property('editable', true); $cell_renderer1->connect('edited', 'callback_start1'); $cell_renderer2->connect('edited', 'callback_start2'); $cell_renderer3->connect('edited', 'callback_start3'); $cell_renderer4->connect('edited', 'callback_start4'); $cell_renderer5->connect('edited', 'callback_start5'); $cell_renderer6->connect('edited', 'callback_start6'); $cell_renderer7->connect('edited', 'callback_start7'); $cell_renderer8->connect('edited', 'callback_start8'); $cell_renderer9->connect('edited', 'callback_start9'); #$cell_renderer3->set_property('width', -1); $column1->pack_start($cell_renderer1, true); $column2->pack_start($cell_renderer2, true); $column3->pack_start($cell_renderer3, true); $column4->pack_start($cell_renderer4, true); $column5->pack_start($cell_renderer5, true); $column6->pack_start($cell_renderer6, true); $column7->pack_start($cell_renderer7, true); $column8->pack_start($cell_renderer8, true); $column9->pack_start($cell_renderer9, true); $column1->set_attributes($cell_renderer1, 'text', 0); $column2->set_attributes($cell_renderer2, 'text', 1); $column3->set_attributes($cell_renderer3, 'text', 2); $column4->set_attributes($cell_renderer4, 'text', 3); $column5->set_attributes($cell_renderer5, 'text', 4); $column6->set_attributes($cell_renderer6, 'text', 5); $column7->set_attributes($cell_renderer7, 'text', 6); $column8->set_attributes($cell_renderer8, 'text', 7); $column9->set_attributes($cell_renderer9, 'text', 8); #print_r($G["behy"]);exit; foreach ($G["behy"] as $b) { $model->append($b); } $toolbar = new GtkHButtonBox(); $addbutton = GtkButton::new_from_stock(Gtk::STOCK_ADD); $deletebutton = GtkButton::new_from_stock(Gtk::STOCK_DELETE); #$loadbutton=GtkButton::new_from_stock(Gtk::STOCK_REFRESH); $savebutton = GtkButton::new_from_stock(Gtk::STOCK_SAVE); $savebutton->connect("pressed", "uloz_behy"); $addbutton->connect("pressed", "pridaj_beh"); $deletebutton->connect("pressed", "vymaz_beh"); $toolbar->add($addbutton); $toolbar->add($deletebutton); #$toolbar->add($loadbutton); $toolbar->add($savebutton); $toolbar->set_size_request(0, 40); $sw = new GtkScrolledWindow(); $sw->set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC); $sw->add($view); $sw->set_size_request(-1, 560); $vbox = new GtkVBox(); $vbox->add($toolbar); $vbox->add($sw); $dialog->vbox->pack_start($vbox); // note 3 $dialog->show_all(); // note 4 $dialog->run(); // note 5 $dialog->destroy(); // note 6 }
protected function setup_treeview(GtkTreeView $view) { $this->store = new GtkTreeStore(Gobject::TYPE_STRING, Gobject::TYPE_STRING); $view->set_model($this->store); // Build Header $view->append_column(new GtkTreeViewColumn('4Chan Section', new GtkCellRendererText(), 'text', 0)); $view->append_column(new GtkTreeViewColumn('Photo Count', new GtkCellRendererText(), 'text', 1)); // Build Sections $root = $this->store->append(null, array('/w/ - Anime/Wallpapers', '0')); $root2 = $this->store->append(null, array('/wg/ - Wallpapers/General', '0')); // Build Threads $child1 = $this->store->append($root, array('Thread 23897346', '0')); $child2 = $this->store->append($root, array('Thread 23897347', '0')); $child3 = $this->store->append($root2, array('Thread 23897348', '0')); $child4 = $this->store->append($root2, array('Thread 23897349', '0')); }
} /* New tooltip iconview stuff */ $iconview = new GtkIconView($store); $iconview->set_pixbuf_column(2); $iconview->set_text_column(0); $vbox->add($iconview); // simple tooltips for an iconview var_dump($iconview->get_tooltip_column()); // notice this is -1 for disabled //$iconview->set_tooltip_column(1); // this is the "shortcut" way to set tips, see below // fancy tooltip querying $iconview->set_has_tooltip(true); $iconview->connect('query-tooltip', 'checkcontext'); /* New tooltip treeview stuff */ $treeview = new GtkTreeView($store); $treeview->append_column(new GtkTreeViewColumn('stuff', new GtkCellRendererText(), 'text', 0)); $vbox->add($treeview); // simple text only tooltips can be automatic on treeviews - use -1 to turn it off $treeview->set_tooltip_column(1); var_dump($treeview->get_tooltip_column()); // check our context on query_tooltip $treeview->connect('query-tooltip', 'checkcontext'); /* Change overall tooltips settings */ $settings = GtkSettings::get_default(); /* Amount of time, in milliseconds, after which the browse mode will be disabled */ echo 'default is '; var_dump($settings->get_property('gtk-tooltip-browse-mode-timeout')); $settings->set_property('gtk-tooltip-browse-mode-timeout', 300); /* Controls the time after which tooltips will appear when browse mode is enabled, in milliseconds Browse mode is enabled when the mouse pointer moves off an object where a tooltip was currently being displayed. If the mouse pointer hits another object before
/** * Cria o treeview apartir de um XML * * @name treeviewLoadXML * @param string $file Caminho do arquivo XML com as definições do treeview * @param object $mainObject Objeto onde está os métodos callback do treeview */ public function treeviewLoadXML($file, $mainObject = NULL) { // Lê o XML $xml = new SimpleXMLElement(file_get_contents($file)); // Seta a coluna para a busca $searchcolumn = isset($xml['searchcolumn']) ? (int) $xml['searchcolumn'] : 0; parent::set_search_column($searchcolumn); // Configura a visibilidade do header da coluna switch (strtoupper((string) $xml['hvisible'])) { case "FALSE": $hvisible = FALSE; break; case "TRUE": default: $hvisible = TRUE; break; } parent::set_headers_visible($hvisible); // Verifica se existe evento button-press-event $buttonpressevent = (string) $xml['buttonpressevent']; if (strlen($buttonpressevent) > 0) { // Verifica se é orientado à objeto if ($mainObject != NULL) { // Cria o método callback $function = array($mainObject, $buttonpressevent); } else { // Cria a função callback $function = $buttonpressevent; } parent::connect("button-press-event", $function); } // Verifica se existe evento cursor-changed $cursorchanged = (string) $xml['cursorchanged']; if (strlen($cursorchanged) > 0) { // Verifica se é orientado à objeto if ($mainObject != NULL) { // Cria o método callback $function = array($mainObject, $cursorchanged); } else { // Cria a função callback $function = $cursorchanged; } parent::connect("cursor-changed", $function); } // Percorre as configurações foreach ($xml as $configs) { // Verifica se são as configurações das colunas if ($configs->getName() == "columns") { // Percorre as colunas $counter = 0; $columnModel = array(); foreach ($configs as $column) { // Busca as configurações $title = (string) $column['title']; $visible = (string) $column['visible']; // Cria a coluna $modelType = Gobject::TYPE_STRING; if (strtoupper($visible) != "FALSE") { // Verifica o tipo e o render switch (strtoupper((string) $column['type'])) { // Toggle case "TOGGLE": // Cria o render $render = new GtkCellRendererToggle(); $render->set_property("activatable", TRUE); // Verifica se deve usar o autocheck switch (strtoupper((string) $column['autocheck'])) { case "FALSE": break; case "TRUE": default: $render->connect("toggled", array($this, "__onToggle"), $counter); break; } // Verifica se existe evento onclick da coluna $onclick = (string) $column['onclick']; if (strlen($onclick) > 0) { // Verifica se é orientado à objeto if ($mainObject != NULL) { // Cria o método callback $function = array($mainObject, $onclick); } else { // Cria a função callback $function = $onclick; } // Conecta o callback de check $render->connect("toggled", $function, $counter); } // Armazena o atributo e o model $attribute = "active"; $modelType = Gobject::TYPE_BOOLEAN; break; // Texto // Texto case "TEXT": default: $render = new GtkCellRendererText(); // Verifica se a coluna é editavel switch (strtoupper((string) $column['editable'])) { case "TRUE": $render->set_property("editable", TRUE); break; case "FALSE": default: break; } // Verifica se existe sinal para edição $onedited = (string) $column['onedited']; if (strlen($onedited) > 0) { // Verifica se é orientado à objeto if ($mainObject != NULL) { // Cria o método callback $function = array($mainObject, $onedited); } else { // Cria a função callback $function = $onedited; } // Conecta a coluna ao callback $render->connect("edited", $function, $this, $counter); } // Armazena os atributos $attribute = "text"; $modelType = Gobject::TYPE_STRING; } // Cria a coluna com as configurações $trvColumn = new GtkTreeViewColumn($title, $render, $attribute, $counter); parent::append_column($trvColumn); // Verifica se existe parametrização do tamanho da coluna if (isset($column['width'])) { $trvColumn->set_fixed_width((int) $column['width']); $trvColumn->set_sizing(Gtk::TREE_VIEW_COLUMN_FIXED); } // Verifica se existe parametrização da formatação if (isset($column['onformat'])) { $onformat = (string) $column['onformat']; // Verifica se é orientado à objeto if ($mainObject != NULL) { // Cria o método callback $function = array($mainObject, $onformat); } else { // Cria a função callback $function = $onformat; } // Conecta o callback de renderização $trvColumn->set_cell_data_func($render, $function, $counter); } } // Armazena o model $columnModel[$counter++] = $modelType; } // Seta o model $model = new GtkTreeStore(); $model->set_column_types($columnModel); parent::set_model($model); } } }