1251881Speter/* 2251881Speter * Copyright (c) 1999-2000, Eric Moon. 3251881Speter * All rights reserved. 4251881Speter * 5251881Speter * Redistribution and use in source and binary forms, with or without 6251881Speter * modification, are permitted provided that the following conditions 7251881Speter * are met: 8251881Speter * 9251881Speter * 1. Redistributions of source code must retain the above copyright 10251881Speter * notice, this list of conditions, and the following disclaimer. 11251881Speter * 12251881Speter * 2. Redistributions in binary form must reproduce the above copyright 13251881Speter * notice, this list of conditions, and the following disclaimer in the 14251881Speter * documentation and/or other materials provided with the distribution. 15251881Speter * 16251881Speter * 3. The name of the author may not be used to endorse or promote products 17251881Speter * derived from this software without specific prior written permission. 18251881Speter * 19251881Speter * THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR 20251881Speter * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 21251881Speter * OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR 22251881Speter * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY 23251881Speter * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 24251881Speter * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 25251881Speter * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 26251881Speter * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR 27251881Speter * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28251881Speter * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29251881Speter */ 30251881Speter 31251881Speter 32251881Speter// AppNodeInfoView.cpp 33251881Speter 34251881Speter#include "AppNodeInfoView.h" 35251881Speter// NodeManager 36251881Speter#include "NodeRef.h" 37251881Speter// Support 38251881Speter#include "MediaIcon.h" 39251881Speter#include "MediaString.h" 40251881Speter 41251881Speter// Application Kit 42251881Speter#include <Roster.h> 43251881Speter// Media Kit 44251881Speter#include <MediaNode.h> 45251881Speter#include <MediaRoster.h> 46251881Speter// Storage Kit 47251881Speter#include <AppFileInfo.h> 48251881Speter#include <Entry.h> 49251881Speter#include <File.h> 50289180Speter#include <Path.h> 51289180Speter 52251881Speter__USE_CORTEX_NAMESPACE 53251881Speter 54251881Speter#include <Debug.h> 55251881Speter#define D_METHOD(x) //PRINT (x) 56251881Speter 57251881Speter// -------------------------------------------------------- // 58251881Speter// *** ctor/dtor (public) 59251881Speter// -------------------------------------------------------- // 60251881Speter 61251881SpeterAppNodeInfoView::AppNodeInfoView( 62251881Speter const NodeRef *ref) 63251881Speter : LiveNodeInfoView(ref) 64251881Speter{ 65251881Speter D_METHOD(("AppNodeInfoView::AppNodeInfoView()\n")); 66251881Speter 67251881Speter // adjust view properties 68251881Speter setSideBarWidth(be_plain_font->StringWidth(" File Format ") + 2 * InfoView::M_H_MARGIN); 69251881Speter setSubTitle("Application-Owned Node"); 70251881Speter 71251881Speter // add separator 72251881Speter addField("", ""); 73251881Speter 74251881Speter port_info portInfo; 75251881Speter app_info appInfo; 76251881Speter 77251881Speter if ((get_port_info(ref->node().port, &portInfo) == B_OK) 78251881Speter && (be_roster->GetRunningAppInfo(portInfo.team, &appInfo) == B_OK)) 79251881Speter { 80251881Speter BEntry appEntry(&appInfo.ref); 81251881Speter char appName[B_FILE_NAME_LENGTH]; 82251881Speter if ((appEntry.InitCheck() == B_OK) 83251881Speter && (appEntry.GetName(appName) == B_OK)) 84251881Speter { 85251881Speter addField("Application", appName); 86251881Speter } 87251881Speter BFile appFile(&appInfo.ref, B_READ_ONLY); 88251881Speter if (appFile.InitCheck() == B_OK) 89251881Speter { 90251881Speter BAppFileInfo appFileInfo(&appFile); 91251881Speter if (appFileInfo.InitCheck() == B_OK) 92251881Speter { 93251881Speter version_info appVersion; 94251881Speter if (appFileInfo.GetVersionInfo(&appVersion, B_APP_VERSION_KIND) == B_OK) 95251881Speter { 96251881Speter addField("Version", appVersion.long_info); 97251881Speter } 98251881Speter } 99251881Speter } 100251881Speter addField("Signature", appInfo.signature); 101251881Speter } 102251881Speter} 103251881Speter 104251881SpeterAppNodeInfoView::~AppNodeInfoView() 105251881Speter{ 106251881Speter D_METHOD(("AppNodeInfoView::~AppNodeInfoView()\n")); 107251881Speter} 108251881Speter 109251881Speter// END -- AppNodeInfoView.cpp -- 110251881Speter