So now I have code like this:
void CButtonWidget::OnLeftButtonClick(const POINT& pt){ CLog::Format("Button ID %d was clicked at (%d, %d)\n", GetID(), pt.x, pt.y);}
The point passed to the widget is relative to its upper left corner, which makes sense. I'll hopefully be getting text entry done soon, which I expect to be quite a pain, but we'll see how that goes. I've just noticed that transparant parts of the window go a bit broken (D3D debug fill colour). I'll have to see why that is tomorrow (I think it's a z-write problem). Anyway, here's a screenshot of me ripping off the BlueMesa theme for testing purposes:
![IT WUZNAY ME](http://members.gamedev.net/EvilSteve/JournalStuff/GUI2_sm.jpg)
(Click to enlarge)