A vertical or horizontal bar containing tabs that you can select. More...
Inherits Component, and ChangeBroadcaster.
Public Types | |
| enum | Orientation { TabsAtTop, TabsAtBottom, TabsAtLeft, TabsAtRight } |
The placement of the tab-bar. More... | |
| enum | ColourIds { tabOutlineColourId = 0x1005812, tabTextColourId = 0x1005813, frontOutlineColourId = 0x1005814, frontTextColourId = 0x1005815 } |
A set of colour IDs to use to change the colour of various aspects of the component. More... | |
Public Member Functions | |
| TabbedButtonBar (Orientation orientation) | |
| Creates a TabbedButtonBar with a given placement. | |
| ~TabbedButtonBar () | |
| Destructor. | |
| void | setOrientation (Orientation orientation) |
| Changes the bar's orientation. | |
| Orientation | getOrientation () const noexcept |
| Returns the current orientation. | |
| void | setMinimumTabScaleFactor (double newMinimumScale) |
| Changes the minimum scale factor to which the tabs can be compressed when trying to fit a lot of tabs on-screen. | |
| void | clearTabs () |
| Deletes all the tabs from the bar. | |
| void | addTab (const String &tabName, const Colour &tabBackgroundColour, int insertIndex=-1) |
| Adds a tab to the bar. | |
| void | setTabName (int tabIndex, const String &newName) |
| Changes the name of one of the tabs. | |
| void | removeTab (int tabIndex) |
| Gets rid of one of the tabs. | |
| void | moveTab (int currentIndex, int newIndex) |
| Moves a tab to a new index in the list. | |
| int | getNumTabs () const |
| Returns the number of tabs in the bar. | |
| StringArray | getTabNames () const |
| Returns a list of all the tab names in the bar. | |
| void | setCurrentTabIndex (int newTabIndex, bool sendChangeMessage=true) |
| Changes the currently selected tab. | |
| String | getCurrentTabName () const |
| Returns the name of the currently selected tab. | |
| int | getCurrentTabIndex () const noexcept |
| Returns the index of the currently selected tab. | |
| TabBarButton * | getTabButton (int index) const |
| Returns the button for a specific tab. | |
| int | indexOfTabButton (const TabBarButton *button) const |
| Returns the index of a TabBarButton if it belongs to this bar. | |
| virtual void | currentTabChanged (int newCurrentTabIndex, const String &newCurrentTabName) |
| Callback method to indicate the selected tab has been changed. | |
| virtual void | popupMenuClickOnTab (int tabIndex, const String &tabName) |
| Callback method to indicate that the user has right-clicked on a tab. | |
| const Colour | getTabBackgroundColour (int tabIndex) |
| Returns the colour of a tab. | |
| void | setTabBackgroundColour (int tabIndex, const Colour &newColour) |
| Changes the background colour of a tab. | |
| void | resized () |
| Called when this component's size has been changed. | |
| void | lookAndFeelChanged () |
| Called to let the component react to a change in the look-and-feel setting. | |
Protected Member Functions | |
| virtual TabBarButton * | createTabButton (const String &tabName, int tabIndex) |
| This creates one of the tabs. | |
A vertical or horizontal bar containing tabs that you can select.
You can use one of these to generate things like a dialog box that has tabbed pages you can flip between. Attach a ChangeListener to the button bar to be told when the user changes the page.
An easier method than doing this is to use a TabbedComponent, which contains its own TabbedButtonBar and which takes care of the layout and other housekeeping.
The placement of the tab-bar.
A set of colour IDs to use to change the colour of various aspects of the component.
These constants can be used either via the Component::setColour(), or LookAndFeel::setColour() methods.
| TabbedButtonBar::TabbedButtonBar | ( | Orientation | orientation ) |
Creates a TabbedButtonBar with a given placement.
You can change the orientation later if you need to.
| TabbedButtonBar::~TabbedButtonBar | ( | ) |
Destructor.
| void TabbedButtonBar::setOrientation | ( | Orientation | orientation ) |
Changes the bar's orientation.
This won't change the bar's actual size - you'll need to do that yourself, but this determines which direction the tabs go in, and which side they're stuck to.
| Orientation TabbedButtonBar::getOrientation | ( | ) | const |
Returns the current orientation.
| void TabbedButtonBar::setMinimumTabScaleFactor | ( | double | newMinimumScale ) |
Changes the minimum scale factor to which the tabs can be compressed when trying to fit a lot of tabs on-screen.
| void TabbedButtonBar::clearTabs | ( | ) |
Deletes all the tabs from the bar.
| void TabbedButtonBar::addTab | ( | const String & | tabName, |
| const Colour & | tabBackgroundColour, | ||
| int | insertIndex = -1 |
||
| ) |
Adds a tab to the bar.
Tabs are added in left-to-right reading order.
If this is the first tab added, it'll also be automatically selected.
| void TabbedButtonBar::setTabName | ( | int | tabIndex, |
| const String & | newName | ||
| ) |
Changes the name of one of the tabs.
| void TabbedButtonBar::removeTab | ( | int | tabIndex ) |
Gets rid of one of the tabs.
| void TabbedButtonBar::moveTab | ( | int | currentIndex, |
| int | newIndex | ||
| ) |
Moves a tab to a new index in the list.
Pass -1 as the index to move it to the end of the list.
| int TabbedButtonBar::getNumTabs | ( | ) | const |
Returns the number of tabs in the bar.
| StringArray TabbedButtonBar::getTabNames | ( | ) | const |
Returns a list of all the tab names in the bar.
| void TabbedButtonBar::setCurrentTabIndex | ( | int | newTabIndex, |
| bool | sendChangeMessage = true |
||
| ) |
Changes the currently selected tab.
This will send a change message and cause a synchronous callback to the currentTabChanged() method. (But if the given tab is already selected, nothing will be done).
To deselect all the tabs, use an index of -1.
| String TabbedButtonBar::getCurrentTabName | ( | ) | const |
Returns the name of the currently selected tab.
This could be an empty string if none are selected.
| int TabbedButtonBar::getCurrentTabIndex | ( | ) | const |
Returns the index of the currently selected tab.
This could return -1 if none are selected.
| TabBarButton* TabbedButtonBar::getTabButton | ( | int | index ) | const |
Returns the button for a specific tab.
The button that is returned may be deleted later by this component, so don't hang on to the pointer that is returned. A null pointer may be returned if the index is out of range.
| int TabbedButtonBar::indexOfTabButton | ( | const TabBarButton * | button ) | const |
Returns the index of a TabBarButton if it belongs to this bar.
| virtual void TabbedButtonBar::currentTabChanged | ( | int | newCurrentTabIndex, |
| const String & | newCurrentTabName | ||
| ) | [virtual] |
Callback method to indicate the selected tab has been changed.
| virtual void TabbedButtonBar::popupMenuClickOnTab | ( | int | tabIndex, |
| const String & | tabName | ||
| ) | [virtual] |
Callback method to indicate that the user has right-clicked on a tab.
(Or ctrl-clicked on the Mac)
| const Colour TabbedButtonBar::getTabBackgroundColour | ( | int | tabIndex ) |
Returns the colour of a tab.
This is the colour that was specified in addTab().
| void TabbedButtonBar::setTabBackgroundColour | ( | int | tabIndex, |
| const Colour & | newColour | ||
| ) |
Changes the background colour of a tab.
| void TabbedButtonBar::resized | ( | ) | [virtual] |
Called when this component's size has been changed.
A component can implement this method to do things such as laying out its child components when its width or height changes.
The method is called synchronously as a result of the setBounds or setSize methods, so repeatedly changing a components size will repeatedly call its resized method (unlike things like repainting, where multiple calls to repaint are coalesced together).
If the component is a top-level window on the desktop, its size could also be changed by operating-system factors beyond the application's control.
Reimplemented from Component.
| void TabbedButtonBar::lookAndFeelChanged | ( | ) | [virtual] |
Called to let the component react to a change in the look-and-feel setting.
When the look-and-feel is changed for a component, this will be called in all its child components, recursively.
It can also be triggered manually by the sendLookAndFeelChange() method, in case an application uses a LookAndFeel class that might have changed internally.
Reimplemented from Component.
| virtual TabBarButton* TabbedButtonBar::createTabButton | ( | const String & | tabName, |
| int | tabIndex | ||
| ) | [protected, virtual] |
This creates one of the tabs.
If you need to use custom tab components, you can override this method and return your own class instead of the default.