
-- @ ToolsButtonCreator 적용
opt = ToolsOptionCore
function opt:BaseButton_OptionInit()
	local v = {}
	v.Header = {	text = "기준 버튼",
			tooltip = "Tool's 에서 사용하는 기준버튼을 설정합니다",
		}

	local btn = {}
	local btnname = {}
	local sum = 1
	local tmb = ToolsBaseButton
	local db = tmb.DB
	local tdrop = {}
	local btnselect = 1

	for i = 1, #tmb.texture do
		tinsert(tdrop, {text = "테두리"..i})
	end
	local function getBtn()
		return btn[btnselect]
	end
	local function getDB(v)
		return db[getBtn()][v]
	end
	local function setDB(v, value)
		db[getBtn()][v] = value
	end
	for k,v in pairs(tmb.data) do
		tinsert(btnname, v)
		tinsert(btn, k)
	end
	local info
	local use = {"minimap", "uiparent", "infobar"}
	v.option={
		
		{	type = "RadioButton",
			col = 4,
			text = "버튼 선택",
			get = function() return btnselect end,
			set = function(v) btnselect = v;opt:Refresh() end,
			values = btnname
		},
		{	type = "RadioButton",
			text = "부착위치설정",
			col = 3,
			get = function() 
				local p = getDB("use")
				if p == "minimap" then return 1
				elseif p == "uiparent" then return 2
				else
					return ToolsInfoBar and 3 or 2
				end
			end,
			set = function(v)
				setDB("use", use[v])
				tmb:SetParent(getBtn())
				if getDB("use") == "infobar" and ToolsInfoBar and getDB("infoxpos") then
					getglobal(getBtn()):ClearAllPoints()
					getglobal(getBtn()):SetPoint("BOTTOMLEFT", ToolsInfoBar.mainFrame, "BOTTOMLEFT", getDB("infoxpos"), getDB("infoypos"))
				elseif v == 2 then
					getglobal(getBtn()):ClearAllPoints()
					getglobal(getBtn()):SetPoint("CENTER", UIParent, "CENTER", 0, 0)
				else
					tmb:Position(getBtn())
				end
				opt:Refresh()
			end,
			values = {"미니맵", "기본UI", "인포바"},
			tooltips = {"버튼을 미니맵에 부착합니다",
					"버튼을 기본UI(UIParent)에 부착합니다",
					"버튼을 인포바에 부착합니다"
				}
		},
		{	type = "CheckButton",
			text = "사각 미니맵을 사용중입니다",
			get = function() return getDB("square") end,
			set = function(v) 
				setDB("square", v)
				tmb:Position(getBtn())
			end,
			disable = function() return not (getDB("use") == "minimap" and true) end,
			tooltip = "미니맵이 사각인지 설정합니다\n사각으로 버튼이 이동합니다",
		},
		{	type = "Slider",
			text = "회전반경",
			get = function() return getDB("outline") end,
			set = function(v) 
				setDB("outline", v)
				tmb:Position(getBtn())
			end,
			disable = function() return not (getDB("use") == "minimap" and true) end,
			minmax = {50,100},
			step = 1,
			tooltip = "버튼의 미니맵 회전반경을 설정합니다",
		},
		{	type = "Slider",
			text = "위치",
			get = function() return getDB("pos") end,
			set = function(v) 
				setDB("pos", v)
				tmb:Position(getBtn())
			end,
			disable = function() return not (getDB("use") == "minimap" and true) end,
			minmax = {0,359},
			step = 1,
			tooltip = "버튼의 미니맵 회전반경을 설정합니다",
		},
		{	type = "CheckButton",
			text = "위치 고정",
			get = function() return getDB("lock") end,
			set = function(v)
				setDB("lock", v)
			end,
			tooltip = "움직이지 않도록 설정합니다",
		},
		{	type = "CheckButton",
			text = "숨기기",
			get = function() return getDB("hide") end,
			set = function(v) 
				setDB("hide", v)
				tmb:SetShow(getBtn())
			end,
			tooltip = "체크시 화면에서 숨겨집니다"
		},
		{	type = "Slider",
			text = "버튼의 크기",
			get = function() return getDB("size") end,
			set = function(v)
				setDB("size", v)
				tmb:SetSize(getBtn())
				tmb:Position(getBtn())
			end,
			minmax = {16,50},
			step = 1,
			tooltip = "버튼의 크기를 설정합니다",
		},
		{	type = "Dropdown",
			text = "테두리 선택",
			values = tdrop,
			get = function() return getDB("texture") end,
			set = function(v)
				setDB("texture", v)
				tmb:SetTexture(getBtn())
			end,
			tooltip = "버튼의 테두리 모양을 설정합니다"
		}
	}
	opt:RegesterOption(v)
	if not IsAddOnLoaded("ToolsInfoBar") then
		getglobal("T_OPT1-2-RADIO-3"):Hide()
	end
end