#include <Shell.h>
Inherits SubsystemInterface.
Public Member Functions | |
| Shell (void) | |
| ~Shell (void) | |
| virtual void | init (void) |
| virtual void | reset (void) |
| virtual void | update (void) |
| void | showShellMap (Bool useShellMap) |
| access function to turn on and off the shell map | |
| void | hide (Bool hide) |
| show/hide all shell layouts | |
| void | push (AsciiString filename, Bool shutdownImmediate=FALSE) |
| load new screen on top, optionally doing an immediate shutdown | |
| void | pop (void) |
| pop top layout | |
| void | popImmediate (void) |
| pop now, don't wait for shutdown | |
| void | showShell (Bool runInit=TRUE) |
| init the top of stack | |
| void | hideShell (void) |
| shutdown the top of stack | |
| WindowLayout * | top (void) |
| return top layout | |
| void | shutdownComplete (WindowLayout *layout, Bool impendingPush=FALSE) |
| layout has completed shutdown | |
| WindowLayout * | findScreenByFilename (AsciiString filename) |
| find screen | |
| Bool | isShellActive (void) |
| Returns true if the shell is active. | |
| Int | getScreenCount (void) |
| Return the current number of screens. | |
| void | registerWithAnimateManager (GameWindow *win, AnimTypes animType, Bool needsToFinish, UnsignedInt delayMS=0) |
| Bool | isAnimFinished (void) |
| void | reverseAnimatewindow (void) |
| Bool | isAnimReversed (void) |
| void | loadScheme (AsciiString name) |
| ShellMenuSchemeManager * | getShellMenuSchemeManager (void) |
| WindowLayout * | getSaveLoadMenuLayout (void) |
| create if necessary and return layout for save load menu | |
| WindowLayout * | getPopupReplayLayout (void) |
| create if necessary and return layout for replay save menu | |
| WindowLayout * | getOptionsLayout (Bool create) |
| return layout for options menu, create if necessary and we are allowed to. | |
| void | destroyOptionsLayout (void) |
| destroy the shell's options layout. | |
Public Member Functions inherited from SubsystemInterface | |
| SubsystemInterface () | |
| virtual | ~SubsystemInterface () |
| virtual void | postProcessLoad () |
| virtual void | draw (void) |
| void | UPDATE (void) |
| void | DRAW (void) |
| AsciiString | getName (void) |
| void | setName (AsciiString name) |
Protected Types | |
| enum | { MAX_SHELL_STACK = 16 } |
Protected Member Functions | |
| void | linkScreen (WindowLayout *screen) |
| link screen to list | |
| void | unlinkScreen (WindowLayout *screen) |
| remove screen from list | |
| void | doPush (AsciiString layoutFile) |
| workhorse for push action | |
| void | doPop (Bool impendingPush) |
| workhorse for pop action | |
Protected Attributes | |
| WindowLayout * | m_screenStack [MAX_SHELL_STACK] |
| the screen layout stack | |
| Int | m_screenCount |
| WindowLayout * | m_background |
| The Background layout if the 3d shell isn't running. | |
| Bool | m_clearBackground |
| Flag if we're going to clear the background or not. | |
| Bool | m_pendingPush |
| TRUE when a push is pending. | |
| Bool | m_pendingPop |
| TRUE when a pop is pending. | |
| AsciiString | m_pendingPushName |
| layout name to be pushed | |
| Bool | m_isShellActive |
| TRUE when the shell is active. | |
| Bool | m_shellMapOn |
| TRUE when the shell map is on. | |
| AnimateWindowManager * | m_animateWindowManager |
| The animate Window Manager. | |
| ShellMenuSchemeManager * | m_schemeManager |
| The Shell Scheme Manager. | |
| WindowLayout * | m_saveLoadMenuLayout |
| save/load menu layout | |
| WindowLayout * | m_popupReplayLayout |
| replay save menu layout | |
| WindowLayout * | m_optionsLayout |
| options menu layout | |
Protected Attributes inherited from SubsystemInterface | |
| AsciiString | m_name |
This is the interface to the shell system to load, display, and manage screen menu shell system layouts
| void Shell::destroyOptionsLayout | ( | void | ) |
|
protected |
|
protected |
| WindowLayout * Shell::findScreenByFilename | ( | AsciiString | filename | ) |
| WindowLayout * Shell::getOptionsLayout | ( | Bool | create | ) |
| WindowLayout * Shell::getPopupReplayLayout | ( | void | ) |
| WindowLayout * Shell::getSaveLoadMenuLayout | ( | void | ) |
|
inline |
|
inline |
| void Shell::hide | ( | Bool | hide | ) |
| void Shell::hideShell | ( | void | ) |
shutdown the top of stack
Run the shutdown() function for the top of the stack just like we're going to pop it off but DO NOT pop it off the stack. We want this behavior when leaving the pre-game menus and entering the game and want the shell to still exist and contain the stack information but don't want it to go away
|
virtual |
Initialize the shell system
Implements SubsystemInterface.
|
inline |
|
protected |
| void Shell::loadScheme | ( | AsciiString | name | ) |
| void Shell::pop | ( | void | ) |
| void Shell::popImmediate | ( | void | ) |
pop now, don't wait for shutdown
When you need to immediately pop a screen off the stack use this method. It gives the screen the opportunity to shutdown and tells the shutdown method that an immediate pop is going to take place. When control returns from the shutdown() for the screen, it will be immediately popped off the stack
| void Shell::push | ( | AsciiString | filename, |
| Bool | shutdownImmediate = FALSE ) |
| void Shell::registerWithAnimateManager | ( | GameWindow * | win, |
| AnimTypes | animType, | ||
| Bool | needsToFinish, | ||
| UnsignedInt | delayMS = 0 ) |
|
virtual |
Reset the shell system to a clean state just as though init had just been called and ready to re-use
Implements SubsystemInterface.
init the top of stack
Run the initialize function for the top of the stack just as though it was pushed on the stack. We want this behavior when we want to act like the top was just pushed on the stack, but it's already there (ie going from in game back to the pre-game shell menus
| void Shell::showShellMap | ( | Bool | useShellMap | ) |
| void Shell::shutdownComplete | ( | WindowLayout * | screen, |
| Bool | impendingPush = FALSE ) |
layout has completed shutdown
This is called when a layout has finished its shutdown process. Layouts are shutdown when a new screen is being pushed on the stack, or when we are popping the current screen off the top of the stack. It is here that we can look for any pending push or pop operations and actually do them
NOTE: It is possible for the screen parameter to be NULL when we are short circuiting the shutdown logic because there is no layout to actually shutdown (ie, the stack is empty and we push)
| WindowLayout * Shell::top | ( | void | ) |
|
protected |
|
virtual |
Update shell system cycle. All windows are updated that are on the stack, starting with the top layout and progressing to the bottom one
Implements SubsystemInterface.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |