mirror of
https://github.com/PHIDIAS0303/ExpCluster.git
synced 2025-12-27 11:35:22 +09:00
49 lines
1.5 KiB
Lua
49 lines
1.5 KiB
Lua
--[[-- Core Module - Gui
|
|
@module Gui
|
|
@alias Gui
|
|
]]
|
|
|
|
local Gui = require 'expcore.gui.core'
|
|
|
|
--[[-- The basic dropdown element
|
|
@element elem_button
|
|
@param on_selection_change fired when the selected value is changed
|
|
@tparam ?string|Concepts.SignalID|function default_selection the option which is selected by default, or a function which returns the default
|
|
@tparam string elem_type the type of elem selection that this is, default is item selection
|
|
@usage-- Making a basic elem button
|
|
local basic_elem_button =
|
|
Gui.clone_concept('elem_button',TEST 'basic_elembutton')
|
|
:on_selection_change(function(event)
|
|
event.player.print('Basic elem button is now: '..event.element.elem_value)
|
|
end)
|
|
]]
|
|
Gui.new_concept('elem_button')
|
|
:new_event('on_selection_change',defines.events.on_gui_elem_changed)
|
|
:new_property('default_selection')
|
|
:new_property('elem_type','item')
|
|
:define_draw(function(properties,parent,element,selection)
|
|
element = parent.add{
|
|
name = properties.name,
|
|
type = 'choose-elem-button',
|
|
elem_type = properties.elem_type
|
|
}
|
|
|
|
if properties.default_selection and not selection then
|
|
local default = properties.default_selection
|
|
if type(default) == 'function' then
|
|
default = default(element)
|
|
end
|
|
|
|
element.elem_value = default
|
|
|
|
elseif selection then
|
|
if type(selection) == 'function' then
|
|
selection = selection(element)
|
|
end
|
|
|
|
element.elem_value = selection
|
|
|
|
end
|
|
|
|
return element
|
|
end) |