本文整理汇总了C++中BRoster::GetRecentDocuments方法的典型用法代码示例。如果您正苦于以下问题:C++ BRoster::GetRecentDocuments方法的具体用法?C++ BRoster::GetRecentDocuments怎么用?C++ BRoster::GetRecentDocuments使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类BRoster
的用法示例。
在下文中一共展示了BRoster::GetRecentDocuments方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: model
bool
RecentsMenu::AddRecents(int32 count)
{
if (fItemIndex == 0) {
fRecentList.MakeEmpty();
BRoster roster;
switch(fWhich) {
case 0:
roster.GetRecentDocuments(&fRecentList, count);
break;
case 1:
roster.GetRecentApps(&fRecentList, count);
break;
case 2:
roster.GetRecentFolders(&fRecentList, count);
break;
default:
return false;
break;
}
}
for (;;) {
entry_ref ref;
if (fRecentList.FindRef("refs", fItemIndex++, &ref) != B_OK)
break;
if (ref.name != NULL && strlen(ref.name) > 0) {
Model model(&ref, true);
ModelMenuItem* item = BNavMenu::NewModelItem(&model,
new BMessage(fMessage.what),
Target(), false, NULL, TypesList());
if (item != NULL) {
AddItem(item);
// return true so that we know to reenter this list
return true;
}
return true;
}
}
//
// return false if we are done with this list
//
return false;
}
示例2: model
bool
TRecentsMenu::AddRecents(int32 count)
{
if (fItemIndex == 0) {
fRecentList.MakeEmpty();
BRoster roster;
switch (fWhich) {
case kRecentDocuments:
roster.GetRecentDocuments(&fRecentList, count);
break;
case kRecentApplications:
roster.GetRecentApps(&fRecentList, count);
break;
case kRecentAppDocuments:
roster.GetRecentDocuments(&fRecentList, count, NULL,
fSignature);
break;
case kRecentFolders:
roster.GetRecentFolders(&fRecentList, count);
break;
default:
return false;
}
}
for (;;) {
entry_ref ref;
if (fRecentList.FindRef("refs", fItemIndex++, &ref) != B_OK)
break;
if (ref.name && strlen(ref.name) > 0) {
Model model(&ref, true);
if (fWhich != kRecentApplications) {
BMessage* message = new BMessage(B_REFS_RECEIVED);
if (fWhich == kRecentAppDocuments) {
// add application as handler
message->AddRef("handler", fAppRef);
}
ModelMenuItem* item = BNavMenu::NewModelItem(&model,
message, Target(), false, NULL, TypesList());
if (item)
AddItem(item);
} else {
// The application items expand to a list of recent documents
// for that application - so they must be handled extra
BFile file(&ref, B_READ_ONLY);
char signature[B_MIME_TYPE_LENGTH];
BAppFileInfo appInfo(&file);
if (appInfo.InitCheck() != B_OK
|| appInfo.GetSignature(signature) != B_OK)
continue;
ModelMenuItem* item = NULL;
BMessage doc;
be_roster->GetRecentDocuments(&doc, 1, NULL, signature);
// ToDo: check if the documents do exist at all to
// avoid the creation of the submenu.
if (doc.CountNames(B_REF_TYPE) > 0) {
// create recents menu that will contain the recent docs of
// this app
TRecentsMenu* docs = new TRecentsMenu(model.Name(),
fBarView, kRecentAppDocuments, signature, &ref);
docs->SetTypesList(TypesList());
docs->SetTarget(Target());
item = new ModelMenuItem(&model, docs);
} else
item = new ModelMenuItem(&model, model.Name(), NULL);
if (item) {
// add refs-message so that the recent app can be launched
BMessage* msg = new BMessage(B_REFS_RECEIVED);
msg->AddRef("refs", &ref);
item->SetMessage(msg);
item->SetTarget(Target());
AddItem(item);
}
}
// return true so that we know to reenter this list
return true;
}
}
// return false if we are done with this list
return false;
}