Message 1 of 1
How can I convert this code from ObjectAXR, which works with toolpalette groups, to .NET C#?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
This code creates a group in the Tool Palette or retrieves an existing one, and links it to the palette. My question is how to do it in .NET C#.
void MyUtilities::CreateToolPaletteGroup(System::String^ toolPaletteGroupName)
{
CAcTcUiToolPaletteSet *pTpset = AcTcUiGetToolPaletteWindow();
CAcTcUiToolPaletteGroup *pRootTpgroup = pTpset->GetToolPaletteGroup(FALSE);
CAcTcUiToolPaletteGroup *pMyToolPaletteGroup = NULL;
pMyToolPaletteGroup = pRootTpgroup->FindGroup(StringToCIF(toolPaletteGroupName), TRUE);
if(pMyToolPaletteGroup == NULL)
{ // Does not exist, lets create it
// Create a new Palette Group
CAcTcUiToolPaletteGroup * pMyToolPaletteGroup = NULL;
pRootTpgroup->Clone(pMyToolPaletteGroup);
pMyToolPaletteGroup->Reset();
pMyToolPaletteGroup->SetName(StringToCIF(toolPaletteGroupName));
// Any Palette can be found in the "All Palettes group"
CAcTcUiToolPaletteGroup *pAllPalettesGroup = pTpset->GetAllPalettesGroup();
CAcTcUiToolPalette *pMechanicalPalette = pAllPalettesGroup->FindPalette(ACRX_T("Mechanical"), NULL);
// Add it to the palette group
pMyToolPaletteGroup->AddItem(pMechanicalPalette);
// Create a new palette and add it to the palette group
CAcTcUiManager *pToolPaletteManager = AcTcUiGetManager();
CAcTcUiToolPalette *pMyToolPalette = pToolPaletteManager->CreatePalette(ACRX_T("MyPalette"));
pMyToolPaletteGroup->AddItem(pMyToolPalette);
pRootTpgroup->AddItem(pMyToolPaletteGroup);
}
// Set the newly create Palette group as active
pTpset->SetActivePaletteGroup(pMyToolPaletteGroup);
}
I found this code in ObjectAXR, but I work with .NET C#. Is there a way to achieve the same logic in .NET C#?
Code ObjectAXR
https://adndevblog.typepad.com/autocad/2013/06/working-with-toolpalette-groups-using-net.html