1 #include "AutoRaiseApp.h" 2 #include "AutoRaiseIcon.h" 3 #include <Catalog.h> 4 5 6 #undef B_TRANSLATION_CONTEXT 7 #define B_TRANSLATION_CONTEXT "AutoRaiseApp" 8 9 AutoRaiseApp()10AutoRaiseApp::AutoRaiseApp() 11 : BApplication( APP_SIG ) 12 { 13 B_TRANSLATE_MARK_SYSTEM_NAME_VOID("AutoRaise"); 14 15 removeFromDeskbar(NULL); 16 fPersist = true; 17 fDone = false; 18 } 19 ~AutoRaiseApp()20AutoRaiseApp::~AutoRaiseApp() 21 { 22 return; 23 } 24 ArgvReceived(int32 argc,char ** argv)25void AutoRaiseApp::ArgvReceived(int32 argc, char ** argv) 26 { 27 BString option; 28 29 for (int32 i = 1; i < argc; i++) 30 { 31 option = argv[i]; 32 if (option.IFindFirst("deskbar") != B_ERROR) 33 fPersist = false; 34 35 if (option.IFindFirst("persist") != B_ERROR) 36 fPersist = true; 37 38 if (option.IFindFirst("-h") != B_ERROR 39 || option.IFindFirst("help") != B_ERROR) { 40 BString usageNote = 41 "\nUsage: " APP_NAME " [options]\n\t--deskbar\twill not open " 42 "window, will just put " APP_NAME " into tray\n\t--persist (default) will put " 43 APP_NAME " into tray such that it remains across reboots"; 44 puts(usageNote.String()); 45 fDone = true; 46 be_app_messenger.SendMessage(B_QUIT_REQUESTED); 47 } 48 } 49 } 50 ReadyToRun()51void AutoRaiseApp::ReadyToRun() 52 { 53 if (!fDone) 54 PutInTray(fPersist); 55 be_app_messenger.SendMessage(B_QUIT_REQUESTED); 56 } 57 PutInTray(bool persist)58void AutoRaiseApp::PutInTray(bool persist) 59 { 60 BDeskbar db; 61 62 if (!persist) 63 db.AddItem(new TrayView); 64 else { 65 BRoster roster; 66 entry_ref ref; 67 roster.FindApp(APP_SIG, &ref); 68 int32 id; 69 db.AddItem(&ref, &id); 70 } 71 } 72 main()73int main() 74 { 75 AutoRaiseApp *app = new AutoRaiseApp(); 76 app->Run(); 77 } 78