diff options
Diffstat (limited to 'Data/DefaultContent/Libraries/addons/addons/bluguide/ui/buttons.lua')
-rw-r--r-- | Data/DefaultContent/Libraries/addons/addons/bluguide/ui/buttons.lua | 119 |
1 files changed, 0 insertions, 119 deletions
diff --git a/Data/DefaultContent/Libraries/addons/addons/bluguide/ui/buttons.lua b/Data/DefaultContent/Libraries/addons/addons/bluguide/ui/buttons.lua deleted file mode 100644 index 98c52ef..0000000 --- a/Data/DefaultContent/Libraries/addons/addons/bluguide/ui/buttons.lua +++ /dev/null @@ -1,119 +0,0 @@ -local texts = require('texts') - -local buttons = {} -local buttonlist = {} - -function buttons.new(label, settings) - label = label or "" - settings = settings or {} - - settings.flags = settings.flags or {} - settings.flags.draggable = false - - local button = {} - - button.left_click = settings.left_click - button.hover_on = settings.hover_on - button.hover_off = settings.hover_off - - button.text = texts.new(label, settings) - button.destroy = function() buttons.destroy(button) end - - setmetatable(button, {__index = function(t, k) - if t.text[k] ~= nil then - return function(...) - return t.text[k](t.text, ...) - end - end - end }) - - buttonlist[#buttonlist +1] = button - return button -end - -function buttons.destroy(me) - for k, v in pairs(buttonlist) do - if v == me then - buttonlist[k] = nil - end - end - me.text.destroy(me.text) -end - -local mousemoved = true -local ignorerelease = false - -windower.register_event('mouse', function(eventtype, x, y, delta, blocked) - if blocked then - return - end - - -- Mouse drag - if eventtype == 0 then - mousemoved = true - - for _, button in pairs(buttonlist) do - if type(button.hover_on) == "function" and type(button.hover_off) == "function" then - if button.text:hover(x, y) then - button:hover_on() - else - button:hover_off() - end - end - end - - -- Mouse left click - elseif eventtype == 1 then - mousemoved = false - for _, button in pairs(buttonlist) do - if button.text:hover(x, y) then - ignorerelease = true - return true - end - end - ignorerelease = false - - -- Mouse left release - elseif eventtype == 2 then - for _, button in pairs(buttonlist) do - if button.text:hover(x, y) and button.text:visible() and not mousemoved and type(button.left_click) == "function" then - button:left_click() - return true - end - end - - if ignorerelease then - return true - end - end - - return false -end) - -return buttons - ---Copyright © 2015, Anissa ---All rights reserved. - ---Redistribution and use in source and binary forms, with or without ---modification, are permitted provided that the following conditions are met: - --- * Redistributions of source code must retain the above copyright --- notice, this list of conditions and the following disclaimer. --- * Redistributions in binary form must reproduce the above copyright --- notice, this list of conditions and the following disclaimer in the --- documentation and/or other materials provided with the distribution. --- * Neither the name of bluGuide nor the --- names of its contributors may be used to endorse or promote products --- derived from this software without specific prior written permission. - ---THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ---ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED ---WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE ---DISCLAIMED. IN NO EVENT SHALL ANISSA BE LIABLE FOR ANY ---DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES ---(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; ---LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ---ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ---(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS ---SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
\ No newline at end of file |