1/* 2 * Copyright 2004-2006, Jérôme Duval. All rights reserved. 3 * Distributed under the terms of the MIT License. 4 */ 5 6 7#include "ExpanderApp.h" 8 9#include "ExpanderWindow.h" 10 11 12ExpanderApp::ExpanderApp() 13 : 14 BApplication("application/x-vnd.Haiku-Expander") 15{ 16 BPoint windowPosition = fSettings.Message().FindPoint("window_position"); 17 BRect windowFrame(0, 0, 450, 120); 18 windowFrame.OffsetBy(windowPosition); 19 BMessage settings(fSettings.Message()); 20 fWindow = new ExpanderWindow(windowFrame, NULL, &settings); 21} 22 23 24void 25ExpanderApp::ArgvReceived(int32 argc, char** argv) 26{ 27 BMessage* message = NULL; 28 for (int32 i = 1; i < argc; i++) { 29 entry_ref ref; 30 status_t err = get_ref_for_path(argv[i], &ref); 31 if (err == B_OK) { 32 if (message == NULL) { 33 message = new BMessage; 34 message->what = B_REFS_RECEIVED; 35 } 36 message->AddRef("refs", &ref); 37 } 38 } 39 40 if (message != NULL) 41 RefsReceived(message); 42} 43 44 45void 46ExpanderApp::RefsReceived(BMessage* message) 47{ 48 BMessenger messenger(fWindow); 49 message->AddBool("fromApp", true); 50 messenger.SendMessage(message); 51} 52 53 54void 55ExpanderApp::UpdateSettingsFrom(BMessage* message) 56{ 57 fSettings.UpdateFrom(message); 58} 59 60 61// #pragma mark - main method 62 63 64int 65main(int argc, char** argv) 66{ 67 ExpanderApp theApp; 68 theApp.Run(); 69 70 return 0; 71} 72