本文整理汇总了C++中Catalog::Retrieve方法的典型用法代码示例。如果您正苦于以下问题:C++ Catalog::Retrieve方法的具体用法?C++ Catalog::Retrieve怎么用?C++ Catalog::Retrieve使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Catalog
的用法示例。
在下文中一共展示了Catalog::Retrieve方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的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 ViewCompCmd::Execute () {
Editor* ed = GetEditor();
if (OnlyOneEditorOf(ed->GetComponent()) && !ReadyToClose(ed)) {
return;
}
Style* style;
boolean reset_caption = false;
if (chooser_ == nil) {
style = new Style(Session::instance()->style());
chooser_ = DialogKit::instance()->file_chooser(".", style);
Resource::ref(chooser_);
char buf[CHARBUFSIZE];
const char* domain = unidraw->GetCatalog()->GetAttribute("domain");
domain = (domain == nil) ? "component" : domain;
sprintf(buf, "Select a %s to open:", domain);
style->attribute("caption", "");
style->attribute("subcaption", buf);
} else {
style = chooser_->style();
}
while (chooser_->post_for(ed->GetWindow())) {
const String* s = chooser_->selected();
NullTerminatedString ns(*s);
const char* name = ns.string();
Catalog* catalog = unidraw->GetCatalog();
GraphicComp* comp;
if (catalog->Retrieve(name, (Component*&) comp)) {
ModifStatusVar* modif = (ModifStatusVar*) ed->GetState(
"ModifStatusVar"
);
Component* orig = ed->GetComponent();
ed->SetComponent(comp);
unidraw->Update();
StateVar* sv = ed->GetState("CompNameVar");
CompNameVar* cnv = (CompNameVar*) sv;
if (cnv != nil) cnv->SetComponent(comp);
if (modif != nil) modif->SetComponent(comp);
if (orig != nil && unidraw->FindAny(orig) == nil) {
Component* root = orig->GetRoot();
delete root;
}
break;
} else {
style->attribute("caption", "Open failed!");
reset_caption = true;
}
}
if (reset_caption) {
style->attribute("caption", "");
}
}
示例3: FrameEditor
DrawEditor::DrawEditor(const char* file, OverlayKit* kit)
: FrameEditor(false, kit)
{
if (file == nil) {
Init();
} else {
Catalog* catalog = unidraw->GetCatalog();
OverlayComp* comp;
if (catalog->Retrieve(file, (Component*&) comp)) {
Init(comp);
} else {
Init();
fprintf(stderr, "drawserv: couldn't open %s\n", file);
}
}
}
示例4: ComEditor
GraphEditor::GraphEditor(const char* file, OverlayKit* ok)
: ComEditor(false, ok)
{
if (file == nil) {
Init();
} else {
Catalog* catalog = unidraw->GetCatalog();
OverlayComp* comp;
if (catalog->Retrieve(file, (Component*&) comp)) {
Init(comp);
} else {
Init();
fprintf(stderr, "graphdraw: couldn't open %s\n", file);
}
}
}