popup-/contextmenu in Editor field of DataGrid?
Klaus Major
klaus at major.on-rev.com
Fri Sep 11 09:07:24 EDT 2009
Hi Trevor,
> On Sep 11, 2009, at 5:12 AM, Klaus Major wrote:
>
>> Hi all (and Trevor :-)
>
> Hi Klaus :-)
>
>> Any hints on how to popup a menu in the "Editor field" of a DataGrid?
>> I want to let the user choose pre-made text to insert into that
>> column, know what I mean?
> This lesson shows how to trigger the data grid mousedown code before
> displaying a contextual:
> How Do I Show a Contextual Menu?: <http://revolution.screenstepslive.com/spaces/revolution/manuals/datagrid/lessons/2962
> >
> Although the example script would be placed in the data grid group
> script itself you could just as easily place the code in the
> behavior for a custom column template:
> How Do I Customize A Table's Columns?: <http://revolution.screenstepslive.com/spaces/revolution/manuals/datagrid/lessons/3436-How-Do-I-Customize-A-Table-s-Columns-
> >
>
>> Or if that is not possible, I could also need this when right-
>> clicking on any column,
>> so I can insert the chosen text into the clicked column.
>>
>> The popup button will NOT be part of the DataGrid.
>
> As long as the popup menu button is on the card you won't have any
> problems. What you do need to do, however, is have the popup send a
> message back to the custom column control so that you can update the
> data grid value. I usually do this by setting a custom property on
> the button before displaying it. So below you will find one way to
> approach this.
>
> -- Column behavior script
>
> on mouseDown pMouseBtnNum
> dgMouseDown pMouseBtnNum
> if pMouseBtnNum is 3 then
> set the uTarget of button "MyContextualMenu" to the long id
> of me
> popup button "MyContextualMenu"
> end if
> end mouseDown
>
> Then in the menuPick handler of "MyContextualMenu" I would do
> something like this:
>
> -- button "MyContextualMenu" script
>
> on menuPick pChosen
> dispatch "UpdateColumnValue" to the uTarget of me with pChosen
> end menuPick
>
> Now you just add the UpdateColumnValue command to the column
> behavior script. The code will look just like any other code in the
> docs that update data grid values.
>
> -- Column behavior script
>
> command UpdateColumnValue pValue
> put the dgIndex of the me into theIndex
> put the dgDataOfIndex[theIndex] of the dgControl of me into
> theDataA
> put pValue into theDataA[the dgColumn of me]
> set the dgDataOfIndex[theIndex] of the dgControl of me to theDataA
> end UpdateColumnValue
>
> --
> Trevor DeVore
> Blue Mango Learning Systems
> ScreenSteps: http://www.screensteps.com
> Developer Resources: http://revolution.bluemangolearning.com
thanks a LOT for this!
Will try later at home.
Best
Klaus
--
Klaus Major
http://www.major-k.de
klaus at major.on-rev.com
More information about the use-livecode
mailing list