Re: TreeView Widget Drag and Drop Support

2021-04-02 Thread HENRY LOWE via use-livecode
Many thanks Brian. As you suggested, I have created an enhancement request.

https://quality.livecode.com/show_bug.cgi?id=23147 


Henry

> On Mar 31, 2021, at 3:32 PM, HENRY LOWE via use-livecode 
>  wrote:
> 
> Thanks Brian. I am handling the ‘on DragDrop’ message in the widget’s script 
> but on completing the drop there is no way to determine which row in the 
> TreeView widget the data was dropped into. Ideally when in DragDrop mode the 
> widget would automatically hilite the row that the mouse is currently over 
> (standard drag and drop behavior) so that when the user finally releases the 
> mouse button the row that was the drop target would be available in 'the 
> hilitedElement’ property of the widget. Currently I am having to try to 
> determine which row was dropped on using the mouseLoc to calculate which row 
> I am in.
> 
> On the second issue, I tried using hiliteChanged message but could not get it 
> to work. Do you have an example script to do this?
> 
> Henry
> 
>> On Mar 30, 2021, at 5:06 PM, Sean Cole (Pi) via use-livecode 
>>  wrote:
>> 
>> Hi Henry,
>> 
>> I often take the widgets, like TreeView, and add in other message
>> responders like this. It's real easy to do?
>> 
>> Just make a copy of the widget folder from the LC Tools Folder
>> (Livecode.app/Contents/Tools/Extensions/com.livecode.widget.treeview) and
>> into your own Livecode extensions folder (mine is in ~/Documents/My
>> LiveCode/Extensions/ or my dropbox folder somewhere). Rename the folder
>> from com.livecode. to com.mine. or something. Then open treeview.lcb in
>> BBEdit or TextEdit, etc, from the copy folder. Line 88, change widget
>> com.livecode.widget.treeview to use the new folder name you gave.
>> 
>> Next, search for 'onMouseUp'. you should find:
>> 
>> public handler onMouseLeave() returns nothing
>> put 0 into mHoverRow
>> redraw all
>> end handler
>> 
>> Before that in the code, add in your other handlers (OnDragDrop, etc) using
>> the same syntax. No need to use the put or redraw messages of course. Look
>> in the dictionary, lcb section, to check the handler names to use.
>> 
>> Then, open the manifest.xml from the same folder. Line 2, again
>> change com.livecode.widget.treeview to use the new folder name
>> and Line 3 to something a little more unique. Then again search for
>> onmouseup. You will see:
>> 
>> 
>> 
>> Again, follow the syntax adding in the lines for the handler.
>> 
>> Look through the other files in the folder and change if you wish but it is
>> not essential.
>> 
>> Now in LC, open the extension builder and use the 'open existing..' button
>> to navigate to the folder you created. Then, from the bottom, the install
>> button will build it into the toolbar.
>> 
>> Now you have a customised version. Make sure you add your replacement
>> widget in the standaloneSettings>Inclusions before building your
>> standalones.
>> 
>> All the best
>> 
>> Sean
>> 
>> On Wed, 31 Mar 2021 at 00:26, HENRY LOWE via use-livecode <
>> use-livecode@lists.runrev.com> wrote:
>> 
>>> I am using the LC TreeView widget to implement a sidebar containing a
>>> hierarchical menu in a MacOS app. The widget seems well suited for this
>>> purpose and I have successfully created a facsimile of the standard sidebar
>>> that is used increasingly in both MacOS and iPadOS apps. However, I need to
>>> drag rows from a data grid table to a TreeView widget row in the sidebar
>>> but the current implementation of the TreeView widget does not report the
>>> TreeView widget row (element) where the drop occurred. A TreeView widget
>>> message, such as 'ActionDragDrop pPath’ where pPath is the path to the
>>> element that was ‘dropped on’ would be incredibly helpful. I have
>>> implemented a workaround method off drag and drop to the widget but it
>>> occasionally breaks.
>>> 
>>> Looking at the LiveCode Builder documentation, widgets can support the
>>> following messages related to drag and drop functionality:
>>> 
>>> OnDragDrop, On DragEnter, OnDragFinish, OnDragLeave, On DragMove, On
>>> DragStart.
>>> 
>>> These messages are not currently supported in the TreeView widget LCB
>>> source. Adding them would make this incredibly useful widget even more
>>> powerful.
>>> 
>>> Another issue that I encountered when using the TreeView widget to
>>> implement a sidebar hierarchical menu was that clicking on a row in the
>>> TreeView widget toggles the row’s hilite state  - click on an item and it
>>> hilites, click on it again and it unhilites. While this may be standard
>>> behavior for a list, in a menu clicking on a hilited row should not change
>>> the row’s hilite state. It should remain hilited. Only clicking on another
>>> row (menu item) should unhilite a row and then hilite the selected row. It
>>> would be great to have a ’togglehilite’ TreeView property. If true the
>>> TreeView would toggle a row’s hilite state as it does now, while if false
>>> it would not.
>>> 
>>> A

Re: TreeView Widget Drag and Drop Support

2021-03-31 Thread Brian Milby via use-livecode
Check out this script on GitHub:

https://github.com/Himalayan-Academy/Siva-Siva-App/blob/df93a63e40153df6ec4bd29a8571bb0c8a99c2a9/modules/stories/behavior_Stories.livecodescript#L230

The card had a tree widget with 2 levels.  The actual items to select are at 
the second level.

It looks like the drag Enter, Leave, Move, and Drop messages need to be handled 
like the mouse messages (for changing the highlight).

Sent from my iPhone

> On Mar 31, 2021, at 6:34 PM, HENRY LOWE via use-livecode 
>  wrote:
> 
> Thanks Brian. I am handling the ‘on DragDrop’ message in the widget’s script 
> but on completing the drop there is no way to determine which row in the 
> TreeView widget the data was dropped into. Ideally when in DragDrop mode the 
> widget would automatically hilite the row that the mouse is currently over 
> (standard drag and drop behavior) so that when the user finally releases the 
> mouse button the row that was the drop target would be available in 'the 
> hilitedElement’ property of the widget. Currently I am having to try to 
> determine which row was dropped on using the mouseLoc to calculate which row 
> I am in.
> 
> On the second issue, I tried using hiliteChanged message but could not get it 
> to work. Do you have an example script to do this?
> 
> Henry
> 
>> On Mar 30, 2021, at 5:06 PM, Sean Cole (Pi) via use-livecode 
>>  wrote:
>> 
>> Hi Henry,
>> 
>> I often take the widgets, like TreeView, and add in other message
>> responders like this. It's real easy to do?
>> 
>> Just make a copy of the widget folder from the LC Tools Folder
>> (Livecode.app/Contents/Tools/Extensions/com.livecode.widget.treeview) and
>> into your own Livecode extensions folder (mine is in ~/Documents/My
>> LiveCode/Extensions/ or my dropbox folder somewhere). Rename the folder
>> from com.livecode. to com.mine. or something. Then open treeview.lcb in
>> BBEdit or TextEdit, etc, from the copy folder. Line 88, change widget
>> com.livecode.widget.treeview to use the new folder name you gave.
>> 
>> Next, search for 'onMouseUp'. you should find:
>> 
>> public handler onMouseLeave() returns nothing
>> put 0 into mHoverRow
>> redraw all
>> end handler
>> 
>> Before that in the code, add in your other handlers (OnDragDrop, etc) using
>> the same syntax. No need to use the put or redraw messages of course. Look
>> in the dictionary, lcb section, to check the handler names to use.
>> 
>> Then, open the manifest.xml from the same folder. Line 2, again
>> change com.livecode.widget.treeview to use the new folder name
>> and Line 3 to something a little more unique. Then again search for
>> onmouseup. You will see:
>> 
>> 
>> 
>> Again, follow the syntax adding in the lines for the handler.
>> 
>> Look through the other files in the folder and change if you wish but it is
>> not essential.
>> 
>> Now in LC, open the extension builder and use the 'open existing..' button
>> to navigate to the folder you created. Then, from the bottom, the install
>> button will build it into the toolbar.
>> 
>> Now you have a customised version. Make sure you add your replacement
>> widget in the standaloneSettings>Inclusions before building your
>> standalones.
>> 
>> All the best
>> 
>> Sean
>> 
>>> On Wed, 31 Mar 2021 at 00:26, HENRY LOWE via use-livecode <
>>> use-livecode@lists.runrev.com> wrote:
>>> 
>>> I am using the LC TreeView widget to implement a sidebar containing a
>>> hierarchical menu in a MacOS app. The widget seems well suited for this
>>> purpose and I have successfully created a facsimile of the standard sidebar
>>> that is used increasingly in both MacOS and iPadOS apps. However, I need to
>>> drag rows from a data grid table to a TreeView widget row in the sidebar
>>> but the current implementation of the TreeView widget does not report the
>>> TreeView widget row (element) where the drop occurred. A TreeView widget
>>> message, such as 'ActionDragDrop pPath’ where pPath is the path to the
>>> element that was ‘dropped on’ would be incredibly helpful. I have
>>> implemented a workaround method off drag and drop to the widget but it
>>> occasionally breaks.
>>> 
>>> Looking at the LiveCode Builder documentation, widgets can support the
>>> following messages related to drag and drop functionality:
>>> 
>>> OnDragDrop, On DragEnter, OnDragFinish, OnDragLeave, On DragMove, On
>>> DragStart.
>>> 
>>> These messages are not currently supported in the TreeView widget LCB
>>> source. Adding them would make this incredibly useful widget even more
>>> powerful.
>>> 
>>> Another issue that I encountered when using the TreeView widget to
>>> implement a sidebar hierarchical menu was that clicking on a row in the
>>> TreeView widget toggles the row’s hilite state  - click on an item and it
>>> hilites, click on it again and it unhilites. While this may be standard
>>> behavior for a list, in a menu clicking on a hilited row should not change
>>> the row’s hilite state. It should remain hilited. Only clicking on another
>>> row

Re: TreeView Widget Drag and Drop Support

2021-03-31 Thread HENRY LOWE via use-livecode
Thanks Brian. I am handling the ‘on DragDrop’ message in the widget’s script 
but on completing the drop there is no way to determine which row in the 
TreeView widget the data was dropped into. Ideally when in DragDrop mode the 
widget would automatically hilite the row that the mouse is currently over 
(standard drag and drop behavior) so that when the user finally releases the 
mouse button the row that was the drop target would be available in 'the 
hilitedElement’ property of the widget. Currently I am having to try to 
determine which row was dropped on using the mouseLoc to calculate which row I 
am in.

On the second issue, I tried using hiliteChanged message but could not get it 
to work. Do you have an example script to do this?

Henry

> On Mar 30, 2021, at 5:06 PM, Sean Cole (Pi) via use-livecode 
>  wrote:
> 
> Hi Henry,
> 
> I often take the widgets, like TreeView, and add in other message
> responders like this. It's real easy to do?
> 
> Just make a copy of the widget folder from the LC Tools Folder
> (Livecode.app/Contents/Tools/Extensions/com.livecode.widget.treeview) and
> into your own Livecode extensions folder (mine is in ~/Documents/My
> LiveCode/Extensions/ or my dropbox folder somewhere). Rename the folder
> from com.livecode. to com.mine. or something. Then open treeview.lcb in
> BBEdit or TextEdit, etc, from the copy folder. Line 88, change widget
> com.livecode.widget.treeview to use the new folder name you gave.
> 
> Next, search for 'onMouseUp'. you should find:
> 
> public handler onMouseLeave() returns nothing
> put 0 into mHoverRow
> redraw all
> end handler
> 
> Before that in the code, add in your other handlers (OnDragDrop, etc) using
> the same syntax. No need to use the put or redraw messages of course. Look
> in the dictionary, lcb section, to check the handler names to use.
> 
> Then, open the manifest.xml from the same folder. Line 2, again
> change com.livecode.widget.treeview to use the new folder name
> and Line 3 to something a little more unique. Then again search for
> onmouseup. You will see:
> 
> 
> 
> Again, follow the syntax adding in the lines for the handler.
> 
> Look through the other files in the folder and change if you wish but it is
> not essential.
> 
> Now in LC, open the extension builder and use the 'open existing..' button
> to navigate to the folder you created. Then, from the bottom, the install
> button will build it into the toolbar.
> 
> Now you have a customised version. Make sure you add your replacement
> widget in the standaloneSettings>Inclusions before building your
> standalones.
> 
> All the best
> 
> Sean
> 
> On Wed, 31 Mar 2021 at 00:26, HENRY LOWE via use-livecode <
> use-livecode@lists.runrev.com> wrote:
> 
>> I am using the LC TreeView widget to implement a sidebar containing a
>> hierarchical menu in a MacOS app. The widget seems well suited for this
>> purpose and I have successfully created a facsimile of the standard sidebar
>> that is used increasingly in both MacOS and iPadOS apps. However, I need to
>> drag rows from a data grid table to a TreeView widget row in the sidebar
>> but the current implementation of the TreeView widget does not report the
>> TreeView widget row (element) where the drop occurred. A TreeView widget
>> message, such as 'ActionDragDrop pPath’ where pPath is the path to the
>> element that was ‘dropped on’ would be incredibly helpful. I have
>> implemented a workaround method off drag and drop to the widget but it
>> occasionally breaks.
>> 
>> Looking at the LiveCode Builder documentation, widgets can support the
>> following messages related to drag and drop functionality:
>> 
>> OnDragDrop, On DragEnter, OnDragFinish, OnDragLeave, On DragMove, On
>> DragStart.
>> 
>> These messages are not currently supported in the TreeView widget LCB
>> source. Adding them would make this incredibly useful widget even more
>> powerful.
>> 
>> Another issue that I encountered when using the TreeView widget to
>> implement a sidebar hierarchical menu was that clicking on a row in the
>> TreeView widget toggles the row’s hilite state  - click on an item and it
>> hilites, click on it again and it unhilites. While this may be standard
>> behavior for a list, in a menu clicking on a hilited row should not change
>> the row’s hilite state. It should remain hilited. Only clicking on another
>> row (menu item) should unhilite a row and then hilite the selected row. It
>> would be great to have a ’togglehilite’ TreeView property. If true the
>> TreeView would toggle a row’s hilite state as it does now, while if false
>> it would not.
>> 
>> Any thoughts?
>> 
>> Henry
>> 
>> 
>> 
>> 
>> 
>> 
>> ___
>> use-livecode mailing list
>> use-livecode@lists.runrev.com
>> Please visit this url to subscribe, unsubscribe and manage your
>> subscription preferences:
>> http://lists.runrev.com/mailman/listinfo/use-livecode
>> 
> ___
> use-livec

Re: TreeView Widget Drag and Drop Support

2021-03-31 Thread HENRY LOWE via use-livecode
Thank you Sean for the detailed recipe.

Henry

> On Mar 30, 2021, at 5:06 PM, Sean Cole (Pi) via use-livecode 
>  wrote:
> 
> Hi Henry,
> 
> I often take the widgets, like TreeView, and add in other message
> responders like this. It's real easy to do?
> 
> Just make a copy of the widget folder from the LC Tools Folder
> (Livecode.app/Contents/Tools/Extensions/com.livecode.widget.treeview) and
> into your own Livecode extensions folder (mine is in ~/Documents/My
> LiveCode/Extensions/ or my dropbox folder somewhere). Rename the folder
> from com.livecode. to com.mine. or something. Then open treeview.lcb in
> BBEdit or TextEdit, etc, from the copy folder. Line 88, change widget
> com.livecode.widget.treeview to use the new folder name you gave.
> 
> Next, search for 'onMouseUp'. you should find:
> 
> public handler onMouseLeave() returns nothing
> put 0 into mHoverRow
> redraw all
> end handler
> 
> Before that in the code, add in your other handlers (OnDragDrop, etc) using
> the same syntax. No need to use the put or redraw messages of course. Look
> in the dictionary, lcb section, to check the handler names to use.
> 
> Then, open the manifest.xml from the same folder. Line 2, again
> change com.livecode.widget.treeview to use the new folder name
> and Line 3 to something a little more unique. Then again search for
> onmouseup. You will see:
> 
> 
> 
> Again, follow the syntax adding in the lines for the handler.
> 
> Look through the other files in the folder and change if you wish but it is
> not essential.
> 
> Now in LC, open the extension builder and use the 'open existing..' button
> to navigate to the folder you created. Then, from the bottom, the install
> button will build it into the toolbar.
> 
> Now you have a customised version. Make sure you add your replacement
> widget in the standaloneSettings>Inclusions before building your
> standalones.
> 
> All the best
> 
> Sean
> 
> On Wed, 31 Mar 2021 at 00:26, HENRY LOWE via use-livecode <
> use-livecode@lists.runrev.com> wrote:
> 
>> I am using the LC TreeView widget to implement a sidebar containing a
>> hierarchical menu in a MacOS app. The widget seems well suited for this
>> purpose and I have successfully created a facsimile of the standard sidebar
>> that is used increasingly in both MacOS and iPadOS apps. However, I need to
>> drag rows from a data grid table to a TreeView widget row in the sidebar
>> but the current implementation of the TreeView widget does not report the
>> TreeView widget row (element) where the drop occurred. A TreeView widget
>> message, such as 'ActionDragDrop pPath’ where pPath is the path to the
>> element that was ‘dropped on’ would be incredibly helpful. I have
>> implemented a workaround method off drag and drop to the widget but it
>> occasionally breaks.
>> 
>> Looking at the LiveCode Builder documentation, widgets can support the
>> following messages related to drag and drop functionality:
>> 
>> OnDragDrop, On DragEnter, OnDragFinish, OnDragLeave, On DragMove, On
>> DragStart.
>> 
>> These messages are not currently supported in the TreeView widget LCB
>> source. Adding them would make this incredibly useful widget even more
>> powerful.
>> 
>> Another issue that I encountered when using the TreeView widget to
>> implement a sidebar hierarchical menu was that clicking on a row in the
>> TreeView widget toggles the row’s hilite state  - click on an item and it
>> hilites, click on it again and it unhilites. While this may be standard
>> behavior for a list, in a menu clicking on a hilited row should not change
>> the row’s hilite state. It should remain hilited. Only clicking on another
>> row (menu item) should unhilite a row and then hilite the selected row. It
>> would be great to have a ’togglehilite’ TreeView property. If true the
>> TreeView would toggle a row’s hilite state as it does now, while if false
>> it would not.
>> 
>> Any thoughts?
>> 
>> Henry
>> 
>> 
>> 
>> 
>> 
>> 
>> ___
>> use-livecode mailing list
>> use-livecode@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@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@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode


Re: TreeView Widget Drag and Drop Support

2021-03-30 Thread Brian Milby via use-livecode
This seems like something I could look into.  Many of the recent improvements 
(additions) to that widget are things that I added.  On the surface this seems 
to be not that difficult.  Please add a feature request in bugzilla for this.

For the second issue, this is easily handled in script.  There is a message for 
‘hiliteChanged’ that you can use to clear the highlight.  You just need to trap 
for empty so you don’t create a loop.  We use this approach in SivaSiva where 
this widget is used a couple places as a menu.  It is useful because you can 
have the highlight show briefly to indicate the touch/click happened.

Thanks,
Brian

Sent from my iPhone

> On Mar 30, 2021, at 7:28 PM, HENRY LOWE via use-livecode 
>  wrote:
> 
> I am using the LC TreeView widget to implement a sidebar containing a 
> hierarchical menu in a MacOS app. The widget seems well suited for this 
> purpose and I have successfully created a facsimile of the standard sidebar 
> that is used increasingly in both MacOS and iPadOS apps. However, I need to 
> drag rows from a data grid table to a TreeView widget row in the sidebar but 
> the current implementation of the TreeView widget does not report the 
> TreeView widget row (element) where the drop occurred. A TreeView widget 
> message, such as 'ActionDragDrop pPath’ where pPath is the path to the 
> element that was ‘dropped on’ would be incredibly helpful. I have implemented 
> a workaround method off drag and drop to the widget but it occasionally 
> breaks.
> 
> Looking at the LiveCode Builder documentation, widgets can support the 
> following messages related to drag and drop functionality:
> 
> OnDragDrop, On DragEnter, OnDragFinish, OnDragLeave, On DragMove, On 
> DragStart.
> 
> These messages are not currently supported in the TreeView widget LCB source. 
> Adding them would make this incredibly useful widget even more powerful.
> 
> Another issue that I encountered when using the TreeView widget to implement 
> a sidebar hierarchical menu was that clicking on a row in the TreeView widget 
> toggles the row’s hilite state  - click on an item and it hilites, click on 
> it again and it unhilites. While this may be standard behavior for a list, in 
> a menu clicking on a hilited row should not change the row’s hilite state. It 
> should remain hilited. Only clicking on another row (menu item) should 
> unhilite a row and then hilite the selected row. It would be great to have a 
> ’togglehilite’ TreeView property. If true the TreeView would toggle a row’s 
> hilite state as it does now, while if false it would not.
> 
> Any thoughts?
> 
> Henry
> 
> 
> 
> 
> 
> 
> ___
> use-livecode mailing list
> use-livecode@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@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode


Re: TreeView Widget Drag and Drop Support

2021-03-30 Thread Sean Cole (Pi) via use-livecode
Hi Henry,

I often take the widgets, like TreeView, and add in other message
responders like this. It's real easy to do?

Just make a copy of the widget folder from the LC Tools Folder
(Livecode.app/Contents/Tools/Extensions/com.livecode.widget.treeview) and
into your own Livecode extensions folder (mine is in ~/Documents/My
LiveCode/Extensions/ or my dropbox folder somewhere). Rename the folder
from com.livecode. to com.mine. or something. Then open treeview.lcb in
BBEdit or TextEdit, etc, from the copy folder. Line 88, change widget
com.livecode.widget.treeview to use the new folder name you gave.

Next, search for 'onMouseUp'. you should find:

public handler onMouseLeave() returns nothing
put 0 into mHoverRow
redraw all
end handler

Before that in the code, add in your other handlers (OnDragDrop, etc) using
the same syntax. No need to use the put or redraw messages of course. Look
in the dictionary, lcb section, to check the handler names to use.

Then, open the manifest.xml from the same folder. Line 2, again
change com.livecode.widget.treeview to use the new folder name
and Line 3 to something a little more unique. Then again search for
onmouseup. You will see:



Again, follow the syntax adding in the lines for the handler.

Look through the other files in the folder and change if you wish but it is
not essential.

Now in LC, open the extension builder and use the 'open existing..' button
to navigate to the folder you created. Then, from the bottom, the install
button will build it into the toolbar.

Now you have a customised version. Make sure you add your replacement
widget in the standaloneSettings>Inclusions before building your
standalones.

All the best

Sean

On Wed, 31 Mar 2021 at 00:26, HENRY LOWE via use-livecode <
use-livecode@lists.runrev.com> wrote:

> I am using the LC TreeView widget to implement a sidebar containing a
> hierarchical menu in a MacOS app. The widget seems well suited for this
> purpose and I have successfully created a facsimile of the standard sidebar
> that is used increasingly in both MacOS and iPadOS apps. However, I need to
> drag rows from a data grid table to a TreeView widget row in the sidebar
> but the current implementation of the TreeView widget does not report the
> TreeView widget row (element) where the drop occurred. A TreeView widget
> message, such as 'ActionDragDrop pPath’ where pPath is the path to the
> element that was ‘dropped on’ would be incredibly helpful. I have
> implemented a workaround method off drag and drop to the widget but it
> occasionally breaks.
>
> Looking at the LiveCode Builder documentation, widgets can support the
> following messages related to drag and drop functionality:
>
> OnDragDrop, On DragEnter, OnDragFinish, OnDragLeave, On DragMove, On
> DragStart.
>
> These messages are not currently supported in the TreeView widget LCB
> source. Adding them would make this incredibly useful widget even more
> powerful.
>
> Another issue that I encountered when using the TreeView widget to
> implement a sidebar hierarchical menu was that clicking on a row in the
> TreeView widget toggles the row’s hilite state  - click on an item and it
> hilites, click on it again and it unhilites. While this may be standard
> behavior for a list, in a menu clicking on a hilited row should not change
> the row’s hilite state. It should remain hilited. Only clicking on another
> row (menu item) should unhilite a row and then hilite the selected row. It
> would be great to have a ’togglehilite’ TreeView property. If true the
> TreeView would toggle a row’s hilite state as it does now, while if false
> it would not.
>
> Any thoughts?
>
> Henry
>
>
>
>
>
>
> ___
> use-livecode mailing list
> use-livecode@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@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode


TreeView Widget Drag and Drop Support

2021-03-30 Thread HENRY LOWE via use-livecode
I am using the LC TreeView widget to implement a sidebar containing a 
hierarchical menu in a MacOS app. The widget seems well suited for this purpose 
and I have successfully created a facsimile of the standard sidebar that is 
used increasingly in both MacOS and iPadOS apps. However, I need to drag rows 
from a data grid table to a TreeView widget row in the sidebar but the current 
implementation of the TreeView widget does not report the TreeView widget row 
(element) where the drop occurred. A TreeView widget message, such as 
'ActionDragDrop pPath’ where pPath is the path to the element that was ‘dropped 
on’ would be incredibly helpful. I have implemented a workaround method off 
drag and drop to the widget but it occasionally breaks.

Looking at the LiveCode Builder documentation, widgets can support the 
following messages related to drag and drop functionality:

OnDragDrop, On DragEnter, OnDragFinish, OnDragLeave, On DragMove, On DragStart.

These messages are not currently supported in the TreeView widget LCB source. 
Adding them would make this incredibly useful widget even more powerful.

Another issue that I encountered when using the TreeView widget to implement a 
sidebar hierarchical menu was that clicking on a row in the TreeView widget 
toggles the row’s hilite state  - click on an item and it hilites, click on it 
again and it unhilites. While this may be standard behavior for a list, in a 
menu clicking on a hilited row should not change the row’s hilite state. It 
should remain hilited. Only clicking on another row (menu item) should unhilite 
a row and then hilite the selected row. It would be great to have a 
’togglehilite’ TreeView property. If true the TreeView would toggle a row’s 
hilite state as it does now, while if false it would not.

Any thoughts?

Henry





 
___
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode