IUP 3.26 introduced a THEME attribute:
THEME common attribute and DEFAULTTHEME global attribute that works for all controls to apply a set of attributes at once.
I'm using IUP 3.28 and have followed (I think) the documentation to standardise the appearance of various controls; however, it isn't working as I expect -- in fact it doesn't seem to be working at all. The attributes specified in the Theme for each control aren't being applied, so there's clearly something I have misunderstood. In the example the button should have pink text, but it doesn't.
require "iuplua"
iup.SetGlobal("DLGBGCOLOR","255 255 255") --default background colour
iup.SetGlobal("TXTBGCOLOR", "255,255,255") --default text color
myButtonTheme = iup.user{alignment="ALEFT:ACENTER", expand = "HORIZONTAL",
padding = "20x10", fgcolor = "255 0 255"}
myTheme = iup.user{
IUPBUTTON = myButtonTheme
}
iup.SetGlobal("DEFAULTTHEME", "myTheme") --default settings for iup controls
b = iup.button{title = "This should be pink"}
dlg = iup.dialog{iup.hbox{b}}
dlg:show()
iup.MainLoop()
dlg:destroy()
ETA: If I create the button thus: b = iup.button{title = "This should be pink", theme = myButtonTheme}
it works; but if I rely on DEFAULTHEME it doesn't. I have some buttons created by libraries that I want to theme consistently
It is missing the call:
iup.SetHandle("myTheme", myTheme)
After creating the Lua myTheme control.