struct Object::Data { unsigned id; bool locked; }; struct Font::Data { HFONT font; }; struct Action::Data { Menu *parent; HMENU parentMenu; HMENU menu; MenuRadioItem *radioParent; array items; }; struct Widget::Data { HWND window; HFONT font; }; struct Window::Data { HFONT defaultFont; HBRUSH brush; COLORREF brushColor; HMENU menu; HWND status; unsigned width; unsigned height; }; struct Canvas::Data { uint32_t *buffer; BITMAPINFO bmi; unsigned pitch; unsigned width; unsigned height; }; struct ComboBox::Data { unsigned selection; }; struct EditBox::Data { bool wordWrap; unsigned x; unsigned y; unsigned width; unsigned height; }; struct HorizontalSlider::Data { unsigned position; }; struct ListBox::Data { unsigned columns; bool lostFocus; }; struct RadioBox::Data { Window *parentWindow; RadioBox *parent; array items; }; struct VerticalSlider::Data { unsigned position; }; struct OS::Data { nall::array objects; HFONT proportionalFont; HFONT monospaceFont; }; void Object::unused() { } Object::Object() { OS::initialize(); static unsigned guid = 100; object = new Object::Data; object->id = guid++; object->locked = false; }