Thank you Sean for the detailed recipe. Henry
> On Mar 30, 2021, at 5:06 PM, Sean Cole (Pi) via use-livecode > <use-livecode@lists.runrev.com> 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 <name>com.livecode.widget.treeview</name> to use the new folder name > and Line 3 to something a little more unique. Then again search for > onmouseup. You will see: > > <handler name="OnMouseUp" parameters="" return="nothing"/> > > 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