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 12 ExpanderApp::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 24 void 25 ExpanderApp::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 45 void 46 ExpanderApp::RefsReceived(BMessage* message) 47 { 48 BMessenger messenger(fWindow); 49 message->AddBool("fromApp", true); 50 messenger.SendMessage(message); 51 } 52 53 54 void 55 ExpanderApp::UpdateSettingsFrom(BMessage* message) 56 { 57 fSettings.UpdateFrom(message); 58 } 59 60 61 // #pragma mark - main method 62 63 64 int 65 main(int argc, char** argv) 66 { 67 ExpanderApp theApp; 68 theApp.Run(); 69 70 return 0; 71 } 72