add: frame.OffsetTo(B_ORIGIN); frame.InsetBy(5.0, 5.0); if (frame.IsValid()) { ViewLayer* layer1 = new ViewLayer(frame, "View 1", B_FOLLOW_ALL, B_FULL_UPDATE_ON_RESIZE, (rgb_color){ 180, 180, 180, 255 });  frame.OffsetTo(B_ORIGIN); frame.InsetBy(15.0, 15.0); if (frame.IsValid()) { frame.bottom = (frame.top + frame.bottom) / 2 - 5;  ViewLayer* layer2 = new ViewLayer(frame, "View 2", B_FOLLOW_ALL, 0, (rgb_color){ 120, 120, 120, 255 });  frame.OffsetBy(0.0, frame.Height() + 10);  ViewLayer* layer3 = new ViewLayer(frame, "View 3", B_FOLLOW_BOTTOM, 0, (rgb_color){ 120, 120, 120, 255 });   layer1->AddChild(layer2); layer1->AddChild(layer3); }  window->AddChild(layer1); }
context: Window::AddWindow(BRect frame, const char* name){	WindowLayer* window = new WindowLayer(frame, name,										  fDesktop->GetDrawingEngine(),										  fDesktop);	window->Run();	BMessage message(MSG_ADD_WINDOW);	message.AddPointer("window", (void*)window);	fDesktop->PostMessage(&message);}