Files
Plugins/PluginCache/K4sh/GlobalDependencies/Scripts/StandardTheme.lua

172 lines
5.3 KiB
Lua
Raw Normal View History

2025-07-17 18:11:51 +02:00
RGBToHex = FWSBinds.c_Tools_RGBtoHex
function ApplyThemeToControl(Control,Theme)
if Theme == nil or Control == nil then return end
local ControlObject = Control.Color
if ControlObject then
local tTheme = Theme.Color
if tTheme then
if tTheme.Backcolor then ControlObject:SetBackColor(tTheme.Backcolor) end
if tTheme.Forecolor then ControlObject:SetForeColor(tTheme.Forecolor) end
if tTheme.Alpha then ControlObject:SetBackColorAlpha(tTheme.Alpha) end
if Control.GetCheckState then
if tTheme.Checked_Forecolor then
if Control:GetCheckState() == 0 then ControlObject:SetForeColor(tTheme.Checked_Forecolor) end
end
if tTheme.Unchecked_Forecolor then
if Control:GetCheckState() == 1 then ControlObject:SetForeColor(tTheme.Unchecked_Forecolor) end
end
end
end
end
local ControlObject = Control.Font
if ControlObject then
local tTheme = Theme.Font
if tTheme then
if tTheme.Size then ControlObject:SetFontSize(tTheme.Size) end
if tTheme.Name then ControlObject:SetFontName(tTheme.Name) end
if tTheme.Bold then ControlObject:SetBold(tTheme.Bold) end
if tTheme.Italic then ControlObject:SetItalic(tTheme.Italic) end
if tTheme.Underline then ControlObject:SetUnderline(tTheme.Underline) end
end
end
local ControlObject = Control.BackgroundImage
if ControlObject then
local tTheme = Theme.BackgroundImage
if tTheme then
if tTheme.Dependency then
local Dependency = ModuleDependencys:GetDependency(tTheme.Dependency)
if Dependency then
ControlObject:SetDependency(Dependency)
ControlObject:SetEnabled(true)
end
end
if tTheme.Alpha then ControlObject:SetTransparencyLevel(tTheme.Alpha) end
end
end
end
Theme = {}
Theme.CheckBox = {
Font = {Size=GUI_DEFAULTFONTSIZE+0.5, Name=GUI_DEFAULTFONT, Bold=true},
Color = {Checked_Forecolor=RGBToHex(255,0,0), Unchecked_Forecolor=COLOR_GREEN}
}
Theme.Button = {
Font = {Size=GUI_DEFAULTFONTSIZE, Name=GUI_DEFAULTFONT, Bold=true},
}
Theme.FixToggle = {
Font = {Size=GUI_DEFAULTFONTSIZE+0.5, Name=GUI_DEFAULTFONT, Bold=true},
Color = {Checked_Forecolor=RGBToHex(255,0,0), Unchecked_Forecolor=COLOR_GREEN}
}
Theme.Header = {
Font = {Size=GUI_DEFAULTFONTSIZE, Name=GUI_DEFAULTFONT, Bold=true},
Color = {Backcolor=RGBToHex(255,64,64), Forecolor=COLOR_WHITE, Alpha=100}
}
Theme.Warning = {
Font = {Size=GUI_DEFAULTFONTSIZE, Name=GUI_DEFAULTFONT, Bold=true},
Color = {Backcolor=RGBToHex(255,32,32), Forecolor=COLOR_WHITE, Alpha=70}
}
Theme.Label = {
Font = {Size=GUI_DEFAULTFONTSIZE, Name=GUI_DEFAULTFONT},
Color = {Backcolor=RGBToHex(255,64,64), Forecolor=COLOR_WHITE, Alpha=100}
}
Theme.FOVSlider = {
Labels = {
Font = {Size=GUI_DEFAULTFONTSIZE, Name=GUI_DEFAULTFONT, Bold=true},
Color = {Forecolor=COLOR_WHITE}
},
ValueLabel = {
Font = {Size=GUI_DEFAULTFONTSIZE-0.5, Name=GUI_DEFAULTFONT},
Color = {Forecolor=COLOR_WHITE}
}
}
Theme.ComboBox = {
Font = {Size=GUI_DEFAULTFONTSIZE, Name=GUI_DEFAULTFONT},
Color = {Forecolor=COLOR_WHITE}
}
Theme.ParameterBox = {
Font = {Size=GUI_DEFAULTFONTSIZE, Name=GUI_DEFAULTFONT},
Color = {Backcolor=RGBToHex(50,50,255), Forecolor=COLOR_WHITE, Alpha=40}
}
Theme.ContainerHeader = {
Font = {Size=GUI_DEFAULTFONTSIZE, Name=GUI_DEFAULTFONT, Bold=true},
Color = {Backcolor=COLOR_GREEN, Forecolor=COLOR_GREEN, Alpha=60}
}
Theme.ContainerLabelName = {
Font = {Size=GUI_DEFAULTFONTSIZE-0.25, Name=GUI_DEFAULTFONT, Bold=true},
Color = {Forecolor=COLOR_WHITE}
}
Theme.ContainerLabelValue = {
Font = {Size=GUI_DEFAULTFONTSIZE-0.25, Name=GUI_DEFAULTFONT},
Color = {Forecolor=COLOR_WHITE}
}
Theme.ContainerLinkLabel = {
Font = {Size=GUI_DEFAULTFONTSIZE-0.5, Name=GUI_DEFAULTFONT},
Color = {Forecolor=COLOR_WHITE}
}
Theme.ContainerEditBox = {
Font = {Size=GUI_DEFAULTFONTSIZE-0.5, Name=GUI_DEFAULTFONT},
Color = {Backcolor=COLOR_WHITE, Forecolor=COLOR_WHITE, Alpha=25}
}
Theme.MainWindow = {
Color = {Backcolor=COLOR_BLACK},
BackgroundImage = {Dependency="UI Background", Alpha=45}
}
Theme.Container = {
Color = {Backcolor=COLOR_WHITE, Alpha=25}
}
--MainWindow
ApplyThemeToControl(MainWindow,Theme.MainWindow)
-- Container Window
ApplyThemeToControl(ContainerChild,Theme.Container)
-- Information Header
ApplyThemeToControl(lbl_InfoHeader,Theme.ContainerHeader)
ApplyThemeToControl(lbl_InfoFilename,Theme.ContainerLabelName)
ApplyThemeToControl(lbl_InfoFilenameVal,Theme.ContainerLabelValue)
ApplyThemeToControl(lbl_Version,Theme.ContainerLabelName)
ApplyThemeToControl(lbl_VersionVal,Theme.ContainerLabelValue)
ApplyThemeToControl(lbl_InfoModType,Theme.ContainerLabelName)
ApplyThemeToControl(lbl_InfoModTypeVal,Theme.ContainerLabelValue)
ApplyThemeToControl(lbl_InfoModName,Theme.ContainerLabelName)
ApplyThemeToControl(lbl_InfoModNameVal,Theme.ContainerLabelValue)
ApplyThemeToControl(lbl_InfoAuthor,Theme.ContainerLabelName)
ApplyThemeToControl(lbl_InfoAuthorVal,Theme.ContainerLabelValue)
--Description
ApplyThemeToControl(lbl_DescrHeader,Theme.ContainerHeader)
ApplyThemeToControl(eb_Description,Theme.ContainerEditBox)
--Links and Resources
ApplyThemeToControl(lbl_LinkResourceHeader,Theme.ContainerHeader)
ApplyThemeToControl(link_LinkBlock,Theme.ContainerLinkLabel)
--Status Window
ApplyThemeToControl(lbl_StatusWindowHeader,Theme.ContainerHeader)
ApplyThemeToControl(StatusWindowEditBox,Theme.ContainerEditBox)