예제 #1
0
 function __create_treeview()
 {
     $this->load_demos();
     $model = new GtkListStore(GObject::TYPE_PHP_VALUE, GObject::TYPE_STRING);
     //		$model->append(array("asd", "aswdasd"));//???????
     foreach ($this->demos as $demo) {
         $iter = $model->append();
         $model->set($iter, 0, $demo);
     }
     $treeview = new GtkTreeView($model);
     $cell_renderer = new GtkCellRendererText();
     $treeview->insert_column_with_data_func(-1, 'Demos', $cell_renderer, array(&$this, 'label_setter'));
     $selection = $treeview->get_selection();
     $selection->set_mode(Gtk::SELECTION_SINGLE);
     $selection->connect('changed', array($this, 'demo_selected'));
     //crashes as gboxed can't be instantiated
     //		$treeview->connect('row-activated', array($this, 'demo_activate'));
     //		$column = new GtkTreeViewColumn();
     //		$column->set_title('Demos');
     //		$treeview->append_column($column);
     return $treeview;
 }
예제 #2
0
 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;
 }
예제 #3
0
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
}
예제 #4
0
	/**
	 * Add a column (or more columns if you give it an array instead of a string) to a GtkTreeView(). Saves code.
	 * @param GtkTreeView $treeview The treeview which the function should add columns to.
	 * @param mixed $arrcolumn As a string, this would be the title of the one column added. As an array, this should be all the titles which should be added to the treeview as strings in the array.
	*/
	function treeview_addColumn(GtkTreeView $treeview, $arrcolumn){
		if (is_array($arrcolumn) && !$arrcolumn["type"] && !$arrcolumn["title"]){
			//Adding a liststore to the treeview.
			$eval = "\$ls = new GtkListStore(";
			$first = true;
			foreach($arrcolumn AS $column){
				if ($first == true){
					$first = false;
				}else{
					$eval .= ", ";
				}
				
				if (!is_array($column)){
					$type = "text";
				}else{
					$type = $column["type"];
				}
				
				if ($type == "text"){
					$eval .= "_TYPE_STRING";
				}elseif($type == "active"){
					$eval .= "_TYPE_BOOLEAN";
				}elseif($type == "int"){
					$eval .= "_TYPE_LONG";
				}else{
					throw new Exception("Invalid type: " . $type);
				}
				
				$count++;
			}
			$eval .= ");";
			eval($eval);
			
			$treeview->set_model($ls);
			$treeview->set_enable_search(true);
			
			//Add columns to the treeview.
			foreach($arrcolumn AS $value){
				treeview_addColumn($treeview, $value);
			}
		}else{
			$number = count($treeview->get_columns());
			
			if (is_array($arrcolumn)){
				$type = $arrcolumn["type"];
				$title = $arrcolumn["title"];
			}else{
				$title = $arrcolumn;
				$type = "text";
			}
			
			if ($type == "text" || $type == "int"){
				$render = new GtkCellRendererText();
				$type = "text";
			}elseif($type == "active"){
				$render = new GtkCellRendererToggle();
				$render->set_property("activatable", true);
			}else{
				throw new Exception("Invalid type: " . $type);
			}
			
			if (is_array($arrcolumn["connect"])){
				foreach($arrcolumn["connect"] AS $key => $value){
					$render->connect_after($key, $value);
				}
			}
			
			$column = new GtkTreeViewColumn($title, $render, $type, $number);
			$column->set_reorderable(true);
			$column->set_resizable(true);
			$column->set_clickable(true);
			$column->set_sort_column_id($number);
			$treeview->append_column($column);
			
			if (is_array($arrcolumn)){
				if ($arrcolumn["hidden"] == true){
					$column->set_visible(false);
				}
				
				if ($arrcolumn["searchcol"] == true){
					$treeview->set_search_column($number);
				}
				
				if ($arrcolumn["sortcol"] == true){
					if ($arrcolumn["sort"] == "desc"){
						$treeview->get_model()->set_sort_column_id($number, Gtk::SORT_DESCENDING);
					}else{
						$treeview->get_model()->set_sort_column_id($number, Gtk::SORT_ASCENDING);
					}
				}
			}
		}
	}
예제 #5
0
 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'));
 }
    //show tip
}
/* 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
예제 #7
0
 /**
  * Execute the action
  * @ignore-autocomplete on
  */
 public function onClick($object, $event)
 {
     $treeselection = parent::get_selection();
     list($model, $iter) = $treeselection->get_selected();
     if ($iter) {
         $info = $this->model->get_value($iter, 2);
         $type = $this->model->get_value($iter, 3);
         if ($type == 'child' and $this->itemAction) {
             $parameters = $this->itemAction->getParameters();
             $parameters['key'] = $info['key'];
             $parameters['value'] = $info['value'];
             call_user_func_array($this->itemAction->getAction(), array($parameters));
         }
     }
 }
*/
$iter = $listStore->insert(2, array('Crisscott Pencils', 18, 0.99));
// Comment the above line and uncomment these two to test.
//$tmp = array('Crisscott Pencils', 18, .99);
//$iter = $listStore->insert(2, $tmp);
/**
 * Weird issue 2:
 * If insert is called twice, weird issue 1 is not a problem.
 * Uncomment the two following lines to test. 
 * Make sure weird issue 1 is commented just to isolate the
 * issue.
 */
//$iter = $listStore->insert(2, array('Crisscott Pencils', 18, .99));
//$iter = $listStore->insert(3, array('Crisscott Pens', 18, .99));
// Create a veiw to show the list.
$view = new GtkTreeView();
$view->set_model($listStore);
// Create columns for each type of data.
$column = new GtkTreeViewColumn();
$column->set_title('Product Name');
$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();
 /**
  * Cria o efeito do toggle para o treeview
  * 
  * @name __onToggle
  * @access private
  * @param GtkCellRendererToggle $renderer Render a ser checkado
  * @param string $path Path que foi clicado
  * @param int $col Index da coluna clicada
  */
 public function __onToggle($renderer, $path, $col)
 {
     $model = parent::get_model();
     $iter = $model->get_iter($row);
     $model->set($iter, $col, !$model->get_value($iter, $col));
 }