G'day,
Apologies if this is the wrong place to ask this question - the forum seems quiet on related questions I've asked there.
I've been playing with the GTK TListView code, and I'm happy I can solve most of the selection issues outstanding in Mantis, and a few more to boot. Problem is the solution for the TListView in Icon Mode is potentially quite expensive - currently looping linearly over an unsorted TStringList (ItemCache) of selected nodes every selection event (and there's one or two existing scenarios where this happens as well). Before I submit the patch I'd like to optimise this code using a sorted integer list or two (side by side with ItemCache). Someone on the forums pointed me to a syntax I was previously unfamiliar with, that I'd like to use.
uses
fgl;
type
// for {$mode objfpc}
TIntegerList = specialize TFPGList<Integer>;My problem is that when I go into fgl it states this is prototype code - and to me that means either the interface or implementation is likely to change in the future.
My question is, are you guys happy if I go ahead and implement code inside gtk2wscustomlistview.inc that uses this functionality, or should I just stay on the safe side and implement a specific TIntegerList for this scenario?
The more I play with the gtk2 TListView, the more I realise what a superb, but extremely difficult, job other people have done making the gtk2 widget conform to the win32 api structure. I imagine similar difficulties were encountered in other widgetsets and my hat is off to all who have worked through this. Felipes suggestion of a custom drawn ListView looks more and more attractive to me :-)
(this will be my first time playing with the LCL code, and I'm fully expecting my patch to be rejected, or at least marked with red pen "must try harder" :-) - just saying don't panic that you've got a newbie playing in the LCL :-) )
Cheers
Mike
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus/attachments/20110807/fac5fb53/attachment.html>
