Rhino C++ API
8.13
|
#include <RhinoSdkUiExpandableTabCtrl.h>
Public Types | |
enum | expandable_tab_flags { etf_vertical_tabs = 0, etf_allow_drag_drop, etf_user_1, etf_user_2, etf_user_3, etf_user_4, etf_user_5, etf_user_6, etf_user_7, etf_user_8, etf_user_9, etf_user_10, etf_invalid } |
enum | hit_test { ht_caption = 0, ht_expand_contract_button, ht_client, ht_item_stretch, ht_invalid, force_32bit_hit_test = 0xFFFFFFFF } |
enum | notification_ids { etcn_expand = 0, etcn_hide, force_32bit_notification_ids = 0xFFFFFFFF } |
Public Member Functions | |
CRhinoUiExpandableTabCtrl () | |
virtual | ~CRhinoUiExpandableTabCtrl () |
virtual bool | AddPage (LPCTSTR lpszItem, int nImage, LPCTSTR lpszTemplateName, LPCTSTR szHtmlResID, CRuntimeClass *pRC, AFX_MODULE_STATE *pMS) |
virtual bool | AddPage (LPCTSTR lpszItem, int nImage, UINT nIDTemplate, UINT nHtmlResID, CRuntimeClass *pRC, AFX_MODULE_STATE *pMS) |
CSize | Borders () const |
bool | CreateExpandableTabCtrl (CWnd *pParent, UINT nID, LPRECT lpRect=NULL) |
bool | DeleteAllItems () |
bool | DeleteItem (int nItem) |
bool | ExpandItem (int nItem, bool bExpand=true) |
const CRhinoUiExpandableTabCtrlItem * | GetActiveItem () const |
int | GetActiveItemIndex () const |
const CRhinoUiExpandableTabCtrlItem * | GetItem (const CDialog *pPage) const |
const CRhinoUiExpandableTabCtrlItem * | GetItem (int nItem) const |
int | GetItemCount () const |
void | GetScrolledTabClientRect (LPRECT lpR) const |
const SCROLLINFO & | GetTabCtrlScrollInfo (bool bVert) const |
int | GetTabGap () const |
bool | HideTab (int iIndex, bool bHide=true) |
hit_test | HitTest (CPoint pt, int *pItemIndex=NULL) const |
bool | IndexIsValid (int iIndex) const |
virtual bool | InsertItem (int nItem, LPCTSTR lpszItem, int nImage, LPCTSTR lpszTemplateName, LPCTSTR szHtmlResID, CRuntimeClass *pRC, AFX_MODULE_STATE *pMS) |
virtual bool | InsertItem (int nItem, LPCTSTR lpszItem, int nImage, UINT nIDTemplate, UINT nHtmlResID, CRuntimeClass *pRC, AFX_MODULE_STATE *pMS) |
bool | IsExpandableTabFlagFlagSet (expandable_tab_flags flag) const |
bool | IsTabHidden (int iIndex) const |
int | ItemIndex (const CDialog *pPage) const |
int | ItemIndex (CPoint pt, bool bCheckPageRect=false) const |
afx_msg int | OnCreate (LPCREATESTRUCT lpCreateStruct) |
afx_msg BOOL32 | OnEraseBkgnd (CDC *pDC) |
afx_msg void | OnHScroll (UINT nSBCode, UINT nPos, CScrollBar *pScrollBar) |
virtual bool | OnItemDroppedOnOtherWindow (int drag_item_index, CPoint point) |
afx_msg void | OnLButtonDown (UINT nFlags, CPoint point) |
afx_msg void | OnLButtonUp (UINT nFlags, CPoint point) |
afx_msg void | OnMouseMove (UINT nFlags, CPoint point) |
afx_msg BOOL32 | OnMouseWheel (UINT nFlags, short zDelta, CPoint pt) |
afx_msg void | OnPaint () |
afx_msg void | OnSize (UINT nType, int cx, int cy) |
afx_msg void | OnSysColorChange () |
afx_msg void | OnVScroll (UINT nSBCode, UINT nPos, CScrollBar *pScrollBar) |
bool | ReplaceDlgItem (CDialog *pParent, UINT nID) |
void | ScrollTabClientPoint (CPoint &pt) const |
void | ScrollTabClientRect (CRect &r) const |
bool | SetActiveItem (int nItem) |
bool | SetBorders (int cx, int cy) |
bool | SetExpandableTabFlag (expandable_tab_flags flag, bool b) |
int | SetTabGap (int nGap) |
CRhinoUiThemeDraw * | ThemeDraw () const |
Static Public Attributes | |
static const UINT | m_custom_win_msg_id |
Protected Member Functions | |
CSize | CalculateButtonRects () |
virtual BOOL32 | PreCreateWindow (CREATESTRUCT &cs) |
void | RecalcLayout (bool bRepaint=true) |
void | SendParentNotification (int msg, int hiword, LPARAM lParam) |
bool | TearOffAndDockBar (int lmouse_down_on, CPoint point, CPoint screen_point, CWnd *mouse_over_window) |
Description: Style and mode flags associated with tab control.
See Also: CRhinoUiExpandableTabCtrl::IsExpandableTabFlagFlagSet() CRhinoUiExpandableTabCtrl::SetExpandableTabFlag()
Description: Valid places a point may land on a tab control or item
See Also: CRhinoUiExpandableTabCtrl::HitTest()
Description: Custom event notification messages sent to parent use the following format: message = CRhinoUiExpandableTabCtrl::m_custom_win_msg_id (static UINT holding ID of registered Windows message) WPARAM = LOWORD is notification ID, HIWORD is message dependent LPARAM = Message dependent
To use these notification codes do add the message map macro to the parent of this control: ON_REGISTERED_MESSAGE( CRhinoUiExpandableTabCtrl::m_custom_win_msg_id, OnRegisteredMessage) Add this to the decloration of the the parent window class: afx_msg LRESULT OnRegisteredMessage( WPARAM wParam, LPARAM lParam); Add this method to the class implementation LRESULT CMyDialog::OnRegisteredMessage( WPARAM wParam, LPARAM lParam) { int tab_notification_id = LOWORD( wParam); int hi_word = HIWORD( wParam); CDialog* pPage = NULL; switch( tab_notification_id) { case CRhinoUiExpandableTabCtrl::etcn_expand: pPage = (CDialog*)lParam; ///< expanded == hi_word return true; case CRhinoUiExpandableTabCtrl::etcn_hide: pPage = (CDialog*)lParam; ///< hidden = hi_word return true; } return 0L; }
Enumerator | |
---|---|
etcn_expand | message = CRhinoUiExpandableTabCtrl::m_custom_win_msg_id WPARAM LOWORD = etcn_expand HIWROD = Bool, if true then tab has just been expanded otherwise it has just been contracted. LPARAM = Pointer to CRhinoUiExpandableTabCtrlItem item being expanded or contracted. |
etcn_hide | message = CRhinoUiExpandableTabCtrl::m_custom_win_msg_id WPARAM LOWORD = etcn_hide HIWROD = Bool, if true then tab has just been hidden otherwise it has just become visible. LPARAM = Pointer to CRhinoUiExpandableTabCtrlItem item being hidden or shown. |
force_32bit_notification_ids | for internal use only, this allows adding additional values without breaking the SDK in the future |
CRhinoUiExpandableTabCtrl::CRhinoUiExpandableTabCtrl | ( | ) |
Description: Constructor
|
virtual |
Description: Destructor
|
virtual |
Description: Add new page to bottom of tab stack.
Parameters: lpszItem [in] Tab caption nImage [in] Index of image to display to left of caption lpszTemplateName [in] The null-terminated string that is the name of a dialog-box template resource. szHtmlResID [in] The null-terminated string that is the name of an HTML resource. nIDTemplate [in] Contains the ID number of a dialog-box template resource. nHtmlResID [in] Contains the ID number of an HTML resource. pRC [in] Class to create and add to control. Use RUNTIME_CLASS( CMyClass) macro to format this parameter. Class decloration must include DECLARE_DYNCREATE(CMyClass) macro. Class implementation must include IMPLEMENT_DYNCREATE(CMyClass, CRhinoUiDialog) macro. pMS [in] This must be your DLL application module state.
Returns: Returns true if successful; otherwise false
See Also: CRhinoUiExpandableTabCtrl::InsertItem() AfxGetStaticModuleState()
|
virtual |
CSize CRhinoUiExpandableTabCtrl::Borders | ( | ) | const |
Description: Get borders surrounding the pages.
Returns: Returns CSize where CSize::cx is the left and right borders and CSize::cy is the top and bottom.
See Also: CRhinoUiExpandableTabCtrl::SetBorders
|
protected |
Description: Calculate tab caption rectangles used for display and hit testing
Returns: Returns size required necessary to display all tab items.
bool CRhinoUiExpandableTabCtrl::CreateExpandableTabCtrl | ( | CWnd * | pParent, |
UINT | nID, | ||
LPRECT | lpRect = NULL |
||
) |
Description: Create tab control window.
Parameters: pParent [in] Parent window for this tab control. nID [in] The ID of the child window.
Returns: Returns true if successful; otherwise false
bool CRhinoUiExpandableTabCtrl::DeleteAllItems | ( | ) |
Description: Delete and destroy all tab pages in control.
Returns: Returns true if successful; otherwise false
See Also: CRhinoUiExpandableTabCtrl::DeleteItem()
bool CRhinoUiExpandableTabCtrl::DeleteItem | ( | int | nItem | ) |
Description: Remove tab and destroy tab page dialog.
Parameters: iIndex [in] Index of page to delete.
Returns: Returns true if iIndex is valid and deleted, false if not.
bool CRhinoUiExpandableTabCtrl::ExpandItem | ( | int | nItem, |
bool | bExpand = true |
||
) |
Description: Expand or contract tab item page.
Parameters: nItem [in] Zero based index of page to expand or contract bExpand [in] If true then page is expanded; otherwise page is contracted
Returns: Returns true on success; otherwise false
const CRhinoUiExpandableTabCtrlItem* CRhinoUiExpandableTabCtrl::GetActiveItem | ( | ) | const |
Description: Get pointer to item that currently has focus.
Returns: Returns pointer to item that currently has focus or NULL if none found.
See Also: CRhinoUiExpandableTabCtrl::GetActiveItemIndex() CRhinoUiExpandableTabCtrl::SetActiveItem()
int CRhinoUiExpandableTabCtrl::GetActiveItemIndex | ( | ) | const |
Description: Get index of page that currently has focus.
Returns: Returns index of page that currently has focus
See Also: CRhinoUiExpandableTabCtrl::GetActiveItem() CRhinoUiExpandableTabCtrl::SetActiveItem()
const CRhinoUiExpandableTabCtrlItem* CRhinoUiExpandableTabCtrl::GetItem | ( | const CDialog * | pPage | ) | const |
Description: Get the tab control item associated with a particular page.
Parameters: pPage [in] Page to search for.
Returns: Return valid pointer if the dialog page is found or NULL if not.
const CRhinoUiExpandableTabCtrlItem* CRhinoUiExpandableTabCtrl::GetItem | ( | int | nItem | ) | const |
Description: Get the tab control item associated with a particular index.
Parameters: nItem [in] Index of item to get.
Returns: Return valid pointer if nItem is valid or NULL if not.
int CRhinoUiExpandableTabCtrl::GetItemCount | ( | ) | const |
Description: Number of tabs currently added to this control. Includes hidden tabs.
Returns: Returns number of items in tab control including hidden items.
void CRhinoUiExpandableTabCtrl::GetScrolledTabClientRect | ( | LPRECT | lpR | ) | const |
Description: Get client rect positioned relative to current scroll bar position.
Parameters: lpR [out] Pointer to receive rectangle
const SCROLLINFO& CRhinoUiExpandableTabCtrl::GetTabCtrlScrollInfo | ( | bool | bVert | ) | const |
Description: Get horizontal or vertical SCROLLINFO used to control scorll bars.
Parameters: bVert [in] If true then vertical scroll bar info is returned otherwise horizontal scroll bar info is returned.
Returns: const Reference to SCROLLINFO used to control scroll bar.
int CRhinoUiExpandableTabCtrl::GetTabGap | ( | ) | const |
Description: The tab gap is the space between the bottom of the tab caption and the next tab when a tab is contracted. If the tab is expanded it is the space between the bottom of the tab page and the next tab.
If the tab is vertically aligned the space is not at the bottom but on the right side of the tab.
Returns: Returns gap in client window units.
See Also: CRhinoUiExpandableTabCtrl::SetTabGap()
bool CRhinoUiExpandableTabCtrl::HideTab | ( | int | iIndex, |
bool | bHide = true |
||
) |
Description: Remove tab from display but not from internal tab list. This allows hiding and displaying of tabs in there original position and state.
Parameters: iIndex [in] Index of tab to hide bHide [in] If true tab is hidden; otherwise tab is displayed
Returns: Returns true if successful; otherwise false
See Also: CRhinoUiExpandableTabCtrl::IsTabHidden()
hit_test CRhinoUiExpandableTabCtrl::HitTest | ( | CPoint | pt, |
int * | pItemIndex = NULL |
||
) | const |
Description: Check to see if a tab control client point is over any part of a tab control item.
Parameters: pt[in] Point in client window coordinates to test pItemIndex [out] If non NULL it receives index of item the point is over if the point is over an item.
Returns: Returns hit_test value indicating what the point is over.
See Also: CRhinoUiExpandableTabCtrl::hit_test
bool CRhinoUiExpandableTabCtrl::IndexIsValid | ( | int | iIndex | ) | const |
Description: Check to see if index is greater than or equal to zero and less than item count. This validates a zero based index into tab control.
Parameters: iIndex [in] Item index to validate
Returns: Returns true if iIndex is valid; otherwise false
|
virtual |
Description: Insert a new page or add new page to bottom of tab stack.
Parameters: nItem [in] Position to insert item. If nItem is less than zero or greater than or equal to the number of items in the control, the item is appened to the bottom of the stack. lpszItem [in] Tab caption nImage [in] Index of image to display to left of caption lpszTemplateName [in] The null-terminated string that is the name of a dialog-box template resource. szHtmlResID [in] The null-terminated string that is the name of an HTML resource. nIDTemplate [in] Contains the ID number of a dialog-box template resource. nHtmlResID [in] Contains the ID number of an HTML resource. pRC [in] Class to create and add to control. Use RUNTIME_CLASS( CMyClass) macro to format this parameter. Class decloration must include DECLARE_DYNCREATE(CMyClass) macro. Class implementation must include IMPLEMENT_DYNCREATE(CMyClass, CRhinoUiDialog) macro. pMS [in] This must be your DLL application module state.
Returns: Returns true if successful; otherwise false
See Also: CRhinoUiExpandableTabCtrl::AddItem() AfxGetStaticModuleState()
|
virtual |
bool CRhinoUiExpandableTabCtrl::IsExpandableTabFlagFlagSet | ( | expandable_tab_flags | flag | ) | const |
Description: Check to see if mode flag is set.
Parameters: flag [in] Flag value to check.
Returns: Returns true if flag is set, false if it is not.
bool CRhinoUiExpandableTabCtrl::IsTabHidden | ( | int | iIndex | ) | const |
Description: Check to see if tab is hidden
Parameters: iIndex [in] Index of tab to check
Returns: Returns true if tab is hidden; otherwise false
See Also: CRhinoUiExpandableTabCtrl::HideTab()
int CRhinoUiExpandableTabCtrl::ItemIndex | ( | const CDialog * | pPage | ) | const |
Description: Determine tab index based on dialog page pointer.
Parameters: pPage [in] Find index of tab associated with this page
Returns: Returns zero based index of tab page if found or -1 if not found.
int CRhinoUiExpandableTabCtrl::ItemIndex | ( | CPoint | pt, |
bool | bCheckPageRect = false |
||
) | const |
Description: Determine tab index based on a client window point.
Parameters: pt [in] Point in client window coordinates. bCheckPageRect [in] Check to see if point is over page as well as tab caption.
Returns: Returns zero based index of tab page if found or -1 if not found.
afx_msg int CRhinoUiExpandableTabCtrl::OnCreate | ( | LPCREATESTRUCT | lpCreateStruct | ) |
afx_msg BOOL32 CRhinoUiExpandableTabCtrl::OnEraseBkgnd | ( | CDC * | pDC | ) |
afx_msg void CRhinoUiExpandableTabCtrl::OnHScroll | ( | UINT | nSBCode, |
UINT | nPos, | ||
CScrollBar * | pScrollBar | ||
) |
|
virtual |
Description: Insert a new page or add new page to bottom of tab stack.
Parameters: nItem [in] Position to insert item. If nItem is less than zero or greater than or equal to the number of items in the control, the item is appened to the bottom of the stack. lpszItem [in] Tab caption nImage [in] Index of image to display to left of caption lpszTemplateName [in] The null-terminated string that is the name of a dialog-box template resource. szHtmlResID [in] The null-terminated string that is the name of an HTML resource. nIDTemplate [in] Contains the ID number of a dialog-box template resource. nHtmlResID [in] Contains the ID number of an HTML resource. pRC [in] Class to create and add to control. Use RUNTIME_CLASS( CMyClass) macro to format this parameter. Class decloration must include DECLARE_DYNCREATE(CMyClass) macro. Class implementation must include IMPLEMENT_DYNCREATE(CMyClass, CRhinoUiDialog) macro. pMS [in] This must be your DLL application module state.
Returns: Returns true if successful; otherwise false
See Also: CRhinoUiExpandableTabCtrl::AddItem() AfxGetStaticModuleState()
afx_msg void CRhinoUiExpandableTabCtrl::OnLButtonDown | ( | UINT | nFlags, |
CPoint | point | ||
) |
afx_msg void CRhinoUiExpandableTabCtrl::OnLButtonUp | ( | UINT | nFlags, |
CPoint | point | ||
) |
afx_msg void CRhinoUiExpandableTabCtrl::OnMouseMove | ( | UINT | nFlags, |
CPoint | point | ||
) |
afx_msg BOOL32 CRhinoUiExpandableTabCtrl::OnMouseWheel | ( | UINT | nFlags, |
short | zDelta, | ||
CPoint | pt | ||
) |
afx_msg void CRhinoUiExpandableTabCtrl::OnPaint | ( | ) |
afx_msg void CRhinoUiExpandableTabCtrl::OnSize | ( | UINT | nType, |
int | cx, | ||
int | cy | ||
) |
afx_msg void CRhinoUiExpandableTabCtrl::OnSysColorChange | ( | ) |
afx_msg void CRhinoUiExpandableTabCtrl::OnVScroll | ( | UINT | nSBCode, |
UINT | nPos, | ||
CScrollBar * | pScrollBar | ||
) |
|
protectedvirtual |
|
protected |
Description: This is called when tabs are added, removed, expanded, hidden or shown. This method calls CalculateButtonRects and decides if scroll bars need to be displayed.
Parameters: bRepaint [in] If true then the client area of the tab control is invalidated.
bool CRhinoUiExpandableTabCtrl::ReplaceDlgItem | ( | CDialog * | pParent, |
UINT | nID | ||
) |
Description: Replace a dialog item with this control
Parameters: pParent [in] Dialog to embed tab control inside of. nID [in] The ID of the dialog control to replace. The new tab control will be created using this ID.
Returns: Returns true if successful; otherwise false
See Also: CRhinoUiExpandableTabCtrl::CreateExpandableTabCtrl()
void CRhinoUiExpandableTabCtrl::ScrollTabClientPoint | ( | CPoint & | pt | ) | const |
Description: Adjust client window point to reflect current scroll bar position. Does nothing if scroll bar is not currently visible.
Parameters: pt [in/out] Point to adjust.
void CRhinoUiExpandableTabCtrl::ScrollTabClientRect | ( | CRect & | r | ) | const |
Description: Adjust rectangle, in client window coordinates, to reflect current scroll bar position. Does nothing if scroll bar is not currently visible.
Parameters: r [in/out] Rectangle to adjust.
|
protected |
Description: Send event notification to parent window. See CRhinoUiExpandableTabCtrl::notification_ids for valid event notification codes.
Parameters: msg [in] CRhinoUiExpandableTabCtrl::notification_ids hiword [in] Hi word of WPARAM sent to parent, typically a state value lParam [in] Sent as LPARAM of custom notification message, typically a pointer to the item sending the notification. See Also: CRhinoUiExpandableTabCtrl::notification_ids
bool CRhinoUiExpandableTabCtrl::SetActiveItem | ( | int | nItem | ) |
Description: Make sure page is visible and expanded and set focus to page.
Parameters: nItem [in] Index of page to activate.
Returns: Returns true if page found and successfully expanded or false if not
See Also: CRhinoUiExpandableTabCtrl::GetActiveItem() CRhinoUiExpandableTabCtrl::GetActiveItemIndex()
bool CRhinoUiExpandableTabCtrl::SetBorders | ( | int | cx, |
int | cy | ||
) |
Description: Get borders surrounding the pages.
Parameters: cx [in] border to be applied to the left and right sides cy [in] border to be applied to the top and bottom
Returns: Returns true if cx and cy are greater to or equal to 0
See Also: CRhinoUiExpandableTabCtrl::Borders
bool CRhinoUiExpandableTabCtrl::SetExpandableTabFlag | ( | expandable_tab_flags | flag, |
bool | b | ||
) |
Description: Set mode flag
Parameters: flag [in] Flag value to set. b [in] New value for flag
Returns: Previous value for flag
See Also: CRhinoUiExpandableTabCtrl::ExpandableTabFlag()
int CRhinoUiExpandableTabCtrl::SetTabGap | ( | int | nGap | ) |
Description: The tab gap is the space between the bottom of the tab caption and the next tab when a tab is contracted. If the tab is expanded it is the space between the bottom of the tab page and the next tab.
If the tab is vertically aligned the space is not at the bottom but on the right side of the tab.
Parameters: nGap [in] The new gap in client window units.
Returns: Returns previous gap
See Also: CRhinoUiExpandableTabCtrl::GetTabGap()
|
protected |
CRhinoUiThemeDraw* CRhinoUiExpandableTabCtrl::ThemeDraw | ( | ) | const |
Description: Get CRhinoUiThemeDraw object pointer if theme drawing is supported for this control.
Returns: Returns valid pointer to a initialized CRhinoUiThemeDraw object if theme drawing is supported for this object; otherwise return NULL.
See Also: CRhinoUiThemeDraw
|
static |
Description: See description for CRhinoUiExpandableTabCtrl::notification_ids