Professional UI Solutions
Site Map   /  Register
 
 

Forum

Please Log In to post a new message or reply to an existing one. If you are not registered, please register.

NOTE: Some forums may be read-only if you are not currently subscribed to our technical support services.

Forums » Prof-UIS Tech Support » Dynmaic Ribbon Bar issue Collapse All
Subject Author Date
Dominik Braendlin Sep 24, 2010 - 6:01 AM

Dear Tech Support,

Depending on the context I need to add or remove groups in the ribbon bar. I have tried to use the ModifyFlag(__ECTN_TBB_HIDDEN) method on the group node but unless I switch to a different ribbon page and back the group does not disappear. What am I doing wrong? See source code below.


 if (m_pRibbonNode != NULL)
 {
    CExtCustomizeCmdTreeNode* pNodeScan = m_pRibbonNode->SearchNodeElement(ID_RIBBON_PAGE_HOME_SCAN, -1, false, true);
    CExtCustomizeCmdTreeNode* pNodeSpec = m_pRibbonNode->SearchNodeElement(ID_RIBBON_PAGE_HOME_SPEC, -1, false, true);
    CExtCustomizeCmdTreeNode* pNodeLitho = m_pRibbonNode->SearchNodeElement(ID_RIBBON_PAGE_HOME_LITHO, -1, false, true);
 
    if (pNodeScan != NULL)
    {
      if (nID != ID_RIBBON_PAGE_HOME_SCAN) {
        pNodeScan->ModifyFlags(__ECTN_TBB_HIDDEN);
      }
      else {
        pNodeScan->ModifyFlags(0, __ECTN_TBB_HIDDEN);
      }
    }
 
    if (pNodeSpec != NULL)
    {
      if (nID != ID_RIBBON_PAGE_HOME_SPEC) {
        pNodeSpec->ModifyFlags(__ECTN_TBB_HIDDEN);
      }
      else {
        pNodeSpec->ModifyFlags(0, __ECTN_TBB_HIDDEN);
      }
    }
 
    if (pNodeLitho != NULL)
    {
      if (nID != ID_RIBBON_PAGE_HOME_LITHO) {
        pNodeLitho->ModifyFlags(__ECTN_TBB_HIDDEN);
      }
      else {
        pNodeLitho->ModifyFlags(0, __ECTN_TBB_HIDDEN);
      }
    }
 
    m_wndRibbonBar.UpdateAllCommandItems();
    m_wndRibbonBar.Ribbon_UpdateLayout();
    m_wndRibbonBar.Invalidate();
 }

 

Unfortunately there is very little info in your examples concerning dynamic ribbon. Do you have an example that is not included in the lib concerning dynamic ribbon?

Which approach would you suggest?

1.       To add or remove groups

2.       To hide or show groups

Thanks

Adrian

Technical Support Sep 24, 2010 - 10:23 AM

You should recreate a tree of command tree nodes (m_pRibbonNode), assign it to the ribbon bar and refresh ribbon layout:

      m_wndRibbonBar.SetButtons( NULL );
      m_wndRibbonBar.SetButtons( m_pRibbonNode );
      m_wndRibbonBar.Ribbon_UpdateLayout();