Public Types | Public Member Functions | Protected Member Functions

TabbedButtonBar Class Reference

A vertical or horizontal bar containing tabs that you can select. More...

Inherits Component, and ChangeBroadcaster.

List of all members.

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.
TabBarButtongetTabButton (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 TabBarButtoncreateTabButton (const String &tabName, int tabIndex)
 This creates one of the tabs.

Detailed Description

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.

See also:
TabbedComponent

Member Enumeration Documentation

The placement of the tab-bar.

See also:
setOrientation, getOrientation
Enumerator:
TabsAtTop 
TabsAtBottom 
TabsAtLeft 
TabsAtRight 

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.

See also:
Component::setColour, Component::findColour, LookAndFeel::setColour, LookAndFeel::findColour
Enumerator:
tabOutlineColourId 

The colour to use to draw an outline around the tabs.

tabTextColourId 

The colour to use to draw the tab names.

If this isn't specified, the look and feel will choose an appropriate colour.

frontOutlineColourId 

The colour to use to draw an outline around the currently-selected tab.

frontTextColourId 

The colour to use to draw the currently-selected tab name.

If this isn't specified, the look and feel will choose an appropriate colour.


Constructor & Destructor Documentation

TabbedButtonBar::TabbedButtonBar ( Orientation  orientation )

Creates a TabbedButtonBar with a given placement.

You can change the orientation later if you need to.

TabbedButtonBar::~TabbedButtonBar (  )

Destructor.


Member Function Documentation

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.

See also:
setOrientation
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.

See also:
addTab
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.

See also:
setCurrentTabIndex
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.

See also:
addTab, getTabBackgroundColour
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.

See also:
moved, setSize

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.

See also:
sendLookAndFeelChange, getLookAndFeel

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.


The documentation for this class was generated from the following file:
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Defines