----------------------------------------------
--  wowshell CooldownCount GUI Options Frame
--  精灵冷却计时设置界面
--  新版UI设置面板.
--  作者: 月色狼影
--  $LastChangedBy: 月色狼影 $
--  $Rev: 1615 $
--  $Date: 2008-10-13 19:49:29 +0900 (월, 13 10 2008) $
----------------------------------------------
local print = print
local SM = LibStub("LibSharedMedia-3.0")
local fontList = SM:List("font")

local title, subTitle, subText

local wsCCShineSize = {
	1, "아이콘",
	2, "시스템",
	3, "원형",
	4, "폭발",
	5, "하트",
}

local wsCCPOINTS = {
	"TOP", "상단",
	"BOTTOM", "하단",
	"LEFT", "좌측",
	"RIGHT", "우측",
	"TOPLEFT", "좌측 상단",
	"TOPRIGHT", "우측 상단",
	"CENTER", "중앙",
	"BOTTOMLEFT", "좌측 하단",
	"BOTTOMRIGHT", "우측 하단",
}

function CreateOtherOptions(self, db)
	--title, sub text
	local tmp = GetAddOnMetadata("wsCC", "Title");
	local subText = "버전: "..wsSVNVer
	local title, subTitle = self:MakeTitleTextAndSubText(tmp, subText)
	subTitle:SetPoint("BOTTOMLEFT", 5, 10);
	--make scrool
	self:MakeScrollFrame();

	local TogglewsCCNum = self:MakeToggle(
		"name", "대기시간 숫자 표시/숨김",
		"description", "재사용 대기시간 숫자를 보이거나 숨깁니다.",
		"default", true,
		"getFunc", function() return db.Other.num end,
		"setFunc", function(v) db.Other.num = v end,
		self:Refresh()
	):SetPoint("TOPLEFT", title, "BOTTOMLEFT", 0, -20);

	local TogglewsCCWarn = self:MakeToggle(
		"name", "완료 문자 표시/숨김",
		"description", "중앙 아이콘의 재사용 대기시간 완료 메시지를 보이거나 숨깁니다.",
		"default", false,
		"getFunc", function() return db.Other.text end,
		"setFunc", function(v) db.Other.text = v end,
		self:Refresh()
	):SetPoint("TOPLEFT", title, "BOTTOMLEFT", 0, -50);

	local SetWarnTextSize = self:MakeSlider(
		"name", "완료 문자 크기",
		"description", "중앙 아이콘에 보여지는 문자의 크기를 설정합니다.",
		"minText", "16",
		"maxText", "32",
		"minValue", 16,
		"maxValue", 32,
		"step", 1,
		"default", 20,
		"getFunc", function() return db.Other.size end,
		"setFunc", function(v) db.Other.size = v end,
		"currentTextFunc", function(v) return ("%d"):format(v) end,
		self:Refresh()
	):SetPoint("TOPLEFT", title, "BOTTOMLEFT", 0, -88);


end

function CreateSpellOptions(self, db)
	local title, subText = self:MakeTitleTextAndSubText("마법책", "마법책의 재사용 대기시간을 설정합니다.");

	self:MakeScrollFrame();

	local ToggleSpellBookWarn = self:MakeToggle(
		"name", "마법책 대기시간 표시",
		"description", "마법책에 재사용 대기시간을 표시합니다.",
		"default", false,
		"current", db.Spell.config,
		"setFunc", function(v) db.spell.config = v end,
		self:Refresh()
	):SetPoint("TOPLEFT", subText, "BOTTOMLEFT", 0, -12);

	local SetSpellBookMin = self:MakeSlider(
		"name", "최소 시간",
		"description", "대기시간 타이머가 감지할 최소 시간(초)을 설정합니다.",
		"minText", "1",
		"maxText", "5",
		"minValue", 1,
		"maxValue", 5,
		"step", 0.1,
		"default", 3,
		"current", db.Spell.min,
		"setFunc", function(v) db.Spell.min = v end,
		"currentTextFunc", function(v) return ("%d"):format(v) end,
		self:Refresh()
	):SetPoint("TOPLEFT", subText, "BOTTOMLEFT", 0, -50)

	local ToggleSpellBookShine = self:MakeToggle(
		"name", "번쩍임",
		"description", "마법책 재사용 대기시간 종료시 번쩍임 기능을 사용합니다.",
		"default", true,
		"current", db.Spell.shine,
		"setFunc", function(v) db.Spell.config = v end,
		self:Refresh()
	):SetPoint("TOPLEFT", subText, "BOTTOMRIGHT", -180, -12);

	local SetSpellBookShineTime = self:MakeSlider(
		"name", "번쩍임 유지 시간",
		"description", "재사용 대기시간 종료시 번쩍임의 유지 시간(초)을 설정합니다.",
		"minText", "0.1",
		"maxText", "3",
		"minValue", 0.1,
		"maxValue", 3,
		"default", 1,
		"current", db.Spell.time,
		"setFunc", function(v)  db.Spell.time = v end,
		"currentTextFunc", function(v) return ("%.1f"):format(v) end,
		self:Refresh()
	):SetPoint("TOPLEFT", subText, "BOTTOMRIGHT", -180, -50);

	local ToggleSpellBookHide = self:MakeToggle(
		"name", "기본 대기시간 숨김",
		"description", "기본 블리자드 재사용 대기시간 표시 기능을 숨깁니다.",
		"default", false,
		"current", db.Spell.hide,
		"setFunc", function(v) db.Spell.hide = v end,
		self:Refresh()
	):SetPoint("TOPLEFT", subText, "BOTTOMLEFT", 0, -88);

	local SetSpellBookScale = self:MakeSlider(
		"name", "번쩍임 크기",
		"description", "번쩍임의 크기를 설정합니다.",
		"minText", "50%",
		"maxText", "200%",
		"minValue", 50,
		"maxValue", 200,
		"default", 150,
		"current", db.Spell.scale,
		"setFunc", function(v) db.Spell.scale = v end,
		"currentTextFunc", function(v) return ("%d%%"):format(v) end,
		self:Refresh()
	):SetPoint("TOPLEFT", subText, "BOTTOMRIGHT", -180, -116);

	local SetSpellBookShineType = self:MakeDropDown(
		"name", "번쩍임 형식",
		"description", "번쩍임 형식을 설정합니다.",
		"values", wsCCShineSize,
		"default", 2,
		"current", db.Spell.style,
		"setFunc", function(v) db.Spell.style = v  end,
		self:Refresh()
	):SetPoint("TOPLEFT", subText, "BOTTOMLEFT", 0, -136)
end

function CreateActionOptions(self, db)
	local title, subText = self:MakeTitleTextAndSubText("행동 단축바", "행동 단축바의 재사용 대기시간을 설정합니다.");

	self:MakeScrollFrame();

	self:MakeToggle(
		"name", "행동 단축바 대기시간 표시",
		"description", "행동 단축바의 재사용 대기시간을 표시합니다.",
		"default", true,
		"current", db.Action.config,
		"setFunc", function(v) db.Action.config = v end,
		self:Refresh()
	):SetPoint("TOPLEFT", subText, "BOTTOMLEFT", 0, -12);

	self:MakeSlider(
		"name", "글꼴 크기",
		"description", "재사용 대기시간 글꼴 크기를 설정합니다.",
		"minText", "5",
		"maxText", "30",
		"minValue", 5,
		"maxValue", 30,
		"step", 1,
		"default", 20,
		"current", db.Action.size,
		"setFunc", function(v) db.Action.size = v end,
		"currentTextFunc", function(v) return ("%d"):format(v) end,
		self:Refresh()
	):SetPoint("TOPLEFT", subText, "BOTTOMRIGHT", -180, -12);

	self:MakeToggle(
		"name", "번쩍임",
		"description", "행동 단축바에 번쩍임 기능을 사용합니다.",
		"default", true,
		"current", db.Action.shine,
		"setFunc", function(v) db.Action.shine = v end,
		self:Refresh()
	):SetPoint("TOPLEFT", subText, "BOTTOMLEFT", 0, -50)

	self:MakeDropDown(
		"name", "번쩍임 형식",
		"description", "번쩍임 형식을 설정합니다.",
		"values", wsCCShineSize,
		"default", 2,
		"current", db.Action.style,
		"setFunc", function(v) db.Action.style = v end,
		self:Refresh()
	):SetPoint("TOPLEFT", subText, "BOTTOMRIGHT", -180, -68);

	self:MakeSlider(
		"name", "번쩍임 유지 시간",
		"description", "재사용 대기시간 종료시 번쩍임의 유지 시간(초)을 설정합니다.",
		"minText", "0.5",
		"maxText", "3",
		"minValue", 0.5,
		"maxValue", 3,
		"step", 0.5,
		"default", 1,
		"current", db.Action.time,
		"setFunc", function(v) db.Action.time = v end,
		"currentTextFunc", function(v) return ("%d"):format(v) end,
		self:Refresh()
	):SetPoint("TOPLEFT", subText, "BOTTOMLEFT", 0, -88);

	self:MakeSlider(
		"name", "최소 시간",
		"description", "대기시간 타이머가 감지할 최소 시간(초)을 설정합니다.",
		"minText", "1",
		"maxText", "5",
		"minValue", 1,
		"maxValue", 5,
		"step", 0.5,
		"default", 3,
		"current", db.Action.min,
		"setFunc", function(v) db.Action.min = v end,
		"currentTextFunc", function(v) return ("%d"):format(v) end,
		self:Refresh()
	):SetPoint("TOPLEFT", subText, "BOTTOMRIGHT", -180, -118);

	self:MakeSlider(
		"name", "번쩍임 크기",
		"description", "번쩍임 크기를 설정합니다.",
		"minText", "50%",
		"maxText", "200%",
		"minValue", 50,
		"maxValue", 200,
		"step", 10,
		"default", 150,
		"current", db.Action.scale,
		"setFunc", function(v) db.Action.scale = v end,
		"currentTextFunc", function(v) return ("%d%%"):format(v) end,
		self:Refresh()
	):SetPoint("TOPLEFT", subText, "BOTTOMLEFT", 0, -136)

		--都有关于中间图标显示
	self:MakeToggle(
		"name", "중앙 아이콘",
		"description", "중앙 아이콘을 표시합니다.",
		"default", false,
		"current", db.Action.center,
		"setFunc", function(v) db.Action.center = v end,
		self:Refresh()
	):SetPoint("TOPLEFT", subText, "BOTTOMLEFT", 0, -174);

	self:MakeSlider(
		"name", "중앙 아이콘 크기",
		"description", "중앙 아이콘의 크기를 설정합니다.",
		"minText", "50%",
		"maxText", "200%",
		"minValue", 50,
		"maxValue", 200,
		"step", 5,
		"default", 100,
		"current", db.Action.cscale,
		"setFunc", function(v) db.Action.cscale = v end,
		"currentTextFunc", function(v) return ("%d%%"):format(v) end,
		self:Refresh()
	):SetPoint("TOPLEFT", subText, "BOTTOMRIGHT", -180, -174);

	self:MakeDropDown(
		"name", "중앙 아이콘 위치",
		"description", "중앙 아이콘의 위치를 설정합니다.",
		"values", wsCCPOINTS,
		"default", "TOP",
		"current", db.Action.cpoint,
		"setFunc", function(v) db.Action.cpoint = v end,
		self:Refresh()
	):SetPoint("TOPLEFT", subText, "BOTTOMLEFT", 0, -220);

	self:MakeToggle(
		"name", "중앙 아이콘 강조",
		"description", "중앙 아이콘 강조를 설정합니다.",
		"default", true,
		"current", db.Action.cmode,
		"setFunc", function(v) db.Action.cmode = v end,
		self:Refresh()
	):SetPoint("TOPLEFT", subText, "BOTTOMRIGHT", -180, -212);

	self:MakeSlider(
		"name", "중앙 아이콘 투명도",
		"description", "중앙 아이콘의 투명도를 설정합니다.",
		"minText", "0",
		"maxText", "1",
		"minValue", 0,
		"maxValue", 1,
		"step", 0.1,
		"default", 1,
		"current", db.Action.calpha,
		"setFunc", function(v) db.Action.calpha = v end,
		"currentTextFunc", function(v) return ("%.1f"):format(v) end,
		self:Refresh()
	):SetPoint("TOPLEFT", subText, "BOTTOMLEFT", 0, -268);

	self:MakeSlider(
		"name", "중앙 아이콘 시간",
		"description", "중앙 아이콘의 유지시간(초)을 설정합니다.",
		"minText", "0",
		"maxText", "3",
		"minValue", 0,
		"maxValue", 3,
		"step", 0.1,
		"default", 1,
		"current", db.Action.ctime,
		"setFunc", function(v) db.Action.ctime = v end,
		"currentTextFunc", function(v) return ("%.1f"):format(v) end,
		self:Refresh()
	):SetPoint("TOPLEFT", subText, "BOTTOMRIGHT", -180, -268);

	self:MakeToggle(
		"name", "효과음",
		"description", "재사용 대기시간 완료시 효과음을 재생합니다.",
		"default", false,
		"current", db.Action.sound,
		"setFunc", function(v) db.Action.sound = v end,
		self:Refresh()
	):SetPoint("TOPLEFT", subText, "BOTTOMLEFT", 0, -310);

	self:MakeToggle(
		"name", "기본 대기시간 숨김",
		"description", "기본 블리자드 재사용 대기시간 표시 기능을 숨깁니다.",
		"default", false,
		"current", db.Action.hide,
		"setFunc", function(v) db.Action.hide = v end,
		self:Refresh()
	):SetPoint("TOPLEFT", subText, "BOTTOMRIGHT", -180, -310);
end

function CreateBuffOptions(self, db)
	local title, subText = self:MakeTitleTextAndSubText("강화/약화 효과", "유닛 창의 버프/디버프의 재사용 대기시간을 설정합니다.");

	self:MakeScrollFrame();

	self:MakeToggle(
		"name", "강화/약화 효과 대기시간 표시",
		"description", "버프/디버프의 재사용 대시시간을 표시합니다.",
		"default", false,
		"current", db.Buff.config,
		"setFunc", function(v) db.Buff.config = v end,
		self:Refresh()
	):SetPoint("TOPLEFT", subText, "BOTTOMLEFT", 0, -12);

	self:MakeDropDown(
		"name", "위치",
		"description", "버프/디버프의 재사용 대기시간을 표시할 위치를 설정합니다.",
		"values", wsCCPOINTS,
		"default", "TOPRIGHT",
		"current", db.Buff.point,
		"setFunc", function(v) db.Buff.point = v end,
		self:Refresh()
	):SetPoint("TOPLEFT", subText, "BOTTOMLEFT", 0, -60);

	self:MakeSlider(
		"name", "최소 시간",
		"description", "대기시간 타이머가 감지할 최소 시간(초)을 설정합니다.",
		"minText", "0.5",
		"maxText", "5",
		"minValue", 0.5,
		"maxValue", 5,
		"step", 0.5,
		"default", 1,
		"getFunc", function() return db.Buff.max/60 end,
		"setFunc", function(v) db.Buff.max = (v * 60) end,
		"currentTextFunc", function(v) return ("%d분(%.1f초)"):format(v*60, v) end,
		self:Refresh()
	):SetPoint("TOPLEFT", subText, "BOTTOMLEFT", 0, -108);

	self:MakeSlider(
		"name", "글꼴 크기",
		"description", "재사용 대기시간 글꼴 크기를 설정합니다.",
		"minText", "8",
		"maxText", "16",
		"minValue", 8,
		"maxValue", 16,
		"step", 1,
		"default", 10,
		"getFunc", function() return db.Buff.size end,
		"setFunc", function(v) db.Buff.size = v end,
		"currentTextFunc", function(v) return ("%d"):format(v) end,
		self:Refresh()
	):SetPoint("TOPLEFT", subText, "BOTTOMLEFT", 0, -156);

	self:MakeToggle(
		"name", "기본 대기시간 숨김",
		"description", "기본 블리자드 재사용 대기시간 표시 기능을 숨깁니다.",
		"default", false,
		"current", db.Buff.hide,
		"setFunc", function(v) db.Buff.hide = v end,
		self:Refresh()
	):SetPoint("TOPLEFT", subText, "BOTTOMLEFT", 0, -204);
end

function CreateColorOptions(self, db)
	local title, subText = self:MakeTitleTextAndSubText("거리", "거리에 따른 색상 변화 사용을 설정합니다.");

	self:MakeScrollFrame()
	self:MakeColorPicker(
		"name", "사거리(마나) 색상 변화 사용",
		"description", "행동 단축바에 사거리(마나)에 따른 색상 변화를 사용합니다.",
		"hasAlpha", false,
		"defaultR", 0.5,
		"defaultG", 0.5,
		"defaultB", 1,
		"getFunc", function() return unpack(db.Color.Mana) end,
		"setFunc", function(r, g, b) db.Color.Mana.r, db.Color.Mana.g, db.Color.Mana.b = r, g, b end,
		self:Refresh()
	):SetPoint("TOPLEFT", subText, "BOTTOMLEFT", 0, -12);
end

function CreatePetOptions(self, db)
	local title, subText = self:MakeTitleTextAndSubText("소환수", "소환수의 재사용 대기시간을 설정합니다.");

	self:MakeScrollFrame();

	self:MakeToggle(
		"name", "소환수 대기시간 표시",
		"description", "소환수의 재사용 대기시간을 보여주거나 숨깁니다.",
		"default", true,
		"current", db.Pet.config,
		"setFunc", function(v) db.Pet.config = v end,
		self:Refresh()
	):SetPoint("TOPLEFT", subText, "BOTTOMLEFT", 0, -12);

	self:MakeSlider(
		"name", "글꼴 크기",
		"description", "재사용 대기시간 글꼴 크기를 설정합니다.",
		"minText", "5",
		"maxText", "30",
		"minValue", 5,
		"maxValue", 30,
		"step", 1,
		"default", 20,
		"current", db.Pet.size,
		"setFunc", function(v) db.Pet.size = v end,
		"currentTextFunc", function(v) return ("%d"):format(v) end,
		self:Refresh()
	):SetPoint("TOPLEFT", subText, "BOTTOMRIGHT", -180, -12);

	self:MakeToggle(
		"name", "번쩍임",
		"description", "소환수의 번쩍임 기능을 사용합니다.",
		"default", true,
		"current", db.Pet.shine,
		"setFunc", function(v) db.Pet.shine = v end,
		self:Refresh()
	):SetPoint("TOPLEFT", subText, "BOTTOMLEFT", 0, -50)

	self:MakeDropDown(
		"name", "번쩍임 형식",
		"description", "번쩍임 형식을 설정합니다.",
		"values", wsCCShineSize,
		"default", 2,
		"current", db.Pet.style,
		"setFunc", function(v) db.Pet.style = v end,
		self:Refresh()
	):SetPoint("TOPLEFT", subText, "BOTTOMRIGHT", -180, -68);

	self:MakeSlider(
		"name", "번쩍임 유지 시간",
		"description", "재사용 대기시간 종료시 번쩍임의 유지 시간(초)을 설정합니다.",
		"minText", "0.5",
		"maxText", "3",
		"minValue", 0.5,
		"maxValue", 3,
		"step", 0.5,
		"default", 1,
		"current", db.Pet.time,
		"setFunc", function(v) db.Pet.time = v end,
		"currentTextFunc", function(v) return ("%d"):format(v) end,
		self:Refresh()
	):SetPoint("TOPLEFT", subText, "BOTTOMLEFT", 0, -88);

	self:MakeSlider(
		"name", "최소 시간",
		"description", "대기시간 타이머가 감지할 최소 시간(초)을 설정합니다.",
		"minText", "1",
		"maxText", "5",
		"minValue", 1,
		"maxValue", 5,
		"step", 0.5,
		"default", 3,
		"current", db.Pet.min,
		"setFunc", function(v) db.Pet.min = v end,
		"currentTextFunc", function(v) return ("%d"):format(v) end,
		self:Refresh()
	):SetPoint("TOPLEFT", subText, "BOTTOMRIGHT", -180, -118);

	self:MakeSlider(
		"name", "번쩍임 크기",
		"description", "번쩍임의 크기를 설정합니다.",
		"minText", "50%",
		"maxText", "200%",
		"minValue", 50,
		"maxValue", 200,
		"step", 10,
		"default", 150,
		"current", db.Pet.scale,
		"setFunc", function(v) db.Pet.scale = v end,
		"currentTextFunc", function(v) return ("%d%%"):format(v) end,
		self:Refresh()
	):SetPoint("TOPLEFT", subText, "BOTTOMLEFT", 0, -136)

		--都有关于中间图标显示
	self:MakeToggle(
		"name", "중앙 아이콘",
		"description", "중앙 아이콘을 표시합니다.",
		"default", false,
		"current", db.Pet.center,
		"setFunc", function(v) db.Pet.center = v end,
		self:Refresh()
	):SetPoint("TOPLEFT", subText, "BOTTOMLEFT", 0, -174);

	self:MakeSlider(
		"name", "중앙 아이콘 크기",
		"description", "중앙 아이콘의 크기를 설정합니다.",
		"minText", "50%",
		"maxText", "200%",
		"minValue", 50,
		"maxValue", 200,
		"step", 5,
		"default", 100,
		"current", db.Pet.cscale,
		"setFunc", function(v) db.Pet.cscale = v end,
		"currentTextFunc", function(v) return ("%d%%"):format(v) end,
		self:Refresh()
	):SetPoint("TOPLEFT", subText, "BOTTOMRIGHT", -180, -174);

	self:MakeDropDown(
		"name", "중앙 아이콘 위치",
		"description", "중앙 아이콘의 위치를 설정합니다.",
		"values", wsCCPOINTS,
		"default", "TOP",
		"current", db.Pet.cpoint,
		"setFunc", function(v) db.Pet.cpoint = v end,
		self:Refresh()
	):SetPoint("TOPLEFT", subText, "BOTTOMLEFT", 0, -220);

	self:MakeToggle(
		"name", "중앙 아이콘 강조",
		"description", "중앙 아이콘 강조를 설정합니다.",
		"default", true,
		"current", db.Pet.cmode,
		"setFunc", function(v) db.Pet.cmode = v end,
		self:Refresh()
	):SetPoint("TOPLEFT", subText, "BOTTOMRIGHT", -180, -212);

	self:MakeSlider(
		"name", "중앙 아이콘 투명도",
		"description", "중앙 아이콘의 투명도를 설정합니다.",
		"minText", "0",
		"maxText", "1",
		"minValue", 0,
		"maxValue", 1,
		"step", 0.1,
		"default", 1,
		"current", db.Pet.calpha,
		"setFunc", function(v) db.Pet.calpha = v end,
		"currentTextFunc", function(v) return ("%.1f"):format(v) end,
		self:Refresh()
	):SetPoint("TOPLEFT", subText, "BOTTOMLEFT", 0, -268);

	self:MakeSlider(
		"name", "중앙 아이콘 시간",
		"description", "중앙 아이콘의 유지 시간(초)를 설정합니다.",
		"minText", "0",
		"maxText", "3",
		"minValue", 0,
		"maxValue", 3,
		"step", 0.1,
		"default", 1,
		"current", db.Pet.ctime,
		"setFunc", function(v) db.Pet.ctime = v end,
		"currentTextFunc", function(v) return ("%.1f"):format(v) end,
		self:Refresh()
	):SetPoint("TOPLEFT", subText, "BOTTOMRIGHT", -180, -268);

	self:MakeToggle(
		"name", "효과음",
		"description", "재사용 대기시간 완료시 효과음을 재생합니다.",
		"default", false,
		"current", db.Pet.sound,
		"setFunc", function(v) db.Pet.sound = v end,
		self:Refresh()
	):SetPoint("TOPLEFT", subText, "BOTTOMLEFT", 0, -310);

	self:MakeToggle(
		"name", "기본 대기시간 숨김",
		"description", "기본 블리자드 재사용 대기시간 표시 기능을 숨깁니다.",
		"default", false,
		"current", db.Pet.hide,
		"setFunc", function(v) db.Pet.hide = v end,
		self:Refresh()
	):SetPoint("TOPLEFT", subText, "BOTTOMRIGHT", -180, -310);
end

function CreateItemOptions(self, db)
	local title, subText = self:MakeTitleTextAndSubText("아이템", "아이템의 재사용 대기시간을 설정합니다.");

	self:MakeScrollFrame();

	self:MakeToggle(
		"name", "아이템 대기시간 표시",
		"description", "아이템의 재사용 대기시간을 표시합니다.",
		"default", true,
		"current", db.Item.config,
		"setFunc", function(v) db.Item.config = v end,
		self:Refresh()
	):SetPoint("TOPLEFT", subText, "BOTTOMLEFT", 0, -12);

	self:MakeSlider(
		"name", "글꼴 크기",
		"description", "재사용 대기시간 글꼴 크기를 설정합니다.",
		"minText", "5",
		"maxText", "30",
		"minValue", 5,
		"maxValue", 30,
		"step", 1,
		"default", 20,
		"current", db.Item.size,
		"setFunc", function(v) db.Item.size = v end,
		"currentTextFunc", function(v) return ("%d"):format(v) end,
		self:Refresh()
	):SetPoint("TOPLEFT", subText, "BOTTOMRIGHT", -180, -12);

	self:MakeToggle(
		"name", "번쩍임",
		"description", "아이템 재사용 대기시간 종료시 번쩍임 기능을 사용합니다.",
		"default", true,
		"current", db.Item.shine,
		"setFunc", function(v) db.Item.shine = v end,
		self:Refresh()
	):SetPoint("TOPLEFT", subText, "BOTTOMLEFT", 0, -50)

	self:MakeDropDown(
		"name", "번쩍임 형식",
		"description", "번쩍임 형식을 설정합니다.",
		"values", wsCCShineSize,
		"default", 2,
		"current", db.Item.style,
		"setFunc", function(v) db.Item.style = v end,
		self:Refresh()
	):SetPoint("TOPLEFT", subText, "BOTTOMRIGHT", -180, -68);

	self:MakeSlider(
		"name", "번쩍임 유지 시간",
		"description", "재사용 대기시간 종료시 번쩍임의 유지 시간(초)을 설정합니다.",
		"minText", "0.5",
		"maxText", "3",
		"minValue", 0.5,
		"maxValue", 3,
		"step", 0.5,
		"default", 1,
		"current", db.Item.time,
		"setFunc", function(v) db.Item.time = v end,
		"currentTextFunc", function(v) return ("%d"):format(v) end,
		self:Refresh()
	):SetPoint("TOPLEFT", subText, "BOTTOMLEFT", 0, -88);

	self:MakeSlider(
		"name", "최소 시간",
		"description", "대기시간 타이머가 감지할 최소 시간(초)을 설정합니다.",
		"minText", "1",
		"maxText", "5",
		"minValue", 1,
		"maxValue", 5,
		"step", 0.5,
		"default", 3,
		"current", db.Item.min,
		"setFunc", function(v) db.Item.min = v end,
		"currentTextFunc", function(v) return ("%d"):format(v) end,
		self:Refresh()
	):SetPoint("TOPLEFT", subText, "BOTTOMRIGHT", -180, -118);

	self:MakeSlider(
		"name", "번쩍임 크기",
		"description", "번쩍임의 크기를 설정합니다.",
		"minText", "50%",
		"maxText", "200%",
		"minValue", 50,
		"maxValue", 200,
		"step", 10,
		"default", 150,
		"current", db.Item.scale,
		"setFunc", function(v) db.Item.scale = v end,
		"currentTextFunc", function(v) return ("%d%%"):format(v) end,
		self:Refresh()
	):SetPoint("TOPLEFT", subText, "BOTTOMLEFT", 0, -136)

	self:MakeToggle(
		"name", "기본 대기시간 숨김",
		"description", "기본 블리자드 재사용 대기시간 표시 기능을 숨깁니다.",
		"default", false,
		"current", db.Item.hide,
		"setFunc", function(v) db.Item.hide = v end,
		self:Refresh()
	):SetPoint("TOPLEFT", subText, "BOTTOMLEFT", 0, -180);

end

function iOnEvent (self, event)
	local db = wsCCDB

	LibStub("LibSimpleOptions-1.0").AddOptionsPanel("wsCC", function(self) CreateOtherOptions(self, db) end)
	LibStub("LibSimpleOptions-1.0").AddSuboptionsPanel("wsCC", "SpellBook", function(self) CreateSpellOptions(self, db) end)
	LibStub("LibSimpleOptions-1.0").AddSuboptionsPanel("wsCC", "Action", function(self) CreateActionOptions(self, db) end);
	LibStub("LibSimpleOptions-1.0").AddSuboptionsPanel("wsCC", "Buff", function(self) CreateBuffOptions(self, db ) end)
--	LibStub("LibSimpleOptions-1.0").AddSuboptionsPanel("wsCC", "Color", function(self) CreateColorOptions(self, db ) end)
	LibStub("LibSimpleOptions-1.0").AddSuboptionsPanel("wsCC", "Pet", function(self) CreatePetOptions(self, db) end);
	LibStub("LibSimpleOptions-1.0").AddSuboptionsPanel("wsCC", "Item", function(self) CreateItemOptions(self, db) end);
	LibStub("LibSimpleOptions-1.0").AddSlashCommand("wsCC", "/wscc");
end

local optionFrame = CreateFrame("Frame");
optionFrame:RegisterEvent("PLAYER_LOGIN");
optionFrame:SetScript("OnEvent", iOnEvent)