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