From 523351609a36ceb48581aa8edab160037a634ea8 Mon Sep 17 00:00:00 2001 From: jussi Date: Thu, 21 Mar 2024 23:32:30 +0200 Subject: Raygui lib treeView allowMove and allowMultiselect. --- examples/raygui_extensions/tree_view.lua | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'examples/raygui_extensions') diff --git a/examples/raygui_extensions/tree_view.lua b/examples/raygui_extensions/tree_view.lua index ceb0359..dbccc0e 100644 --- a/examples/raygui_extensions/tree_view.lua +++ b/examples/raygui_extensions/tree_view.lua @@ -37,6 +37,8 @@ function TreeView:new( bounds, text, callbacks, styles, tooltip ) object.visible = true object.disabled = false object.draggable = true + object.allowMove = true + object.allowMultiselect = true object.mouseScale = 1 -- Set this if drawing in different size to render texture for example. object.selectedItems = {} @@ -191,7 +193,7 @@ function TreeView:itemSelect( item ) local moveItems = {} - if self._movingItem ~= self.MOVE_ITEM_NONE then + if self.allowMove and self._movingItem ~= self.MOVE_ITEM_NONE then for i = #self.selectedItems, 1, -1 do local moveItem = self.selectedItems[i] @@ -244,10 +246,12 @@ function TreeView:itemSelect( item ) local mode = self.SINGLE_SELECT - if RL.IsKeyDown( RL.KEY_LEFT_CONTROL ) or RL.IsKeyDown( RL.KEY_RIGHT_CONTROL ) then - mode = self.MULTI_SELECT - elseif RL.IsKeyDown( RL.KEY_LEFT_SHIFT ) or RL.IsKeyDown( RL.KEY_RIGHT_SHIFT ) then - mode = self.RANGE_SELECT + if self.allowMultiselect then + if RL.IsKeyDown( RL.KEY_LEFT_CONTROL ) or RL.IsKeyDown( RL.KEY_RIGHT_CONTROL ) then + mode = self.MULTI_SELECT + elseif RL.IsKeyDown( RL.KEY_LEFT_SHIFT ) or RL.IsKeyDown( RL.KEY_RIGHT_SHIFT ) then + mode = self.RANGE_SELECT + end end if self._lastActiveItem ~= nil then @@ -298,7 +302,7 @@ function TreeView:update() self.gui:draw() - if RL.IsMouseButtonDown( RL.MOUSE_BUTTON_LEFT ) and self._clickedItem ~= nil + if self.allowMove and RL.IsMouseButtonDown( RL.MOUSE_BUTTON_LEFT ) and self._clickedItem ~= nil and not mouseInClickedItem and 0 < self.gui.focused then local focusBounds = self.gui.controls[ self.gui.focused ].bounds local relY = ( guiMousePos.y - focusBounds.y ) / focusBounds.height -- cgit v1.2.3