function ToolsSmartButton_OptionInit()
	ToolsSmartButtonSelectGroup = 1
	local db = ToolsSmartButtonDB.Group
	local addon = ToolsSmartButton
	local opt = ToolsOptionCore
	local v = {}
	local drop = {}
	for i = 1, 10 do
		drop[i] = {
			text = i.."그룹"
		}
	end
	v.Header = {	text = "똑똑한 버튼",
			tooltip = "똑똑한 버튼 설정",
		}
	v.option = {
		{	type = "Title",
			text = "|CFFFF0000Warning!! 조심하세욧!"
		},
		{	type = "CheckButton",
			text = "|CFFFFFF00현재 그룹 삭제",
			values = drop,	
			get = function() return nil end,
			set = function(v)
				if #db ~= 1 then
					ToolsSmartButton:DeleteGroup(ToolsSmartButtonSelectGroup)
					ToolsSmartButtonSelectGroup = #db
				end
				opt:Refresh()
			end,
			tooltip = "|CFFFFFF00주의!!|r 그룹을 주저없이 |CFFDD0000삭제!!|r합니다 주의하세요!"
		},
		{	type = "Title",
			text = "|CFFFFFF00위에 조심하세요!!"
		},
		{	type = "Dropdown",
			text = "그룹 선택",
			values = drop,	
			get = function() return ToolsSmartButtonSelectGroup end,
			set = function(v)
				ToolsSmartButtonSelectGroup = v
				if v > #db then
					ToolsSmartButtonSelectGroup = #db+1
					addon:InsertGroup()
				end
				opt:Refresh()
			end,
			tooltip = "그룹을 선택합니다 그룹이 없을시 다음 그룹을 생성합니다\n|CFFFFFF00드롭다운 체크가 이상한건 신경쓰지 마세요..."
		},
		{	type = "EditBox",
			text = "그룹의 이름",
			get = function() return db[ToolsSmartButtonSelectGroup].text end,
			set = function(v) db[ToolsSmartButtonSelectGroup].text = v end,
			tooltip = "그룹의 이름을 설정합니다\n툴팁에 표시되어집니다",
		},
		{	type = "RadioButton",
			col = 3,
			text = "레이아웃설정",
			get = function() return db[ToolsSmartButtonSelectGroup].ttrtype and 2 or db[ToolsSmartButtonSelectGroup].circletype and 3 or 1 end,
			set = function(v)
				if v == 1 then
					db[ToolsSmartButtonSelectGroup].ttrtype = nil
					db[ToolsSmartButtonSelectGroup].circletype = nil
				elseif v == 2 then
					db[ToolsSmartButtonSelectGroup].ttrtype = true
					db[ToolsSmartButtonSelectGroup].circletype = nil
				else
					db[ToolsSmartButtonSelectGroup].ttrtype = nil
					db[ToolsSmartButtonSelectGroup].circletype = true
				end
				addon:SetMainButtonBackdrop(ToolsSmartButtonSelectGroup)
				addon:SetButtonPoint(ToolsSmartButtonSelectGroup)
				addon:SetLayoutButton(ToolsSmartButtonSelectGroup)
			end,
			values = {"기본", "TTR", "CIRCLE"},
			tooltips = {"기본 형태", "툴스 트랙커 형태", "원형"}
		},
		{	type = "Slider",
			text = "버튼의 갯수",		
			get = function() return db[ToolsSmartButtonSelectGroup].btns end,
			set = function(v)
				db[ToolsSmartButtonSelectGroup].btns = v
				addon:CreateButton(ToolsSmartButtonSelectGroup)
				addon:SetTexture(ToolsSmartButtonSelectGroup)
				addon:SetMainButtonBackdrop(ToolsSmartButtonSelectGroup, addon.frames[ToolsSmartButtonSelectGroup])
				addon:SetButtonPoint(ToolsSmartButtonSelectGroup)
			end,
			minmax = {1, 24},
			step = 1,
			tooltip = "그룹의 버튼갯수를 설정합니다"
		},
		{	type = "Slider",
			text = "버튼간의 간격",		
			get = function() return db[ToolsSmartButtonSelectGroup].gap end,
			set = function(v)
				db[ToolsSmartButtonSelectGroup].gap = v
				addon:SetMainButtonBackdrop(ToolsSmartButtonSelectGroup, addon.frames[ToolsSmartButtonSelectGroup])
				addon:SetButtonPoint(ToolsSmartButtonSelectGroup)
			end,
			minmax = {0, 20},
			step = 1,
			tooltip = "버튼간의 간격을 설정합니다"
		},
		{	type = "Slider",
			text = "크기 설정",		
			get = function() return db[ToolsSmartButtonSelectGroup].scale end,
			set = function(v)
				db[ToolsSmartButtonSelectGroup].scale = v
				addon:SetMainFramePoint(ToolsSmartButtonSelectGroup)
			end,
			minmax = {0.4, 1.5},
			step = 0.01,
			tooltip = "크기를 설정합니다"
		},
		{	type = "CheckButton",
			text = "배경 숨김",
			get = function() return db[ToolsSmartButtonSelectGroup].hide end,
			set = function(v)
				db[ToolsSmartButtonSelectGroup].hide = v
				addon:SetBackdropColor(ToolsSmartButtonSelectGroup)
			end,
			tooltip = "체크시 배경을 숨깁니다"
		},
		{	type = "CheckButton",
			text = "마우스 오버 사용",
			get = function() return db[ToolsSmartButtonSelectGroup].onenter end,
			set = function(v)
				db[ToolsSmartButtonSelectGroup].onenter = v
				addon:SetStateHeaderOnEnter(ToolsSmartButtonSelectGroup)
			end,
			tooltip = "닫혀 있을때 마우스를 가져만 가도 자동으로 열립니다"
		},
		{	type = "RadioButton",
			col = 4,
			text = "확장방향 설정",
			get = function() return db[ToolsSmartButtonSelectGroup].viewpoint end,
			set = function(v)
				db[ToolsSmartButtonSelectGroup].viewpoint = v
				addon:SetMainButtonBackdrop(ToolsSmartButtonSelectGroup, addon.frames[ToolsSmartButtonSelectGroup])
				addon:SetButtonPoint(ToolsSmartButtonSelectGroup)
			end,
			values = {"왼쪽", "오른쪽", "위", "아래"},
			tooltips = {"왼쪽으로 확장", "오른쪽으로 확장", "위로 확장", "아래로 확장"}
		},
		{	type = "ColorPicker",
			text = "배경의 색상설정",
			default = {0,0,0,0.6},
			hasOpacity = true,
			get = function() return db[ToolsSmartButtonSelectGroup].color.backdrop end,
			set = function(c)
				db[ToolsSmartButtonSelectGroup].color.backdrop ={c.r,c.g,c.b,c.a}
				addon:SetBackdropColor(ToolsSmartButtonSelectGroup)
			end,
			tooltip = "배경(보더)의 배경색상을 설정합니다"
		},
		{	type = "ColorPicker",
			text = "배경의 테두리 색상설정",
			default = {1,1,1,1},
			hasOpacity = true,
			get = function() return db[ToolsSmartButtonSelectGroup].color.border end,
			set = function(c)
				db[ToolsSmartButtonSelectGroup].color.border ={c.r,c.g,c.b,c.a}
				addon:SetBackdropColor(ToolsSmartButtonSelectGroup)
			end,
			tooltip = "배경(보더)의 테두리색상을 설정합니다"
		},
		ToolsOptionCore.Get:Texture(
			{get = function() return db[ToolsSmartButtonSelectGroup].overlay end,
			set = function(v)
				db[ToolsSmartButtonSelectGroup].overlay = v
				addon:SetTexture(ToolsSmartButtonSelectGroup)
			end},
			{get = function() return db[ToolsSmartButtonSelectGroup].BT3 end,
			set = function(v)
				db[ToolsSmartButtonSelectGroup].BT3 = v
				addon:SetTexture(ToolsSmartButtonSelectGroup)
			end})
	}
	ToolsSmartButtonSelectID = ToolsOptionCore:RegesterOption(v)
end
ToolsOptionCore:Insert("ToolsSmartButton")