void Tabbed::AddPage(Widget *label, Widget *child) { AppendChild(label, 0, 0); AppendChild(child, 0, TAB_BAR_HEIGHT); m_pages.push_back(std::pair<Widget*,Widget*>(label,child)); if (m_page != m_pages.size()-1) child->Hide(); label->Show(); ShuffleLabels(); }
void Tabbed::OnChildResizeRequest(Widget *child) { if (IsLabelWidget(child)) { float size[2], rsize[2]; GetSize(size); rsize[0] = size[0]; rsize[1] = TAB_BAR_HEIGHT; child->GetSizeRequested(rsize); rsize[0] = std::min(rsize[0], size[0]); rsize[1] = std::min(rsize[1], TAB_BAR_HEIGHT); child->SetSize(rsize[0], rsize[1]); ShuffleLabels(); } else { float size[2], rsize[2]; GetSize(size); rsize[0] = size[0]; rsize[1] = size[1] - TAB_BAR_HEIGHT; child->GetSizeRequested(rsize); rsize[0] = std::min(rsize[0], size[0]); child->SetSize(rsize[0], rsize[1]); } }