DTextEntry doesn't update font style for some reason
2 replies, posted
I'm not sure if this is a Garry's Mod issue or if I need to do something to get this working properly.
I'm making a placeholder text entry:
[CODE]local PANEL = {}
surface.CreateFont("bgui_placeholdered",{
size = 16,
font = "Roboto",
italic = true,
})
surface.CreateFont("bgui_textnormal",{
size = 16,
font = "Arial",
italic = false,
})
function PANEL:SetPlaceHolder(text)
self.PlaceHoldered = true
self.PlaceHolder = text
self:SetText(text)
self:SetFont("bgui_placeholdered")
self:SetTextColor(Color(64,64,64))
end
function PANEL:Init()
self:SetFont("bgui_textnormal")
self:SetTextColor(Color(255,0,0))
self.OnGetFocus = function()
if (self.PlaceHoldered == true) then
self.PlaceHoldered = false
self:SetFont("bgui_textnormal")
self:SetTextColor(Color(255,0,0))
self:SetText("")
end
end
self.OnLoseFocus = function()
if (self:GetValue() == "" and self.PlaceHolder) then
self.PlaceHoldered = true
self:SetText(self.PlaceHolder)
self:SetFont("bgui_placeholdered")
self:SetTextColor(Color(64,64,64))
end
end
end
function PANEL:OnValueChange(v)
if (v == "" and self.PlaceHolder) then
self.PlaceHoldered = true
self:SetText(self.PlaceHolder)
self:SetFont("bgui_placeholdered")
self:SetTextColor(Color(64,64,64))
end
end
function PANEL:OnKeyCodeTyped(kc)
if (self.PlaceHoldered == true) then
self.PlaceHoldered = false
self:SetFont("bgui_textnormal")
self:SetTextColor(Color(255,0,0))
self:SetText("")
end
end
function PANEL:GetUpdateOnType()
return true
end
derma.DefineControl("BTextBox",nil,PANEL,"DTextEntry")[/CODE]
This is what happens:
[vid]http://billyvenner.xyz/files/2016-02-17_18-14-11.mp4[/vid]
The text is red, this shows that the code is actually being executed, however, the font does not change.
Is there anything I have to do for this?
[QUOTE=BillyOnWiiU;49760240][/QUOTE]
for some reason you have to use SetFont in a Paint type hook to set DTextEntry's font
I may be wrong and that might only be for DRichText though.
Actually DTextEntry's SetFont is wrong. I will try to fix it.
In the mean time you can try doing either
DLabel.SetFont( mytextentty, font )
OR
call :ApplySchemeSettings() after setting the font.
Sorry, you need to Log In to post a reply to this thread.