M0E Lnx ha scritto:
> is there a way to code it in my key_release event?
>
> On Tue, Oct 7, 2008 at 4:53 PM, Benoit Minisini
> <[EMAIL PROTECTED]> wrote:
>   
>> On mardi 07 octobre 2008, M0E Lnx wrote:
>>     
>>> I have a really long list in a lisbox. I'd like to make it so when I
>>> press "s" on the keyboard, it jumps to the first item whose text
>>> starts with an "s" or any other letter for that matter.
>>>
>>> Can someone suggest a way to do this?
>>>
>>>       
>> Yes, Qt does that by default, but not GTK+. Again, I need to implement that
>> feature in the gb.gtk component.
>>
>>     
I don't know if the KeyRelease event is the right one to use (it seems 
strange to me: why wait for a key release to do something? Normally 
things happen as soon as a key is pressed...), but surely KeyPress can work.

In the KeyPress event of the listbox, start to search for the next item 
beginning with the letter, with wrap; then move the index.
In pseudocode:

    sub xxx_keypress()
      dim scan as integer

      if key.text > "z" or key.text < " " then return      ' this key is 
not "searchable"
     
      scan = last.index
      do
        inc scan
        if scan >= last.count then scan=0  ' wrap to the top again
        if scan=last.index then return     ' went where we started off: 
didn't find another item
        if last[scan].text like key.text & "*" then
          ' found another
          last.index = scan
          return
      loop
    end sub

I did not test this snippet but the general idea should work. May be 
some adjustment is needed...
May be this is slow...

Regards,
Doriano


-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Gambas-user mailing list
Gambas-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gambas-user

Reply via email to