本文整理汇总了C++中MaterialDoc::FindStage方法的典型用法代码示例。如果您正苦于以下问题:C++ MaterialDoc::FindStage方法的具体用法?C++ MaterialDoc::FindStage怎么用?C++ MaterialDoc::FindStage使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MaterialDoc
的用法示例。
在下文中一共展示了MaterialDoc::FindStage方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: PopupMenu
/**
* Dispalys the popup menu with the appropriate menu items enabled.
*/
void StageView::PopupMenu(CPoint* pt) {
//Determine the type of object clicked on
CListCtrl& list = GetListCtrl();
ClientToScreen (pt);
CMenu FloatingMenu;
VERIFY(FloatingMenu.LoadMenu(IDR_ME_STAGELIST_POPUP));
CMenu* pPopupMenu = FloatingMenu.GetSubMenu (0);
ASSERT(pPopupMenu != NULL);
POSITION pos = list.GetFirstSelectedItemPosition();
int nItem = -1;
if(pos)
nItem = list.GetNextSelectedItem(pos);
if(nItem <= 0) {
pPopupMenu->EnableMenuItem(ID_STAGEPOPUP_RENAMESTAGE, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
pPopupMenu->EnableMenuItem(ID_STAGEPOPUP_DELETESTAGE, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
pPopupMenu->EnableMenuItem(ID_STAGEPOPUP_CUT, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
pPopupMenu->EnableMenuItem(ID_STAGEPOPUP_COPY, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
} else {
MaterialDoc* material = materialDocManager->GetCurrentMaterialDoc();
if(material->GetAttributeInt(nItem-1, "stagetype") != MaterialDoc::STAGE_TYPE_NORMAL) {
pPopupMenu->EnableMenuItem(ID_STAGEPOPUP_RENAMESTAGE, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
}
}
MaterialDoc* material = materialDocManager->GetCurrentMaterialDoc();
if(material->FindStage(MaterialDoc::STAGE_TYPE_SPECIALMAP, "bumpmap") >= 0) {
pPopupMenu->EnableMenuItem(ID_STAGEPOPUP_ADDBUMPMAP, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
}
if(material->FindStage(MaterialDoc::STAGE_TYPE_SPECIALMAP, "diffusemap") >= 0) {
pPopupMenu->EnableMenuItem(ID_STAGEPOPUP_ADDDIFFUSEMAP, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
}
if(material->FindStage(MaterialDoc::STAGE_TYPE_SPECIALMAP, "specularmap") >= 0) {
pPopupMenu->EnableMenuItem(ID_STAGEPOPUP_ADDSPECULAR, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
}
if(materialDocManager->IsCopyStage()) {
pPopupMenu->EnableMenuItem(ID_STAGEPOPUP_PASTE, MF_BYCOMMAND | MF_ENABLED);
} else {
pPopupMenu->EnableMenuItem(ID_STAGEPOPUP_PASTE, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
}
pPopupMenu->TrackPopupMenu (TPM_LEFTALIGN | TPM_RIGHTBUTTON, pt->x, pt->y, &list);
}
示例2: OnPaste
/**
* Performs a paste operation when the user selects the menu option.
*/
void StageView::OnPaste() {
if( materialDocManager->IsCopyStage() ) {
MaterialDoc *material = materialDocManager->GetCurrentMaterialDoc();
int type;
idStr name;
materialDocManager->GetCopyStageInfo( type, name );
int existingIndex = material->FindStage( type, name );
if( type != MaterialDoc::STAGE_TYPE_SPECIALMAP || existingIndex == -1 ) {
materialDocManager->PasteStage( material );
} else {
if( MessageBox( va( "Do you want to replace '%s' stage?", name.c_str() ), "Replace?", MB_ICONQUESTION | MB_YESNO ) == IDYES ) {
material->RemoveStage( existingIndex );
materialDocManager->PasteStage( material );
}
}
}
}