1/*
2 * Copyright (c) 1999-2000, Eric Moon.
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 *
9 * 1. Redistributions of source code must retain the above copyright
10 *    notice, this list of conditions, and the following disclaimer.
11 *
12 * 2. Redistributions in binary form must reproduce the above copyright
13 *    notice, this list of conditions, and the following disclaimer in the
14 *    documentation and/or other materials provided with the distribution.
15 *
16 * 3. The name of the author may not be used to endorse or promote products
17 *    derived from this software without specific prior written permission.
18 *
19 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR
20 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
21 * OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR
22 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
23 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
24 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
25 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
26 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
27 * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 */
30
31
32// AppNodeInfoView.cpp
33
34#include "AppNodeInfoView.h"
35// NodeManager
36#include "NodeRef.h"
37// Support
38#include "MediaIcon.h"
39#include "MediaString.h"
40
41// Application Kit
42#include <Roster.h>
43// Media Kit
44#include <MediaNode.h>
45#include <MediaRoster.h>
46// Storage Kit
47#include <AppFileInfo.h>
48#include <Entry.h>
49#include <File.h>
50#include <Path.h>
51
52__USE_CORTEX_NAMESPACE
53
54#include <Debug.h>
55#define D_METHOD(x) //PRINT (x)
56
57// -------------------------------------------------------- //
58// *** ctor/dtor (public)
59// -------------------------------------------------------- //
60
61AppNodeInfoView::AppNodeInfoView(
62	const NodeRef *ref)
63	: LiveNodeInfoView(ref)
64{
65	D_METHOD(("AppNodeInfoView::AppNodeInfoView()\n"));
66
67	// adjust view properties
68	setSideBarWidth(be_plain_font->StringWidth(" File Format ") + 2 * InfoView::M_H_MARGIN);
69	setSubTitle("Application-Owned Node");
70
71	// add separator
72	addField("", "");
73
74	port_info portInfo;
75	app_info appInfo;
76
77	if ((get_port_info(ref->node().port, &portInfo) == B_OK)
78	 && (be_roster->GetRunningAppInfo(portInfo.team, &appInfo) == B_OK))
79	{
80		BEntry appEntry(&appInfo.ref);
81		char appName[B_FILE_NAME_LENGTH];
82		if ((appEntry.InitCheck() == B_OK)
83		 && (appEntry.GetName(appName) == B_OK))
84		{
85			addField("Application", appName);
86		}
87		BFile appFile(&appInfo.ref, B_READ_ONLY);
88		if (appFile.InitCheck() == B_OK)
89		{
90			BAppFileInfo appFileInfo(&appFile);
91			if (appFileInfo.InitCheck() == B_OK)
92			{
93				version_info appVersion;
94				if (appFileInfo.GetVersionInfo(&appVersion, B_APP_VERSION_KIND) == B_OK)
95				{
96					addField("Version", appVersion.long_info);
97				}
98			}
99		}
100		addField("Signature", appInfo.signature);
101	}
102}
103
104AppNodeInfoView::~AppNodeInfoView()
105{
106	D_METHOD(("AppNodeInfoView::~AppNodeInfoView()\n"));
107}
108
109// END -- AppNodeInfoView.cpp --
110