Not sure you need to do anything. I just plugged your code in and added the following line only to trigger the change:
bigBox.Event.LeftClick = function() changemyColor("whatever") end
Now when you click the box, it turns the top left quad red. Is that what you are attempting?
Code:
local context=UI.CreateContext("myWindowFrame")
local bigBox = UI.CreateFrame("Text", "placeHolder", context)
bigBox:SetWidth(20)
bigBox:SetHeight(20)
bigBox:SetPoint("TOPCENTER", UIParent, "TOPCENTER",0,0)
bigBox.Event.LeftClick = function() changemyColor("whatever") end
bigBox:SetBackgroundColor(0,0,0,1)
bigBox:SetVisible(true)
local box1 = UI.CreateFrame("Text", "box1", bigBox)
box1:SetWidth(10)
box1:SetHeight(10)
box1:SetPoint("TOPLEFT", bigBox, "TOPLEFT",0,0)
--box1:SetBackgroundColor(1,0,0,1)
box1:SetVisible(true)
--the conditional will call this:
function changemyColor(myC)
if myC == "whatever" then
box1:SetBackgroundColor(1,0,0,1)
--How do I trigger a refresh of my little box after this?
end
end