haiku/src/apps/expander/ExpanderApp.cpp

72 lines
1.3 KiB
C++

/*
* Copyright 2004-2006, Jérôme Duval. All rights reserved.
* Distributed under the terms of the MIT License.
*/
#include "ExpanderApp.h"
#include "ExpanderWindow.h"
ExpanderApp::ExpanderApp()
:
BApplication("application/x-vnd.Haiku-Expander")
{
BPoint windowPosition = fSettings.Message().FindPoint("window_position");
BRect windowFrame(0, 0, 450, 120);
windowFrame.OffsetBy(windowPosition);
BMessage settings(fSettings.Message());
fWindow = new ExpanderWindow(windowFrame, NULL, &settings);
}
void
ExpanderApp::ArgvReceived(int32 argc, char** argv)
{
BMessage* message = NULL;
for (int32 i = 1; i < argc; i++) {
entry_ref ref;
status_t err = get_ref_for_path(argv[i], &ref);
if (err == B_OK) {
if (message == NULL) {
message = new BMessage;
message->what = B_REFS_RECEIVED;
}
message->AddRef("refs", &ref);
}
}
if (message != NULL)
RefsReceived(message);
}
void
ExpanderApp::RefsReceived(BMessage* message)
{
BMessenger messenger(fWindow);
message->AddBool("fromApp", true);
messenger.SendMessage(message);
}
void
ExpanderApp::UpdateSettingsFrom(BMessage* message)
{
fSettings.UpdateFrom(message);
}
// #pragma mark - main method
int
main(int argc, char** argv)
{
ExpanderApp theApp;
theApp.Run();
return 0;
}