1148456Spjd/*
2161127Spjd * Copyright 2004-2006, J��r��me Duval. All rights reserved.
3148456Spjd * Distributed under the terms of the MIT License.
4148456Spjd */
5148456Spjd
6148456Spjd
7148456Spjd#include "ExpanderApp.h"
8148456Spjd
9148456Spjd#include "ExpanderWindow.h"
10148456Spjd
11148456Spjd
12148456SpjdExpanderApp::ExpanderApp()
13155175Spjd	:
14148456Spjd	BApplication("application/x-vnd.Haiku-Expander")
15148456Spjd{
16148456Spjd	BPoint windowPosition = fSettings.Message().FindPoint("window_position");
17148456Spjd	BRect windowFrame(0, 0, 450, 120);
18148456Spjd	windowFrame.OffsetBy(windowPosition);
19148456Spjd	BMessage settings(fSettings.Message());
20148456Spjd	fWindow = new ExpanderWindow(windowFrame, NULL, &settings);
21148456Spjd}
22148456Spjd
23148456Spjd
24148456Spjdvoid
25148456SpjdExpanderApp::ArgvReceived(int32 argc, char** argv)
26148456Spjd{
27148456Spjd	BMessage* message = NULL;
28148456Spjd	for (int32 i = 1; i < argc; i++) {
29148456Spjd		entry_ref ref;
30148456Spjd		status_t err = get_ref_for_path(argv[i], &ref);
31148456Spjd		if (err == B_OK) {
32148456Spjd			if (message == NULL) {
33148456Spjd				message = new BMessage;
34148456Spjd				message->what = B_REFS_RECEIVED;
35148456Spjd			}
36148456Spjd			message->AddRef("refs", &ref);
37148456Spjd		}
38148456Spjd	}
39148456Spjd
40148456Spjd	if (message != NULL)
41148456Spjd		RefsReceived(message);
42148456Spjd}
43148456Spjd
44148456Spjd
45148456Spjdvoid
46148456SpjdExpanderApp::RefsReceived(BMessage* message)
47148456Spjd{
48148456Spjd	BMessenger messenger(fWindow);
49148456Spjd	message->AddBool("fromApp", true);
50148456Spjd	messenger.SendMessage(message);
51148456Spjd}
52148456Spjd
53148456Spjd
54148456Spjdvoid
55148456SpjdExpanderApp::UpdateSettingsFrom(BMessage* message)
56148456Spjd{
57159308Spjd	fSettings.UpdateFrom(message);
58159308Spjd}
59148456Spjd
60148456Spjd
61148456Spjd//	#pragma mark - main method
62148456Spjd
63148456Spjd
64148456Spjdint
65148456Spjdmain(int argc, char** argv)
66148456Spjd{
67148456Spjd	ExpanderApp theApp;
68162353Spjd	theApp.Run();
69148456Spjd
70148456Spjd	return 0;
71148456Spjd}
72148456Spjd