void TabbedButtonBar::addTab (const String& tabName, const Colour& tabBackgroundColour, int insertIndex) { jassert (tabName.isNotEmpty()); // you have to give them all a name.. if (tabName.isNotEmpty()) { if (! isPositiveAndBelow (insertIndex, tabs.size())) insertIndex = tabs.size(); TabInfo* newTab = new TabInfo(); newTab->name = tabName; newTab->colour = tabBackgroundColour; newTab->component = createTabButton (tabName, insertIndex); jassert (newTab->component != nullptr); tabs.insert (insertIndex, newTab); addAndMakeVisible (newTab->component, insertIndex); resized(); if (currentTabIndex < 0) setCurrentTabIndex (0); } }
void TabbedButtonBar::addTab (const String& tabName, const Colour& tabBackgroundColour, int insertIndex) { jassert (tabName.isNotEmpty()); // you have to give them all a name.. if (tabName.isNotEmpty()) { if (((unsigned int) insertIndex) > (unsigned int) tabs.size()) insertIndex = tabs.size(); for (int i = tabs.size(); --i >= insertIndex;) { TabBarButton* const tb = getTabButton (i); if (tb != 0) tb->tabIndex++; } tabs.insert (insertIndex, tabName); tabColours.insert (insertIndex, tabBackgroundColour); TabBarButton* const tb = createTabButton (tabName, insertIndex); jassert (tb != 0); // your createTabButton() mustn't return zero! addAndMakeVisible (tb, insertIndex); resized(); if (currentTabIndex < 0) setCurrentTabIndex (0); } }
/************************************************************************* Add tab button *************************************************************************/ void TabControl::addButtonForTabContent(Window* wnd) { // Create the button TabButton* tb = createTabButton(makeButtonName(wnd)); // Copy font tb->setFont(getFont()); // Set target window tb->setTargetWindow(wnd); // Instert into map d_tabButtonVector.push_back(tb); // add the button getTabButtonPane()->addChildWindow(tb); // Subscribe to clicked event so that we can change tab tb->subscribeEvent(TabButton::EventClicked, Event::Subscriber(&TabControl::handleTabButtonClicked, this)); tb->subscribeEvent(TabButton::EventDragged, Event::Subscriber(&TabControl::handleDraggedPane, this)); tb->subscribeEvent(TabButton::EventScrolled, Event::Subscriber(&TabControl::handleWheeledPane, this)); }
/************************************************************************* Add tab button *************************************************************************/ void TabControl::addButtonForTabContent(Window* wnd) { // Create the button TabButton* tb = createTabButton(makeButtonName(wnd)); // Copy font tb->setFont(getFont()); // Set target window tb->setTargetWindow(wnd); // Set index tb->setTabIndex(d_nextTabIndex++); // Instert into map d_tabButtonIndexMap.insert( TabButtonIndexMap::value_type(tb->getTabIndex(), tb)); // add the button d_tabButtonPane->addChildWindow(tb); // Subscribe to clicked event so that we can change tab tb->subscribeEvent(TabButton::EventClicked, Event::Subscriber(&TabControl::handleTabButtonClicked, this)); }