xref: /haiku/src/apps/diskprobe/AttributeWindow.cpp (revision 7fff3ed096826c2efe41f10c2fea71a5e0b4656f)
1d11ec082SAxel Dörfler /*
2d11ec082SAxel Dörfler ** Copyright 2004, Axel Dörfler, axeld@pinc-software.de. All rights reserved.
3d11ec082SAxel Dörfler ** Distributed under the terms of the OpenBeOS License.
4d11ec082SAxel Dörfler */
5d11ec082SAxel Dörfler 
6d11ec082SAxel Dörfler 
7d11ec082SAxel Dörfler #include "AttributeWindow.h"
8d11ec082SAxel Dörfler #include "ProbeView.h"
9d11ec082SAxel Dörfler 
10d11ec082SAxel Dörfler #include <MenuBar.h>
11d11ec082SAxel Dörfler #include <MenuItem.h>
12d11ec082SAxel Dörfler 
13d11ec082SAxel Dörfler #include <stdio.h>
14d11ec082SAxel Dörfler 
15d11ec082SAxel Dörfler 
16*7fff3ed0SAxel Dörfler AttributeWindow::AttributeWindow(BRect rect, entry_ref *ref, const char *attribute,
17*7fff3ed0SAxel Dörfler 	const BMessage *settings)
18d11ec082SAxel Dörfler 	: ProbeWindow(rect, ref),
19d11ec082SAxel Dörfler 	fAttribute(strdup(attribute))
20d11ec082SAxel Dörfler {
21d11ec082SAxel Dörfler 	char buffer[256];
22d11ec082SAxel Dörfler 	snprintf(buffer, sizeof(buffer), "%s: %s", ref->name, attribute);
23d11ec082SAxel Dörfler 	SetTitle(buffer);
24d11ec082SAxel Dörfler 
25d11ec082SAxel Dörfler 	// add the menu
26d11ec082SAxel Dörfler 
27d11ec082SAxel Dörfler 	BMenuBar *menuBar = new BMenuBar(BRect(0, 0, 0, 0), NULL);
28d11ec082SAxel Dörfler 	AddChild(menuBar);
29d11ec082SAxel Dörfler 
30d11ec082SAxel Dörfler 	BMenu *menu = new BMenu("Attribute");
31d11ec082SAxel Dörfler 
32d11ec082SAxel Dörfler 	// the ProbeView file menu items will be inserted here
33d11ec082SAxel Dörfler 	menu->AddSeparatorItem();
34d11ec082SAxel Dörfler 
35d11ec082SAxel Dörfler 	menu->AddItem(new BMenuItem("Close", new BMessage(B_CLOSE_REQUESTED), 'W', B_COMMAND_KEY));
36d11ec082SAxel Dörfler 	menu->SetTargetForItems(this);
37d11ec082SAxel Dörfler 	menuBar->AddItem(menu);
38d11ec082SAxel Dörfler 
39d11ec082SAxel Dörfler 	// add our interface widgets
40d11ec082SAxel Dörfler 
41d11ec082SAxel Dörfler 	BRect rect = Bounds();
42d11ec082SAxel Dörfler 	rect.top = menuBar->Bounds().Height() + 1;
43*7fff3ed0SAxel Dörfler 	ProbeView *probeView = new ProbeView(rect, ref, attribute, settings);
44d11ec082SAxel Dörfler 	probeView->AddFileMenuItems(menu, 0);
45d11ec082SAxel Dörfler 	AddChild(probeView);
46d11ec082SAxel Dörfler 
47d11ec082SAxel Dörfler 	probeView->UpdateSizeLimits();
48d11ec082SAxel Dörfler }
49d11ec082SAxel Dörfler 
50d11ec082SAxel Dörfler 
51d11ec082SAxel Dörfler AttributeWindow::~AttributeWindow()
52d11ec082SAxel Dörfler {
53d11ec082SAxel Dörfler 	free(fAttribute);
54d11ec082SAxel Dörfler }
55d11ec082SAxel Dörfler 
56d11ec082SAxel Dörfler 
57d11ec082SAxel Dörfler bool
58d11ec082SAxel Dörfler AttributeWindow::Contains(const entry_ref &ref, const char *attribute)
59d11ec082SAxel Dörfler {
60d11ec082SAxel Dörfler 	return ref == Ref() && attribute != NULL && !strcmp(attribute, fAttribute);
61d11ec082SAxel Dörfler }
62d11ec082SAxel Dörfler 
63