Re: That GtkTreePath-as-boxed patch
| From: | Steph Fox | Date: | Tue, 14 Feb 2006 15:12:07 +0000 |
| Subject: | Re: That GtkTreePath-as-boxed patch | ||
| References: | 1 2 3 4 5 | Groups: | php.gtk.dev |
| Request: | Send a blank email to php-gtk-dev+get-2415@lists.php.net to get a copy of this message | ||
Hm, the reason I made it that way in the first place was that the array it is/was at the time simply fails, or did. No idea now, it's a long time since I looked into it. If the path is a boxed object you can have (and my test script does have) $filter = $model->filter_new($path).
More to the point, in a single column with 3 entries:
$iter = $store->get_iter_first();
$path = $store->get_path($iter);
echo $path->to_string()."\n"; // 1
$path->next(); // 2 $path->prev(); // 1 $path->up(); // NULL (this is the parent branch, no possibility of going any further) $path->down(); // 0 (no sub-branches, but integer because sub-branches can be created)$newiter = $store->get_iter($path); worked in my test script following the change. If the path exists (ie it's not 0 or NULL) then $path alters its value as it 'moves around', so calling get_iter($path) when $path = 2 will return the appropriate iter so that you can do something with that cell. It makes it very simple to check exactly where you are, and it also makes it very simple to get to the next/previous cell or branch. You don't need the iter object in order to move around; you just call it when you need to access a cell. Because you have access to the value of the path itself, via to_string(), it's very straightforward to manipulate it programmatically. NB I've a feeling the way iter_next() works has changed since I wrote this in October. $store->iter_next($iter); used to change the iter value directly rather than return it. What kind of 'better way'?
No, you're not really traversing the tree with GtkTreePath. You still need to call get_iter($path) each time you want to get ahold of the iterator referring to the GtkTreePath. I am working on a better way. Perhaps, we should wait and see until it's ready and then decide whether we still want GtkTreePath as a boxed object. -Andrei On Feb 13, 2006, at 8:59 PM, Steph Fox wrote:Ah wait, memory's flooding back now. You're right, I did a test drive with a single function that calls it. It's useful because it's an iterator in its own right, and having it exposed means you can traverse a tree 'from the inside' if you see what I mean. ----- Original Message ----- From: "Steph Fox" <steph@zend.com> To: "Andrei Zmievski" <andrei@gravitonic.com> Cc: "PHP-GTK dev" <php-gtk-dev@lists.php.net> Sent: Tuesday, February 14, 2006 6:51 AM Subject: Re: [PHP-GTK-DEV] That GtkTreePath-as-boxed patch__________ NOD32 1.1380 (20060125) Information __________ This message was checked by NOD32 antivirus system. http://www.eset.comI already did, didn't I? (I know I thought I had in the original patch anyway). ----- Original Message ----- From: "Andrei Zmievski" <andrei@gravitonic.com> To: "Steph Fox" <steph@zend.com> Cc: "PHP-GTK dev" <php-gtk-dev@lists.php.net> Sent: Tuesday, February 14, 2006 5:42 AM Subject: Re: [PHP-GTK-DEV] That GtkTreePath-as-boxed patchAll right, I reviewed. Basically, if you make GtkTreePath into a boxed object, then we have two ways of representing GtkTreePath when it's passed to functions: as a string and as a boxed object. There needs to be additional code to check for this and do the right thing, and that code will need to be generated (so more hacking in argtypes.php I think). If you're really sure that it will be useful, I'll hack it. -Andrei On Nov 2, 2005, at 1:10 PM, Steph Fox wrote:-- PHP-GTK Development Mailing List (http://gtk.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php __________ NOD32 1.1380 (20060125) Information __________ This message was checked by NOD32 antivirus system. http://www.eset.comAndrei, hi, This is a much smaller patch now. Please review when you get a minute? - Steph <treepath.txt> -- PHP-GTK Development Mailing List (http://gtk.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php__________ NOD32 1.1380 (20060125) Information __________ This message was checked by NOD32 antivirus system. http://www.eset.com