Files
haiku-beta6/src/apps/diskprobe/FileWindow.cpp
T
Axel Dörfler 6781cbdc9b Removed the "Block/Write" menu item, and introduced new "Save" menu items;
they are not yet working, though.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6756 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-26 12:54:51 +00:00

86 lines
2.2 KiB
C++

/*
** Copyright 2004, Axel Dörfler, [email protected]. All rights reserved.
** Distributed under the terms of the OpenBeOS License.
*/
#include "FileWindow.h"
#include "OpenWindow.h"
#include "DiskProbe.h"
#include "ProbeView.h"
#include <Application.h>
#include <MenuBar.h>
#include <MenuItem.h>
#include <Path.h>
FileWindow::FileWindow(BRect rect, entry_ref *ref, const BMessage *settings)
: ProbeWindow(rect, ref)
{
// Set alternative window title for devices
BEntry entry(ref);
struct stat stat;
if (entry.GetStat(&stat) == B_OK && (stat.st_mode & (S_IFBLK | S_IFCHR)) != 0) {
BPath path(ref);
SetTitle(path.Path());
}
// add the menu
BMenuBar *menuBar = new BMenuBar(BRect(0, 0, 0, 0), NULL);
AddChild(menuBar);
BMenu *menu = new BMenu("File");
menu->AddItem(new BMenuItem("New" B_UTF8_ELLIPSIS,
new BMessage(kMsgOpenOpenWindow), 'N', B_COMMAND_KEY));
BMenu *devicesMenu = new BMenu("Open Device");
OpenWindow::CollectDevices(devicesMenu);
devicesMenu->SetTargetForItems(be_app);
menu->AddItem(new BMenuItem(devicesMenu));
menu->AddItem(new BMenuItem("Open File" B_UTF8_ELLIPSIS,
new BMessage(kMsgOpenFilePanel), 'O', B_COMMAND_KEY));
menu->AddSeparatorItem();
// the ProbeView save menu items will be inserted here
BMenuItem *item = new BMenuItem("Close", new BMessage(B_CLOSE_REQUESTED), 'W', B_COMMAND_KEY);
menu->AddItem(item);
menu->AddSeparatorItem();
// the ProbeView print menu items will be inserted here
menu->AddSeparatorItem();
menu->AddItem(new BMenuItem("About DiskProbe" B_UTF8_ELLIPSIS, new BMessage(B_ABOUT_REQUESTED)));
menu->AddSeparatorItem();
menu->AddItem(new BMenuItem("Quit", new BMessage(B_QUIT_REQUESTED), 'Q', B_COMMAND_KEY));
menu->SetTargetForItems(be_app);
item->SetTarget(this);
menuBar->AddItem(menu);
// add our interface widgets
BRect rect = Bounds();
rect.top = menuBar->Bounds().Height() + 1;
ProbeView *probeView = new ProbeView(rect, ref, NULL, settings);
probeView->AddSaveMenuItems(menu, 4);
probeView->AddPrintMenuItems(menu, menu->CountItems() - 4);
AddChild(probeView);
probeView->UpdateSizeLimits();
}
bool
FileWindow::Contains(const entry_ref &ref, const char *attribute)
{
if (attribute != NULL)
return false;
return ref == Ref();
}