本文整理汇总了C++中TProfile::EGetRuntimeClass方法的典型用法代码示例。如果您正苦于以下问题:C++ TProfile::EGetRuntimeClass方法的具体用法?C++ TProfile::EGetRuntimeClass怎么用?C++ TProfile::EGetRuntimeClass使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TProfile
的用法示例。
在下文中一共展示了TProfile::EGetRuntimeClass方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Assert
IXmlExchange *
IApplication::S_PaAllocateApplication_YZ(POBJECT poProfileParent, const CXmlNode * pXmlNodeElement)
{
Assert(pXmlNodeElement != NULL);
TProfile * pProfileParent = (TProfile *)poProfileParent;
Assert(pProfileParent->EGetRuntimeClass() == RTI(TProfile));
// Find the type of application to allocate
PSZUC pszClass = pXmlNodeElement->PszuFindAttributeValue_NZ(c_szaApplicationClass_);
const SApplicationAllocator * pApplicationAllocator = c_rgzApplicationAllocators;
while (TRUE)
{
if (pApplicationAllocator->pszClass == NULL)
break;
Assert(pApplicationAllocator->pfnAllocator != NULL);
if (FCompareStrings(pApplicationAllocator->pszClass, pszClass))
return pApplicationAllocator->pfnAllocator(pProfileParent);
pApplicationAllocator++; // Search the next application
} // while
MessageLog_AppendTextFormatSev(eSeverityErrorWarning, "Unable to find application of class '$s'\n", pszClass);
return NULL;
}
示例2: oIterator
// Core routine to populate the Navigation Tree.
//
// IMPLEMENTATION NOTES
// At the moment the routine is written for a single configuration. This code will have to be revised to support multiple configurations.
void
NavigationTree_PopulateTreeItemsAccordingToSelectedProfile(TProfile * pProfileSelected, BOOL fCreateNewProfile)
{
Endorse(pProfileSelected == NULL); // Display all profiles
Assert(g_pwNavigationTree != NULL);
g_oConfiguration.m_pProfileSelected = pProfileSelected;
// Flush the existing content of the Navigation Tree
g_pwNavigationTree->NavigationTree_TreeItemUnselect();
WTreeWidget * pwTreeView = g_pwNavigationTree->m_pwTreeView;
QTreeWidgetItemIterator oIterator(pwTreeView);
while (TRUE)
{
CTreeItemW * pTreeWidgetItem = (CTreeItemW *)*oIterator++;
if (pTreeWidgetItem == NULL)
break;
ITreeItem * piTreeItem = pTreeWidgetItem->m_piTreeItem;
Assert(piTreeItem != NULL);
Assert(PGetRuntimeInterfaceOf_ITreeItem(piTreeItem) == piTreeItem); // Make sure the pointer is valid
Assert(piTreeItem->m_paTreeItemW_YZ != NULL);
// Remember the state of each Tree Item before switching profile, so next time the profile is re-selected, then the entire arborescence is restored.
if (piTreeItem->m_paTreeItemW_YZ->isExpanded())
piTreeItem->m_uFlagsTreeItem |= ITreeItem::FTI_kfTreeItem_IsExpanded;
else
piTreeItem->m_uFlagsTreeItem &= ~ITreeItem::FTI_kfTreeItem_IsExpanded;
//MessageLog_AppendTextFormatSev(eSeverityWarningToErrorLog, "0x$p: $s m_uFlagsTreeItem = 0x$x\n", piTreeItem, piTreeItem->TreeItem_PszGetNameDisplay(), piTreeItem->m_uFlagsTreeItem);
piTreeItem->m_paTreeItemW_YZ = NULL; // This would cause a memory leak in the absence of pwTreeView->clear()
} // while
pwTreeView->clear();
delete g_pTreeItemInbox;
g_pTreeItemInbox = NULL;
delete g_pTreeItemProfiles;
g_pTreeItemProfiles = NULL;
int cProfiles;
TProfile ** prgpProfiles = g_oConfiguration.m_arraypaProfiles.PrgpGetProfiles(OUT &cProfiles);
if (cProfiles == 1 && !fCreateNewProfile)
pProfileSelected = prgpProfiles[0]; // If there is only one profile, then pretend the user selected that profile. There is no need to show extra nodes which may confuse the user
if (pProfileSelected != NULL)
{
// Display a single profile. This is done by displaying the contacts first, and then the profile at the bottom
pProfileSelected->TreeItemProfile_DisplayContactsWithinNavigationTree();
if (pProfileSelected->m_arraypaAccountsXmpp.FIsEmpty())
pProfileSelected->TreeItemProfile_DisplayProfileInfoWithinNavigationTree();
pProfileSelected->TreeItemProfile_DisplayApplicationsWithinNavigationTree();
}
else
{
// Since we are displaying multiple profiles, we need to create two root items for the 'Inbox' and the 'Profiles'
g_pTreeItemInbox = new TTreeItemInbox;
g_pTreeItemProfiles = new TProfiles;
for (int iProfile = 0; iProfile < cProfiles; iProfile++)
{
TProfile * pProfile = prgpProfiles[iProfile];
Assert(pProfile->EGetRuntimeClass() == RTI(TProfile));
pProfile->TreeItemProfile_DisplayContactsWithinNavigationTree();
pProfile->TreeItemProfile_DisplayProfileInfoWithinNavigationTree();
pProfile->TreeItemProfile_DisplayApplicationsWithinNavigationTree();
}
}
NavigationTree_UpdateNameOfSelectedProfile();
if (fCreateNewProfile || cProfiles == 0)
{
// Set the focus to "Profiles" if creating a new profile, or if there is no profile
Assert(g_pTreeItemProfiles != NULL);
g_pTreeItemProfiles->TreeItemLayout_SetFocus();
}
else
pwTreeView->setCurrentItem(pwTreeView->topLevelItem(0)); // Select the first item
} // NavigationTree_PopulateTreeItemsAccordingToSelectedProfile()