roma0104 / gtkdialog

Automatically exported from code.google.com/p/gtkdialog
GNU General Public License v2.0
0 stars 0 forks source link

comboboxtext and comboboxentry searching #43

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
comboboxtext and comboboxentry searching.

Implemented in code and activated via a custom tag atttribute.

comboboxtext:
User presses a key, the next item that begins with that case insensitive char 
is selected and it'll wrap back to the first.

comboboxentry:
It can't be search-as-you-type because then the user would be trying to type 
something into the entry and the code would be attempting to set it to an item 
in the list, so the search code must be activated on Enter and it'll have to be 
done on the "activate" signal before the signal reaches the application. This 
could of course interfere with an <action signal="activate"> so the application 
developer is not going to want to use the both together.

Original issue reported on code.google.com by thunor...@hotmail.com on 14 Oct 2011 at 10:32

GoogleCodeExporter commented 9 years ago
Greetings.

I wrote a small patch which implements the first half of this issue. That is, 
supporting basic search in comboboxtext lists. The custom attribute tag is 
"key-search".

A sample script that demonstrates it is:

export DIALOG="
<window>
<vbox>
 <comboboxtext key-search=\"true\">
 <sensitive>enabled</sensitive>
 <item>a</item>
 <item>b</item>
 <item>b</item>
 <item>c</item>
 <item>a</item>
 </comboboxtext>
  <button cancel></button>
</vbox>
</window>
"
gtkdialog -c --program=DIALOG

Pressing b will correctly iterate through the "b" options, likewise for "a".

I have one concern regarding the patch, though. Currently, it reads the 
attribute through get_tag_attribute(attr, "key-search"), but because tag_attr 
variables are not stored for callbacks, I had to invoke 
attributeset_set_if_unset to store it and ask for it in the callback with 
attributeset_is_avail. 

I admit just today I got familiar with the gtkdialog code, so I ask, is there a 
more polished way to do this? In any case, the patch does work, just maybe not 
in the most efficiently possible way.

Original comment by Walther...@gmail.com on 9 Feb 2012 at 3:13

Attachments:

GoogleCodeExporter commented 9 years ago
Hi

Sorry for the delay in replying but my life's full of mundane things that waste 
my time at the moment :s

Many thanks for your patch :) I'll have a look at it and apply it when I get 
back into coding.

Regards,
Thunor

Original comment by thunor...@hotmail.com on 27 Feb 2012 at 2:05

GoogleCodeExporter commented 9 years ago
When the comboboxtext widget is clicked or Enter is pressed resulting in the 
popup appearing, no events whatsoever are reported for the comboboxtext widget 
until the popup is closed, therefore I need to gain access to the popup as well 
so this isn't as straightforward as one might think.

http://developer.gnome.org/gtk/2.24/GtkComboBox.html#gtk-combo-box-get-popup-acc
essible

I'll have to come back to this.

Original comment by thunor...@hotmail.com on 28 Jul 2012 at 9:29