/************************************************************************* Add a new tab *************************************************************************/ void TabControl::addTab(Window* wnd) { // abort attempts to add null window pointers, but log it for tracking. if (!wnd) { Logger::getSingleton().logEvent("Attempt to add null window pointer as " "tab to TabControl '" + getName() + "'. Ignoring!", Informative); return; } // Create a new TabButton addButtonForTabContent(wnd); // Add the window to the content pane getTabPane()->addChildWindow(wnd); // Auto-select? if (getTabCount() == 1) setSelectedTab(wnd->getName()); else // initialise invisible content wnd->setVisible(false); // when adding the 1st page, autosize tab pane height if (d_tabHeight.d_scale == 0 && d_tabHeight.d_offset == -1) d_tabHeight.d_offset = 8 + getFont()->getFontHeight (); // Just request redraw performChildWindowLayout(); invalidate(); // Subscribe to text changed event so that we can resize as needed d_eventConnections[wnd] = wnd->subscribeEvent(Window::EventTextChanged, Event::Subscriber(&TabControl::handleContentWindowTextChanged, this)); }
/************************************************************************* Add a new tab *************************************************************************/ void TabControl::addTab(Window* wnd) { // Create a new TabButton addButtonForTabContent(wnd); // Add the window to the content pane d_tabContentPane->addChildWindow(wnd); // Auto-select? if (getTabCount() == 1) { setSelectedTab(wnd->getName()); } else { // initialise invisible content wnd->setVisible(false); } // Just request redraw performChildWindowLayout(); requestRedraw(); // Subscribe to text changed event so that we can resize as needed wnd->subscribeEvent(Window::EventTextChanged, Event::Subscriber(&TabControl::handleContentWindowTextChanged, this)); }