Announcements
Due to scheduled maintenance, the Autodesk Community will be inaccessible from 10:00PM PDT on Oct 16th for approximately 1 hour. We appreciate your patience during this time.
.NET
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Creating a Tool Palette Group using .NET API C#

0 REPLIES 0
Reply
Message 1 of 1
artillis_prado
140 Views, 0 Replies

Creating a Tool Palette Group using .NET API C#

Hello everyone,
I would like to know if there is a way to manipulate the tool palette by creating my group and adding some palettes I created within the Tool Palette. I know it can be done manually, but I would like to know how to do it with .NET.
I've found a lot of material for ObjectARX, but I would like to know if there is anything in C# .NET.

 

artillis_prado_0-1720029851726.png

 

void CrearGruposPaletas()
{
    TCHAR datosGrupos[1000];
   //TCHAR * datosGrupos=L"Grupo3|Grupo2";
	
   CString grupoNuevo;
   CString grupoPadre;
   CString pElem[50];
   int res;
   bool ok;
   CAcTcUiToolPaletteSet *pTPSet = AcTcUiGetToolPaletteWindow();
   CAcTcUiToolPaletteGroup *pPaletteGroups = pTPSet->GetToolPaletteGroup(true); 
   CAcTcUiToolPaletteGroup *pPaletteGroupNuevo;
   CAcTcUiToolPaletteGroup *pPaletteGroupPadre;

   res= acedGetString (1, _T("\nDatos de grupo: "), datosGrupos);
   res=SplitString(datosGrupos,_T("|"),pElem);

   //Formato: NombreGrupo|GrupoPadre
   if (res == 2)
   {
		grupoNuevo= pElem[0];
		grupoPadre=pElem[1];

               pPaletteGroupNuevo = pPaletteGroups->FindGroup(grupoNuevo,true);    
               if (pPaletteGroupNuevo == NULL)    
               {
                   // No existe el grupo, se creara uno nuevo

	           //Clonar el grupo general y borrarle los elementos para que sea el nuevo grupo a agregar
	           ok = pPaletteGroups->Clone(pPaletteGroupNuevo);
	           if (ok)
	           {
			ok = pPaletteGroupNuevo->DeleteAllItems();
		    }

		    if (ok)
		    {
		       //Asignarle el nombre al nuevo grupo
		       ok=pPaletteGroupNuevo->SetName(grupoNuevo);
		       //Buscar el grupo padre y asignarle el nuevo
		       pPaletteGroupPadre=pPaletteGroups->FindGroup(grupoPadre,true);
		       if (pPaletteGroupPadre != NULL)
		       {
			  res=pPaletteGroupPadre->AddItem(pPaletteGroupNuevo);
		       }
		    } 
               }
   }
  else if(res==1)
  {
    //Si no aparece GrupoPadre es el raiz
	grupoNuevo = pElem[0];

    pPaletteGroupNuevo = pPaletteGroups->FindGroup(grupoNuevo,true);    
    if (pPaletteGroupNuevo == NULL)    
    {
		// No existe el grupo, se creara uno nuevo

		//Clonar el grupo general y borrarle los elementos para que sea el nuevo grupo a agregar
		ok = pPaletteGroups->Clone(pPaletteGroupNuevo);
		if (ok)
		{
			ok = pPaletteGroupNuevo->DeleteAllItems();
		}

		if (ok)
		{
			  //Si no aparece GrupoPadre es el raiz
			  grupoNuevo= pElem[0];
			  ok=pPaletteGroupNuevo->SetName(grupoNuevo);
			  res=pPaletteGroups->AddItem(pPaletteGroupNuevo);
		}
    }
  }	
}

 

0 REPLIES 0

Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums  

AutoCAD Inside the Factory


Autodesk Design & Make Report