BlogPositiveMainView::BlogPositiveMainView(const char* name, BlogPositiveMainDelegate* del) : BView(name, 0) { fDelegate = del; fListView = new BlogPositiveBlogListView(); fListView->SetInvocationMessage(new BMessage(kBlogSelected)); fMenuBar = new BMenuBar("MenuBar"); fNewMenu = new BMenu(B_TRANSLATE("Add Blog")); fMenuBar->AddItem(fNewMenu); PluginList* pluginList = BlogPositivePluginLoader::List(); fListView->Reload(gBlogList); for (int i = 0; i < pluginList->CountItems(); i++) { BlogPositivePlugin* pl = pluginList->ItemAt(i); if (dynamic_cast<BlogPositiveBlogPlugin*>(pl)) { BMessage* msg = new BMessage(kCreateNewBlog); msg->SetInt32("ding", i); msg->SetString("sendToView", Name()); BMenuItem* mi = new BMenuItem(pl->Name(), msg); fNewMenu->AddItem(mi); } } BMessage* aMenuItemMessage = new BMessage(kRemoveCurrentBlog); fRemoveMenuItem = new BMenuItem(B_TRANSLATE("Remove blog"), aMenuItemMessage); fMenuBar->AddItem(fRemoveMenuItem); BLayoutBuilder::Group<>(this, B_VERTICAL, 0) .Add(fMenuBar) .Add(new BScrollView("scroll_view", fListView, 0, false, true)); }