A resizable window with a title bar and maximise, minimise and close buttons. More...
Inherits ResizableWindow.
Inherited by DialogWindow, and MultiDocumentPanelWindow.
Public Types | |
| enum | TitleBarButtons { minimiseButton = 1, maximiseButton = 2, closeButton = 4, allButtons = 7 } |
The set of available button-types that can be put on the title bar. More... | |
| enum | ColourIds { textColourId = 0x1005701 } |
A set of colour IDs to use to change the colour of various aspects of the window. More... | |
Public Member Functions | |
| DocumentWindow (const String &name, const Colour &backgroundColour, int requiredButtons, bool addToDesktop=true) | |
| Creates a DocumentWindow. | |
| ~DocumentWindow () | |
| Destructor. | |
| void | setName (const String &newName) |
| Changes the component's name. | |
| void | setIcon (const Image *imageToUse) |
| Sets an icon to show in the title bar, next to the title. | |
| void | setTitleBarHeight (int newHeight) |
| Changes the height of the title-bar. | |
| int | getTitleBarHeight () const |
| Returns the current title bar height. | |
| void | setTitleBarButtonsRequired (int requiredButtons, bool positionTitleBarButtonsOnLeft) |
| Changes the set of title-bar buttons being shown. | |
| void | setTitleBarTextCentred (bool textShouldBeCentred) |
| Sets whether the title should be centred within the window. | |
| void | setMenuBar (MenuBarModel *menuBarModel, int menuBarHeight=0) |
| Creates a menu inside this window. | |
| virtual void | closeButtonPressed () |
| This method is called when the user tries to close the window. | |
| virtual void | minimiseButtonPressed () |
| Callback that is triggered when the minimise button is pressed. | |
| virtual void | maximiseButtonPressed () |
| Callback that is triggered when the maximise button is pressed, or when the title-bar is double-clicked. | |
| Button * | getCloseButton () const throw () |
| Returns the close button, (or 0 if there isn't one). | |
| Button * | getMinimiseButton () const throw () |
| Returns the minimise button, (or 0 if there isn't one). | |
| Button * | getMaximiseButton () const throw () |
| Returns the maximise button, (or 0 if there isn't one). | |
| void | paint (Graphics &g) |
| void | resized () |
| void | lookAndFeelChanged () |
| const BorderSize | getBorderThickness () |
| const BorderSize | getContentComponentBorder () |
| void | mouseDoubleClick (const MouseEvent &e) |
| void | userTriedToCloseWindow () |
| void | activeWindowStatusChanged () |
| int | getDesktopWindowStyleFlags () const |
| void | parentHierarchyChanged () |
| const Rectangle< int > | getTitleBarArea () |
A resizable window with a title bar and maximise, minimise and close buttons.
This subclass of ResizableWindow creates a fairly standard type of window with a title bar and various buttons. The name of the component is shown in the title bar, and an icon can optionally be specified with setIcon().
All the methods available to a ResizableWindow are also available to this, so it can easily be made resizable, minimised, maximised, etc.
It's not advisable to add child components directly to a DocumentWindow: put them inside your content component instead. And overriding methods like resized(), moved(), etc is also not recommended - instead override these methods for your content component. (If for some obscure reason you do need to override these methods, always remember to call the super-class's resized() method too, otherwise it'll fail to lay out the window decorations correctly).
You can also automatically add a menu bar to the window, using the setMenuBar() method.
The set of available button-types that can be put on the title bar.
A set of colour IDs to use to change the colour of various aspects of the window.
These constants can be used either via the Component::setColour(), or LookAndFeel::setColour() methods.
| textColourId |
The colour to draw any text with. It's up to the look and feel class how this is used. |
Reimplemented from ResizableWindow.
| DocumentWindow::DocumentWindow | ( | const String & | name, | |
| const Colour & | backgroundColour, | |||
| int | requiredButtons, | |||
| bool | addToDesktop = true | |||
| ) |
Creates a DocumentWindow.
| name | the name to give the component - this is also the title shown at the top of the window. To change this later, use setName() | |
| backgroundColour | the colour to use for filling the window's background. | |
| requiredButtons | specifies which of the buttons (close, minimise, maximise) should be shown on the title bar. This value is a bitwise combination of values from the TitleBarButtons enum. Note that it can be "allButtons" to get them all. You can change this later with the setTitleBarButtonsRequired() method, which can also specify where they are positioned. | |
| addToDesktop | if true, the window will be automatically added to the desktop; if false, you can use it as a child component |
| DocumentWindow::~DocumentWindow | ( | ) |
Destructor.
If a content component has been set with setContentComponent(), it will be deleted.
| void DocumentWindow::setName | ( | const String & | newName | ) | [virtual] |
Changes the component's name.
(This is overridden from Component::setName() to cause a repaint, as the name is what gets drawn across the window's title bar).
Reimplemented from Component.
| void DocumentWindow::setIcon | ( | const Image * | imageToUse | ) |
Sets an icon to show in the title bar, next to the title.
A copy is made internally of the image, so the caller can delete the image after calling this. If 0 is passed-in, any existing icon will be removed.
| void DocumentWindow::setTitleBarHeight | ( | int | newHeight | ) |
Changes the height of the title-bar.
| int DocumentWindow::getTitleBarHeight | ( | ) | const |
Returns the current title bar height.
| void DocumentWindow::setTitleBarButtonsRequired | ( | int | requiredButtons, | |
| bool | positionTitleBarButtonsOnLeft | |||
| ) |
Changes the set of title-bar buttons being shown.
| requiredButtons | specifies which of the buttons (close, minimise, maximise) should be shown on the title bar. This value is a bitwise combination of values from the TitleBarButtons enum. Note that it can be "allButtons" to get them all. | |
| positionTitleBarButtonsOnLeft | if true, the buttons should go at the left side of the bar; if false, they'll be placed at the right |
| void DocumentWindow::setTitleBarTextCentred | ( | bool | textShouldBeCentred | ) |
Sets whether the title should be centred within the window.
If true, the title text is shown in the middle of the title-bar; if false, it'll be shown at the left of the bar.
| void DocumentWindow::setMenuBar | ( | MenuBarModel * | menuBarModel, | |
| int | menuBarHeight = 0 | |||
| ) |
Creates a menu inside this window.
| menuBarModel | this specifies a MenuBarModel that should be used to generate the contents of a menu bar that will be placed just below the title bar, and just above any content component. If this value is zero, any existing menu bar will be removed from the component; if non-zero, one will be added if it's required. | |
| menuBarHeight | the height of the menu bar component, if one is needed. Pass a value of zero or less to use the look-and-feel's default size. |
| virtual void DocumentWindow::closeButtonPressed | ( | ) | [virtual] |
This method is called when the user tries to close the window.
This is triggered by the user clicking the close button, or using some other OS-specific key shortcut or OS menu for getting rid of a window.
If the window is just a pop-up, you should override this closeButtonPressed() method and make it delete the window in whatever way is appropriate for your app. E.g. you might just want to call "delete this".
If your app is centred around this window such that the whole app should quit when the window is closed, then you will probably want to use this method as an opportunity to call JUCEApplication::quit(), and leave the window to be deleted later by your JUCEApplication::shutdown() method. (Doing it this way means that your window will still get cleaned-up if the app is quit by some other means (e.g. a cmd-Q on the mac or closing it via the taskbar icon on Windows).
(Note that the DocumentWindow class overrides Component::userTriedToCloseWindow() and redirects it to call this method, so any methods of closing the window that are caught by userTriedToCloseWindow() will also end up here).
Reimplemented in MultiDocumentPanelWindow.
| virtual void DocumentWindow::minimiseButtonPressed | ( | ) | [virtual] |
Callback that is triggered when the minimise button is pressed.
The default implementation of this calls ResizableWindow::setMinimised(), but you can override it to do more customised behaviour.
| virtual void DocumentWindow::maximiseButtonPressed | ( | ) | [virtual] |
Callback that is triggered when the maximise button is pressed, or when the title-bar is double-clicked.
The default implementation of this calls ResizableWindow::setFullScreen(), but you can override it to do more customised behaviour.
Reimplemented in MultiDocumentPanelWindow.
| Button* DocumentWindow::getCloseButton | ( | ) | const throw () |
Returns the close button, (or 0 if there isn't one).
| Button* DocumentWindow::getMinimiseButton | ( | ) | const throw () |
Returns the minimise button, (or 0 if there isn't one).
| Button* DocumentWindow::getMaximiseButton | ( | ) | const throw () |
Returns the maximise button, (or 0 if there isn't one).
| void DocumentWindow::paint | ( | Graphics & | g | ) | [virtual] |
For internal use only.
Reimplemented from ResizableWindow.
| void DocumentWindow::resized | ( | ) | [virtual] |
| void DocumentWindow::lookAndFeelChanged | ( | ) | [virtual] |
For internal use only.
Reimplemented from ResizableWindow.
| const BorderSize DocumentWindow::getBorderThickness | ( | ) | [virtual] |
For internal use only.
Reimplemented from ResizableWindow.
| const BorderSize DocumentWindow::getContentComponentBorder | ( | ) | [virtual] |
For internal use only.
Reimplemented from ResizableWindow.
| void DocumentWindow::mouseDoubleClick | ( | const MouseEvent & | e | ) | [virtual] |
For internal use only.
Reimplemented from Component.
| void DocumentWindow::userTriedToCloseWindow | ( | ) | [virtual] |
For internal use only.
Reimplemented from Component.
| void DocumentWindow::activeWindowStatusChanged | ( | ) | [virtual] |
For internal use only.
Reimplemented from ResizableWindow.
Reimplemented in MultiDocumentPanelWindow.
| int DocumentWindow::getDesktopWindowStyleFlags | ( | ) | const [virtual] |
For internal use only.
Reimplemented from ResizableWindow.
| void DocumentWindow::parentHierarchyChanged | ( | ) | [virtual] |
For internal use only.
Reimplemented from TopLevelWindow.
| const Rectangle<int> DocumentWindow::getTitleBarArea | ( | ) |
For internal use only.
1.6.3