cxWidgets 1.0
Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Friends | List of all members
cx::cxPanel Class Reference

cxPanel is a window that contains other windows. When showModal() More...

#include <cxPanel.h>

Inheritance diagram for cx::cxPanel:
Inheritance graph
Collaboration diagram for cx::cxPanel:
Collaboration graph

Public Member Functions

 cxPanel (cxWindow *pParentWindow=nullptr, int pRow=0, int pCol=0, int pHeight=DEFAULT_HEIGHT, int pWidth=DEFAULT_WIDTH, const std::string &pTitle="", const std::string &pMessage="", const std::string &pStatus="", eBorderStyle pBorderStyle=eBS_NOBORDER, cxWindow *pExtTitleWindow=nullptr, cxWindow *pExtStatusWindow=nullptr, bool pMessageUnderlines=false)
 Default constructor.
 
virtual ~cxPanel ()
 
virtual long showModal (bool pShowSelf=true, bool pBringToTop=true, bool pShowSubwindows=true) override
 Shows the panel and all of its subwindows and.
 
virtual bool getExitOnLeaveLast () const
 Returns whether or not the panel will exit focus.
 
virtual void setExitOnLeaveLast (bool pExitOnLeaveLast)
 Sets whether the panel should exit focus.
 
virtual bool getExitOnLeaveFirst () const
 Returns whether the panel will exit focus.
 
virtual void setExitOnLeaveFirst (bool pExitOnLeaveFirst)
 Sets whether the panel should exit focus.
 
virtual unsigned int numWindows () const
 Returns the number of windows that are contained.
 
virtual std::shared_ptr< cxWindowgetWindow (unsigned pIndex) const
 Gets a pointer to one of the subwindows (by index).
 
virtual bool append (const std::shared_ptr< cxWindow > &pWindow)
 Adds a window to the panel. Note: The cxWindow.
 
virtual bool append (const std::shared_ptr< cxWindow > &pWindow, int pRow, int pCol, bool pRefresh=false)
 Adds a window to the panel with relative coordinates.
 
virtual void delWindow (unsigned pIndex)
 Removes a window from the panel (by index) and frees the memory.
 
virtual void delWindow (const std::shared_ptr< cxWindow > &pWindow)
 Removes a window from the panel (by pointer), and frees the.
 
virtual void delAllWindows ()
 Removes all windows from the panel. Also frees the memory used.
 
virtual std::shared_ptr< cxWindowremoveWindow (unsigned int pIndex)
 Removes a window from the panel, without freeing its memory.
 
virtual void removeWindow (const std::shared_ptr< cxWindow > &pWindow)
 Removes a window from the panel, without freeing its memory.
 
virtual void removeWindow (cxWindow *pWindow)
 
virtual bool windowIsInPanel (const std::shared_ptr< cxWindow > &pWindow) const
 Returns whether a cxWindow object is contained.
 
virtual bool windowIsInPanel (cxWindow *pWindow) const
 
virtual bool move (int pNewRow, int pNewCol, bool pRefresh=true) override
 Changes the panel's position, based on a new upper-left corner.
 
virtual bool setCurrentWindow (unsigned pIndex)
 Sets which window will get focus in the next.
 
virtual bool setCurrentWindow (const std::string &pID, bool pIsTitle=true)
 Sets which window will get focus in the next.
 
virtual bool setCurrentWindowByPtr (const std::shared_ptr< cxWindow > &pWindow)
 Sets which window will get focus in the next.
 
virtual bool setCurrentWindowByPtr (cxWindow *pWindow)
 
virtual bool setKeyFunction (int pKey, const std::shared_ptr< cxFunction > &pFunction) override
 Sets a function to be called when a key is pressed.
 
virtual void clearKeyFunction (int pKey) override
 Removes a function pointer for a keypress for the panel so that it will no.
 
virtual bool setKeyFunction (int pKey, funcPtr4 pFunction, void *p1, void *p2, void *p3, void *p4, bool pUseReturnVal=false, bool pExitAfterRun=false, bool pRunOnLeaveFunction=true) override
 Sets a function to be called when a key is pressed. Note that.
 
virtual bool setKeyFunction (int pKey, funcPtr2 pFunction, void *p1, void *p2, bool pUseReturnVal=false, bool pExitAfterRun=false, bool pRunOnLeaveFunction=true) override
 Sets a function to be called when a key is pressed. Note that.
 
virtual bool setKeyFunction (int pKey, funcPtr0 pFunction, bool pUseReturnVal=false, bool pExitAfterRun=false, bool pRunOnLeaveFunction=true) override
 Sets a function to be called when a key is pressed. Note that.
 
virtual int getCurrentWindowIndex () const
 Returns the index of the current window.
 
virtual int getWindowIndex (const std::shared_ptr< cxWindow > &pWindow) const
 Given a cxWindow pointer, this function will return the index.
 
virtual int getWindowIndex (cxWindow *pWindow) const
 
virtual const std::shared_ptr< cxWindow > & getCurrentWindowPtr () const
 Returns a pointer to the current window.
 
virtual long show (bool pBringToTop=false, bool pShowSubwindows=true) override
 Shows the panel. If setShowPanelWindow(false) has been.
 
virtual void hide (bool pHideSubwindows=true) override
 Hides the panel, along with the windows in the panel.
 
virtual void unhide (bool pUnhideSubwindows=true) override
 Un-hides the panel, along with the windows in the panel.
 
virtual bool getShowPanelWindow () const
 Returns whether or not the panel window will be.
 
virtual void setShowPanelWindow (bool pShowPanelWindow)
 Sets whether or not the panel window should be shown.
 
virtual bool getAllowExit () const
 Returns whether the user is allowed to exit out.
 
virtual void setAllowExit (bool pAllowExit)
 Sets whether the user is allowed to exit out of.
 
virtual bool getAllowQuit () const
 Returns whether the user is allowed to quit out.
 
virtual void setAllowQuit (bool pAllowQuit)
 Sets whether the user is allowed to quit out of.
 
virtual bool windowIsEnabled (unsigned pIndex) const
 Returns whether or not one of the windows in the panel.
 
virtual void enableWindow (unsigned pIndex, bool pEnabled=true)
 Enables/disables one of the windows in the panel (by index).
 
virtual void clear (bool pRefresh=false) override
 Clears all the window in the panel.
 
virtual bool addQuitKey (int pKey, bool pRunOnLeaveFunction=true, bool pOverride=false) override
 Adds a key that will cause the window to quit its input loop.
 
virtual void removeQuitKey (int pKey) override
 Removes a quit key.
 
virtual bool addExitKey (int pKey, bool pRunOnLeaveFunction=true, bool pOverride=false) override
 Adds a key that will cause the window to quit its input loop.
 
virtual void removeExitKey (int pKey) override
 Removes an exit key.
 
virtual void setEnabled (bool pEnabled) override
 Enables or disables the panel. Disabling/enabling a cxPanel.
 
virtual void setEnabled (unsigned pIndex, bool pEnabled)
 Enables or disables a window in the panel (by index).
 
virtual void setEnabled (const std::string &pID, bool pEnabled, bool pIsTitle=true)
 Enables or disables a window in the panel (by title/name).
 
virtual bool swap (int pWindow1Index, int pWindow2Index)
 Swaps the order of 2 subwindows (by index). If both indexes.
 
virtual bool swap (cxWindow *pWindow1, cxWindow *pWindow2)
 Swaps the order of 2 subwindows (by pointer). If both pointers.
 
virtual bool swap (const std::shared_ptr< cxWindow > &pWindow1, const std::shared_ptr< cxWindow > &pWindow2)
 
virtual void setColor (e_WidgetItems pItem, e_cxColors pColor) override
 Sets the color of one of the window items.
 
virtual std::string cxTypeStr () const override
 Returns the name of the cxWidgets class. This can be used to.
 
virtual void quitNow () override
 This causes the panel to stop its input loop with a code of.
 
virtual void exitNow () override
 This causes the panel to stop its input loop with a code of.
 
const std::shared_ptr< cxWindow > & getLastWindow () const
 Returns a pointer to the last window in the panel that was.
 
virtual void setName (unsigned pIndex, const std::string &pName)
 Sets the name of one of the windows in the panel (by index).
 
virtual void setName (const std::string &pID, const std::string &pName, bool pIsTitle=true)
 Sets the name of one of the windows in the panel (by title/name).
 
virtual void setName (const std::string &pName) override
 Sets the name of the panel. The name is an alternative means.
 
virtual int top () const override
 Returns the top row of the window.
 
virtual int bottom () const override
 Returns the bottom row of the window.
 
- Public Member Functions inherited from cx::cxWindow
 cxWindow (cxWindow *pParentWindow=nullptr, int pRow=0, int pCol=0, int pHeight=DEFAULT_HEIGHT, int pWidth=DEFAULT_WIDTH, const std::string &pTitle="", const std::string &pMessage="", const std::string &pStatus="", eBorderStyle pBorderStyle=eBS_SINGLE_LINE, cxWindow *pExtTitleWindow=nullptr, cxWindow *pExtStatusWindow=nullptr, bool pHotkeyHighlighting=false)
 Default constructor.
 
 cxWindow (cxWindow *pParentWindow, int pRow, int pCol, const std::string &pTitle, const std::string &pMessage, const std::string &pStatus, cxWindow *pExtTitleWindow=nullptr, cxWindow *pExtStatusWindow=nullptr, bool pHotkeyHighlighting=false)
 Overloaded constructor.
 
 cxWindow (cxWindow *pParentWindow, const std::string &pTitle, const std::string &pMessage, const std::string &pStatus, cxWindow *pExtTitleWindow=nullptr, cxWindow *pExtStatusWindow=nullptr, bool pHotkeyHighlighting=false)
 Overloaded constructor - Centers the window in the middle of the screen.
 
 cxWindow (cxWindow *pParentWindow, const std::string &pTitle, const std::string &pMessage, const std::string &pStatus, int pHeight, int pWidth, cxWindow *pExtTitleWindow=nullptr, cxWindow *pExtStatusWindow=nullptr, bool pHotkeyHighlighting=false)
 Overloaded constructor - Centers the window in the middle of the screen.
 
 cxWindow (cxWindow *pParentWindow, const std::string &pMessage, const std::string &pStatus, cxWindow *pExtTitleWindow=nullptr, cxWindow *pExtStatusWindow=nullptr, bool pHotkeyHighlighting=false)
 Overloaded constructor - Centers the window in the middle of the screen.
 
 cxWindow (cxWindow *pParentWindow, const std::string &pMessage, const std::string &pStatus, int pHeight, int pWidth, cxWindow *pExtTitleWindow=nullptr, cxWindow *pExtStatusWindow=nullptr, bool pHotkeyHighlighting=false)
 Overloaded constructor - Centers the window in the middle of the screen.
 
 cxWindow (cxWindow *pParentWindow, const std::string &pMessage, cxWindow *pExtTitleWindow=nullptr, cxWindow *pExtStatusWindow=nullptr, bool pHotkeyHighlighting=false)
 Overloaded constructor - Centers the window in the middle of the screen.
 
 cxWindow (cxWindow *pParentWindow, eHPosition pHPosition, const std::string &pTitle, const std::string &pMessage, const std::string &pStatus, cxWindow *pExtTitleWindow=nullptr, cxWindow *pExtStatusWindow=nullptr, bool pHotkeyHighlighting=false)
 Overloaded constructor - Lets you specify the horizontal position.
 
 cxWindow (const cxWindow &pThatWindow)
 Copy constructor.
 
virtual ~cxWindow ()
 
virtual void centerHoriz (bool pRefresh=true)
 Centers the window horizontally on the screen.
 
virtual void alignHoriz (eHPosition pPosition, bool pRefresh=true)
 Aligns the window horizontally on the screen.
 
virtual void centerVert (bool pRefresh=true)
 Centers the window vertically on the screen.
 
virtual void alignVert (eVPosition pPosition, bool pRefresh=true)
 Aligns the window vertically on the screen.
 
virtual void center (bool pRefresh=true)
 Centers the window on the screen.
 
virtual std::string getTitle () const
 Accessor for title text - Returns the first string in the.
 
virtual void setTitle (const std::string &pTitle, bool pRefreshTitle=true)
 Setter for the title text - This sets the first string in the.
 
std::string getStatus () const
 Accessor for the status line text.
 
virtual void setStatus (const std::string &pStatus, bool pRefreshStatus=true)
 Mutator for the status line text.
 
std::string getMessage () const
 Returns the message that appears in the window, concatenating all message lines together.
 
virtual void setMessage (const std::string &pMessage)
 Sets the text that appears within the window.
 
virtual void addMessageLineBelow (const std::string &pLine)
 Adds a line to the message to be displayed in the window,.
 
virtual void addMessageLinesBelow (const std::vector< std::string > &pLines)
 Adds lines to the message below the current message text.
 
virtual void addMessageLinesBelow (const std::list< std::string > &pLines)
 Adds lines to the message below the current message text.
 
virtual void addMessageLinesBelow (const std::deque< std::string > &pLines)
 Adds lines to the message below the current message text.
 
virtual void addMessageLineAbove (const std::string &pLine)
 Adds a line to the message to be displayed in the window,.
 
virtual void addMessageLinesAbove (const std::vector< std::string > &pLines)
 Adds lines to the message above the current message text.
 
virtual void addMessageLinesAbove (const std::list< std::string > &pLines)
 Adds lines to the message above the current message text.
 
virtual void addMessageLinesAbove (const std::deque< std::string > &pLines)
 Adds lines to the message above the current message text.
 
virtual void setMessageLines (const std::vector< std::string > &pLines)
 Sets the message lines in the window.
 
virtual void setMessageLines (const std::list< std::string > &pLines)
 Sets the message lines in the window.
 
virtual void setMessageLines (const std::deque< std::string > &pLines)
 Sets the message lines in the window.
 
virtual void removeMessageLine (unsigned pIndex)
 Removes a line from the text inside the window (by index).
 
virtual void setMessageLine (unsigned pIndex, const std::string &pLine)
 Modifies one of the lines displayed in the window.
 
void setHorizTitleAlignment (eHPosition pHAlignment)
 Sets the horizontal alignment of the title text.
 
eHPosition getHorizTitleAlignment () const
 Accessor for the title text alignment.
 
void setHorizMessageAlignment (eHPosition pHAlignment)
 Sets the horizontal alignment of the message text.
 
eHPosition getHorizMessageAlignment () const
 Accessor for the horizontal message text alignment.
 
void setHorizStatusAlignment (eHPosition pHAlignment)
 Sets the horizontal alignment of the status text.
 
eHPosition getHorizStatusAlignment () const
 Accessor for the horizontal status text alignment.
 
void setVerticalMessageAlignment (eVPosition pVAlignment)
 Sets the vertical alignment of the message text.
 
eVPosition getVerticalMessageAlignment () const
 Accessor for the vertical message text alignment.
 
void setExtTitleWindow (cxWindow *pWindow, bool pRefreshTitle=true)
 Sets an external cxWindow object to be used for the title, rather.
 
cxWindowgetExtTitleWindow () const
 Accessor for the external title window pointer.
 
void setExtStatusWindow (cxWindow *pWindow, bool pRefreshStatus=true)
 Sets an external cxWindow object to be used for status, rather.
 
cxWindowgetExtStatusWindow () const
 Accessor for the external status window pointer.
 
bool isHidden () const
 Returns whether or not the window is hidden.
 
virtual bool modalGetsKeypress () const
 Returns whether or not a call to showModal() will wait for a.
 
virtual long setFocus (bool pShowSelf=true, bool pBringToTop=true, bool pShowSubwindows=true)
 Alias for showModal()
 
virtual void setFocusColors ()
 Turns on the ncurses attribute A_REVERSE for the window to.
 
virtual void setFocusColors (attr_t pAttr)
 Turns on the ncurses attribute pAttr for the window to.
 
virtual void unSetFocusColors ()
 Disables focus for this window and unhighlights the message.
 
virtual void unSetFocusColors (attr_t pAttr)
 Disables focus for this window and un-highlights the message (using pAttr)
 
virtual void erase (bool pEraseSubwindows=true)
 Erases the window.
 
virtual void bringToTop (bool pRefresh=true)
 Brings the window to the top.
 
virtual void bringToBottom (bool pRefresh=false)
 Puts the window on the bottom of all other windows.
 
virtual bool isOnTop () const
 Returns whether the window is on top of all other windows.
 
virtual bool isOnBottom () const
 Returns whether the window is on the bottom of all other windows.
 
virtual bool isAbove (const cxWindow &pThatWindow) const
 Returns whether the window is above another window.
 
virtual bool isBelow (const cxWindow &pThatWindow) const
 Returns whether a window is below another window.
 
void touchWindow ()
 Marks the window's entire content as dirty so that the next.
 
virtual void drawBorder (int pRow, int pCol, int pHeight, int pWidth, bool pTop=true, bool pBottom=true, bool pLeft=true, bool pRight=true)
 Draws the border (based on the border style)
 
virtual void drawBorder (int pHeight, int pWidth)
 Draws a box in the window.
 
virtual void drawBorder ()
 Draws a box for the window border.
 
virtual int centerRow () const
 Returns the center row of the window.
 
virtual int left () const
 Returns the left column of the window.
 
virtual int centerCol () const
 Returns the center column of the window.
 
virtual int right () const
 Returns the right column of the window.
 
virtual int width (int pWidth)
 Changes the width of the window.
 
virtual int width () const
 Returns the width of the window.
 
virtual int height (int pHeight)
 Changes the height of the window.
 
virtual int height () const
 Returns the height of the window.
 
virtual void getRect (int &pTop, int &pLeft, int &pBottom, int &pRight)
 Returns the coordinates of the rectangle defining the window.
 
virtual bool pointIsInWindow (int pY, int pX) const
 Returns whether a screen location is in the window (including.
 
virtual bool pointIsInTitle (int pY, int pX) const
 Returns whether a screen location is in the title of the window.
 
virtual void getSize (int &pHeight, int &pWidth)
 Returns the height & width of the window.
 
virtual void addAttr (e_WidgetItems pItem, attr_t pAttr)
 Adds an ncurses attribute to use for one of the items in the.
 
virtual void setAttr (e_WidgetItems pItem, attr_t pAttr)
 Sets the ncurses attribute to use for one of the items in the.
 
virtual void removeAttr (e_WidgetItems pItem, attr_t pAttr)
 Removes an ncurses attribute from one of the item lists.
 
virtual void removeAttrs (e_WidgetItems pItem)
 Removes all attributes for a given window item.
 
virtual void getAttrs (e_WidgetItems pItem, std::set< attr_t > &pAttrs) const
 Returns the set of ncurses attributes for a given item.
 
virtual void resize (int pNewHeight, int pNewWidth, bool pRefresh=true)
 Changes the window's width and height. The window's upper-left.
 
virtual bool moveRelative (int pVerticalOffset, int pHorizOffset, bool pRefresh=true)
 Changes the window's position via vertical & horizontal offsets.
 
unsigned numSubWindows ()
 Returns the number of subwindows in this window.
 
void setSubWinMessage (unsigned pIndex, const std::string &pMessage)
 Sets the message of one of the subwindows (by index).
 
void setSubWinMessage (const std::string &pTitle, const std::string &pMessage)
 Sets the message of one of the subwindows (by title).
 
virtual bool hasFocus () const
 Returns true if window has focus, false otherwise.
 
virtual void setBorderStyle (eBorderStyle pBorderStyle)
 Sets the border style.
 
eBorderStyle getBorderStyle () const
 Returns the border style.
 
bool hasBorder () const
 Does this window have a border?
 
virtual cxWindowgetParent () const
 Returns a pointer to the parent window.
 
void setParent (cxWindow *pNewParent)
 Changes the pointer to the parent window; changes the parent window.
 
virtual void dump (std::string &pResult)
 Returns a string containing all the characters.
 
virtual void showSubwindows (bool pBringToTop=true, bool pShowSubwindows=true)
 Shows the subwindows for the window.
 
cxWindowoperator= (const cxWindow &pThatWindow)
 Assignment operator.
 
virtual void writeText (int pRow, int pCol, const std::string &pText, bool pRefresh=true)
 Writes text on the window. Note that the text is not permanant, so.
 
virtual void setHotkeyHighlighting (bool pHotkeyHighlighting)
 Enables/disables the use of hotkey attributes when writing the message.
 
bool getHotkeyHighlighting () const
 Returns whether hotkey attributes are used when writing the message.
 
virtual bool isEnabled () const
 Returns whether or not the window is enabled.
 
virtual void setDisableCursorOnShow (bool pDisableCursorOnShow)
 Sets whether the window should disable the cursor.
 
virtual bool getDisableCursorOnShow () const
 Returns whether or not the window will disable.
 
virtual bool getExitOnMouseOutside () const
 Returns whether the window exits its modal input loop when.
 
virtual void setExitOnMouseOutside (bool pExitOnMouseOutside)
 Sets whether the window should exit its modal input loop.
 
virtual int getLastKey () const
 Returns the last key pressed by the user (for showModal(), etc.)
 
virtual void setLastKey (int pLastKey)
 Sets the last keypress.
 
virtual bool lastKeyWasMouseEvt () const
 Returns whether or not the last keypress was a mouse event.
 
virtual void getLastMouseEvtCoords (int &pY, int &pX)
 Returns the coordinates of the last mouse event in the window.
 
virtual bool getChangeColorsOnFocus () const
 Returns whether the window will change.
 
virtual void setChangeColorsOnFocus (bool pChangeColorsOnFocus)
 Sets whether colors should change when focus.
 
virtual void setOnFocusFunction (const std::shared_ptr< cxFunction > &pFunction)
 Sets the window's "on focus" function.
 
virtual void setOnFocusFunction (funcPtr4 pFunction, void *p1, void *p2, void *p3, void *p4, bool pUseVal=false, bool pExitAfterRun=false)
 Sets the "on focus" function pointer.
 
virtual void setOnFocusFunction (funcPtr2 pFunction, void *p1, void *p2, bool pUseVal=false, bool pExitAfterRun=false)
 Sets the "on focus" function pointer.
 
virtual void setOnFocusFunction (funcPtr0 pFunction, bool pUseVal=false, bool pExitAfterRun=false)
 Sets the "on focus" function pointer.
 
virtual void setOnLeaveFunction (const std::shared_ptr< cxFunction > &pFunction)
 Sets the window's "on leave" function.
 
virtual void setOnLeaveFunction (funcPtr4 pFunction, void *p1, void *p2, void *p3, void *p4)
 Sets the "on leave" function pointer.
 
virtual void setOnLeaveFunction (funcPtr2 pFunction, void *p1, void *p2)
 Sets the "on focus" function pointer.
 
virtual void setOnLeaveFunction (funcPtr0 pFunction)
 Sets the "on focus" function pointer.
 
virtual bool runOnFocusFunction (std::string *pFunctionRetval=nullptr)
 Runs the onFocus function, if it's set.
 
virtual bool runOnLeaveFunction (std::string *pFunctionRetval=nullptr)
 Runs the onLeave function, if it's set. However, if the last.
 
virtual void toggleOnFocusFunction (bool pRunOnFocus)
 Sets whether or not the onFocus function should run.
 
virtual void toggleOnLeaveFunction (bool pRunOnLeave)
 Sets whether or not the onLeave function should run.
 
virtual bool onFocusFunctionEnabled () const
 Returns whether or not the onFocus function is set to run.
 
virtual bool onLeaveFunctionEnabled () const
 Returns whether or not the onLeave function is set to run.
 
virtual const std::shared_ptr< cxFunction > & getOnFocusFunction () const
 Accessor for the onFocus function.
 
virtual const std::shared_ptr< cxFunction > & getOnLeaveFunction () const
 Accessor for the onLeave function.
 
virtual bool isModal () const
 Returns whether or not the window is currently.
 
virtual void clearKeyFunctionByPtr (funcPtr4 pFunction)
 Removes a keypress function pointer.
 
virtual void clearKeyFunctionByPtr (funcPtr2 pFunction)
 Removes a keypress function pointer.
 
virtual void clearKeyFunctionByPtr (funcPtr0 pFunction)
 Removes a keypress function pointer.
 
virtual void clearKeyFunctions ()
 Clears the list of external functions fired by hotkeys.
 
virtual bool hasKeyFunction (int pKey) const
 Returns whether an external function exists for a keypress.
 
virtual bool setMouseFunction (int pMouseState, const std::shared_ptr< cxFunction > &pFunction)
 Sets a function to be called for a certain mouse state.
 
virtual bool setMouseFunction (int pMouseState, funcPtr4 pFunction, void *p1, void *p2, void *p3, void *p4, bool pUseReturnVal=false, bool pExitAfterRun=false, bool pRunOnLeaveFunction=true)
 Sets a function to be called for a certain mouse state.
 
virtual bool setMouseFunction (int pMouseState, funcPtr2 pFunction, void *p1, void *p2, bool pUseReturnVal=false, bool pExitAfterRun=false, bool pRunOnLeaveFunction=true)
 Sets a function to be called for a certain mouse state.
 
virtual bool setMouseFunction (int pMouseState, funcPtr0 pFunction, bool pUseReturnVal=false, bool pExitAfterRun=false, bool pRunOnLeaveFunction=true)
 Sets a function to be called for a certain mouse state. This.
 
virtual void clearMouseFunction (int pMouseState)
 Removes a function pointer for a mouse event so that it will.
 
virtual void clearMouseFunctions ()
 Clears the list of external functions fired by mouse events.
 
virtual bool hasMouseFunction (int pMouseState) const
 Returns whether an external function exists for a mouse event.
 
std::map< int, std::shared_ptr< cxFunction > >::iterator keyFunctions_begin ()
 Returns a begin iterator to the map of cxFunction pointers.
 
std::map< int, std::shared_ptr< cxFunction > >::iterator keyFunctions_end ()
 Returns an end iterator to the map of cxFunction pointers.
 
virtual void getFunctionKeyStrings (std::vector< std::string > &pKeys) const
 Populates a collection of strings representing the keys.
 
virtual void getFunctionKeys (std::vector< int > &pKeys) const
 Populates a collection with integers representing the keys.
 
virtual void setShowSubwinsForward (bool pShowSubwinsForward)
 Toggles the order in which subwindows will be shown.
 
virtual bool getShowSubwinsForward () const
 Returns whether or not the subwindows will be shown.
 
virtual void setShowSelfBeforeSubwins (bool pShowSelfBeforeSubwins)
 Sets whether the window will show itself before.
 
virtual bool getShowSelfBeforeSubwins () const
 Returns whether or not the window will show itself before.
 
virtual long getReturnCode () const
 Returns the return code set by the last call to.
 
virtual bool addTitleString (int pHPos, const std::string &pStr, bool pRefreshTitle=false)
 Adds/sets a string to appear in the title at.
 
virtual std::string getTitleString (int pHPos) const
 Returns the title string set at a given horizontal position.
 
virtual std::map< int, std::string > getTitleStrings () const
 Returns the map of title strings for the window.
 
virtual void getTitleStrings (std::map< int, std::string > &pTitleStrings) const
 Returns the map of title strings for the window (using an.
 
virtual void setTitleStrings (const std::map< int, std::string > &pTitleStrings)
 Sets all the title strings via a map of horizontal.
 
virtual void removeTitleString (int pHPos)
 Removes a title string at a given horizontal position.
 
virtual void removeTitleStrings ()
 Removes all title strings.
 
virtual bool addStatusString (int pHPos, const std::string &pStr, bool pRefreshStatus=false)
 Adds/sets a string to appear in the status line at.
 
virtual std::string getStatusString (int pHPos) const
 Returns the status string set at a given horizontal position.
 
virtual std::map< int, std::string > getStatusStrings () const
 Returns the map of status strings for the window.
 
virtual void getStatusStrings (std::map< int, std::string > &pStatusStrings) const
 Returns the map of status strings for the window (using an.
 
virtual void setStatusStrings (const std::map< int, std::string > &pStatusStrings)
 Sets all the status strings via a map of horizontal.
 
virtual void removeStatusString (int pHPos)
 Removes a status string at a given horizontal position.
 
virtual void removeStatusStrings ()
 Removes all status strings.
 
virtual void removeQuitKeys ()
 Removes all quit keys.
 
virtual void removeExitKeys ()
 Removes all exit keys.
 
virtual bool hasExitKey (int pKey) const
 Returns whether or not a key exists in the.
 
virtual bool hasQuitKey (int pKey) const
 Returns whether or not a key exists in the.
 
virtual void getQuitKeyStrings (std::vector< std::string > &pKeys) const
 Populates a collection of strings representing the keys.
 
virtual std::string getQuitKeyListString () const
 Returns a string containing a comma-separated list of the.
 
virtual void getExitKeyStrings (std::vector< std::string > &pKeys) const
 Populates a collection of strings representing the keys.
 
virtual std::string getExitKeyListString () const
 Returns a string containing a comma-separated list of the.
 
virtual std::map< int, bool > getQuitKeys () const
 Returns the keys that will make the window quit its input.
 
virtual std::map< int, bool > getExitKeys () const
 Returns the keys that will make the window exit is input.
 
void toggleMessage (bool pDrawMessage)
 Sets whether or not to draw the message area (the area within.
 
void toggleTitle (bool pDrawTitle)
 Sets whether or not to draw the title.
 
void toggleStatus (bool pDrawStatus)
 Sets whether or not to draw the status line.
 
bool messageWillDraw () const
 Returns whether the message will draw or not.
 
bool titleWillDraw () const
 Returns whether the title will draw or not.
 
bool statusWillDraw () const
 Returns whether the status line will draw or not.
 
void toggleSpecialChars (bool pDrawSpecialChars)
 Sets whether or not to draw the "special" characters (these are.
 
bool specialCharsWillDraw () const
 Returns whether the "special" characters will be drawn or.
 
virtual void drawTitle ()
 Writes the title line.
 
virtual void drawStatus ()
 Writes the status line.
 
virtual void drawMessage ()
 Writes the message text (in the area within the borders)
 
virtual void drawSpecialChars ()
 Writes the set of "special" characters to the window.
 
virtual void setReturnCode (const long &pReturnCode)
 Explicitly sets the member return code for the window.
 
virtual void setMessageColor (e_cxColors pColor)
 Returns the message color.
 
virtual void setTitleColor (e_cxColors pColor)
 Sets the title color.
 
virtual void setStatusColor (e_cxColors pColor)
 Sets the color of the status line at bottom of window.
 
virtual void setBorderColor (e_cxColors pColor)
 Sets the color of the window border.
 
virtual bool hasAttr (e_WidgetItems pItem, attr_t pAttr)
 Returns whether an attribute is set for a widget item.
 
bool getLeaveNow () const
 Returns whether or not something told the window to leave now.
 
std::string getName () const
 
bool mouseEvtWasInWindow () const
 Returns whether the current mouse information stored in the.
 
virtual bool mouseEvtWasInTitle () const
 Returns whether the current mouse information stored in the.
 
virtual void doMouseBehavior ()
 Triggers the window's mouse event behavior. This method can.
 
virtual void doMouseBehavior (int pMouseY, int pMouseX)
 Triggers the window's mouse event behavior. Also sets the.
 
std::shared_ptr< cxFunctiongetKeyFunction (int pKey) const
 Returns a cxFunction pointer for a key.
 
std::shared_ptr< cxFunction0getKeyFunctionAsFunction0 (int pKey) const
 Returns a cxFunction pointer for a key, casted to a cxFunction0.
 
std::shared_ptr< cxFunction2getKeyFunctionAsFunction2 (int pKey) const
 Returns a cxFunction pointer for a key, casted to a cxFunction2.
 
std::shared_ptr< cxFunction4getKeyFunctionAsFunction4 (int pKey) const
 Returns a cxFunction pointer for a key, casted to a cxFunction4.
 
bool mouseEvtWasButtonEvt () const
 Returns whether or not the mouse event read in mMouse was.
 
bool mouseButton1Pressed () const
 Returns whether or not the first mouse button was pressed.
 
bool mouseButton1Released () const
 Returns whether or not the first mouse button was released.
 
bool mouseButton1Clicked () const
 Returns whether or not the first mouse button was clicked.
 
bool mouseButton1DoubleClicked () const
 Returns whether or not the first mouse button was double-clicked.
 
bool mouseButton2Clicked () const
 Returns whether or not the second mouse button was clicked.
 
bool mouseButton2DoubleClicked () const
 Returns whether or not the second mouse button was double-clicked.
 
bool mouseButton3Clicked () const
 Returns whether or not the second mouse button was clicked.
 
virtual void mouseButton1Click (int pY, int pX)
 Tells the window that mouse button 1 was clicked at a certain.
 
virtual void mouseButton2Click (int pY, int pX)
 Tells the window that mouse button 2 was clicked at a certain.
 
virtual void mouseButton3Click (int pY, int pX)
 Tells the window that mouse button 3 was clicked at a certain.
 
std::string getString (int pRow, int pCol, int pNumber)
 Get the contents of a portion of the window. (for debugging/testing)
 
void info ()
 Display information about a window (for debugging/testing)
 
virtual void toggleBorderTop (bool pToggle)
 Sets whether or not to display the top border.
 
virtual void toggleBorderBottom (bool pToggle)
 Sets whether or not to display the bottom border.
 
virtual void toggleBorderLeft (bool pToggle)
 Sets whether or not to display the left border.
 
virtual void toggleBorderRight (bool pToggle)
 Sets whether or not to display the right border.
 
virtual void addSpecialChar (int pY, int pX, chtype pChar, attr_t pAttr=A_NORMAL)
 Adds a character to be written somewhere in the window. These.
 
virtual void removeSpecialChar (int pY, int pX)
 Removes a character from the set of special characters (by.
 
virtual void clearSpecialChars ()
 Clears the collection of special characters.
 
virtual bool functionExistsForLastMouseState () const
 Returns whether an external function pointer exists for the.
 
int getMouseState () const
 Returns the current mouse state as it was last captured by the.
 
std::string getMouseStateStr () const
 Returns a string version of the current mouse state as it was.
 
virtual e_cxColors getItemColor (e_WidgetItems pItem) const
 Returns the color of one of the items in a window.
 
- Public Member Functions inherited from cx::cxObject
 cxObject ()
 
virtual ~cxObject ()
 
virtual void beep ()
 

Protected Types

typedef std::vector< std::shared_ptr< cxWindow > > cxWindowPtrCollection
 

Protected Member Functions

bool anyEnabledWindows () const
 Returns whether any of the windows contained in mWindows are.
 
bool lastEnabledWindow (int pIndex) const
 Returns whether or not a window in the panel with a given index.
 
bool firstEnabledWindow (int pIndex) const
 Returns whether or not a window in the panel with a given index.
 
- Protected Member Functions inherited from cx::cxWindow
virtual void reCreatePanel ()
 Creates mPanel (by calling new_panel()), then sets up.
 
void freeWindow ()
 Frees the memory used by the ncurses window and.
 
virtual void init (int pRow, int pCol, int pHeight, int pWidth, const std::string &pTitle, const std::string &pMessage, const std::string &pStatus, cxWindow *pParentWindow=nullptr, bool pResizeVertically=true)
 Initializes the window parameters and sets up the internal.
 
virtual void removeAllSubwindows ()
 Removes all subwindow pointers.
 
virtual void addSubwindow (cxWindow *pSubWindow)
 Adds a subwindow to the window. Subwindows of a.
 
virtual void removeSubWindow (const cxWindow *pSubWindow)
 Removes a window from the subwindow list.
 
virtual void setElementColor (short &pColorPair, attr_t &pElementAttr, e_cxColors pColor)
 Sets the color (and attribute, if necessary) of a color element.
 
virtual void enableAttrs (WINDOW *pWin, e_WidgetItems pItem)
 Enables the attributes for one of the m*Attrs sets for an ncurses window.
 
virtual void disableAttrs (WINDOW *pWin, e_WidgetItems pItem)
 Disables the attributes for one of the m*Attrs sets for an ncurses window.
 
virtual void writeWithHighlighting (WINDOW *pWindow, const std::string &pText, const int &pY, const int &pStartX, const int &pEndX, int pNormalTextItem=-1)
 Writes text to an ncurses WINDOW, highlighting any characters.
 
virtual void copyCxWinStuff (const cxWindow *pThatWindow, bool pRecreateWin=true)
 Makes a copy of a cxWindow's member variables.
 
virtual void getRowColBasedOn (cxWindow *pParentWindow, eHPosition pPosition, const std::string &pTitle, const std::string &pStatus, const std::string &pMessage, int &pRow, int &pCol)
 Figures out how to align text based on a title & message.
 
virtual bool handleFunctionForLastKey (bool *pFunctionExists=nullptr, bool *pRunOnLeaveFunction=nullptr)
 Looks for a function tied to the last keypress and.
 
virtual bool handleFunctionForLastMouseState (bool *pFunctionExists=nullptr, bool *pRunOnLeaveFunction=nullptr)
 Looks for a function tied to the last mouse state captured.
 
virtual void draw ()
 Fills the member ncurses window structure with the current.
 
void setKeyFunctions (const cxWindow &pWindow)
 Returns whether or not a mouse event location is within.
 
void setFocusFunctions (const cxWindow &pWindow)
 Re-sets the onFocus and onLeave functions from another.
 
bool parentIsCxPanel () const
 Returns whether or not the parent window, if there is one, is.
 
bool parentIsCxForm () const
 Returns whether or not the parent window, if there is one, is.
 
bool parentIsCxNotebook () const
 Returns whether or not the parent window, if there is one, is.
 
cxWindowPtrContainer::const_iterator subWindows_begin () const
 Returns a const iterator to the first subwindow.
 
cxWindowPtrContainer::const_iterator subWindows_end () const
 Returns a const iterator to the one past the last subwindow.
 
cxWindowPtrContainer::const_reverse_iterator subWindows_rbegin () const
 Returns a const reverse begin iterator for the subwindow collection.
 
cxWindowPtrContainer::const_reverse_iterator subWindows_rend () const
 Returns a const reverse end iterator for the subwindow collection.
 
bool onFocusFunctionIsSet () const
 Returns whether or not the onFocus function is set (if.
 
bool onLeaveFunctionIsSet () const
 Returns whether or not the onLeave function is set (if.
 

Protected Attributes

cxWindowPtrCollection mWindows
 
bool mCycleWin = true
 
std::shared_ptr< cxWindowmLastWindow
 
- Protected Attributes inherited from cx::cxWindow
WINDOW * mWindow = nullptr
 Everything in the window is written here; this is an nCurses window structure.
 
messageLineContainer mMessageLines
 Contains the text to be shown inside the window (note: the.
 
std::map< std::pair< int, int >, chtype > mSpecialChars
 Contains "special" characters which are added to the window.
 
std::set< attr_t > mMessageAttrs
 Message attributes.
 
std::set< attr_t > mTitleAttrs
 Title attributes.
 
std::set< attr_t > mStatusAttrs
 Status attributes.
 
std::set< attr_t > mBorderAttrs
 Border attributes.
 
std::set< attr_t > mHotkeyAttrs
 Hotkey attributes.
 
std::map< std::pair< int, int >, attr_t > mSpecialCharAttrs
 Attributes for the "special" characters (which are added to.
 
short mMessageColorPair = eWHITE_BLUE
 
short mTitleColorPair = eGRAY_BLUE
 
short mStatusColorPair = eBROWN_BLUE
 
short mBorderColorPair = eGRAY_BLUE
 
eHPosition mHorizTitleAlignment = eHP_LEFT
 
eHPosition mHorizMessageAlignment = eHP_LEFT
 
eHPosition mHorizStatusAlignment = eHP_LEFT
 
eVPosition mVerticalMessageAlignment = eVP_TOP
 
bool mDrawMessage = true
 
bool mDrawTitle = true
 
bool mDrawStatus = true
 
bool mDrawSpecialChars = true
 
std::shared_ptr< cxFunctionmOnFocusFunction = nullptr
 
std::shared_ptr< cxFunctionmOnLeaveFunction = nullptr
 
bool mIsModal = false
 
bool mLeaveNow = false
 
std::map< int, std::shared_ptr< cxFunction > > mKeyFunctions
 
std::map< int, std::shared_ptr< cxFunction > > mMouseFunctions
 
std::map< int, bool > mQuitKeys
 
std::map< int, bool > mExitKeys
 
bool mHotkeyHighlighting
 

Friends

class cxWindow
 

Additional Inherited Members

- Static Public Member Functions inherited from cx::cxObject
static bool UseColors ()
 
static void UseColors (bool useIt)
 
static bool UseBeeps ()
 
static void UseBeeps (bool useIt)
 
- Static Protected Attributes inherited from cx::cxObject
static bool useColors
 Whether or not to use colors.
 
static bool useBeeps
 Whether or not to enable beeping.
 

Detailed Description

cxPanel is a window that contains other windows. When showModal()

is called, focus will cycle through all the subwindows in the order

they were added.
virtual long showModal(bool pShowSelf = true, bool pBringToTop = true, bool pShowSubwindows = true); These are the steps to add a window to a cxPanel:
1) Create it dynamically (i.e., with the 'new' operator)
2) Add it to the cxPanel with the append() method
All windows added to a cxPanel must be created dynamically because cxPanel's destructor will free the memory used by the windows it contains.
The windows added to a cxPanel via append() are managed in a collection that is separate from the subwindow collection contained in the base class (cxWindow). This is because the subwindows cotnained by a cxPanel are assumed to be created dynamically, but cxWindow does not make this assumption with the subwindows.
Notes:

Member Typedef Documentation

◆ cxWindowPtrCollection

typedef std::vector<std::shared_ptr<cxWindow> > cx::cxPanel::cxWindowPtrCollection
protected

Constructor & Destructor Documentation

◆ cxPanel()

cx::cxPanel::cxPanel ( cxWindow pParentWindow = nullptr,
int  pRow = 0,
int  pCol = 0,
int  pHeight = DEFAULT_HEIGHT,
int  pWidth = DEFAULT_WIDTH,
const std::string &  pTitle = "",
const std::string &  pMessage = "",
const std::string &  pStatus = "",
eBorderStyle  pBorderStyle = eBS_NOBORDER,
cxWindow pExtTitleWindow = nullptr,
cxWindow pExtStatusWindow = nullptr,
bool  pMessageUnderlines = false 
)
explicit

Default constructor.

Parameters
pParentWindowA pointer to the parent window.
pRowThe row of the upper-left corner.
pColThe column of the upper-left corner.
pHeightThe height of the window.
pWidthThe width of the window.
pTitleThe window title (useful if the panel will have borders).
pMessageThe message to appear in the panel.
pStatusThe status (useful if the panel will have borders).
pBorderStyleThe border style - can be eBS_SINGLE_LINE for a single-line border or eBS_NOBORDER for no border. Defaults to eBS_NOBORDER.
pExtTitleWindowA pointer to another cxWindow in which to display the window title.
pExtStatusWindowA pointer to another cxWindow in which to display the status.
pMessageUnderlinesWhether or not to recognize & use underline characters when displaying the message text.

◆ ~cxPanel()

cx::cxPanel::~cxPanel ( )
virtual

Member Function Documentation

◆ addExitKey()

bool cx::cxPanel::addExitKey ( int  pKey,
bool  pRunOnLeaveFunction = true,
bool  pOverride = false 
)
overridevirtual

Adds a key that will cause the window to quit its input loop.

and return cxID_EXIT. Normally, if the key already exists

as a function key, it will not be added as an exit key.

Parameters
pKeyThe key to add
pRunOnLeaveFunctionWhether or not to run the onLeave functions when the panel exits. Defaults to true. Note that this affects both the onLeave function for the panel, as well as the current window when the panel is modal.
pOverrideIf true, then the key will be added as an exit key regardless if the key exists as a function key. This defaults to false.
Returns
Whether or not the key was added

Reimplemented from cx::cxWindow.

◆ addQuitKey()

bool cx::cxPanel::addQuitKey ( int  pKey,
bool  pRunOnLeaveFunction = true,
bool  pOverride = false 
)
overridevirtual

Adds a key that will cause the window to quit its input loop.

and return cxID_EXIT. Normally, if the key already exists

as a function key, it will not be added as an exit key.

Parameters
pKeyThe key to add
pRunOnLeaveFunctionWhether or not to run the onLeave functions when the panel exits. Defaults to true. Note that this affects both the onLeave function for the panel, as well as the current window when the panel is modal.
pOverrideIf true, then the key will be added as an exit key regardless if the key exists as a function key. This defaults to false.
Returns
Whether or not the key was added

Reimplemented from cx::cxWindow.

◆ anyEnabledWindows()

bool cx::cxPanel::anyEnabledWindows ( ) const
protected

Returns whether any of the windows contained in mWindows are.

enabled.

Returns
true if there is at least 1 window that is enabled, or false if not.

◆ append() [1/2]

virtual bool cx::cxPanel::append ( const std::shared_ptr< cxWindow > &  pWindow)
virtual

Adds a window to the panel. Note: The cxWindow.

object must be dynamically created (with

the 'new' operator) because a cxPanel manages its

windows via pointers and will free up all the

memory used by the window pointers when the panel

is destroyed.

Parameters
pWindowA pointer to a cxWindow object to add to the panel
Returns
true if the window was appended, or false if not

Referenced by cxPanel_cxMenuUpArrowLeave(), cxPanelDelAllWindowsTest(), cxPanelGetLastWindow(), cxPanelTest(), cxPanelTest2(), cxPanelWindowSwap(), cxPanelWithButton(), cxPanelWithNonEditableSubwindows(), and cx::cxSearchPanel::cxSearchPanel().

◆ append() [2/2]

virtual bool cx::cxPanel::append ( const std::shared_ptr< cxWindow > &  pWindow,
int  pRow,
int  pCol,
bool  pRefresh = false 
)
virtual

Adds a window to the panel with relative coordinates.

The window will be moved to the coordinates

specified by pRow and pCol, relative to the

panel. Note: The cxWindow object must be

dynamically created (with the 'new' operator) because

a cxPanel manages its windows via pointers and will

free up all the memory used by the window pointers

when the panel is destroyed.

Parameters
pWindowA pointer to a cxWindow object to add to the panel
pRowThe new top row of the window (relative to the panel)
pColThe new left column of the window (relative to the panel)
pRefreshWhether or not to refresh the window after it is moved (defaults to false)
Returns
true if the window was appended, or false if not

◆ bottom()

int cx::cxPanel::bottom ( ) const
overridevirtual

Returns the bottom row of the window.

Returns
The bottom row of the window

Reimplemented from cx::cxWindow.

Referenced by cx::cxNotebook::setLabelsOnTop().

◆ clear()

void cx::cxPanel::clear ( bool  pRefresh = false)
overridevirtual

Clears all the window in the panel.

Parameters
pRefreshWhether or not to refresh the windows as they are cleared (defaults to false).

Reimplemented from cx::cxWindow.

◆ clearKeyFunction()

void cx::cxPanel::clearKeyFunction ( int  pKey)
overridevirtual

Removes a function pointer for a keypress for the panel so that it will no.

longer fire a function.

Parameters
pKeyThe hotkey for the function to remove

Reimplemented from cx::cxWindow.

◆ cxTypeStr()

string cx::cxPanel::cxTypeStr ( ) const
overridevirtual

Returns the name of the cxWidgets class. This can be used to.

determine the type of cxWidgets object that deriving classes

derive from in applications.

Returns
The name of the cxWidgets class.

Reimplemented from cx::cxWindow.

Reimplemented in cx::cxNotebook, and cx::cxSearchPanel.

◆ delAllWindows()

void cx::cxPanel::delAllWindows ( )
virtual

Removes all windows from the panel. Also frees the memory used.

by them. For authors using cxPanel: This calls delWindow()

with an index, so this method should not need to be overridden

in derived classes.

Referenced by cxPanelDelAllWindowsTest().

◆ delWindow() [1/2]

virtual void cx::cxPanel::delWindow ( const std::shared_ptr< cxWindow > &  pWindow)
virtual

Removes a window from the panel (by pointer), and frees the.

memory used by the window. Does nothing if the window does

not reside in the panel. Note: If you want to re-use the

window, you can use removeWindow() instead.

Parameters
pWindowA pointer to a window to remove from the panel

Reimplemented in cx::cxNotebook.

◆ delWindow() [2/2]

virtual void cx::cxPanel::delWindow ( unsigned  pIndex)
virtual

Removes a window from the panel (by index) and frees the memory.

used by the window. Does nothing if the index is out of bounds.

Note: If you want to re-use the window, you can use

removeWindow() instead.

Parameters
pIndexThe index of the window to remove from the panel

Referenced by cxPanelTest(), and cx::cxNotebook::delWindow().

◆ enableWindow()

void cx::cxPanel::enableWindow ( unsigned  pIndex,
bool  pEnabled = true 
)
virtual

Enables/disables one of the windows in the panel (by index).

Parameters
pIndexThe index of the window
pEnabledWhether or not the window should be enabled (defaults to true)

◆ exitNow()

void cx::cxPanel::exitNow ( )
overridevirtual

This causes the panel to stop its input loop with a code of.

cxID_EXIT.

Reimplemented from cx::cxWindow.

References exitNow(), multiForm(), mWindows, and cx::cxMultiForm::numSubforms().

Referenced by exitNow().

◆ firstEnabledWindow()

bool cx::cxPanel::firstEnabledWindow ( int  pIndex) const
protected

Returns whether or not a window in the panel with a given index.

is the first enabled window. If the index is out of range, this

will return false.

Parameters
pIndexThe index of a window in the panel
Returns
true if the window is the first enabled window in the panel, or false if not.

◆ getAllowExit()

bool cx::cxPanel::getAllowExit ( ) const
virtual

Returns whether the user is allowed to exit out.

of the cxPanel (with a return code of cxID_EXIT)

Returns
Whether the user is allowed to exit out of the panel

◆ getAllowQuit()

bool cx::cxPanel::getAllowQuit ( ) const
virtual

Returns whether the user is allowed to quit out.

of the cxPanel (with a return code of cxID_QUIT)

Returns
Whether the user is allowed to quit out of the panel

◆ getCurrentWindowIndex()

int cx::cxPanel::getCurrentWindowIndex ( ) const
virtual

Returns the index of the current window.

Could return -1 if there are no windows

in the panel.

Returns
The index of the current window

◆ getCurrentWindowPtr()

const shared_ptr< cxWindow > & cx::cxPanel::getCurrentWindowPtr ( ) const
virtual

Returns a pointer to the current window.

Could return nullptr if there are no windows

in the panel.

Returns
A pointer to the current window

Referenced by cx::cxNotebook::getCurrentPanelPtr().

◆ getExitOnLeaveFirst()

bool cx::cxPanel::getExitOnLeaveFirst ( ) const
virtual

Returns whether the panel will exit focus.

when the first subwindow leaves focus when

the user is navigating through them in

reverse.

Returns
Whether or not the panel will exit focus when the first subwindow leaves focus when the user is navigating through them in reverse.

◆ getExitOnLeaveLast()

bool cx::cxPanel::getExitOnLeaveLast ( ) const
virtual

Returns whether or not the panel will exit focus.

when the last subwindow leaves focus.

Returns
Whether or not the panel will exit focus when the last subwindow leaves focus.

◆ getLastWindow()

const shared_ptr< cxWindow > & cx::cxPanel::getLastWindow ( ) const

Returns a pointer to the last window in the panel that was.

visited in the input loop (during a showModal()). Could

return nullptr if there was no last window visited (i.e., when a

cxPanel is first created). If the cxPanel has been shown

previously, then the next time it is shown, the last window

will still be set to the window that the focus was on the

last time the cxPanel was shown.

Returns
A pointer to the last window visited during the input loop, or nullptr if there was no last window visited.

Referenced by onFocusWinForCxPanelGetLastPage().

◆ getShowPanelWindow()

bool cx::cxPanel::getShowPanelWindow ( ) const
virtual

Returns whether or not the panel window will be.

shown along with the windows in the panel.

Returns
Whether or not the panel window will be shown along with the windows in the panel.

Reimplemented in cx::cxNotebook.

Referenced by cx::cxNotebook::getShowPanelWindow(), and cx::cxNotebook::getShowPanelWindow().

◆ getWindow()

shared_ptr< cxWindow > cx::cxPanel::getWindow ( unsigned  pIndex) const
virtual

Gets a pointer to one of the subwindows (by index).

Returns nullptr if the index is out of bounds.

pIndex should be between 0 and 1 less than the

number of subwindows.

Parameters
pIndexThe index of the subwindow
Returns
A pointer to one of the subwindows, or nullptr if pIndex is out of bounds.

Referenced by cxNotebookSwapTest(), cxPanelTest(), cx::cxNotebook::getPanel(), cx::cxNotebook::getShowPanelWindow(), cx::cxNotebook::selectNextWin(), cx::cxNotebook::selectPrevWin(), and cx::cxNotebook::show().

◆ getWindowIndex() [1/2]

virtual int cx::cxPanel::getWindowIndex ( const std::shared_ptr< cxWindow > &  pWindow) const
virtual

Given a cxWindow pointer, this function will return the index.

of the window in the panel, or -1 if the window is not in the

panel.

Parameters
pWindowA pointer to the window whose index to get
Returns
The index of the window, or -1 if the window is not in the panel.

Referenced by cx::cxNotebook::delWindow(), and cx::cxNotebook::removeWindow().

◆ getWindowIndex() [2/2]

int cx::cxPanel::getWindowIndex ( cxWindow pWindow) const
virtual

◆ hide()

void cx::cxPanel::hide ( bool  pHideSubwindows = true)
overridevirtual

Hides the panel, along with the windows in the panel.

Parameters
pHideSubwindowsThis is here so that this function is overridden from cxWindow.

Reimplemented from cx::cxWindow.

Reimplemented in cx::cxNotebook.

Referenced by cxPanelTest(), and cx::cxNotebook::hide().

◆ lastEnabledWindow()

bool cx::cxPanel::lastEnabledWindow ( int  pIndex) const
protected

Returns whether or not a window in the panel with a given index.

is the last enabled window. If the index is out of range, this

will return false.

Parameters
pIndexThe index of a window in the panel
Returns
true if the window is the last enabled window in the panel, or false if not.

◆ move()

bool cx::cxPanel::move ( int  pNewRow,
int  pNewCol,
bool  pRefresh = true 
)
overridevirtual

Changes the panel's position, based on a new upper-left corner.

Also moves all the contained windows accordingly.

Parameters
pNewRowThe new topmost row for the panel
pNewColThe new leftmost column for the panel
pRefreshWhether or not to refresh the window (defaults to true)
Returns
Whether or not the move succeeded or not (true/false)

Reimplemented from cx::cxWindow.

Reimplemented in cx::cxNotebook.

Referenced by cx::cxSearchPanel::copyCxSearchPanelStuff(), cxPanelTest(), and cx::cxNotebook::move().

◆ numWindows()

unsigned int cx::cxPanel::numWindows ( ) const
virtual

Returns the number of windows that are contained.

by the panel.

Returns
The number of windows contained by the panel

Referenced by cx::cxNotebook::getPanel(), cx::cxNotebook::removeWindow(), cx::cxNotebook::selectNextWin(), cx::cxNotebook::selectPrevWin(), cx::cxNotebook::setCurrentWindow(), cx::cxNotebook::swap(), and cx::cxNotebook::swap().

◆ quitNow()

void cx::cxPanel::quitNow ( )
overridevirtual

This causes the panel to stop its input loop with a code of.

cxID_QUIT.

Reimplemented from cx::cxWindow.

References multiForm(), mWindows, cx::cxMultiForm::numSubforms(), and quitNow().

Referenced by quitNow().

◆ removeExitKey()

void cx::cxPanel::removeExitKey ( int  pKey)
overridevirtual

Removes an exit key.

Parameters
pKeyThe key to remove from the list of exit keys

Reimplemented from cx::cxWindow.

◆ removeQuitKey()

void cx::cxPanel::removeQuitKey ( int  pKey)
overridevirtual

Removes a quit key.

Parameters
pKeyThe key to remove from the list of quit keys

Reimplemented from cx::cxWindow.

◆ removeWindow() [1/3]

virtual void cx::cxPanel::removeWindow ( const std::shared_ptr< cxWindow > &  pWindow)
virtual

Removes a window from the panel, without freeing its memory.

so that it may be used elsewhere. Note: If you don't want to

re-use the window, use delWindow() instead, as this frees up

the window's memory using delete.

Parameters
pWindowA pointer to a window to be removed from the panel

Reimplemented in cx::cxNotebook.

◆ removeWindow() [2/3]

void cx::cxPanel::removeWindow ( cxWindow pWindow)
virtual

Reimplemented in cx::cxNotebook.

◆ removeWindow() [3/3]

shared_ptr< cxWindow > cx::cxPanel::removeWindow ( unsigned int  pIndex)
virtual

Removes a window from the panel, without freeing its memory.

so that it may be used elsewhere. Note: If you don't want to

re-use the window, use delWindow() instead, as this frees up

the window's memory using delete.

Parameters
pIndexThe index of the window in the panel to remove
Returns
A pointer to the window removed. If pIndex is not a valid index, the return value will be nullptr.

Reimplemented in cx::cxNotebook.

Referenced by cx::cxNotebook::removeWindow(), and cx::cxNotebook::removeWindow().

◆ setAllowExit()

void cx::cxPanel::setAllowExit ( bool  pAllowExit)
virtual

Sets whether the user is allowed to exit out of.

the panel (with a return code of cxID_EXIT)

Parameters
pAllowExitWhether or not the user is allowed to exit out of the panel

◆ setAllowQuit()

void cx::cxPanel::setAllowQuit ( bool  pAllowQuit)
virtual

Sets whether the user is allowed to quit out of.

the panel (with a return code of cxID_QUIT))

Parameters
pAllowExitWhether or not the user is allowed to quit out of the panel

◆ setColor()

void cx::cxPanel::setColor ( e_WidgetItems  pItem,
e_cxColors  pColor 
)
overridevirtual

Sets the color of one of the window items.

Parameters
pItemThe item to set the color of (see the e_WidgetItems enumeration in cxWidgetItems.h).
pColorThe color to set the item to (see the e_cxColors enumeration in cxColors.h)

Reimplemented from cx::cxWindow.

◆ setCurrentWindow() [1/2]

virtual bool cx::cxPanel::setCurrentWindow ( const std::string &  pID,
bool  pIsTitle = true 
)
virtual

Sets which window will get focus in the next.

cycle through showModal() (by title or name)

Parameters
pIDThe title/name of the window that should get focus
pIsTitleIf this is true (default), then pID will refer to the window's title. If this is false, then pID will refer to the window's name.
Returns
True if successful or false if not

Reimplemented in cx::cxNotebook.

◆ setCurrentWindow() [2/2]

virtual bool cx::cxPanel::setCurrentWindow ( unsigned  pIndex)
virtual

Sets which window will get focus in the next.

cycle through showModal() (by index)

Parameters
pIndexThe index of the window that should get the focus
Returns
True if successful or false if not

Referenced by changeWindowFocus(), cxPanelTest(), searchPanelOnFocus(), cx::cxNotebook::setCurrentWindow(), cx::cxSearchPanel::setFormCurrent(), and cx::cxSearchPanel::setMenuCurrent().

◆ setCurrentWindowByPtr() [1/2]

virtual bool cx::cxPanel::setCurrentWindowByPtr ( const std::shared_ptr< cxWindow > &  pWindow)
virtual

Sets which window will get focus in the next.

cycle through showModal() (by pointer). This

has a different function name so as not to

be ambiguous to the compiler.

Parameters
pWindowA pointer to a cxWindow (if it exists in the panel, it will then be the current window).
Returns
True if successful or false if not

Reimplemented in cx::cxNotebook.

Referenced by cx::cxNotebook::setCurrentWindowByPtr().

◆ setCurrentWindowByPtr() [2/2]

bool cx::cxPanel::setCurrentWindowByPtr ( cxWindow pWindow)
virtual

Reimplemented in cx::cxNotebook.

◆ setEnabled() [1/3]

void cx::cxPanel::setEnabled ( bool  pEnabled)
overridevirtual

Enables or disables the panel. Disabling/enabling a cxPanel.

consequently also enables/disables the windows in the panel.

Parameters
pEnabledWhether the panel should be enabled or not (true/false)

Reimplemented from cx::cxWindow.

Reimplemented in cx::cxNotebook.

Referenced by cx::cxNotebook::setEnabled(), and cx::cxNotebook::setEnabled().

◆ setEnabled() [2/3]

virtual void cx::cxPanel::setEnabled ( const std::string &  pID,
bool  pEnabled,
bool  pIsTitle = true 
)
virtual

Enables or disables a window in the panel (by title/name).

Parameters
pIDThe title/name of the window in the panel
pEnabledBoolean: If true, the window will be enabled, and if false, the window will be disabled.
pIsTitleIf this is true (default), then pID will refer to the window's title. If this is false, then pID will refer to the window's name.

Reimplemented in cx::cxNotebook.

◆ setEnabled() [3/3]

virtual void cx::cxPanel::setEnabled ( unsigned  pIndex,
bool  pEnabled 
)
virtual

Enables or disables a window in the panel (by index).

Parameters
pIndexThe index of the window in the panel
pEnabledBoolean: If true, the window will be enabled, and if false, the window will be disabled.

◆ setExitOnLeaveFirst()

void cx::cxPanel::setExitOnLeaveFirst ( bool  pExitOnLeaveFirst)
virtual

Sets whether the panel should exit focus.

when the first subwindow leaves focus when

the user is navigating through them in

reverse.

Parameters
pExitOnLeaveFirstWhether or not the panel should exit focus when the first subwindow leaves focus when the user is navigating through them in reverse.

Referenced by cxPanelTest().

◆ setExitOnLeaveLast()

void cx::cxPanel::setExitOnLeaveLast ( bool  pExitOnLeaveLast)
virtual

Sets whether the panel should exit focus.

when the last subwindow leaves focus.

Parameters
pExitOnLeaveLastWhether or not the panel should exit focus when the last subwindow leaves focus.

Referenced by cxPanelWithNonEditableSubwindows().

◆ setKeyFunction() [1/4]

virtual bool cx::cxPanel::setKeyFunction ( int  pKey,
const std::shared_ptr< cxFunction > &  pFunction 
)
overridevirtual

Sets a function to be called when a key is pressed.

Parameters
pKeyThe key to use for the function
pFunctionThe function to call. This can be an instance of one of the derived cxFunction classes as well.
Returns
True if the key & function was added or false if not

Reimplemented from cx::cxWindow.

◆ setKeyFunction() [2/4]

bool cx::cxPanel::setKeyFunction ( int  pKey,
funcPtr0  pFunction,
bool  pUseReturnVal = false,
bool  pExitAfterRun = false,
bool  pRunOnLeaveFunction = true 
)
overridevirtual

Sets a function to be called when a key is pressed. Note that.

when a key function is set on a cxPanel, the key will be

added to the panel's subwindows as exit keys - so if you need

to disable a function key for a subwindow of a cxPanel (but

not disable that key in the whole panel), you can call

removeExitKey() on that subwindow.

Parameters
pKeyThe key to use for the function
pFunctionThe function to call - Must have this signature: string func()
p1The 1st parameter to the function (pointer)
p2The 2nd parameter to the function (pointer)
pUseReturnValWhether or not to use the function's return value (not used by cxWindow, but could be useful for deriving classes).
pExitAfterRunWhether or not to exit the input loop after the function is run (not used by cxWindow, but could be useful for deriving classes).
pRunOnLeaveFunctionWhether or not to run the onLeave function when the window exits (if pExitAfterRun is true). Defaults to true.
Returns
True if the key & function was added or false if not

Reimplemented from cx::cxWindow.

◆ setKeyFunction() [3/4]

bool cx::cxPanel::setKeyFunction ( int  pKey,
funcPtr2  pFunction,
void *  p1,
void *  p2,
bool  pUseReturnVal = false,
bool  pExitAfterRun = false,
bool  pRunOnLeaveFunction = true 
)
overridevirtual

Sets a function to be called when a key is pressed. Note that.

when a key function is set on a cxPanel, the key will be

added to the panel's subwindows as exit keys - so if you need

to disable a function key for a subwindow of a cxPanel (but

not disable that key in the whole panel), you can call

removeExitKey() on that subwindow.

Parameters
pKeyThe key to use for the function
pFunctionThe function to call - Must have this signature: string func(void*, void*)
p1The 1st parameter to the function (pointer)
p2The 2nd parameter to the function (pointer)
pUseReturnValWhether or not to use the function's return value (not used by cxWindow, but could be useful for deriving classes).
pExitAfterRunWhether or not to exit the input loop after the function is run (not used by cxWindow, but could be useful for deriving classes).
pRunOnLeaveFunctionWhether or not to run the onLeave function when the window exits (if pExitAfterRun is true). Defaults to true.
Returns
True if the key & function was added or false if not

Reimplemented from cx::cxWindow.

◆ setKeyFunction() [4/4]

bool cx::cxPanel::setKeyFunction ( int  pKey,
funcPtr4  pFunction,
void *  p1,
void *  p2,
void *  p3,
void *  p4,
bool  pUseReturnVal = false,
bool  pExitAfterRun = false,
bool  pRunOnLeaveFunction = true 
)
overridevirtual

Sets a function to be called when a key is pressed. Note that.

when a key function is set on a cxPanel, the key will be

added to the panel's subwindows as exit keys - so if you need

to disable a function key for a subwindow of a cxPanel (but

not disable that key in the whole panel), you can call

removeExitKey() on that subwindow.

Parameters
pKeyThe key to use for the function
pFunctionThe function to call - Must have this signature: string func(void*, void*, void*, void*)
p1The 1st parameter to the function (pointer)
p2The 2nd parameter to the function (pointer)
p3The 3rd parameter to the function (pointer)
p4The 4th parameter to the function (pointer)
pUseReturnValWhether or not to use the function's return value (not used by cxWindow, but could be useful for deriving classes).
pExitAfterRunWhether or not to exit the input loop after the function is run (not used by cxWindow, but could be useful for deriving classes).
pRunOnLeaveFunctionWhether or not to run the onLeave function when the window exits (if pExitAfterRun is true). Defaults to true.
Returns
True if the key & function was added or false if not

Reimplemented from cx::cxWindow.

◆ setName() [1/3]

virtual void cx::cxPanel::setName ( const std::string &  pID,
const std::string &  pName,
bool  pIsTitle = true 
)
virtual

Sets the name of one of the windows in the panel (by title/name).

Parameters
pIDThe title or current name of the window
pNameThe new name for the window
pIsTitleIf true (default), then pID refers to the title of the window. If false, then pID refers to the current name of the window.

◆ setName() [2/3]

virtual void cx::cxPanel::setName ( const std::string &  pName)
overridevirtual

Sets the name of the panel. The name is an alternative means.

of identifying the panel. This should be inherited from

cxWindow, but the compiler doesn't seem to see it.

Parameters
pNameThe new name for the panel

Reimplemented from cx::cxWindow.

◆ setName() [3/3]

virtual void cx::cxPanel::setName ( unsigned  pIndex,
const std::string &  pName 
)
virtual

Sets the name of one of the windows in the panel (by index).

Parameters
pIndexThe index of the window in the panel
pNameThe new name for the window

◆ setShowPanelWindow()

void cx::cxPanel::setShowPanelWindow ( bool  pShowPanelWindow)
virtual

Sets whether or not the panel window should be shown.

when showing the panel. The windows in the panel

will still be shown.

Parameters
pShowPanelWindowWhether or not to have the panel window show when showing the panel.

Referenced by cx::cxNotebook::setShowPanelWindow().

◆ show()

long cx::cxPanel::show ( bool  pBringToTop = false,
bool  pShowSubwindows = true 
)
overridevirtual

Shows the panel. If setShowPanelWindow(false) has been.

called, the panel window won't be shown, only the windows

contained in the panel will be shown.

Parameters
pBringToTopWhether or not to bring the window to the top. Defaults to false.
pShowSubwindowsWhether or not to show sub-windows also. Defaults to true.
Returns
This method returns a long to support overriding in derived classes that might need to return a value. For cxWindow, cxID_EXIT is always returned.

Reimplemented from cx::cxWindow.

Reimplemented in cx::cxNotebook.

References cx::cxID_EXIT.

◆ showModal()

long cx::cxPanel::showModal ( bool  pShowSelf = true,
bool  pBringToTop = true,
bool  pShowSubwindows = true 
)
overridevirtual

Shows the panel and all of its subwindows and.

cycles input control through each of them.

Parameters
pShowSelfWhether or not to show the window before running the input loop. Defaults to true.
pBringToTopWhether or not to bring the window to the top. Defaults to true.
pShowSubwindowsWhether or not to show sub-windows also. Defaults to true. Note that the subwindows that belong to the panel are always drawn; this applies to windows that have the panel as a parent but are not actually "in" the panel.
Returns
A return code based on user input. Returns cxID_QUIT if the user presses ESC; otherwise, returns cxID_EXIT.

Reimplemented from cx::cxWindow.

Reimplemented in cx::cxNotebook.

References cx::bringToTop(), and cx::cxID_EXIT.

Referenced by cxPanel_cxMenuUpArrowLeave(), cxPanelDelAllWindowsTest(), cxPanelGetLastWindow(), cxPanelTest(), cxPanelTest2(), cxPanelWindowSwap(), cxPanelWithButton(), cxPanelWithNonEditableSubwindows(), cxSearchPanelCopyConstructor(), cxSearchPanelResize(), cxSearchPanelTest(), and storeSearch().

◆ swap() [1/3]

bool cx::cxPanel::swap ( const std::shared_ptr< cxWindow > &  pWindow1,
const std::shared_ptr< cxWindow > &  pWindow2 
)
virtual

Reimplemented in cx::cxNotebook.

◆ swap() [2/3]

bool cx::cxPanel::swap ( cxWindow pWindow1,
cxWindow pWindow2 
)
virtual

Swaps the order of 2 subwindows (by pointer). If both pointers.

are the same, or one or both don't exist in the panel, nothing

will be changed. This does not refresh the screen.

Parameters
pWindow1A pointer to the first window
pWindow2A pointer to the second window
Returns
Whether or not the windows got swapped

Reimplemented in cx::cxNotebook.

◆ swap() [3/3]

bool cx::cxPanel::swap ( int  pWindow1Index,
int  pWindow2Index 
)
virtual

Swaps the order of 2 subwindows (by index). If both indexes.

are the same, or one or both is out of bounds, nothing

will be changed. This does not refresh the screen.

Parameters
pWindow1IndexThe index of the first window
pWindow2IndexThe index of the second window
Returns
Whether or not the windows got swapped

Reimplemented in cx::cxNotebook.

Referenced by cxPanelTest(), cxPanelWindowSwap(), and cx::cxNotebook::swap().

◆ top()

int cx::cxPanel::top ( ) const
overridevirtual

Returns the top row of the window.

Returns
The top row of the window

Reimplemented from cx::cxWindow.

Referenced by cx::cxSearchPanel::copyCxSearchPanelStuff(), cx::cxNotebook::mouseEvtWasInTitle(), and cx::cxNotebook::setLabelsOnTop().

◆ unhide()

void cx::cxPanel::unhide ( bool  pUnhideSubwindows = true)
overridevirtual

Un-hides the panel, along with the windows in the panel.

Parameters
pUnhideSubwindowsThis is here so that this function is overridden from cxWindow.

Reimplemented from cx::cxWindow.

Reimplemented in cx::cxNotebook.

Referenced by cx::cxNotebook::unhide().

◆ windowIsEnabled()

bool cx::cxPanel::windowIsEnabled ( unsigned  pIndex) const
virtual

Returns whether or not one of the windows in the panel.

is enabled (by index).

Parameters
pIndexThe index of the window in the panel
Returns
Whethre or not the window is enabled

Referenced by cxPanelTest().

◆ windowIsInPanel() [1/2]

virtual bool cx::cxPanel::windowIsInPanel ( const std::shared_ptr< cxWindow > &  pWindow) const
virtual

Returns whether a cxWindow object is contained.

in the panel

Parameters
pWindowA pointer to a cxWindow object
Returns
Whether or not the cxWindow is contained in the panel

Reimplemented in cx::cxNotebook.

Referenced by cx::cxNotebook::windowIsInNotebook(), and cx::cxNotebook::windowIsInPanel().

◆ windowIsInPanel() [2/2]

bool cx::cxPanel::windowIsInPanel ( cxWindow pWindow) const
virtual

Friends And Related Symbol Documentation

◆ cxWindow

friend class cxWindow
friend

Member Data Documentation

◆ mCycleWin

bool cx::cxPanel::mCycleWin = true
protected

◆ mLastWindow

std::shared_ptr<cxWindow> cx::cxPanel::mLastWindow
protected

◆ mWindows

cxWindowPtrCollection cx::cxPanel::mWindows
protected

The documentation for this class was generated from the following files: