1/* PoorManApplication.cpp
2 *
3 *	Philip Harrison
4 *	Started: 4/25/2004
5 *	Version: 0.1
6 */
7
8
9#include "PoorManApplication.h"
10
11#include <Application.h>
12#include <Alert.h>
13#include <Catalog.h>
14#include <Directory.h>
15
16#include "constants.h"
17#include "PoorManWindow.h"
18
19
20PoorManApplication::PoorManApplication()
21	: BApplication(STR_APP_SIG),
22	  mainWindow(NULL)
23{
24	BRect mainRect(82.0f, 30.0f, 400.0f, 350.0f);
25	mainWindow = new PoorManWindow(mainRect);
26	mainWindow->Hide();
27	mainWindow->Show();
28
29	BDirectory webDir;
30	if (mainWindow->ReadSettings() != B_OK) {
31		if (webDir.SetTo(STR_DEFAULT_WEB_DIRECTORY) != B_OK)
32			mainWindow->DefaultSettings();
33		else
34			PostMessage(kStartServer);
35	} else {
36		if (webDir.SetTo(mainWindow->WebDir()) != B_OK)
37			mainWindow->DefaultSettings();
38		else
39			PostMessage(kStartServer);
40	}
41}
42
43
44void
45PoorManApplication::MessageReceived(BMessage *message)
46{
47	switch (message->what) {
48		case MSG_FILE_PANEL_SELECT_WEB_DIR:
49			mainWindow->MessageReceived(message);
50			break;
51
52		case kStartServer:
53			mainWindow->StartServer();
54			mainWindow->SetDirLabel(mainWindow->WebDir());
55			mainWindow->Show();
56			break;
57
58		case B_CANCEL: {
59			BDirectory webDir;
60			if (mainWindow->ReadSettings() != B_OK) {
61				if (webDir.SetTo(STR_DEFAULT_WEB_DIRECTORY) != B_OK)
62					mainWindow->DefaultSettings();
63				else
64					mainWindow->StartServer();
65			} else {
66				if (webDir.SetTo(mainWindow->WebDir()) != B_OK)
67					mainWindow->DefaultSettings();
68				else
69					mainWindow->StartServer();
70			}
71		}
72			break;
73		default:
74			BApplication::MessageReceived(message);
75	}
76}
77
78