TTracker::TTracker() : BApplication(kTrackerSignature), fSettingsWindow(NULL) { // set the cwd to /boot/home, anything that's launched // from Tracker will automatically inherit this BPath homePath; if (find_directory(B_USER_DIRECTORY, &homePath) == B_OK) chdir(homePath.Path()); _kset_fd_limit_(512); // ask for a bunch more file descriptors so that nested copying // works well fNodeMonitorCount = DEFAULT_MON_NUM; #ifdef CHECK_OPEN_MODEL_LEAKS InitOpenModelDumping(); #endif InitIconPreloader(); #ifdef LEAK_CHECKING SetNewLeakChecking(true); SetMallocLeakChecking(true); #endif //This is how often it should update the free space bar on the volume icons SetPulseRate(1000000); }
BNavMenu::BNavMenu(const char *title, uint32 message, const BMessenger &messenger, BWindow *parentWindow, const BObjectList<BString> *list) : BSlowMenu(title), fMessage(message), fMessenger(messenger), fParentWindow(parentWindow), fFlags(0), fItemList(0), fContainer(0), fTypesList(list) { InitIconPreloader(); SetFont(be_plain_font); // add the parent window to the invocation message so that it // can be closed if option modifier held down during invocation BContainerWindow *originatingWindow = dynamic_cast<BContainerWindow *>(fParentWindow); if (originatingWindow) fMessage.AddData("nodeRefsToClose", B_RAW_TYPE, originatingWindow->TargetModel()->NodeRef(), sizeof (node_ref)); // too long to have triggers SetTriggersEnabled(false); }
BRecentItemsList::BRecentItemsList(int32 maxItems, bool navMenuFolders) : fMaxItems(maxItems), fNavMenuFolders(navMenuFolders) { InitIconPreloader(); // need the icon cache Rewind(); }
TBarApp::TBarApp() : BApplication(kDeskbarSignature), fSettingsFile(NULL), fPreferencesWindow(NULL) { InitSettings(); InitIconPreloader(); fBarWindow = new TBarWindow(); fBarView = fBarWindow->BarView(); be_roster->StartWatching(this); gLocalizedNamePreferred = BLocaleRoster::Default()->IsFilesystemTranslationPreferred(); sBarTeamInfoList.MakeEmpty(); BList teamList; int32 numTeams; be_roster->GetAppList(&teamList); numTeams = teamList.CountItems(); for (int32 i = 0; i < numTeams; i++) { app_info appInfo; team_id tID = (team_id)teamList.ItemAt(i); if (be_roster->GetRunningAppInfo(tID, &appInfo) == B_OK) { AddTeam(appInfo.team, appInfo.flags, appInfo.signature, &appInfo.ref); } } sSubscribers.MakeEmpty(); fSwitcherMessenger = BMessenger(new TSwitchManager(fSettings.switcherLoc)); fBarWindow->Show(); // Call UpdatePlacement() after the window is shown because expanded apps // need to resize the window. if (fBarWindow->Lock()) { fBarView->UpdatePlacement(); fBarWindow->Unlock(); } // this messenger now targets the barview instead of the // statusview so that all additions to the tray // follow the same path fStatusViewMessenger = BMessenger(fBarWindow->FindView("BarView")); }
BSlowContextMenu::BSlowContextMenu(const char *title) : BPopUpMenu(title, false, false), fMenuBuilt(false), fMessage(B_REFS_RECEIVED), fParentWindow(NULL), fItemList(NULL), fContainer(NULL), fTypesList(NULL), fIsShowing(false) { InitIconPreloader(); SetFont(be_plain_font); SetTriggersEnabled(false); }
OpenWithMenu::OpenWithMenu(const char* label, const BMessage* entriesToOpen, BWindow* parentWindow, BHandler* target) : BSlowMenu(label), fEntriesToOpen(*entriesToOpen), target(target), fIterator(NULL), fSupportingAppList(NULL), fParentWindow(parentWindow) { InitIconPreloader(); SetFont(be_plain_font); // too long to have triggers SetTriggersEnabled(false); }
TTracker::TTracker() : BApplication(kTrackerSignature), fSettingsWindow(NULL) { // set the cwd to /boot/home, anything that's launched // from Tracker will automatically inherit this BPath homePath; if (find_directory(B_USER_DIRECTORY, &homePath) == B_OK) chdir(homePath.Path()); // ask for a bunch more file descriptors so that nested copying works well struct rlimit rl; rl.rlim_cur = 512; rl.rlim_max = RLIM_SAVED_MAX; setrlimit(RLIMIT_NOFILE, &rl); fNodeMonitorCount = DEFAULT_MON_NUM; gLocalizedNamePreferred = BLocaleRoster::Default()->IsFilesystemTranslationPreferred(); #ifdef CHECK_OPEN_MODEL_LEAKS InitOpenModelDumping(); #endif InitIconPreloader(); #ifdef LEAK_CHECKING SetNewLeakChecking(true); SetMallocLeakChecking(true); #endif // This is how often it should update the free space bar on the // volume icons SetPulseRate(1000000); gLaunchLooper = new LaunchLooper(); gLaunchLooper->Run(); }
TFilePanel::TFilePanel(file_panel_mode mode, BMessenger* target, const BEntry* startDir, uint32 nodeFlavors, bool multipleSelection, BMessage* message, BRefFilter* filter, uint32 containerWindowFlags, window_look look, window_feel feel, bool hideWhenDone) : BContainerWindow(0, containerWindowFlags, look, feel, 0, B_CURRENT_WORKSPACE), fDirMenu(NULL), fDirMenuField(NULL), fTextControl(NULL), fClientObject(NULL), fSelectionIterator(0), fMessage(NULL), fHideWhenDone(hideWhenDone), fIsTrackingMenu(false) { InitIconPreloader(); fIsSavePanel = (mode == B_SAVE_PANEL); BRect windRect(85, 50, 568, 296); MoveTo(windRect.LeftTop()); ResizeTo(windRect.Width(), windRect.Height()); fNodeFlavors = (nodeFlavors == 0) ? B_FILE_NODE : nodeFlavors; if (target) fTarget = *target; else fTarget = BMessenger(be_app); if (message) SetMessage(message); else if (fIsSavePanel) fMessage = new BMessage(B_SAVE_REQUESTED); else fMessage = new BMessage(B_REFS_RECEIVED); gLocalizedNamePreferred = BLocaleRoster::Default()->IsFilesystemTranslationPreferred(); // check for legal starting directory Model* model = new Model(); bool useRoot = true; if (startDir) { if (model->SetTo(startDir) == B_OK && model->IsDirectory()) useRoot = false; else { delete model; model = new Model(); } } if (useRoot) { BPath path; if (find_directory(B_USER_DIRECTORY, &path) == B_OK) { BEntry entry(path.Path(), true); if (entry.InitCheck() == B_OK && model->SetTo(&entry) == B_OK) useRoot = false; } } if (useRoot) { BVolume volume; BDirectory root; BVolumeRoster volumeRoster; volumeRoster.GetBootVolume(&volume); volume.GetRootDirectory(&root); BEntry entry; root.GetEntry(&entry); model->SetTo(&entry); } fTaskLoop = new PiggybackTaskLoop; AutoLock<BWindow> lock(this); CreatePoseView(model); fPoseView->SetRefFilter(filter); if (!fIsSavePanel) fPoseView->SetMultipleSelection(multipleSelection); fPoseView->SetFlags(fPoseView->Flags() | B_NAVIGABLE); fPoseView->SetPoseEditing(false); AddCommonFilter(new BMessageFilter(B_KEY_DOWN, key_down_filter)); AddCommonFilter(new BMessageFilter(B_SIMPLE_DATA, TFilePanel::MessageDropFilter)); AddCommonFilter(new BMessageFilter(B_NODE_MONITOR, TFilePanel::FSFilter)); // inter-application observing BMessenger tracker(kTrackerSignature); BHandler::StartWatching(tracker, kDesktopFilePanelRootChanged); Init(); }
TTracker::TTracker() : BApplication(kTrackerSignature), fMimeTypeList(NULL), fClipboardRefsWatcher(NULL), fTrashWatcher(NULL), fTaskLoop(NULL), fNodeMonitorCount(-1), fWatchingInterface(new WatchingInterface), fSettingsWindow(NULL) { BPathMonitor::SetWatchingInterface(fWatchingInterface); // set the cwd to /boot/home, anything that's launched // from Tracker will automatically inherit this BPath homePath; if (find_directory(B_USER_DIRECTORY, &homePath) == B_OK) chdir(homePath.Path()); // ask for a bunch more file descriptors so that nested copying works well struct rlimit rl; rl.rlim_cur = 512; rl.rlim_max = RLIM_SAVED_MAX; setrlimit(RLIMIT_NOFILE, &rl); fNodeMonitorCount = DEFAULT_MON_NUM; gLocalizedNamePreferred = BLocaleRoster::Default()->IsFilesystemTranslationPreferred(); #ifdef CHECK_OPEN_MODEL_LEAKS InitOpenModelDumping(); #endif InitIconPreloader(); #ifdef LEAK_CHECKING SetNewLeakChecking(true); SetMallocLeakChecking(true); #endif // This is how often it should update the free space bar on the // volume icons SetPulseRate(1000000); gLaunchLooper = new LaunchLooper(); gLaunchLooper->Run(); // open desktop window BContainerWindow* deskWindow = NULL; BDirectory deskDir; if (FSGetDeskDir(&deskDir) == B_OK) { // create desktop BEntry entry; deskDir.GetEntry(&entry); Model* model = new Model(&entry, true); if (model->InitCheck() == B_OK) { AutoLock<WindowList> lock(&fWindowList); deskWindow = new BDeskWindow(&fWindowList); AutoLock<BWindow> windowLock(deskWindow); deskWindow->CreatePoseView(model); deskWindow->Init(); if (TrackerSettings().ShowDisksIcon()) { // create model for root of everything BEntry entry("/"); Model model(&entry); if (model.InitCheck() == B_OK) { // add the root icon to desktop window BMessage message; message.what = B_NODE_MONITOR; message.AddInt32("opcode", B_ENTRY_CREATED); message.AddInt32("device", model.NodeRef()->device); message.AddInt64("node", model.NodeRef()->node); message.AddInt64("directory", model.EntryRef()->directory); message.AddString("name", model.EntryRef()->name); deskWindow->PostMessage(&message, deskWindow->PoseView()); } } } else delete model; } }