--------------------------------------------------------------------------------- -- -- Prat - A framework for World of Warcraft chat mods -- -- Copyright (C) 2006-2018 Prat Development Team -- -- This program is free software; you can redistribute it and/or -- modify it under the terms of the GNU General Public License -- as published by the Free Software Foundation; either version 2 -- of the License, or (at your option) any later version. -- -- This program is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- GNU General Public License for more details. -- -- You should have received a copy of the GNU General Public License -- along with this program; if not, write to: -- -- Free Software Foundation, Inc., -- 51 Franklin Street, Fifth Floor, -- Boston, MA 02110-1301, USA. -- -- ------------------------------------------------------------------------------- Prat:AddModuleToLoad(function() local PRAT_MODULE = Prat:RequestModuleName("Font") if PRAT_MODULE == nil then return end local module = Prat:NewModule(PRAT_MODULE, "AceHook-3.0", "AceEvent-3.0") local PL = module.PL --[==[@debug@ PL:AddLocale(PRAT_MODULE, "enUS", { ["Font"] = true, ["Chat window font options."] = true, ["Set Separately"] = true, ["Toggle setting options separately for each chat window."] = true, ["Set Font Face"] = true, ["Set the text font face for all chat windows."] = true, ["rememberfont_name"] = "Remember Font", ["rememberfont_desc"] = "Remember your font choice and restore it at startup.", ["Set Font Size"] = true, ["Set text font size for each chat window."] = true, ["Set ChatFrame%d Font Size"] = true, ["Set text font size."] = true, ["Auto Restore Font Size"] = true, ["Workaround a Blizzard bug which changes the font size when you open a system menu."] = true, ["outlinemode_name"] = "Set Outline Mode", ["outlinemode_desc"] = "Sets mode for the outline around the font.", ["None"] = true, ["Outline"] = true, ["Thick Outline"] = true, ["monochrome_name"] = "Toggle Monochrome", ["monochrome_desc"] = "Toggles monochrome coloring of the font.", ["shadowcolor_name"] = "Set Shadow Color", ["shadowcolor_desc"] = "Set the color of the shadow effect.", ["whisper_tabs"] = "Whisper Tabs", ["pet_battle_tab"] = "Pet Battle Tab", }) --@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 = { ["Font"] = { ["Auto Restore Font Size"] = true, ["Chat window font options."] = true, ["Font"] = true, ["monochrome_desc"] = "Toggles monochrome coloring of the font.", ["monochrome_name"] = "Toggle Monochrome", ["None"] = true, ["Outline"] = true, ["outlinemode_desc"] = "Sets mode for the outline around the font.", ["outlinemode_name"] = "Set Outline Mode", ["pet_battle_tab"] = "Pet Battle Tab", ["rememberfont_desc"] = "Remember your font choice and restore it at startup.", ["rememberfont_name"] = "Remember Font", ["Set ChatFrame%d Font Size"] = true, ["Set Font Face"] = true, ["Set Font Size"] = true, ["Set Separately"] = true, ["Set text font size for each chat window."] = true, ["Set text font size."] = true, ["Set the text font face for all chat windows."] = true, ["shadowcolor_desc"] = "Set the color of the shadow effect.", ["shadowcolor_name"] = "Set Shadow Color", ["Thick Outline"] = true, ["Toggle setting options separately for each chat window."] = true, ["whisper_tabs"] = "Whisper Tabs", ["Workaround a Blizzard bug which changes the font size when you open a system menu."] = true, } } PL:AddLocale(PRAT_MODULE, "enUS", L) L = { ["Font"] = { --[[Translation missing --]] ["Auto Restore Font Size"] = "Auto Restore Font Size", --[[Translation missing --]] ["Chat window font options."] = "Chat window font options.", --[[Translation missing --]] ["Font"] = "Font", --[[Translation missing --]] ["monochrome_desc"] = "Toggles monochrome coloring of the font.", --[[Translation missing --]] ["monochrome_name"] = "Toggle Monochrome", --[[Translation missing --]] ["None"] = "None", --[[Translation missing --]] ["Outline"] = "Outline", --[[Translation missing --]] ["outlinemode_desc"] = "Sets mode for the outline around the font.", --[[Translation missing --]] ["outlinemode_name"] = "Set Outline Mode", --[[Translation missing --]] ["pet_battle_tab"] = "Pet Battle Tab", --[[Translation missing --]] ["rememberfont_desc"] = "Remember your font choice and restore it at startup.", --[[Translation missing --]] ["rememberfont_name"] = "Remember Font", --[[Translation missing --]] ["Set ChatFrame%d Font Size"] = "Set ChatFrame%d Font Size", --[[Translation missing --]] ["Set Font Face"] = "Set Font Face", --[[Translation missing --]] ["Set Font Size"] = "Set Font Size", --[[Translation missing --]] ["Set Separately"] = "Set Separately", --[[Translation missing --]] ["Set text font size for each chat window."] = "Set text font size for each chat window.", --[[Translation missing --]] ["Set text font size."] = "Set text font size.", --[[Translation missing --]] ["Set the text font face for all chat windows."] = "Set the text font face for all chat windows.", --[[Translation missing --]] ["shadowcolor_desc"] = "Set the color of the shadow effect.", --[[Translation missing --]] ["shadowcolor_name"] = "Set Shadow Color", --[[Translation missing --]] ["Thick Outline"] = "Thick Outline", --[[Translation missing --]] ["Toggle setting options separately for each chat window."] = "Toggle setting options separately for each chat window.", --[[Translation missing --]] ["whisper_tabs"] = "Whisper Tabs", --[[Translation missing --]] ["Workaround a Blizzard bug which changes the font size when you open a system menu."] = "Workaround a Blizzard bug which changes the font size when you open a system menu.", } } PL:AddLocale(PRAT_MODULE, "itIT", L) L = { ["Font"] = { --[[Translation missing --]] ["Auto Restore Font Size"] = "Auto Restore Font Size", --[[Translation missing --]] ["Chat window font options."] = "Chat window font options.", --[[Translation missing --]] ["Font"] = "Font", --[[Translation missing --]] ["monochrome_desc"] = "Toggles monochrome coloring of the font.", --[[Translation missing --]] ["monochrome_name"] = "Toggle Monochrome", --[[Translation missing --]] ["None"] = "None", --[[Translation missing --]] ["Outline"] = "Outline", --[[Translation missing --]] ["outlinemode_desc"] = "Sets mode for the outline around the font.", --[[Translation missing --]] ["outlinemode_name"] = "Set Outline Mode", --[[Translation missing --]] ["pet_battle_tab"] = "Pet Battle Tab", --[[Translation missing --]] ["rememberfont_desc"] = "Remember your font choice and restore it at startup.", --[[Translation missing --]] ["rememberfont_name"] = "Remember Font", --[[Translation missing --]] ["Set ChatFrame%d Font Size"] = "Set ChatFrame%d Font Size", --[[Translation missing --]] ["Set Font Face"] = "Set Font Face", --[[Translation missing --]] ["Set Font Size"] = "Set Font Size", --[[Translation missing --]] ["Set Separately"] = "Set Separately", --[[Translation missing --]] ["Set text font size for each chat window."] = "Set text font size for each chat window.", --[[Translation missing --]] ["Set text font size."] = "Set text font size.", --[[Translation missing --]] ["Set the text font face for all chat windows."] = "Set the text font face for all chat windows.", --[[Translation missing --]] ["shadowcolor_desc"] = "Set the color of the shadow effect.", --[[Translation missing --]] ["shadowcolor_name"] = "Set Shadow Color", --[[Translation missing --]] ["Thick Outline"] = "Thick Outline", --[[Translation missing --]] ["Toggle setting options separately for each chat window."] = "Toggle setting options separately for each chat window.", --[[Translation missing --]] ["whisper_tabs"] = "Whisper Tabs", --[[Translation missing --]] ["Workaround a Blizzard bug which changes the font size when you open a system menu."] = "Workaround a Blizzard bug which changes the font size when you open a system menu.", } } PL:AddLocale(PRAT_MODULE, "ptBR", L) L = { ["Font"] = { ["Auto Restore Font Size"] = "Restauration automatique de la taille du texte", ["Chat window font options."] = "Options de formatage du texte.", ["Font"] = "Police", ["monochrome_desc"] = "Activer/Désactiver la monochromie de la police.", ["monochrome_name"] = "Monochromie", ["None"] = "Aucun", ["Outline"] = "Contour", ["outlinemode_desc"] = "Définit le contour autour de la police.", ["outlinemode_name"] = "Contour de la police", --[[Translation missing --]] ["pet_battle_tab"] = "Pet Battle Tab", ["rememberfont_desc"] = "Se souvenir de la police du texte et la restaurer au chargement.", ["rememberfont_name"] = "Mémoriser la police", ["Set ChatFrame%d Font Size"] = "Définit la taille de la police de la fenêtre de discussion %d", ["Set Font Face"] = "Police d'écriture", ["Set Font Size"] = "Taille de la police", ["Set Separately"] = "Configurer séparément", ["Set text font size for each chat window."] = "Définir la taille du texte de chaque fenêtre.", ["Set text font size."] = "Définit la taille du texte.", ["Set the text font face for all chat windows."] = "Définit la police du texte pour toutes les fenêtres de discussions.", ["shadowcolor_desc"] = "Définit la couleur de l'ombre.", ["shadowcolor_name"] = "Couleur de l'ombre", ["Thick Outline"] = "Contour épais", ["Toggle setting options separately for each chat window."] = "Activer/Désactiver les options séparées pour chaque fenêtre.", --[[Translation missing --]] ["whisper_tabs"] = "Whisper Tabs", ["Workaround a Blizzard bug which changes the font size when you open a system menu."] = "Contourner un bug de Blizzard qui change la taille de la police quand on ouvre un menu système.", } } PL:AddLocale(PRAT_MODULE, "frFR",L) L = { ["Font"] = { ["Auto Restore Font Size"] = "Schriftgröße automatisch wiederherstellen", ["Chat window font options."] = "Optionen für die Schriftart des Chatfensters.", ["Font"] = "Schrifttyp", ["monochrome_desc"] = "Einfarbige Einfärbung der Schrift umschalten.", ["monochrome_name"] = "Einfarbigkeit ein- und ausschalten", ["None"] = "Keiner", ["Outline"] = "Umrandung", ["outlinemode_desc"] = "Stellt Modus für die Umrandung des Schrifttyps ein.", ["outlinemode_name"] = "Umrandungsmodus einstellen", ["pet_battle_tab"] = "Registerkarte „Haustierkampf“", ["rememberfont_desc"] = "Deine Wahl des Schrifttyps merken und beim Starten wiederherstellen.", ["rememberfont_name"] = "Schrifttyp merken", ["Set ChatFrame%d Font Size"] = "Schriftgröße im Chatfenster %d einstellen", ["Set Font Face"] = "Schrifttyp einstellen", ["Set Font Size"] = "Schriftgröße einstellen", ["Set Separately"] = "Einzeln einstellen", ["Set text font size for each chat window."] = "Schriftgröße von Text für jedes Chatfenster einstellen.", ["Set text font size."] = "Schriftgröße von Text einstellen.", ["Set the text font face for all chat windows."] = "Schriftart von Text für alle Chatfenster einstellen.", ["shadowcolor_desc"] = "Farbe des Schatteneffekts einstellen.", ["shadowcolor_name"] = "Schattenfarbe einstellen", ["Thick Outline"] = "Dicke Umrandung", ["Toggle setting options separately for each chat window."] = "Optionen einzeln für jedes Chatfenster einstellen umschalten.", ["whisper_tabs"] = "Flüster-Tabs", ["Workaround a Blizzard bug which changes the font size when you open a system menu."] = "Einen Bug von Blizzard umgehen, welcher die Schriftgröße ändert sobald du ein Systemmenü öffnest.", } } PL:AddLocale(PRAT_MODULE, "deDE", L) L = { ["Font"] = { ["Auto Restore Font Size"] = "글꼴 크기 자동 복원", ["Chat window font options."] = "대화창 글꼴 옵션입니다.", ["Font"] = "글꼴", ["monochrome_desc"] = "글꼴 그림자 색을 끄고 켭니다.", ["monochrome_name"] = "그림자 끄고 켜기", ["None"] = "없음", ["Outline"] = "외곽선", ["outlinemode_desc"] = "글꼴의 외곽선을 설정합니다.", ["outlinemode_name"] = "외곽선 설정", --[[Translation missing --]] ["pet_battle_tab"] = "Pet Battle Tab", ["rememberfont_desc"] = "선택한 글꼴을 기억하고 시작할 때 적용합니다.", ["rememberfont_name"] = "글꼴 기억", ["Set ChatFrame%d Font Size"] = "대화창%d의 글꼴 크기를 설정합니다.", ["Set Font Face"] = "글꼴 설정", ["Set Font Size"] = "글꼴 크기 설정", ["Set Separately"] = "개별 설정", ["Set text font size for each chat window."] = "각 대화창 별로 글꼴 크기를 설정합니다.", ["Set text font size."] = "글꼴 크기를 설정합니다.", ["Set the text font face for all chat windows."] = "모든 대화창의 글꼴을 설정합니다.", ["shadowcolor_desc"] = "그림자 색상을 설정합니다.", ["shadowcolor_name"] = "그림자 색상 설정", ["Thick Outline"] = "굵은 외곽선", ["Toggle setting options separately for each chat window."] = "각 대화창 별로 옵션 설정을 끄고 켭니다.", --[[Translation missing --]] ["whisper_tabs"] = "Whisper Tabs", ["Workaround a Blizzard bug which changes the font size when you open a system menu."] = "시스템 메뉴를 열 때 글꼴 크기를 변경하는 블리자드 버그를 회피합니다.", } } PL:AddLocale(PRAT_MODULE, "koKR",L) L = { ["Font"] = { --[[Translation missing --]] ["Auto Restore Font Size"] = "Auto Restore Font Size", --[[Translation missing --]] ["Chat window font options."] = "Chat window font options.", --[[Translation missing --]] ["Font"] = "Font", --[[Translation missing --]] ["monochrome_desc"] = "Toggles monochrome coloring of the font.", --[[Translation missing --]] ["monochrome_name"] = "Toggle Monochrome", --[[Translation missing --]] ["None"] = "None", --[[Translation missing --]] ["Outline"] = "Outline", --[[Translation missing --]] ["outlinemode_desc"] = "Sets mode for the outline around the font.", --[[Translation missing --]] ["outlinemode_name"] = "Set Outline Mode", --[[Translation missing --]] ["pet_battle_tab"] = "Pet Battle Tab", --[[Translation missing --]] ["rememberfont_desc"] = "Remember your font choice and restore it at startup.", --[[Translation missing --]] ["rememberfont_name"] = "Remember Font", --[[Translation missing --]] ["Set ChatFrame%d Font Size"] = "Set ChatFrame%d Font Size", --[[Translation missing --]] ["Set Font Face"] = "Set Font Face", --[[Translation missing --]] ["Set Font Size"] = "Set Font Size", --[[Translation missing --]] ["Set Separately"] = "Set Separately", --[[Translation missing --]] ["Set text font size for each chat window."] = "Set text font size for each chat window.", --[[Translation missing --]] ["Set text font size."] = "Set text font size.", --[[Translation missing --]] ["Set the text font face for all chat windows."] = "Set the text font face for all chat windows.", --[[Translation missing --]] ["shadowcolor_desc"] = "Set the color of the shadow effect.", --[[Translation missing --]] ["shadowcolor_name"] = "Set Shadow Color", --[[Translation missing --]] ["Thick Outline"] = "Thick Outline", --[[Translation missing --]] ["Toggle setting options separately for each chat window."] = "Toggle setting options separately for each chat window.", --[[Translation missing --]] ["whisper_tabs"] = "Whisper Tabs", --[[Translation missing --]] ["Workaround a Blizzard bug which changes the font size when you open a system menu."] = "Workaround a Blizzard bug which changes the font size when you open a system menu.", } } PL:AddLocale(PRAT_MODULE, "esMX",L) L = { ["Font"] = { ["Auto Restore Font Size"] = "Авто-восстановление размера", ["Chat window font options."] = "Настройки шрифта окна чата.", ["Font"] = "Шрифт", ["monochrome_desc"] = "Вкл/Выкл чёрно-белое окрашивание шрифта.", ["monochrome_name"] = "Чёрно-белое", ["None"] = "Нет", ["Outline"] = "Обычная обводка", ["outlinemode_desc"] = "Выбор типа обводки вокруг символов.", ["outlinemode_name"] = "Обводка", --[[Translation missing --]] ["pet_battle_tab"] = "Pet Battle Tab", ["rememberfont_desc"] = "Запомнить выбранный шрифт и использовать его при следующей загрузке.", ["rememberfont_name"] = "Запомнить шрифт", ["Set ChatFrame%d Font Size"] = "Размер шрифта окна %d", ["Set Font Face"] = "Основной шрифт", ["Set Font Size"] = "Размер шрифта", ["Set Separately"] = "Разделение", ["Set text font size for each chat window."] = "Установка размера шрифта во всех окнах чата.", ["Set text font size."] = "Размер шрифта.", ["Set the text font face for all chat windows."] = "Установка главного шрифта для всех окон чата.", ["shadowcolor_desc"] = "Установка цвета эффекта тени.", ["shadowcolor_name"] = "Цвет тени", ["Thick Outline"] = "Жирная обводка", ["Toggle setting options separately for each chat window."] = "Вкл/Выкл настройки разделения для всех окон чата.", --[[Translation missing --]] ["whisper_tabs"] = "Whisper Tabs", ["Workaround a Blizzard bug which changes the font size when you open a system menu."] = "Метод обхода ошибки Blizzard, изменяющей размер шрифта при открытии системного меню.", } } PL:AddLocale(PRAT_MODULE, "ruRU",L) L = { ["Font"] = { ["Auto Restore Font Size"] = "自动还原字体尺寸", ["Chat window font options."] = "聊天窗口字体选项", ["Font"] = "字体", ["monochrome_desc"] = "单色字体", ["monochrome_name"] = "单色", ["None"] = "无", ["Outline"] = "轮廓", ["outlinemode_desc"] = "字体轮廓样式设置", ["outlinemode_name"] = "轮廓样式", --[[Translation missing --]] ["pet_battle_tab"] = "Pet Battle Tab", ["rememberfont_desc"] = "记住您的字体选择并在启动时恢复", ["rememberfont_name"] = "记住字体", ["Set ChatFrame%d Font Size"] = "聊天框%d字体尺寸", ["Set Font Face"] = "字体设置", ["Set Font Size"] = "设置字体大小", ["Set Separately"] = "个别设置", ["Set text font size for each chat window."] = "每个聊天窗口的文本字体尺寸", ["Set text font size."] = "文本字体尺寸", ["Set the text font face for all chat windows."] = "所有聊天窗口的文本字体", ["shadowcolor_desc"] = "阴影效果的颜色", ["shadowcolor_name"] = "阴影色彩", ["Thick Outline"] = "厚轮廓", ["Toggle setting options separately for each chat window."] = "每个聊天窗口的个别选项设置", --[[Translation missing --]] ["whisper_tabs"] = "Whisper Tabs", ["Workaround a Blizzard bug which changes the font size when you open a system menu."] = "当你打开系统菜单时改变暴雪错误提示字体尺寸", } } PL:AddLocale(PRAT_MODULE, "zhCN",L) L = { ["Font"] = { ["Auto Restore Font Size"] = "Restaurar Tamaño Fuentes Automáticamente", ["Chat window font options."] = "Opciones de la fuente de la ventana del chat.", ["Font"] = "Fuente", ["monochrome_desc"] = "Alterna el color monocromo de la fuente.", ["monochrome_name"] = "Alternar Monocromo", ["None"] = "Ninguna", ["Outline"] = "Contorno", ["outlinemode_desc"] = "Estable el modo para el contorno alrededor de la fuente.", ["outlinemode_name"] = "Establecer Modo de Cotorno", --[[Translation missing --]] ["pet_battle_tab"] = "Pet Battle Tab", ["rememberfont_desc"] = "Recordar la elección de la fuente y restaurarla al reiniciar.", ["rememberfont_name"] = "Recordar Fuente", ["Set ChatFrame%d Font Size"] = "Establecer Tamaño Fuente de Chat %d", ["Set Font Face"] = "Establecer Tipo de Fuente", ["Set Font Size"] = "Establecer Tamaño de Fuente", ["Set Separately"] = "Establecer por separado", ["Set text font size for each chat window."] = "Establece el tamaño de la fuente del texto de cada ventana de chat.", ["Set text font size."] = "Establece el tamaño de la fuente del texto.", ["Set the text font face for all chat windows."] = "Establece el tipo de fuente de texto para todas las ventanas de chat.", ["shadowcolor_desc"] = "Establece el color del efecto de sombra.", ["shadowcolor_name"] = "Establecer Color de la Sombra", ["Thick Outline"] = "Contorno Grueso", ["Toggle setting options separately for each chat window."] = "Cambiar opciones de configuración por separado para cada ventana de chat.", --[[Translation missing --]] ["whisper_tabs"] = "Whisper Tabs", ["Workaround a Blizzard bug which changes the font size when you open a system menu."] = "Solución a un error de Blizzard que cambia el tamaño de la fuente cuando se abre un menú de sistema.", } } PL:AddLocale(PRAT_MODULE, "esES",L) L = { ["Font"] = { ["Auto Restore Font Size"] = "自動還原字型大小", ["Chat window font options."] = "聊天視窗字型選項。", ["Font"] = "字型", ["monochrome_desc"] = "切換字型的灰階色彩。", ["monochrome_name"] = "切換灰階", ["None"] = "無", ["Outline"] = "輪廓", ["outlinemode_desc"] = "設定字體是否加粗輪廓", ["outlinemode_name"] = "設定輪廓模式", --[[Translation missing --]] ["pet_battle_tab"] = "Pet Battle Tab", ["rememberfont_desc"] = "記住字型設定", ["rememberfont_name"] = "記憶字型", ["Set ChatFrame%d Font Size"] = "設定聊天視窗 %d 之字型大小", ["Set Font Face"] = "設定字體", ["Set Font Size"] = "設定字型大小", ["Set Separately"] = "個別設定", ["Set text font size for each chat window."] = "設定個別聊天視窗字型大小", ["Set text font size."] = "設定文字字型大小", ["Set the text font face for all chat windows."] = "設定所有聊天視窗字體", ["shadowcolor_desc"] = "設定陰影效果色彩", ["shadowcolor_name"] = "設定陰影色彩", ["Thick Outline"] = "粗邊", ["Toggle setting options separately for each chat window."] = "切換設定選項分開地每個聊天視窗。", --[[Translation missing --]] ["whisper_tabs"] = "Whisper Tabs", ["Workaround a Blizzard bug which changes the font size when you open a system menu."] = "開啟系統選單時變更Blizzard錯誤訊息的字型大小。", } } PL:AddLocale(PRAT_MODULE, "zhTW",L) end --@end-non-debug@ Prat:SetModuleDefaults(module, { profile = { on = true, fontface = "", rememberfont = false, size = { ["*"] = 12 }, autorestore = false, outlinemode = "", monochrome = false, shadowcolor = { r = 0, g = 0, b = 0, a = 1, }, } }) local frameOption = { -- name = string.format(PL["Set ChatFrame%d Font Size"], num), name = function(info) return Prat.FrameList[info[#info]] or "" end, desc = PL["Set text font size."], type = "range", get = "GetSubValue", set = "SetSubValue", min = 4, max = 100, step = 1, hidden = function(info) return Prat.FrameList[info[#info]] == nil end, } local whisperTabsOption = { name = PL["whisper_tabs"], desc = PL["Set text font size."], type = "range", get = "GetSubValue", set = "SetSubValue", min = 4, max = 100, step = 1, hidden = function(info) return GetCVar("whisperTabs") == "inline" end, } local petBattleTabOption = { name = PL["pet_battle_tab"], desc = PL["Set text font size."], type = "range", get = "GetSubValue", set = "SetSubValue", min = 4, max = 100, step = 1, hidden = Prat.IsClassic, order = 900, } Prat:SetModuleOptions(module, { name = PL["Font"], desc = PL["Chat window font options."], type = "group", args = { fontface = { name = PL["Set Font Face"], desc = PL["Set the text font face for all chat windows."], type = "select", dialogControl = 'LSM30_Font', values = AceGUIWidgetLSMlists.font, order = 110, }, size = { name = PL["Set Font Size"], desc = PL["Set text font size for each chat window."], type = "group", inline = true, order = 130, args = { ChatFrame1 = frameOption, ChatFrame2 = frameOption, ChatFrame3 = frameOption, ChatFrame4 = frameOption, ChatFrame5 = frameOption, ChatFrame6 = frameOption, ChatFrame7 = frameOption, ChatFrame8 = frameOption, ChatFrame9 = frameOption, ChatFrame10 = frameOption, WhisperTabs = whisperTabsOption, PetBattleTab = petBattleTabOption, } }, outlinemode = { name = PL["outlinemode_name"], desc = PL["outlinemode_desc"], type = "select", order = 150, values = { [""] = PL["None"], ["OUTLINE"] = PL["Outline"], ["THICKOUTLINE"] = PL["Thick Outline"] }, }, monochrome = { type = "toggle", name = PL["monochrome_name"], desc = PL["monochrome_desc"], order = 160, }, shadowcolor = { name = PL["shadowcolor_name"], desc = PL["shadowcolor_desc"], type = "color", order = 170, get = "GetColorValue", set = "SetColorValue", }, rememberfont = { type = "toggle", order = 120, name = PL["rememberfont_name"], desc = PL["rememberfont_desc"], }, } }) --[[------------------------------------------------ Module Event Functions ------------------------------------------------]] -- local media, FONT function module:OnModuleEnable() self:RegisterEvent("PLAYER_ENTERING_WORLD") self.oldsize = {} for k, cf in pairs(Prat.Frames) do local _, s, _ = cf:GetFont() self.oldsize[k] = s end if not self.db.profile.rememberfont then self.db.profile.fontface = nil end self:ConfigureAllChatFrames() self:SecureHook("FCF_SetChatWindowFontSize") media = Prat.Media FONT = media.MediaType.FONT media.RegisterCallback(self, "LibSharedMedia_Registered", "SharedMedia_Registered") media.RegisterCallback(self, "LibSharedMedia_SetGlobal", "SharedMedia_Registered") Prat.RegisterChatEvent(self, Prat.Events.FRAMES_UPDATED) end function module:GetDescription() return PL["Chat window font options."] end function module:SharedMedia_Registered(mediatype, name) if mediatype == FONT then if name == self.db.profile.fontface then self:ConfigureAllChatFrames() end end end function module:Prat_FramesUpdated(info, name, chatFrame, ...) self:ConfigureAllChatFrames() end function module:PLAYER_ENTERING_WORLD() self:ConfigureAllChatFrames() self:UnregisterAllEvents() end function module:OnModuleDisable() self:UnhookAll() media.UnregisterAllCallbacks(self) for k, cf in pairs(Prat.Frames) do self:SetFontSize(cf, self.oldsize[k] or 12) end self:SetFontMode("") end function module:GetSubValue(info) return self.db.profile[info[#info - 1]][info[#info]] end function module:SetSubValue(info, b) self.db.profile[info[#info - 1]][info[#info]] = b self:OnValueChanged(info, b) end local function IsWhisperFrame(frame) return frame.chatType == "WHISPER" or frame.chatType == "BN_WHISPER" end local function IsPetBattleFrame(frame) return frame.chatType == "PET_BATTLE_COMBAT_LOG" end --[[------------------------------------------------ Core Functions ------------------------------------------------]] -- function module:ConfigureAllChatFrames() local db = self.db.profile if db.fontface then self:SetFont(db.fontface) end -- aPLy font size settings for k, v in pairs(Prat.Frames) do if IsWhisperFrame(v) then self:SetFontSize(v, db.size.WhisperTabs) elseif IsPetBattleFrame(v) then self:SetFontSize(v, db.size.PetBattleTab) else self:SetFontSize(v, db.size[k]) end end -- aPLy font flag settings if not db.monochrome then self:SetFontMode(db.outlinemode) else self:SetFontMode(db.outlinemode .. ", MONOCHROME") end end function module:SetFontSize(cf, size) FCF_SetChatWindowFontSize(nil, cf, size) end function module:SetFont(font) local fontfile = Prat.Media:Fetch(Prat.Media.MediaType.FONT, font) for k, cf in pairs(Prat.Frames) do local f, s, m = cf:GetFont() cf:SetFont(fontfile, s, m) end end function module:SetFontMode(mode, monochrome) for k, cf in pairs(Prat.Frames) do local f, s, m = cf:GetFont() cf:SetFont(f, s, mode) if monochrome then local c = self.db.profile.shadowcolor cf:SetShadowColor(c.r, c.g, c.b, c.a) end end end function module:GetShadowClr() local h = self.db.profile.shadowcolor or {} return h.r or 1.0, h.g or 1.0, h.b or 1.0 end function module:SetShadowClr(r, g, b) local db = self.db.profile db.shadowcolor = db.shadowcolor or {} local h = db.shadowcolor h.r, h.g, h.b = r, g, b self:ConfigureAllChatFrames() end function module:FCF_SetChatWindowFontSize(fcfself, chatFrame, fontSize) if not fcfself then return end if (not chatFrame) then chatFrame = FCF_GetCurrentChatFrame(); end if (not fontSize) then fontSize = fcfself.value; end if self.db and self.db.profile.on then if IsWhisperFrame(chatFrame) then self.db.profile.size.WhisperTabs = fontSize elseif IsPetBattleFrame(chatFrame) then self.db.profile.size.PetBattleTab = fontSize else self.db.profile.size[chatFrame:GetName()] = fontSize end end end module.OnValueChanged = module.ConfigureAllChatFrames module.OnSubValueChanged = module.ConfigureAllChatFrames module.OnColorValueChanged = module.ConfigureAllChatFrames return end) -- Prat:AddModuleToLoad