Тема: Инструменты каталога

Здравствуйте . (я наверно надоел с вопросами по ToolPalettes)
Такой вопрос как получить доступ к инструментам(Tool) каталога . Вроде пересмотрел все возможные методы.
Я пробовал реализовать с помощью класса CAcTcUiCatalogView(служит для отображения каталогов и их инструментов) напимер :
CAcTcUiCatalogView *pItem=new CAcTcUiCatalogView(catalog);
counttool=pItem->GetItemCount(); - пытался получить кол-во инструментов в заданом каталоге . Но не вышло :( .
Если у когото есть соображения по этому вопросу , прошу отписаться .

Re: Инструменты каталога

Попробуй:

static void ListPaletteTools(void)
{
  CAcTcUiManager *pTcMng =  AcTcUiGetManager();
  CAcTcUiToolPaletteSet* pTcPalSet = pTcMng->GetToolPaletteWindow();
  CAcTcUiToolPaletteGroup* pTcPalGrp = pTcPalSet->GetActivePaletteGroup();
  CString grpName = pTcPalGrp->GetName();
  acutPrintf(_T("\nGroup Name=%s"),LPCTSTR(grpName));
  int nGrp = pTcPalGrp->GetItemCount();
  for (int iGrp=0; iGrp < nGrp; iGrp++) {
    CAcTcUiToolPalette *pItem = NULL;
    pTcPalGrp->GetItem(iGrp,pItem);
    if (pItem) {
      CString PaletteName = pItem->GetName();
      acutPrintf(_T("\n\tPalette Name=%s"),LPCTSTR(PaletteName));
      CAcTcUiPaletteView* pView = pItem->GetView();
      if (pView) {
        int nView = pView->GetItemCount();
        for (int iView=0; iView < nView; iView++) {
          CAcTcUiCatalogViewItem *pViewItem = pView->GetItem(iView);
          if (pViewItem) {
            AcTcCatalogItem *pCit = pViewItem->GetCatalogItem();
            TCHAR Name[1025]; int nSym = pCit->GetName(Name,1024);
            if (nSym) acutPrintf(_T("\n\t\tTools Name=%s"),Name);
          }
        }
      }
    }
  }
}

Re: Инструменты каталога

Спасибо все работает , правда есть глюки , например с первого вызова функции не выводяться материалы некоторых стандартных палитр , но с этим я уж разберусь .
Еще раз спасибо.