--Option Panel
--[[This works from the "options" section and just works as the slash commands would. I am going to use this for *all* of my plugins eventually, as the Turbine option page doesn't really fit what I want.]]
if plugin==nil then plugin=Plugins["SortPackLoad"] end --This line can probably disappear on monday!
plugin.GetOptionsPanel = function( self )
optionsPanel = Turbine.UI.Control()
optionsPanel:SetSize( 200, 600 )
optionsPanel.ListBox=Turbine.UI.ListBox()
optionsPanel.ListBox:SetParent(optionsPanel)
local options={
[1] =
{
["Text"] = "Sort the pack",
["Command"] = "sort"
},
[2] =
{
["Text"] = "Open the SortBag",
["Command"] = "openbag"
},
[3] =
{
["Text"] = "Open the Sort Options",
["Command"] = "sortoption"
},
[4] =
{
["Text"] = "Create/Edit custom Categories",
["Command"] = "SortCat"
},
[5] =
{
["Text"] = "Open the Sort Debug window",
["Command"] = "SortDebug"
},
[6] =
{
["Text"] = "Show/Hide Counter",
["Command"] = "SortCounter"
}
}
local optionsPanelButton={}
local height=0
for i=1,#options do
optionsPanelButton[i] = Turbine.UI.Control()
optionsPanelButton[i].shortcut = Turbine.UI.Lotro.Shortcut()
optionsPanelButton[i].shortcut:SetType(Turbine.UI.Lotro.ShortcutType.Alias)
optionsPanelButton[i].shortcut:SetData("/"..options[i].Command)
optionsPanelButton[i].quickslot=Turbine.UI.Lotro.Quickslot()
optionsPanelButton[i].quickslot:SetParent(optionsPanelButton[i])
optionsPanelButton[i].quickslot:SetShortcut(optionsPanelButton[i].shortcut)
optionsPanelButton[i].quickslot:SetVisible(true)
optionsPanelButton[i].quickslot:SetOpacity(0)
optionsPanelButton[i].quickslot:SetUseOnRightClick(false)
optionsPanelButton[i].Button=Turbine.UI.Lotro.Button()
optionsPanelButton[i].Button:SetParent(optionsPanelButton[i])
optionsPanelButton[i].Button:SetBackColor(Turbine.UI.Color(1,0,0,0))
optionsPanelButton[i].Button:SetText(options[i].Text)
optionsPanelButton[i].Button:SetEnabled(false) --If I don't do this then the next line still doesn't work! Therefore - will look odd, but I can live with that.
optionsPanelButton[i].Button:SetMouseVisible(false)
optionsPanelButton[i].SizeChanged=function()
optionsPanelButton[i].Button:SetSize(optionsPanelButton[i]:GetWidth(),22)
optionsPanelButton[i].quickslot:SetSize(optionsPanelButton[i].Button:GetWidth(),20)
end
optionsPanelButton[i]:SetSize(optionsPanelButton[i]:GetWidth(),22)
optionsPanel.ListBox:AddItem(optionsPanelButton[i])
height=height+optionsPanelButton[i]:GetHeight()
end
optionsPanel.ListBox:SetSize(optionsPanel:GetWidth(),height)
optionsPanel.SizeChanged = function( sender, args )
optionsPanel.ListBox:SetWidth(optionsPanel:GetWidth())
for i=1,optionsPanel.ListBox:GetItemCount() do
optionsPanel.ListBox:GetItem(i):SetWidth(optionsPanel:GetWidth())
end
end
return optionsPanel
end