本文整理汇总了C++中Catalog::Forget方法的典型用法代码示例。如果您正苦于以下问题:C++ Catalog::Forget方法的具体用法?C++ Catalog::Forget怎么用?C++ Catalog::Forget使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Catalog
的用法示例。
在下文中一共展示了Catalog::Forget方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Import
GraphicComp* ImportCmd::Import (const char* filename) {
GraphicComp* comp = nil;
const char* creator = ReadCreator(filename);
if (creator == nil || strcmp(creator, "idraw") == 0) {
Catalog* catalog = unidraw->GetCatalog();
if (catalog->Valid(filename, (Component*&) comp)) {
comp = (GraphicComp*) comp->Copy();
} else if (catalog->Retrieve(filename, (Component*&) comp)) {
catalog->Forget(comp);
}
} else {
if (strcmp(creator, "X11") == 0) {
comp = XBitmap_Image(filename);
} else if (strcmp(creator, "TIFF") == 0) {
comp = TIFF_Image(filename);
} else if (
strcmp(creator, "pgmtops") == 0 ||
strcmp(creator, "pnmtops") == 0
) {
comp = PGM_Image(filename);
} else if (strcmp(creator, "ppmtops") == 0) {
comp = PPM_Image(filename);
}
}
return comp;
}
示例2: Execute
void RevertCmd::Execute () {
Editor* ed = GetEditor();
Component* comp = ed->GetComponent();
Catalog* catalog = unidraw->GetCatalog();
const char* name = catalog->GetName(comp);
ModifStatusVar* mv = (ModifStatusVar*) ed->GetState("ModifStatusVar");
if (name != nil && (mv == nil || mv->GetModifStatus())) {
char buf[CHARBUFSIZE];
strcpy(buf, name);
ConfirmDialog dialog("Really revert to last version saved?");
ed->InsertDialog(&dialog);
char confirmation = dialog.Confirm();
ed->RemoveDialog(&dialog);
if (confirmation == 'y') {
Component* orig = comp;
catalog->Forget(orig);
if (unidraw->GetCatalog()->Retrieve(buf, comp)) {
ed->SetComponent(comp);
unidraw->CloseDependents(orig);
unidraw->Update();
CompNameVar* cv = (CompNameVar*) ed->GetState("CompNameVar");
if (cv != nil) cv->SetComponent(comp);
if (mv != nil) mv->SetComponent(comp);
Component* root = orig->GetRoot();
delete root;
} else {
ConfirmDialog dialog(
"Couldn't revert! (File nonexistent?)", "Save changes?"
);
ed->InsertDialog(&dialog);
char confirmation = dialog.Confirm();
ed->RemoveDialog(&dialog);
UpdateCompNameVars();
if (mv != nil) mv->Notify();
if (confirmation == 'y') {
SaveCompAsCmd saveCompAs(ed);
saveCompAs.Execute();
}
}
}
}
}