You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
976 lines
34 KiB
976 lines
34 KiB
|
3 years ago
|
-- This is the editbox module from Chatter by Antiarc
|
||
|
|
|
||
|
|
if not Prat.BN_CHAT then return end -- Requires 3.3.5
|
||
|
|
|
||
|
|
Prat:AddModuleToLoad(function()
|
||
|
|
|
||
|
|
local PRAT_MODULE = Prat:RequestModuleName("Editbox")
|
||
|
|
|
||
|
|
if PRAT_MODULE == nil then
|
||
|
|
return
|
||
|
|
end
|
||
|
|
|
||
|
|
local mod = Prat:NewModule(PRAT_MODULE, "AceHook-3.0")
|
||
|
|
|
||
|
|
local PL = mod.PL
|
||
|
|
|
||
|
|
|
||
|
|
--[==[@debug@
|
||
|
|
PL:AddLocale(PRAT_MODULE, "enUS", {
|
||
|
|
["Editbox"] = true,
|
||
|
|
["Editbox options."] = true,
|
||
|
|
["Top"] = true,
|
||
|
|
["Bottom"] = true,
|
||
|
|
["Free-floating"] = true,
|
||
|
|
["Free-floating, Locked"] = true,
|
||
|
|
["Background texture"] = true,
|
||
|
|
["Border texture"] = true,
|
||
|
|
["Background color"] = true,
|
||
|
|
["Border color"] = true,
|
||
|
|
["Background Inset"] = true,
|
||
|
|
["Tile Size"] = true,
|
||
|
|
["Edge Size"] = true,
|
||
|
|
["Attach to..."] = true,
|
||
|
|
["Attach edit box to..."] = true,
|
||
|
|
["Color border by channel"] = true,
|
||
|
|
["Sets the frame's border color to the color of your currently active channel"] = true,
|
||
|
|
["Use Alt key for cursor movement"] = true,
|
||
|
|
["Requires the Alt key to be held down to move the cursor in chat"] = true,
|
||
|
|
["Font"] = true,
|
||
|
|
currently_broken_alt_behavior = "Arrow key behaviour broken in current WoW client,\n\nUse ALT-UP and ALT-DOWN instead of just UP DOWN to access history",
|
||
|
|
["Select the font to use for the edit box"] = true,
|
||
|
|
})
|
||
|
|
--@end-debug@]==]
|
||
|
|
|
||
|
|
-- These Localizations are auto-generated. To help with localization
|
||
|
|
-- please go to http://www.wowace.com/projects/prat-3-0/localization/
|
||
|
|
|
||
|
|
--@non-debug@
|
||
|
|
do
|
||
|
|
local L
|
||
|
|
|
||
|
|
|
||
|
|
L = {
|
||
|
|
["Editbox"] = {
|
||
|
|
["Attach edit box to..."] = true,
|
||
|
|
["Attach to..."] = true,
|
||
|
|
["Background color"] = true,
|
||
|
|
["Background Inset"] = true,
|
||
|
|
["Background texture"] = true,
|
||
|
|
["Border color"] = true,
|
||
|
|
["Border texture"] = true,
|
||
|
|
["Bottom"] = true,
|
||
|
|
["Color border by channel"] = true,
|
||
|
|
["currently_broken_alt_behavior"] = [=[Arrow key behaviour broken in current WoW client,
|
||
|
|
|
||
|
|
Use ALT-UP and ALT-DOWN instead of just UP DOWN to access history]=],
|
||
|
|
["Edge Size"] = true,
|
||
|
|
["Editbox"] = true,
|
||
|
|
["Editbox options."] = true,
|
||
|
|
["Font"] = true,
|
||
|
|
["Free-floating"] = true,
|
||
|
|
["Free-floating, Locked"] = true,
|
||
|
|
["Requires the Alt key to be held down to move the cursor in chat"] = true,
|
||
|
|
["Select the font to use for the edit box"] = true,
|
||
|
|
["Sets the frame's border color to the color of your currently active channel"] = true,
|
||
|
|
["Tile Size"] = true,
|
||
|
|
["Top"] = true,
|
||
|
|
["Use Alt key for cursor movement"] = true,
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
PL:AddLocale(PRAT_MODULE, "enUS",L)
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
L = {
|
||
|
|
["Editbox"] = {
|
||
|
|
["Attach edit box to..."] = "Définit la position de la boîte d'édition.",
|
||
|
|
["Attach to..."] = "Position",
|
||
|
|
["Background color"] = "Couleur du fond",
|
||
|
|
["Background Inset"] = "Marge du fond",
|
||
|
|
["Background texture"] = "Texture du fond",
|
||
|
|
["Border color"] = "Couleur de la bordure",
|
||
|
|
["Border texture"] = "Texture de la bordure",
|
||
|
|
["Bottom"] = "Bas",
|
||
|
|
["Color border by channel"] = "Colorier avec le canal",
|
||
|
|
--[[Translation missing --]]
|
||
|
|
["currently_broken_alt_behavior"] = [=[Arrow key behaviour broken in current WoW client,
|
||
|
|
|
||
|
|
Use ALT-UP and ALT-DOWN instead of just UP DOWN to access history]=],
|
||
|
|
["Edge Size"] = "Taille de la bordure",
|
||
|
|
["Editbox"] = "Boite d'édition",
|
||
|
|
["Editbox options."] = "Options de la boite d'édition.",
|
||
|
|
["Font"] = "Police d'écriture",
|
||
|
|
["Free-floating"] = "Flottante",
|
||
|
|
["Free-floating, Locked"] = "Flottante, verrouillée",
|
||
|
|
["Requires the Alt key to be held down to move the cursor in chat"] = "Requiert de maintenir la touche Alt enfoncée pour déplacer le curseur lorsque vous écrivez un message.",
|
||
|
|
["Select the font to use for the edit box"] = "Définit la police du texte dans la boîte d'édition.",
|
||
|
|
["Sets the frame's border color to the color of your currently active channel"] = "Définit la couleur de la bordure avec la couleur du canal actif.",
|
||
|
|
["Tile Size"] = "Taille du fond",
|
||
|
|
["Top"] = "Haut",
|
||
|
|
["Use Alt key for cursor movement"] = "Curseur avec Alt",
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
PL:AddLocale(PRAT_MODULE, "frFR",L)
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
L = {
|
||
|
|
["Editbox"] = {
|
||
|
|
["Attach edit box to..."] = "Hefte Eingabefeld an...",
|
||
|
|
["Attach to..."] = "Befestige an ...",
|
||
|
|
["Background color"] = "Hintergrundfarbe",
|
||
|
|
["Background Inset"] = "Hintergrundeinfügung",
|
||
|
|
["Background texture"] = "Hintergrundbeschaffenheit",
|
||
|
|
["Border color"] = "Randfarbe",
|
||
|
|
["Border texture"] = "Randtextur",
|
||
|
|
["Bottom"] = "Unten",
|
||
|
|
["Color border by channel"] = "Farbrand nach Kanal",
|
||
|
|
["currently_broken_alt_behavior"] = "Das Verhalten der Pfeiltasten im aktuellen WoW-Client ist unterbrochen. Verwende ALT-HOCH und ALT-RUNTER anstelle von nur HOCH RUNTER, um auf den Verlauf zuzugreifen",
|
||
|
|
["Edge Size"] = "Kantengröße",
|
||
|
|
["Editbox"] = "Eingabefeld",
|
||
|
|
["Editbox options."] = "Optionen für das Eingabefeld.",
|
||
|
|
["Font"] = "Schriftart",
|
||
|
|
["Free-floating"] = "Freischwebend",
|
||
|
|
["Free-floating, Locked"] = "Freischwebend, fixiert",
|
||
|
|
["Requires the Alt key to be held down to move the cursor in chat"] = "Das Drücken der Alt-Taste wird benötigt, um den Cursor (Zeiger) im Chat zu bewegen.",
|
||
|
|
["Select the font to use for the edit box"] = "Schriftart auswählen, die im Eingabefeld verwendet wird.",
|
||
|
|
["Sets the frame's border color to the color of your currently active channel"] = "Legt die Randfarbe des Rahmens auf die Farbe des aktuell aktiven Kanals fest",
|
||
|
|
["Tile Size"] = "Kachelgröße",
|
||
|
|
["Top"] = "Oben",
|
||
|
|
["Use Alt key for cursor movement"] = "Benutze Alt-Taste für Cursor-Bewegung",
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
PL:AddLocale(PRAT_MODULE, "deDE",L)
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
L = {
|
||
|
|
["Editbox"] = {
|
||
|
|
["Attach edit box to..."] = "입력창 붙이기...",
|
||
|
|
["Attach to..."] = "붙이기...",
|
||
|
|
["Background color"] = "배경 색상",
|
||
|
|
["Background Inset"] = "배경 삽입",
|
||
|
|
["Background texture"] = "배경 무늬",
|
||
|
|
["Border color"] = "테두리 색상",
|
||
|
|
["Border texture"] = "테두리 무늬",
|
||
|
|
["Bottom"] = "아래",
|
||
|
|
["Color border by channel"] = "채널에 의한 테두리 색상",
|
||
|
|
["currently_broken_alt_behavior"] = [=[화살표 키 동작은 현재 WoW 클라이언트에서 작동하지 않습니다.
|
||
|
|
|
||
|
|
기록 접근에 위쪽 아래쪽 키 대신 ALT-위와 ALT-아래 키를 사용하세요]=],
|
||
|
|
["Edge Size"] = "모서리 크기",
|
||
|
|
["Editbox"] = "대화 입력창 [Editbox]",
|
||
|
|
["Editbox options."] = "대화 입력창을 설정합니다.",
|
||
|
|
["Font"] = "글꼴",
|
||
|
|
["Free-floating"] = "자유로운 이동",
|
||
|
|
["Free-floating, Locked"] = "자유로운 이동, 잠금",
|
||
|
|
["Requires the Alt key to be held down to move the cursor in chat"] = "대화 입력창 커서 이동에 Alt 키를 사용합니다",
|
||
|
|
["Select the font to use for the edit box"] = "대화 입력창에 사용할 글꼴 선택",
|
||
|
|
["Sets the frame's border color to the color of your currently active channel"] = "대화 입력창 테두리 색상을 현재 채널 색상으로 설정",
|
||
|
|
["Tile Size"] = "타일 크기",
|
||
|
|
["Top"] = "위",
|
||
|
|
["Use Alt key for cursor movement"] = "커서 이동에 Alt 키 사용",
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
PL:AddLocale(PRAT_MODULE, "koKR",L)
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
L = {
|
||
|
|
["Editbox"] = {
|
||
|
|
--[[Translation missing --]]
|
||
|
|
["Attach edit box to..."] = "Attach edit box to...",
|
||
|
|
--[[Translation missing --]]
|
||
|
|
["Attach to..."] = "Attach to...",
|
||
|
|
--[[Translation missing --]]
|
||
|
|
["Background color"] = "Background color",
|
||
|
|
--[[Translation missing --]]
|
||
|
|
["Background Inset"] = "Background Inset",
|
||
|
|
--[[Translation missing --]]
|
||
|
|
["Background texture"] = "Background texture",
|
||
|
|
--[[Translation missing --]]
|
||
|
|
["Border color"] = "Border color",
|
||
|
|
--[[Translation missing --]]
|
||
|
|
["Border texture"] = "Border texture",
|
||
|
|
--[[Translation missing --]]
|
||
|
|
["Bottom"] = "Bottom",
|
||
|
|
--[[Translation missing --]]
|
||
|
|
["Color border by channel"] = "Color border by channel",
|
||
|
|
--[[Translation missing --]]
|
||
|
|
["currently_broken_alt_behavior"] = [=[Arrow key behaviour broken in current WoW client,
|
||
|
|
|
||
|
|
Use ALT-UP and ALT-DOWN instead of just UP DOWN to access history]=],
|
||
|
|
--[[Translation missing --]]
|
||
|
|
["Edge Size"] = "Edge Size",
|
||
|
|
--[[Translation missing --]]
|
||
|
|
["Editbox"] = "Editbox",
|
||
|
|
--[[Translation missing --]]
|
||
|
|
["Editbox options."] = "Editbox options.",
|
||
|
|
--[[Translation missing --]]
|
||
|
|
["Font"] = "Font",
|
||
|
|
--[[Translation missing --]]
|
||
|
|
["Free-floating"] = "Free-floating",
|
||
|
|
--[[Translation missing --]]
|
||
|
|
["Free-floating, Locked"] = "Free-floating, Locked",
|
||
|
|
--[[Translation missing --]]
|
||
|
|
["Requires the Alt key to be held down to move the cursor in chat"] = "Requires the Alt key to be held down to move the cursor in chat",
|
||
|
|
--[[Translation missing --]]
|
||
|
|
["Select the font to use for the edit box"] = "Select the font to use for the edit box",
|
||
|
|
--[[Translation missing --]]
|
||
|
|
["Sets the frame's border color to the color of your currently active channel"] = "Sets the frame's border color to the color of your currently active channel",
|
||
|
|
--[[Translation missing --]]
|
||
|
|
["Tile Size"] = "Tile Size",
|
||
|
|
--[[Translation missing --]]
|
||
|
|
["Top"] = "Top",
|
||
|
|
--[[Translation missing --]]
|
||
|
|
["Use Alt key for cursor movement"] = "Use Alt key for cursor movement",
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
PL:AddLocale(PRAT_MODULE, "esMX",L)
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
L = {
|
||
|
|
["Editbox"] = {
|
||
|
|
["Attach edit box to..."] = "Закрепить поле ввода...",
|
||
|
|
["Attach to..."] = "Закрепить...",
|
||
|
|
["Background color"] = "Цвет фона",
|
||
|
|
["Background Inset"] = "Фоновая врезка",
|
||
|
|
["Background texture"] = "Текстура фона",
|
||
|
|
["Border color"] = "Цвет границ",
|
||
|
|
["Border texture"] = "Текстура границы",
|
||
|
|
["Bottom"] = "Внизу",
|
||
|
|
["Color border by channel"] = "Окраска границы по цвету канала",
|
||
|
|
["currently_broken_alt_behavior"] = [=[Поведение стрелок сломано в текущей версии WoW
|
||
|
|
|
||
|
|
Используйте ALT-СтрелкаВверх и ALT-СтрелкаВниз вместо просто стрелок вверх и вниз чтобы открыть историю]=],
|
||
|
|
["Edge Size"] = "Размер контура",
|
||
|
|
["Editbox"] = "Поле ввода",
|
||
|
|
["Editbox options."] = "Настройки поля ввода.",
|
||
|
|
["Font"] = "Шрифт",
|
||
|
|
["Free-floating"] = "Свободно",
|
||
|
|
["Free-floating, Locked"] = "Свободно, заблокировано",
|
||
|
|
["Requires the Alt key to be held down to move the cursor in chat"] = "Для перемещения курсора в чате требуется нажатая клавиша Alt",
|
||
|
|
["Select the font to use for the edit box"] = "Выбор шрифта для области редактирования",
|
||
|
|
["Sets the frame's border color to the color of your currently active channel"] = "Установить окраску границы в цвет вашего активного канала",
|
||
|
|
["Tile Size"] = "Размер мозаики",
|
||
|
|
["Top"] = "Вверху",
|
||
|
|
["Use Alt key for cursor movement"] = "Исп. кливишу Alt для перемещения курсора",
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
PL:AddLocale(PRAT_MODULE, "ruRU",L)
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
L = {
|
||
|
|
["Editbox"] = {
|
||
|
|
["Attach edit box to..."] = "把输入框附加到……",
|
||
|
|
["Attach to..."] = "附加到……",
|
||
|
|
["Background color"] = "背景颜色",
|
||
|
|
["Background Inset"] = "背景嵌入",
|
||
|
|
["Background texture"] = "背景纹理",
|
||
|
|
["Border color"] = "边框颜色",
|
||
|
|
["Border texture"] = "边框纹理",
|
||
|
|
["Bottom"] = "底部",
|
||
|
|
["Color border by channel"] = "频道颜色边框",
|
||
|
|
["currently_broken_alt_behavior"] = [=[在现在WoW客户端里,方向键的行为已损坏,
|
||
|
|
|
||
|
|
使用Alt+上和Alt+下来替代上下键浏览历史]=],
|
||
|
|
["Edge Size"] = "边缘尺寸",
|
||
|
|
["Editbox"] = "输入框",
|
||
|
|
["Editbox options."] = "输入框选项",
|
||
|
|
["Font"] = "字体",
|
||
|
|
["Free-floating"] = "自由浮动",
|
||
|
|
["Free-floating, Locked"] = "自由浮动,锁定",
|
||
|
|
["Requires the Alt key to be held down to move the cursor in chat"] = "需要在聊天中按住Alt键移动光标",
|
||
|
|
["Select the font to use for the edit box"] = "选择输入框的字体",
|
||
|
|
["Sets the frame's border color to the color of your currently active channel"] = "设置边框颜色到你当前激活的频道颜色",
|
||
|
|
["Tile Size"] = "平铺尺寸",
|
||
|
|
["Top"] = "顶部",
|
||
|
|
["Use Alt key for cursor movement"] = "使用Alt键令光标移动",
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
PL:AddLocale(PRAT_MODULE, "zhCN",L)
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
L = {
|
||
|
|
["Editbox"] = {
|
||
|
|
["Attach edit box to..."] = "Anclar la caja de edición a...",
|
||
|
|
["Attach to..."] = "Anclar a...",
|
||
|
|
["Background color"] = "Color de fondo",
|
||
|
|
--[[Translation missing --]]
|
||
|
|
["Background Inset"] = "Background Inset",
|
||
|
|
["Background texture"] = "Textura de fondo",
|
||
|
|
["Border color"] = "Color del borde",
|
||
|
|
["Border texture"] = "Textura del borde",
|
||
|
|
["Bottom"] = "Abajo",
|
||
|
|
["Color border by channel"] = "Color del borde por canal",
|
||
|
|
--[[Translation missing --]]
|
||
|
|
["currently_broken_alt_behavior"] = [=[Arrow key behaviour broken in current WoW client,
|
||
|
|
|
||
|
|
Use ALT-UP and ALT-DOWN instead of just UP DOWN to access history]=],
|
||
|
|
["Edge Size"] = "Tamaño del borde",
|
||
|
|
["Editbox"] = "Caja de edición",
|
||
|
|
["Editbox options."] = "Opciones de la caja de edición.",
|
||
|
|
["Font"] = "Fuente",
|
||
|
|
["Free-floating"] = "Flotar-libre",
|
||
|
|
["Free-floating, Locked"] = "Flotar-libre, Bloqueado",
|
||
|
|
["Requires the Alt key to be held down to move the cursor in chat"] = "Requiere la tecla Alt presionada para mover el cursor en el chat",
|
||
|
|
["Select the font to use for the edit box"] = "Seleccione la fuente a usar para la caja de edición",
|
||
|
|
["Sets the frame's border color to the color of your currently active channel"] = "Establece el color del borde del marco con el color de su canal actualmente activo",
|
||
|
|
["Tile Size"] = "Tamaño de mosaico",
|
||
|
|
["Top"] = "Arriba",
|
||
|
|
["Use Alt key for cursor movement"] = "Usar la tecla Alt para el desplazamiento del cursor",
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
PL:AddLocale(PRAT_MODULE, "esES",L)
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
L = {
|
||
|
|
["Editbox"] = {
|
||
|
|
["Attach edit box to..."] = "附上編輯框...",
|
||
|
|
["Attach to..."] = "附上...",
|
||
|
|
["Background color"] = "背景色彩",
|
||
|
|
["Background Inset"] = "背景插入",
|
||
|
|
["Background texture"] = "背景材質",
|
||
|
|
["Border color"] = "邊緣色彩",
|
||
|
|
["Border texture"] = "邊緣材質",
|
||
|
|
["Bottom"] = "底部",
|
||
|
|
["Color border by channel"] = "顏色邊框由道頻",
|
||
|
|
--[[Translation missing --]]
|
||
|
|
["currently_broken_alt_behavior"] = [=[Arrow key behaviour broken in current WoW client,
|
||
|
|
|
||
|
|
Use ALT-UP and ALT-DOWN instead of just UP DOWN to access history]=],
|
||
|
|
["Edge Size"] = "邊框尺寸",
|
||
|
|
["Editbox"] = "輸入框",
|
||
|
|
["Editbox options."] = "輸入框選單",
|
||
|
|
["Font"] = "字型",
|
||
|
|
["Free-floating"] = "自由浮動",
|
||
|
|
["Free-floating, Locked"] = "自由浮動, 已鎖定",
|
||
|
|
--[[Translation missing --]]
|
||
|
|
["Requires the Alt key to be held down to move the cursor in chat"] = "Requires the Alt key to be held down to move the cursor in chat",
|
||
|
|
["Select the font to use for the edit box"] = "選擇字型使用編輯框",
|
||
|
|
--[[Translation missing --]]
|
||
|
|
["Sets the frame's border color to the color of your currently active channel"] = "Sets the frame's border color to the color of your currently active channel",
|
||
|
|
["Tile Size"] = "並排尺寸",
|
||
|
|
["Top"] = "頂部",
|
||
|
|
["Use Alt key for cursor movement"] = "使用 Alt 鍵游標移動",
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
PL:AddLocale(PRAT_MODULE, "zhTW",L)
|
||
|
|
|
||
|
|
|
||
|
|
end
|
||
|
|
--@end-non-debug@
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
local Media = Prat.Media
|
||
|
|
local backgrounds, borders, fonts = {}, {}, {}
|
||
|
|
local CreateFrame = _G.CreateFrame
|
||
|
|
local max = _G.max
|
||
|
|
local pairs = _G.pairs
|
||
|
|
local select = _G.select
|
||
|
|
|
||
|
|
local VALID_ATTACH_POINTS = {
|
||
|
|
TOP = PL["Top"],
|
||
|
|
BOTTOM = PL["Bottom"],
|
||
|
|
FREE = PL["Free-floating"],
|
||
|
|
LOCK = PL["Free-floating, Locked"]
|
||
|
|
}
|
||
|
|
|
||
|
|
local function updateEditBox(method, ...)
|
||
|
|
for i = 1, #CHAT_FRAMES do
|
||
|
|
local f = _G["ChatFrame" .. i .. "EditBox"]
|
||
|
|
f[method](f, ...)
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
Prat:SetModuleOptions(mod, {
|
||
|
|
name = PL["Editbox"],
|
||
|
|
desc = PL["Editbox options."],
|
||
|
|
type = "group",
|
||
|
|
args = {
|
||
|
|
background = {
|
||
|
|
type = "select",
|
||
|
|
name = PL["Background texture"],
|
||
|
|
desc = PL["Background texture"],
|
||
|
|
values = backgrounds,
|
||
|
|
get = function() return mod.db.profile.background end,
|
||
|
|
set = function(info, v)
|
||
|
|
mod.db.profile.background = v
|
||
|
|
mod:SetBackdrop()
|
||
|
|
end
|
||
|
|
},
|
||
|
|
border = {
|
||
|
|
type = "select",
|
||
|
|
name = PL["Border texture"],
|
||
|
|
desc = PL["Border texture"],
|
||
|
|
values = borders,
|
||
|
|
get = function() return mod.db.profile.border end,
|
||
|
|
set = function(info, v)
|
||
|
|
mod.db.profile.border = v
|
||
|
|
mod:SetBackdrop()
|
||
|
|
end
|
||
|
|
},
|
||
|
|
backgroundColor = {
|
||
|
|
type = "color",
|
||
|
|
name = PL["Background color"],
|
||
|
|
desc = PL["Background color"],
|
||
|
|
hasAlpha = true,
|
||
|
|
get = function()
|
||
|
|
local c = mod.db.profile.backgroundColor
|
||
|
|
return c.r, c.g, c.b, c.a
|
||
|
|
end,
|
||
|
|
set = function(info, r, g, b, a)
|
||
|
|
local c = mod.db.profile.backgroundColor
|
||
|
|
c.r, c.g, c.b, c.a = r, g, b, a
|
||
|
|
mod:SetBackdrop()
|
||
|
|
end
|
||
|
|
},
|
||
|
|
borderColor = {
|
||
|
|
type = "color",
|
||
|
|
name = PL["Border color"],
|
||
|
|
desc = PL["Border color"],
|
||
|
|
hasAlpha = true,
|
||
|
|
get = function()
|
||
|
|
local c = mod.db.profile.borderColor
|
||
|
|
return c.r, c.g, c.b, c.a
|
||
|
|
end,
|
||
|
|
set = function(info, r, g, b, a)
|
||
|
|
local c = mod.db.profile.borderColor
|
||
|
|
c.r, c.g, c.b, c.a = r, g, b, a
|
||
|
|
mod:SetBackdrop()
|
||
|
|
end
|
||
|
|
},
|
||
|
|
inset = {
|
||
|
|
type = "range",
|
||
|
|
name = PL["Background Inset"],
|
||
|
|
desc = PL["Background Inset"],
|
||
|
|
min = 1,
|
||
|
|
max = 64,
|
||
|
|
step = 1,
|
||
|
|
bigStep = 1,
|
||
|
|
get = function() return mod.db.profile.inset end,
|
||
|
|
set = function(info, v)
|
||
|
|
mod.db.profile.inset = v
|
||
|
|
mod:SetBackdrop()
|
||
|
|
end
|
||
|
|
},
|
||
|
|
tileSize = {
|
||
|
|
type = "range",
|
||
|
|
name = PL["Tile Size"],
|
||
|
|
desc = PL["Tile Size"],
|
||
|
|
min = 1,
|
||
|
|
max = 64,
|
||
|
|
step = 1,
|
||
|
|
bigStep = 1,
|
||
|
|
get = function() return mod.db.profile.tileSize end,
|
||
|
|
set = function(info, v)
|
||
|
|
mod.db.profile.tileSize = v
|
||
|
|
mod:SetBackdrop()
|
||
|
|
end
|
||
|
|
},
|
||
|
|
edgeSize = {
|
||
|
|
type = "range",
|
||
|
|
name = PL["Edge Size"],
|
||
|
|
desc = PL["Edge Size"],
|
||
|
|
min = 1,
|
||
|
|
max = 64,
|
||
|
|
step = 1,
|
||
|
|
bigStep = 1,
|
||
|
|
get = function() return mod.db.profile.edgeSize end,
|
||
|
|
set = function(info, v)
|
||
|
|
mod.db.profile.edgeSize = v
|
||
|
|
mod:SetBackdrop()
|
||
|
|
end
|
||
|
|
},
|
||
|
|
attach = {
|
||
|
|
type = "select",
|
||
|
|
name = PL["Attach to..."],
|
||
|
|
desc = PL["Attach edit box to..."],
|
||
|
|
get = function() return mod.db.profile.attach end,
|
||
|
|
values = VALID_ATTACH_POINTS,
|
||
|
|
set = function(info, v)
|
||
|
|
mod.db.profile.attach = v
|
||
|
|
mod:SetAttach()
|
||
|
|
end
|
||
|
|
},
|
||
|
|
colorByChannel = {
|
||
|
|
type = "toggle",
|
||
|
|
name = PL["Color border by channel"],
|
||
|
|
desc = PL["Sets the frame's border color to the color of your currently active channel"],
|
||
|
|
get = function()
|
||
|
|
return mod.db.profile.colorByChannel
|
||
|
|
end,
|
||
|
|
set = function(info, v)
|
||
|
|
mod.db.profile.colorByChannel = v
|
||
|
|
if v then
|
||
|
|
mod:RawHook("ChatEdit_UpdateHeader", "SetBorderByChannel", true)
|
||
|
|
else
|
||
|
|
if mod:IsHooked("ChatEdit_UpdateHeader") then
|
||
|
|
mod:Unhook("ChatEdit_UpdateHeader")
|
||
|
|
local c = mod.db.profile.borderColor
|
||
|
|
for _, frame in ipairs(mod.frames) do
|
||
|
|
frame:SetBackdropBorderColor(c.r, c.g, c.b, c.a)
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|
||
|
|
},
|
||
|
|
useAltKey = {
|
||
|
|
type = "toggle",
|
||
|
|
name = PL["Use Alt key for cursor movement"],
|
||
|
|
desc = PL["Requires the Alt key to be held down to move the cursor in chat"],
|
||
|
|
get = function()
|
||
|
|
return mod.db.profile.useAltKey
|
||
|
|
end,
|
||
|
|
set = function(info, v)
|
||
|
|
mod.db.profile.useAltKey = v
|
||
|
|
updateEditBox("SetAltArrowKeyMode", v)
|
||
|
|
end,
|
||
|
|
},
|
||
|
|
font = {
|
||
|
|
type = "select",
|
||
|
|
name = PL["Font"],
|
||
|
|
desc = PL["Select the font to use for the edit box"],
|
||
|
|
values = fonts,
|
||
|
|
get = function() return mod.db.profile.font end,
|
||
|
|
set = function(i, v)
|
||
|
|
mod.db.profile.font = v
|
||
|
|
for i = 1, #CHAT_FRAMES do
|
||
|
|
local ff = _G["ChatFrame" .. i .. "EditBox"]
|
||
|
|
local header = _G[ff:GetName() .. "Header"]
|
||
|
|
local _, s, m = ff:GetFont()
|
||
|
|
local font = Media:Fetch("font", v)
|
||
|
|
ff:SetFont(font, s, m)
|
||
|
|
header:SetFont(font, s, m)
|
||
|
|
end
|
||
|
|
end
|
||
|
|
},
|
||
|
|
},
|
||
|
|
})
|
||
|
|
|
||
|
|
Prat:SetModuleDefaults(mod.name, {
|
||
|
|
profile = {
|
||
|
|
on = true,
|
||
|
|
background = "Blizzard Tooltip",
|
||
|
|
border = "Blizzard Tooltip",
|
||
|
|
backgroundColor = { r = 0, g = 0, b = 0, a = 1 },
|
||
|
|
borderColor = { r = 1, g = 1, b = 1, a = 1 },
|
||
|
|
inset = 3,
|
||
|
|
edgeSize = 12,
|
||
|
|
tileSize = 16,
|
||
|
|
height = 22,
|
||
|
|
attach = "BOTTOM",
|
||
|
|
colorByChannel = true,
|
||
|
|
useAltKey = false,
|
||
|
|
font = (function()
|
||
|
|
for i = 1, #CHAT_FRAMES do
|
||
|
|
local ff = _G["ChatFrame" .. i .. "EditBox"]
|
||
|
|
local f = ff:GetFont()
|
||
|
|
for k, v in pairs(Media:HashTable("font")) do
|
||
|
|
if v == f then return k end
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end)()
|
||
|
|
}
|
||
|
|
})
|
||
|
|
|
||
|
|
|
||
|
|
function mod:LibSharedMedia_Registered()
|
||
|
|
for k, v in pairs(Media:List("background")) do
|
||
|
|
backgrounds[v] = v
|
||
|
|
end
|
||
|
|
for k, v in pairs(Media:List("border")) do
|
||
|
|
borders[v] = v
|
||
|
|
end
|
||
|
|
for k, v in pairs(Media:List("font")) do
|
||
|
|
fonts[v] = v
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
local function MakePratEditbox(self, i)
|
||
|
|
if not self.frames[i] then
|
||
|
|
local parent = _G["ChatFrame" .. i .. "EditBox"]
|
||
|
|
|
||
|
|
local frame = CreateFrame("Frame", nil, parent, BackdropTemplateMixin and "BackdropTemplate")
|
||
|
|
frame:SetFrameStrata("DIALOG")
|
||
|
|
frame:SetFrameLevel(parent:GetFrameLevel() - 1)
|
||
|
|
frame:SetAllPoints(parent)
|
||
|
|
frame:Hide()
|
||
|
|
parent.pratFrame = frame
|
||
|
|
self.frames[i] = frame
|
||
|
|
|
||
|
|
parent.lDrag = CreateFrame("Frame", nil, parent)
|
||
|
|
parent.lDrag:SetWidth(15)
|
||
|
|
parent.lDrag:SetPoint("TOPLEFT", parent, "TOPLEFT")
|
||
|
|
parent.lDrag:SetPoint("BOTTOMLEFT", parent, "BOTTOMLEFT")
|
||
|
|
parent.lDrag.left = true
|
||
|
|
|
||
|
|
parent.rDrag = CreateFrame("Frame", nil, parent)
|
||
|
|
parent.rDrag:SetWidth(15)
|
||
|
|
parent.rDrag:SetPoint("TOPRIGHT", parent, "TOPRIGHT")
|
||
|
|
parent.rDrag:SetPoint("BOTTOMRIGHT", parent, "BOTTOMRIGHT")
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
Prat:SetModuleInit(mod,
|
||
|
|
function(self)
|
||
|
|
|
||
|
|
Media.RegisterCallback(mod, "LibSharedMedia_Registered")
|
||
|
|
self.frames = {}
|
||
|
|
|
||
|
|
self:LibSharedMedia_Registered()
|
||
|
|
|
||
|
|
for i = 1, #CHAT_FRAMES do
|
||
|
|
MakePratEditbox(self, i)
|
||
|
|
end
|
||
|
|
end)
|
||
|
|
|
||
|
|
local function OnArrowPressed(self, key)
|
||
|
|
if #self.history_lines == 0 then
|
||
|
|
return
|
||
|
|
end
|
||
|
|
|
||
|
|
if key == "DOWN" then
|
||
|
|
self.history_index = self.history_index - 1
|
||
|
|
|
||
|
|
if self.history_index < 1 then
|
||
|
|
self.history_index = #self.history_lines
|
||
|
|
end
|
||
|
|
elseif key == "UP" then
|
||
|
|
self.history_index = self.history_index + 1
|
||
|
|
|
||
|
|
if self.history_index > #self.history_lines then
|
||
|
|
self.history_index = 1
|
||
|
|
end
|
||
|
|
else
|
||
|
|
return -- We don't want to interfere with LEFT/RIGHT because the tab-complete stuff might use it; we're already killing the other two.
|
||
|
|
end
|
||
|
|
self:SetText(self.history_lines[self.history_index])
|
||
|
|
end
|
||
|
|
|
||
|
|
local function enableArrowKeys(e)
|
||
|
|
e.history_lines = e.history_lines or {}
|
||
|
|
e.history_index = e.history_index or 0
|
||
|
|
e:HookScript("OnArrowPressed", OnArrowPressed)
|
||
|
|
end
|
||
|
|
|
||
|
|
function mod:Prat_FramesUpdated(info, name, chatFrame, ...)
|
||
|
|
local i = chatFrame:GetID()
|
||
|
|
local f = _G["ChatFrame" .. i .. "EditBox"]
|
||
|
|
_G["ChatFrame" .. i .. "EditBoxLeft"]:Hide()
|
||
|
|
_G["ChatFrame" .. i .. "EditBoxRight"]:Hide()
|
||
|
|
_G["ChatFrame" .. i .. "EditBoxMid"]:Hide()
|
||
|
|
if f.focusLeft then f.focusLeft:SetAlpha(0) end
|
||
|
|
if f.focusRight then f.focusRight:SetAlpha(0) end
|
||
|
|
if f.focusMid then f.focusMid:SetAlpha(0) end
|
||
|
|
f:Hide()
|
||
|
|
|
||
|
|
MakePratEditbox(self, i)
|
||
|
|
self.frames[i]:Show()
|
||
|
|
|
||
|
|
local font, s, m = f:GetFont()
|
||
|
|
f:SetFont(Media:Fetch("font", self.db.profile.font), s, m)
|
||
|
|
|
||
|
|
local header = _G[f:GetName() .. "Header"]
|
||
|
|
local font, s, m = header:GetFont()
|
||
|
|
header:SetFont(Media:Fetch("font", self.db.profile.font), s, m)
|
||
|
|
|
||
|
|
f:SetAltArrowKeyMode(mod.db.profile.useAltKey and 1 or nil)
|
||
|
|
if (not mod.db.profile.useAltKey) then
|
||
|
|
enableArrowKeys(f)
|
||
|
|
end
|
||
|
|
self:SetBackdrop()
|
||
|
|
self:UpdateHeight()
|
||
|
|
self:SetAttach(nil, self.db.profile.editX, self.db.profile.editY, self.db.profile.editW)
|
||
|
|
end
|
||
|
|
|
||
|
|
function mod:OnModuleEnable()
|
||
|
|
self:LibSharedMedia_Registered()
|
||
|
|
|
||
|
|
for i = 1, #CHAT_FRAMES do
|
||
|
|
local f = _G["ChatFrame" .. i .. "EditBox"]
|
||
|
|
_G["ChatFrame" .. i .. "EditBoxLeft"]:Hide()
|
||
|
|
_G["ChatFrame" .. i .. "EditBoxRight"]:Hide()
|
||
|
|
_G["ChatFrame" .. i .. "EditBoxMid"]:Hide()
|
||
|
|
if f.focusLeft then f.focusLeft:SetAlpha(0) end
|
||
|
|
if f.focusRight then f.focusRight:SetAlpha(0) end
|
||
|
|
if f.focusMid then f.focusMid:SetAlpha(0) end
|
||
|
|
f:Hide()
|
||
|
|
|
||
|
|
-- Prevent an error in FloatingChatFrame FCF_FadeOutChatFrame() (blizz bug)
|
||
|
|
f:SetAlpha(f:GetAlpha() or 0)
|
||
|
|
|
||
|
|
MakePratEditbox(self, i) -- For new temporary chat frames created between init and now
|
||
|
|
self.frames[i]:Show()
|
||
|
|
local font, s, m = f:GetFont()
|
||
|
|
f:SetFont(Media:Fetch("font", self.db.profile.font), s, m)
|
||
|
|
|
||
|
|
local header = _G[f:GetName() .. "Header"]
|
||
|
|
local font, s, m = header:GetFont()
|
||
|
|
header:SetFont(Media:Fetch("font", self.db.profile.font), s, m)
|
||
|
|
|
||
|
|
f:SetAltArrowKeyMode(mod.db.profile.useAltKey and 1 or nil)
|
||
|
|
if (not mod.db.profile.useAltKey) then
|
||
|
|
enableArrowKeys(f)
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
|
||
|
|
self:SetBackdrop()
|
||
|
|
|
||
|
|
|
||
|
|
self:SetAttach(nil, self.db.profile.editX, self.db.profile.editY, self.db.profile.editW)
|
||
|
|
self:SecureHook("ChatEdit_DeactivateChat")
|
||
|
|
self:SecureHook("ChatEdit_SetLastActiveWindow")
|
||
|
|
self:SecureHook("ChatFrame_OpenChat")
|
||
|
|
|
||
|
|
self:SetBackdrop()
|
||
|
|
self:UpdateHeight()
|
||
|
|
if self.db.profile.colorByChannel then
|
||
|
|
self:RawHook("ChatEdit_UpdateHeader", "SetBorderByChannel", true)
|
||
|
|
end
|
||
|
|
self:SecureHook("FCF_Tab_OnClick")
|
||
|
|
|
||
|
|
Prat.RegisterChatEvent(self, Prat.Events.FRAMES_UPDATED)
|
||
|
|
end
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
function mod:ChatFrame_OpenChat(text, chatFrame)
|
||
|
|
if not self.db.profile.useAltKey then
|
||
|
|
local frame = ChatEdit_ChooseBoxForSend(chatFrame)
|
||
|
|
|
||
|
|
frame.history_index = 0
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
function mod:FCF_Tab_OnClick(frame, button)
|
||
|
|
if self.db.profile.attach == "TOP" and GetCVar("chatStyle") ~= "classic" then
|
||
|
|
local chatFrame = _G["ChatFrame" .. frame:GetID()];
|
||
|
|
ChatEdit_DeactivateChat(chatFrame.editBox)
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
function mod:OnModuleDisable()
|
||
|
|
self:SetAttach("BOTTOM") -- clear move/resize handlers
|
||
|
|
for i = 1, #CHAT_FRAMES do
|
||
|
|
local f = _G["ChatFrame" .. i .. "EditBox"]
|
||
|
|
_G["ChatFrame" .. i .. "EditBoxLeft"]:Show()
|
||
|
|
_G["ChatFrame" .. i .. "EditBoxRight"]:Show()
|
||
|
|
_G["ChatFrame" .. i .. "EditBoxMid"]:Show()
|
||
|
|
if f.focusLeft then f.focusLeft:SetAlpha(1) end
|
||
|
|
if f.focusRight then f.focusRight:SetAlpha(1) end
|
||
|
|
if f.focusMid then f.focusMid:SetAlpha(1) end
|
||
|
|
f:SetAltArrowKeyMode(true)
|
||
|
|
f:EnableMouse(true)
|
||
|
|
f.pratFrame:Hide()
|
||
|
|
-- restore Blizz size/position
|
||
|
|
f:ClearAllPoints()
|
||
|
|
f:SetHeight(32)
|
||
|
|
f:SetPoint("TOPLEFT", f.chatFrame, "BOTTOMLEFT", -5, -2)
|
||
|
|
if Prat.IsClassic then
|
||
|
|
f:SetPoint("TOPRIGHT", f.chatFrame, "BOTTOMRIGHT", 5, -2)
|
||
|
|
else
|
||
|
|
f:SetPoint("RIGHT", f.chatFrame.ScrollBar, "RIGHT", 5, 0)
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
function mod:GetDescription()
|
||
|
|
return PL["Editbox options."]
|
||
|
|
end
|
||
|
|
|
||
|
|
-- changed the Hide to SetAlpha(0), the new ChatSystem OnHide handlers go though some looping
|
||
|
|
-- when in IM style and Classic style, cause heavy delays on the chat edit box.
|
||
|
|
function mod:ChatEdit_SetLastActiveWindow(frame)
|
||
|
|
if frame:IsShown() then
|
||
|
|
frame:SetAlpha(0)
|
||
|
|
else
|
||
|
|
frame:SetAlpha(1)
|
||
|
|
end
|
||
|
|
frame:EnableMouse(true)
|
||
|
|
end
|
||
|
|
|
||
|
|
function mod:ChatEdit_DeactivateChat(frame)
|
||
|
|
if frame:IsShown() then
|
||
|
|
frame:SetAlpha(0)
|
||
|
|
frame:EnableMouse(false)
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
function mod:SetBackdrop()
|
||
|
|
for _, frame in ipairs(self.frames) do
|
||
|
|
frame:SetBackdrop({
|
||
|
|
bgFile = Media:Fetch("background", self.db.profile.background),
|
||
|
|
edgeFile = Media:Fetch("border", self.db.profile.border),
|
||
|
|
tile = true,
|
||
|
|
tileSize = self.db.profile.tileSize,
|
||
|
|
edgeSize = self.db.profile.edgeSize,
|
||
|
|
insets = {
|
||
|
|
left = self.db.profile.inset,
|
||
|
|
right = self.db.profile.inset,
|
||
|
|
top = self.db.profile.inset,
|
||
|
|
bottom = self.db.profile.inset
|
||
|
|
}
|
||
|
|
})
|
||
|
|
local c = self.db.profile.backgroundColor
|
||
|
|
frame:SetBackdropColor(c.r, c.g, c.b, c.a)
|
||
|
|
|
||
|
|
local c = self.db.profile.borderColor
|
||
|
|
frame:SetBackdropBorderColor(c.r, c.g, c.b, c.a)
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
function mod:SetBorderByChannel(...)
|
||
|
|
self.hooks.ChatEdit_UpdateHeader(...)
|
||
|
|
for index, frame in ipairs(self.frames) do
|
||
|
|
local f = _G["ChatFrame" .. index .. "EditBox"]
|
||
|
|
local attr = f:GetAttribute("chatType")
|
||
|
|
if attr == "CHANNEL" then
|
||
|
|
local chan = f:GetAttribute("channelTarget")
|
||
|
|
if chan == 0 then
|
||
|
|
local c = self.db.profile.borderColor
|
||
|
|
frame:SetBackdropBorderColor(c.r, c.g, c.b, c.a)
|
||
|
|
elseif chan and ChatTypeInfo["CHANNEL" .. chan] then
|
||
|
|
local r, g, b = GetMessageTypeColor("CHANNEL" .. chan)
|
||
|
|
frame:SetBackdropBorderColor(r, g, b, 1)
|
||
|
|
end
|
||
|
|
else
|
||
|
|
local r, g, b = GetMessageTypeColor(attr)
|
||
|
|
frame:SetBackdropBorderColor(r, g, b, 1)
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
do
|
||
|
|
local function startMoving(self)
|
||
|
|
self:StartMoving()
|
||
|
|
end
|
||
|
|
|
||
|
|
local function stopMoving(self)
|
||
|
|
self:StopMovingOrSizing()
|
||
|
|
mod.db.profile.editX = self:GetLeft()
|
||
|
|
mod.db.profile.editY = self:GetTop()
|
||
|
|
mod.db.profile.editW = self:GetRight() - self:GetLeft()
|
||
|
|
end
|
||
|
|
|
||
|
|
local cfHeight
|
||
|
|
local function constrainHeight(self)
|
||
|
|
self:GetParent():SetHeight(cfHeight)
|
||
|
|
end
|
||
|
|
|
||
|
|
local function startDragging(self)
|
||
|
|
cfHeight = self:GetParent():GetHeight()
|
||
|
|
self:GetParent():StartSizing(not self.left and "TOPRIGHT" or "TOPLEFT")
|
||
|
|
self:SetScript("OnUpdate", constrainHeight)
|
||
|
|
end
|
||
|
|
|
||
|
|
local function stopDragging(self)
|
||
|
|
local parent = self:GetParent()
|
||
|
|
parent:StopMovingOrSizing()
|
||
|
|
self:SetScript("OnUpdate", nil)
|
||
|
|
mod.db.profile.editX = parent:GetLeft()
|
||
|
|
mod.db.profile.editY = parent:GetTop()
|
||
|
|
mod.db.profile.editW = parent:GetWidth()
|
||
|
|
end
|
||
|
|
|
||
|
|
function mod:SetAttach(val, x, y, w)
|
||
|
|
for i = 1, #CHAT_FRAMES do
|
||
|
|
local frame = _G["ChatFrame" .. i .. "EditBox"]
|
||
|
|
local val = val or self.db.profile.attach
|
||
|
|
if not x and val == "FREE" then
|
||
|
|
if self.db.profile.editX and self.db.profile.editY then
|
||
|
|
x, y, w = self.db.profile.editX, self.db.profile.editY, self.db.profile.editW
|
||
|
|
else
|
||
|
|
x, y, w = frame:GetLeft(), frame:GetTop(), max(frame:GetWidth(), (frame:GetRight() or 0) - (frame:GetLeft() or 0))
|
||
|
|
end
|
||
|
|
end
|
||
|
|
if not w or w < 10 then w = 100 end
|
||
|
|
frame:ClearAllPoints()
|
||
|
|
if val ~= "FREE" then
|
||
|
|
frame:SetMovable(false)
|
||
|
|
frame.lDrag:EnableMouse(false)
|
||
|
|
frame.rDrag:EnableMouse(false)
|
||
|
|
frame:SetScript("OnMouseDown", nil)
|
||
|
|
frame:SetScript("OnMouseUp", nil)
|
||
|
|
frame.lDrag:EnableMouse(false)
|
||
|
|
frame.rDrag:EnableMouse(false)
|
||
|
|
frame.lDrag:SetScript("OnMouseDown", nil)
|
||
|
|
frame.rDrag:SetScript("OnMouseDown", nil)
|
||
|
|
frame.lDrag:SetScript("OnMouseUp", nil)
|
||
|
|
frame.rDrag:SetScript("OnMouseUp", nil)
|
||
|
|
end
|
||
|
|
|
||
|
|
local scrollbarWidth = frame.chatFrame.ScrollBar and frame.chatFrame.ScrollBar:GetWidth() or 0
|
||
|
|
if val == "TOP" then
|
||
|
|
frame:SetPoint("BOTTOMLEFT", frame.chatFrame, "TOPLEFT", 0, 3)
|
||
|
|
frame:SetPoint("BOTTOMRIGHT", frame.chatFrame, "TOPRIGHT", scrollbarWidth, 3)
|
||
|
|
elseif val == "BOTTOM" then
|
||
|
|
frame:SetPoint("TOPLEFT", frame.chatFrame, "BOTTOMLEFT", 0, -8)
|
||
|
|
frame:SetPoint("TOPRIGHT", frame.chatFrame, "BOTTOMRIGHT", scrollbarWidth, -8)
|
||
|
|
elseif val == "FREE" then
|
||
|
|
frame:EnableMouse(true)
|
||
|
|
frame:SetMovable(true)
|
||
|
|
frame:SetResizable(true)
|
||
|
|
frame:SetScript("OnMouseDown", startMoving)
|
||
|
|
frame:SetScript("OnMouseUp", stopMoving)
|
||
|
|
frame:SetWidth(w)
|
||
|
|
frame:SetPoint("TOPLEFT", UIParent, "BOTTOMLEFT", x, y)
|
||
|
|
local minWidth, minHeight = 40, 1
|
||
|
|
if frame.SetResizeBounds then
|
||
|
|
frame:SetResizeBounds(minWidth, minHeight)
|
||
|
|
else
|
||
|
|
frame:SetMinResize(minWidth, minHeight)
|
||
|
|
end
|
||
|
|
|
||
|
|
frame.lDrag:EnableMouse(true)
|
||
|
|
frame.rDrag:EnableMouse(true)
|
||
|
|
|
||
|
|
frame.lDrag:SetScript("OnMouseDown", startDragging)
|
||
|
|
frame.rDrag:SetScript("OnMouseDown", startDragging)
|
||
|
|
|
||
|
|
frame.lDrag:SetScript("OnMouseUp", stopDragging)
|
||
|
|
frame.rDrag:SetScript("OnMouseUp", stopDragging)
|
||
|
|
elseif val == "LOCK" then
|
||
|
|
frame:SetWidth(self.db.profile.editW or w)
|
||
|
|
frame:SetPoint("TOPLEFT", UIParent, "BOTTOMLEFT", self.db.profile.editX or x, self.db.profile.editY or y)
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
function mod:UpdateHeight()
|
||
|
|
for i, frame in ipairs(self.frames) do
|
||
|
|
local ff = _G["ChatFrame" .. i .. "EditBox"]
|
||
|
|
ff:SetHeight(mod.db.profile.height)
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
return
|
||
|
|
end) -- Prat:AddModuleToLoad
|