the makVrf::DtAutoHidePanel class the the manager that contains the tabs that show up on the right hand side of the gui and the dialogs they represent.
The makVrf::DtAutoHidePanel manages makVrf::DtAutoHidePanelItem classes that wrap a makVrf::DtAutoHideDock that contains a particular property dialog to display. When creating the initial auto hide panel, the default_guiConfiguration.gui file is used to see this panel
<pagecollection pagecollectionname="DtAutoHidePanel" title="Creation Panel" location="9" visible="True" index="-1" show="EntityCreationPalette" closable="True" floatable="True" movable="True">
<pageitem pageitemname="EntityCreationPalette"/>
<pageitem pageitemname="ORBATCreationPalette"/>
<pageitem pageitemname="TacticalGraphicCreationPalette"/>
<pageitem pageitemname="PropCreationPalette"/>
</pagecollection>
When editing or modifying an object in the simulation, the Object Modifier Dialog Manager is used in conjunction with this class to create a new dock tab and dock widget
DtVrfObjectModifierDialogCreator* thisEntitysDialogCreator = thisEntitysDialogCreationParameters->objectModifierDialogCreator();
if (thisEntitysDialogCreator)
{
QString title(QObject::tr("Create %1").arg(QString::fromUtf8(findEntityTypeName(thisEntityType).c_str())));
myObjectPropertiesDlg = thisEntitysDialogCreator->create(myDe, qtMainWindow, thisEntityType, title, signalCreate,
DtCreateAndEditObjectDialogInterface::DtCreationMode,
Context);
bool forceDialogToAppear = ((signalCreate ==
DtSignalCreationAndStop ) && thisEntitysDialogCreationParameters->forceDialogToAppearInPlans());
DtAutoHidePanel* thisAutoHidePanel = DtAutoHidePanel::instance(myDe);
if (thisAutoHidePanel)
{
thisAutoHidePanel->addItem(dynamic_cast<DtAutoHideDock*>(myObjectPropertiesDlg), forceDialogToAppear);
if (!forceDialogToAppear)
{
myObjectPropertiesDlg->hideDialog();
}
}
myObjectPropertiesDlg->setForce(force);
signal_dialogCreated(myObjectPropertiesDlg);
}
All dock widgets assigned to display are of the subclass makVrf::DtAutoHideDock. If you wish to add a new tab to the auto hide panel for functionality you wish to allow the user to select, you can add a an item to the makVrf::DtAutoHidePanel via the addItem call. This will add a new tab to the dock based on your design. Note that title and icon methods of the auto hide dock will be used to fill in the tab
QString DtEntityCreatePalette::title()
{
return tr("Simulation Objects");
}
QIcon DtEntityCreatePalette::icon()
{
std::string dataPath = myDe.dePathConfiguration().dataPath();
dataPath += "/Icons/ObjectCreate.svg";
return QIcon(QString::fromStdString(dataPath));
}
DtQIconConfigurations DtEntityCreatePalette::qIconConfigurations() const
{
DtQIconConfigurations result;
result.addConfiguration(DtQIconConfiguration("ObjectCreate.svg"));
return result;
}
const std::string& DtEntityCreatePalette::pageClassName() const
{
return thePageClassName();
}
const std::string& DtEntityCreatePalette::thePageClassName()
{
static std::string theClassName ="EntityCreationPalette";
return theClassName;
}
As with other page manipulation, if you wish to remove the palettes from the display, you can either remove them from the gui file or use a plugin to remove them from code (Dock Widget and Toolbar Configuration).