1/*
2 * Copyright (c) 2005-2010, Haiku, Inc.
3 * Distributed under the terms of the MIT license.
4 *
5 * Author:
6 *		DarkWyrm <darkwyrm@gmail.com>
7 */
8#include "App.h"
9#include "ResWindow.h"
10
11#include <Entry.h>
12
13int
14main(void)
15{
16	App app;
17	app.Run();
18	return 0;
19}
20
21
22App::App(void)
23  :	BApplication("application/x-vnd.Haiku-ResEdit")
24{
25	fOpenPanel = new BFilePanel();
26}
27
28
29App::~App(void)
30{
31	delete fOpenPanel;
32}
33
34
35void
36App::ReadyToRun(void)
37{
38	// CountWindows() needs to be used instead of fWindowCount because the registration
39	// message isn't processed in time. One of the windows belong to the BFilePanels and is
40	// counted in CountWindows().
41	if (CountWindows() < 2)
42		new ResWindow(BRect(50, 100, 600, 400));
43}
44
45
46void
47App::MessageReceived(BMessage *msg)
48{
49	switch(msg->what) {
50		case M_SHOW_OPEN_PANEL: {
51			// Don't do anything if it's already open
52			if (fOpenPanel->IsShowing())
53				break;
54			fOpenPanel->Show();
55			break;
56		}
57		default:
58			BApplication::MessageReceived(msg);
59	}
60}
61
62
63void
64App::ArgvReceived(int32 argc, char** argv)
65{
66	for (int32 i = 1; i < argc; i++) {
67		BEntry entry(argv[i]);
68		entry_ref ref;
69		if (entry.GetRef(&ref) < B_OK)
70			continue;
71		new ResWindow(BRect(50, 100, 600, 400), &ref);
72	}
73}
74
75
76void
77App::RefsReceived(BMessage *msg)
78{
79	entry_ref ref;
80	int32 i = 0;
81	while (msg->FindRef("refs", i++, &ref) == B_OK)
82		new ResWindow(BRect(50, 100, 600, 400), &ref);
83}
84