intelligent path truncation/ellipsis for display

Posted by peterchen on Stack Overflow See other posts from Stack Overflow or by peterchen
Published on 2009-11-04T10:49:40Z Indexed on 2010/04/07 7:33 UTC
Read the original article Hit count: 429

I am looking for an existign path truncation algorithm (similar to what the Win32 static control does with SS_PATHELLIPSIS) for a set of paths that should focus on the distinct elements.

For example, if my paths are like this:

 Unit with X/Test 3V/
 Unit with X/Test 4V/
 Unit with X/Test 5V/
 Unit without X/Test 3V/
 Unit without X/Test 6V/
 Unit without X/2nd Test 6V/

When not enough display space is available, they should be truncated to something like this:

 ...with X/...3V/
 ...with X/...4V/
 ...with X/...5V/
 ...without X/...3V/
 ...without X/...6V/
 ...without X/2nd ...6V/

(Assuming that an ellipsis generally is shorter than three letters).

This is just an example of a rather simple, ideal case (e.g. they'd all end up at different lengths now, and I wouldn't know how to create a good suggestion when a path "Thingie/Long Test/" is added to the pool).

There is no given structure of the path elements, they are assigned by the user, but often items will have similar segments. It should work for proportional fonts, so the algorithm should take a measure function (and not call it to heavily) or generate a suggestion list.

Data-wise, a typical use case would contain 2..4 path segments anf 20 elements per segment.

I am looking for previous attempts into that direction, and if that's solvable wiht sensible amount of code or dependencies.

© Stack Overflow or respective owner

Related posts about algorithm

Related posts about string-manipulation