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 » About customization of the quick access tool bar (Part5) Collapse All
Subject Author Date
tera tera Sep 30, 2009 - 12:07 AM

Hello.


A thing of the same ID is piled up, and it is displayed.

If same ID, the list wants to display only one.


Technical Support Oct 1, 2009 - 6:31 AM

Thank you very much for reporting us this issue. Please update the source code for the following two methods:

BOOL CExtRibbonBar::SetButtons(
      CExtCustomizeCmdTreeNode * pNode
      )
{
      ASSERT_VALID( this );
      m_bRibbonSimplifiedLayoutDelayedFlush = true;
      if( m_pPopupPageMenuGroup->GetSafeHwnd() != NULL )
            m_pPopupPageMenuGroup->DestroyWindow();
      if( m_pPopupPageMenuAutoHide->GetSafeHwnd() != NULL )
            m_pPopupPageMenuAutoHide->DestroyWindow();
      if( m_pExtNcFrameImpl == NULL )
            m_pExtNcFrameImpl =
                  CExtNcFrameImpl::NcFrameImpl_FindInstance(
                        m_hWnd,
                        this
                        );
      if( m_pExtNcFrameImpl != NULL )
            m_pExtNcFrameImpl->m_bNcFrameImpl_PivotPmSyncMode = true; // RibbonLayout_IsFrameIntegrationEnabled();
      _RibbonPageRslaResetStateData();
      m_arrGroupButtons.RemoveAll();
      m_arrTabPageButtons.RemoveAll();
      m_pFileTBB = NULL;
      MenuInfoRemove();
      CategoryRemoveAll();
      if( pNode == NULL )
      {
            CExtMenuControlBar::SetButtons();
            m_pRibbonNode = NULL;
            return TRUE;
      }
      if( m_pRibbonNode == pNode )
            return TRUE;
      CExtMenuControlBar::SetButtons();
      m_pRibbonNode = NULL;
      ASSERT_VALID( pNode );
      m_pRibbonNode = DYNAMIC_DOWNCAST( CExtRibbonNode, pNode );
      if( m_pRibbonNode == NULL )
            return FALSE;
      m_pRibbonNode->Ribbon_InitCommandProfile( m_hWnd, true );
      m_pRibbonNode->Ribbon_InitBar( this, NULL, false );
      MenuInfoAddEmpty( this, _T("Default"), true );
CExtRibbonNodeTabPageCollection * pColNode = Ribbon_GetTabPageRootNode();
      if( pColNode != NULL )
            OnRibbonBuildCommandCategories( pColNode );
int nCatIdx, nCatCnt = CategoryGetCount();
      for( nCatIdx = 0; nCatIdx < nCatCnt; nCatIdx ++ )
      {
            CExtCustomizeCmdTreeNode * pCatNode = CategoryGetTreeAt( nCatIdx );
            ASSERT_VALID( pCatNode );
            CExtSafeString str = pCatNode->GetTextUser();
            CategoryMakeCmdsUnique( LPCTSTR(str) );
      }
      CategoryAppendAllCommands();
      CategoryMakeAllCmdsUnique();
      OnUpdateAccelGlobalInfo( true );
      Ribbon_FileButtonInit();
      _RibbonPageRslaResetStateData();
      Ribbon_OnCalcMinMaxILE();
      if( m_pExtNcFrameImpl != NULL )
            m_pExtNcFrameImpl->NcFrameImpl_AdjustVistaDwmCompatibilityIssues();
      _RecalcPositionsImpl();
      return TRUE;
}

BOOL CExtRibbonPage::SetButtons(
      CExtCustomizeCmdTreeNode * pNode
      )
{
      ASSERT_VALID( this );
      m_bRibbonSimplifiedLayoutDelayedFlush = true;
      _RibbonPageRslaResetStateData();
      m_arrGroupButtons.RemoveAll();
      m_arrTabPageButtons.RemoveAll();
      MenuInfoRemove();
      CategoryRemoveAll();
      if( pNode == NULL )
      {
            CExtMenuControlBar::SetButtons();
            m_pRibbonNode = NULL;
            return TRUE;
      }
      if( m_pRibbonNode == pNode )
            return TRUE;
      CExtMenuControlBar::SetButtons();
      if( m_bHelperPopupMode && m_pRibbonNode != NULL )
            delete m_pRibbonNode;
      m_pRibbonNode = NULL;
      ASSERT_VALID( pNode );
      m_pRibbonNode = DYNAMIC_DOWNCAST( CExtRibbonNode, pNode );
      if( m_pRibbonNode == NULL )
            return FALSE;
      if( m_bHelperPopupMode )
            m_pWndTop = GetMainRibbonPage()->GetCustomizeTopWnd();
      m_pRibbonNode->Ribbon_InitCommandProfile( m_pWndTop->m_hWnd, true );
      if( m_bHelperAutoHideMode )
            m_pRibbonNode->CExtRibbonNode::Ribbon_InitBar(
                  this,
                  NULL,
                  false
                  );
      else
            m_pRibbonNode->Ribbon_InitBar( this, NULL, false );
      if( ! m_bHelperPopupMode )
      {
            MenuInfoAddEmpty( this, _T("Default"), true );
            OnRibbonBuildCommandCategories( m_pRibbonNode );
            int nCatIdx, nCatCnt = CategoryGetCount();
            for( nCatIdx = 0; nCatIdx < nCatCnt; nCatIdx ++ )
            {
                  CExtCustomizeCmdTreeNode * pCatNode = CategoryGetTreeAt( nCatIdx );
                  ASSERT_VALID( pCatNode );
                  CExtSafeString str = pCatNode->GetTextUser();
                  CategoryMakeCmdsUnique( LPCTSTR(str) );
            }
            CategoryAppendAllCommands();
            CategoryMakeAllCmdsUnique();
            OnUpdateAccelGlobalInfo( true );
      } // if( ! m_bHelperPopupMode )
      m_bRibbonSimplifiedLayoutDelayedFlush = true;
      _RibbonPageRslaResetStateData();
      Ribbon_OnCalcMinMaxILE();
      _RecalcPositionsImpl();
      return TRUE;
}