Popup Button bug??
Bob Sneidar
bobsneidar at iotecdigital.com
Mon Jan 27 14:01:44 EST 2025
Interesting, the dictionary didn’t mention mouseUp. But some kind of mouse up or down handler has to be what makes the call.
It turns out that rolling your own blocking popup “menu” is not very straightforward. Here is what I came up with:
on popupMenu pMenu, pItems, pLocation
-- anything less than 3 lines and the scrollbar does not display correctly
if the number of lines of pItems >3 and \
the last char pItems is cr then \
delete last char of pItems
set the text of pMenu to pItems
set the height of pMenu to \
min(the formattedHeight of pMenu, 178) — for me 178 is 10 lines of formattedText YMMV
set the width of pMenu to the formattedWidth of pMenu
set the topLeft of pMenu to pLocation
show pMenu
focus on pMenu
set the hilitedLine of pMenu to empty -- because focus will auto-select line 1
wait until the visible of pMenu is false with messages
end popupMenu
— in the script of a Scrolling List Field
local lParentCard
on selectionChanged
put getParentCard(the long id of me) into lParentCard
put the hilitedLine of me into tLine
put line tLine of the text of me into tItem
set the currentLocation of lParentCard to tItem — or whatever you want to do with tItem
hide me
end selectionChanged
on escapeKey
selectionChanged
end escapeKey
on focusOut
selectionChanged
end focusOut
FUNCTION getParentCard pObjectID
put offset("card id", pObjectID) into tStartChar
put char tStartChar to -1 of pObjectID into tCardID
return tCardID
END getParentCard
Bob S
> On Jan 27, 2025, at 9:39 AM, Craig Newman via use-livecode <use-livecode at lists.runrev.com> wrote:
>
> Bob.
>
> It works just fine in a mouseUp handler as well. I just did it.
>
> Craig
>
>> On Jan 27, 2025, at 12:31 PM, Bob Sneidar via use-livecode <use-livecode at lists.runrev.com> wrote:
>>
>> Understood. That is why I wrote, I assure everyone there *IS* a button called “mnuLocations”. As I posted later, this command can only be used in a mouseDown handler. I think I knew this many, many years ago, but I forgot.
>>
>> Bob S
>>
>>
>>> On Jan 27, 2025, at 9:28 AM, Craig Newman via use-livecode <use-livecode at lists.runrev.com> wrote:
>>>
>>> Bob .
>>>
>>> “popup” is not a command that creates a button. It only works with an existing button, opening its contents at a location of your choice. That button can be hidden, but its menu will appear anyway.
>>>
>>> Craig
>>>
>>>> On Jan 27, 2025, at 12:17 PM, Bob Sneidar via use-livecode <use-livecode at lists.runrev.com> wrote:
>>>>
>>>> Hi all.
>>>>
>>>> I have the command:
>>>> popup pMenuButton at pLocation
>>>>
>>>> pMenuButton contains:
>>>> button “mnuLocations"
>>>>
>>>> pLocation contains:
>>>> 55,303
>>>>
>>>> I am getting the error:
>>>> stack "moduleCardBehavior": execution error at line 360 (subwindow: can't find stack or button), char 1
>>>>
>>>> I assure everyone there *IS* a button called “mnuLocations”. What in the name of all <fill in the blank> is going on here??
>>>>
>>>> Bob S
>>>>
>>>> _______________________________________________
>>>> use-livecode mailing list
>>>> use-livecode at lists.runrev.com
>>>> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
>>>> http://lists.runrev.com/mailman/listinfo/use-livecode
>>>
>>>
>>> _______________________________________________
>>> use-livecode mailing list
>>> use-livecode at lists.runrev.com
>>> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
>>> http://lists.runrev.com/mailman/listinfo/use-livecode
>>
>> _______________________________________________
>> use-livecode mailing list
>> use-livecode at lists.runrev.com
>> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
>> http://lists.runrev.com/mailman/listinfo/use-livecode
>
>
> _______________________________________________
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode
More information about the use-livecode
mailing list