#include "AutoRaiseApp.h"#include "AutoRaiseIcon.h"#include <Catalog.h>#undef B_TRANSLATION_CONTEXT#define B_TRANSLATION_CONTEXT "AutoRaiseApp"AutoRaiseApp::AutoRaiseApp(): BApplication( APP_SIG ){B_TRANSLATE_MARK_SYSTEM_NAME_VOID("AutoRaise");removeFromDeskbar(NULL);fPersist = true;fDone = false;}AutoRaiseApp::~AutoRaiseApp(){return;}void AutoRaiseApp::ArgvReceived(int32 argc, char ** argv){BString option;for (int32 i = 1; i < argc; i++){option = argv[i];if (option.IFindFirst("deskbar") != B_ERROR)fPersist = false;if (option.IFindFirst("persist") != B_ERROR)fPersist = true;if (option.IFindFirst("-h") != B_ERROR|| option.IFindFirst("help") != B_ERROR) {BString usageNote ="\nUsage: " APP_NAME " [options]\n\t--deskbar\twill not open ""window, will just put " APP_NAME " into tray\n\t--persist (default) will put "APP_NAME " into tray such that it remains across reboots";puts(usageNote.String());fDone = true;be_app_messenger.SendMessage(B_QUIT_REQUESTED);}}}void AutoRaiseApp::ReadyToRun(){if (!fDone)PutInTray(fPersist);be_app_messenger.SendMessage(B_QUIT_REQUESTED);}void AutoRaiseApp::PutInTray(bool persist){BDeskbar db;if (!persist)db.AddItem(new TrayView);else {BRoster roster;entry_ref ref;roster.FindApp(APP_SIG, &ref);int32 id;db.AddItem(&ref, &id);}}int main(){AutoRaiseApp *app = new AutoRaiseApp();app->Run();}