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