No, it is complicated because IupGetParam was designed as a fast solution
for simple cases. If you replace the ACTION callback of the internal
IupText of one given param, its update will stop working.

Best,
Scuri


Em sex., 6 de mar. de 2020 às 06:55, Jane Taubman <janetaub...@gmail.com>
escreveu:

> I have completed my autofill for a standard text boxes.  Using the
> following
>
>  function place.action(self,key,newValue)
>         local len = newValue:len()
>         -- If the place has a value and the key was not a control one
>         if key > 0 and len > 0 then
>             local p = placeList:findFirst(newValue)
>             if p then
>                 self.value = p
>                 -- Put cursor to start of selection
>                 self.caretpos = len
>                 -- Select from cursor to end of the string
>                 self.selectionpos = len..':999'
>                 return iup.IGNORE
>             end
>         end
>     end
>
>
>
> Unfortunately on GetParam I don't know how to get the details of the last
> key pressed, to see if it was a character or a control key.  I have tried
> storing the last value, but that did not work as I wanted.
>
> Is there an easy way to get the last key press back in GetParam?
>
>  -- Check for AutoText on field
> if param.type == 'STRING' then
>     local ctrl = iup.GetParamHandle(param, "CONTROL")
>     print(oldv[param_index + 1],param.value)
>     if oldv[param_index + 1] == param.value then
>         return 1
>     else
>         oldv[param_index + 1] = param.value
>     end
>
>     local tag = id[param_index + 1]
>     if pRegions.shortcuts[tag] then
>         local l = param.value:len()
>         if l > 0 then
>             for k,r in ipairs(pRegions.shortcuts[tag]) do
>                 local v = param.value:lower()
>                 local s = string.lower(r:sub(1,l))
>                 if v == s then
>                     ctrl.value = r
>                     ctrl.caretpos = l
>                     ctrl.selectionpos = l..':999'
>                     oldv[param_index + 1] = ctrl.value
>                     return 0
>
>                 end
>             end
>         end
>     end
>
>
> On Mon, 2 Mar 2020 at 13:07, Antonio Scuri <antonio.sc...@gmail.com>
> wrote:
>
>>   No, sorry.
>>
>>   If you start something I can help you get it done.
>>
>> Best,
>> Scuri
>>
>>
>> Em seg., 2 de mar. de 2020 às 09:34, Jane Taubman <janetaub...@gmail.com>
>> escreveu:
>>
>>>   IupText does not have that feature, but it can be created with some
>>>> work. Using the IupText callbacks you can show an IupList inside a
>>>> IupDialog (without decorations) over the dialog where you are typing.
>>>>
>>>
>>> Are there any example of this available anywhere please?
>>>
>>>
>>> _______________________________________________
>>> Iup-users mailing list
>>> Iup-users@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/iup-users
>>>
>> _______________________________________________
>> Iup-users mailing list
>> Iup-users@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/iup-users
>>
>
>
> --
> Jane.
>
> Jane Taubman | www.rjt.org.uk | www.taubman.org.uk | www.fhug.org.uk
> _______________________________________________
> Iup-users mailing list
> Iup-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/iup-users
>
_______________________________________________
Iup-users mailing list
Iup-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/iup-users

Reply via email to