void TTracker::MessageReceived(BMessage *message) { if (HandleScriptingMessage(message)) return; switch (message->what) { case kGetInfo: OpenInfoWindows(message); break; case kMoveToTrash: MoveRefsToTrash(message); break; case kCloseWindowAndChildren: { const node_ref *itemNode; int32 bytes; message->FindData("node_ref", B_RAW_TYPE, (const void **)&itemNode, &bytes); CloseWindowAndChildren(itemNode); break; } case kCloseAllWindows: CloseAllWindows(); break; case kFindButton: (new FindWindow())->Show(); break; case kEditQuery: EditQueries(message); break; case kUnmountVolume: // When the user attempts to unmount a volume from the mount // context menu, this is where the message gets received. Save // pose locations and forward this to the automounter SaveAllPoseLocations(); fAutoMounter->PostMessage(message); break; case kRunAutomounterSettings: AutomountSettingsDialog::RunAutomountSettings(fAutoMounter); break; case kShowSplash: { // The AboutWindow was moved out of the Tracker in preparation // for when we open source it. The AboutBox contains important // credit and license issues that shouldn't be modified, and // therefore shouldn't be open sourced. However, there is a public // API for 3rd party apps to tell the Tracker to open the AboutBox. run_be_about(); break; } case kAddPrinter: // show the addprinter window run_add_printer_panel(); break; case kMakeActivePrinter: // get the current selection SetDefaultPrinter(message); break; #ifdef MOUNT_MENU_IN_DESKBAR case 'gmtv': { // Someone (probably the deskbar) has requested a list of // mountable volumes. BMessage reply; AutoMounterLoop()->EachMountableItemAndFloppy(&AddMountableItemToMessage, &reply); message->SendReply(&reply); break; } #endif case kMountVolume: case kMountAllNow: AutoMounterLoop()->PostMessage(message); break; case kRestoreBackgroundImage: { BDeskWindow *desktop = GetDeskWindow(); AutoLock<BWindow> lock(desktop); desktop->UpdateDesktopBackgroundImages(); } break; case kShowSettingsWindow: ShowSettingsWindow(); break; case kFavoriteCountChangedExternally: SendNotices(kFavoriteCountChangedExternally, message); break; case kStartWatchClipboardRefs: { BMessenger messenger; message->FindMessenger("target", &messenger); if (messenger.IsValid()) fClipboardRefsWatcher->AddToNotifyList(messenger); break; } case kStopWatchClipboardRefs: { BMessenger messenger; message->FindMessenger("target", &messenger); if (messenger.IsValid()) fClipboardRefsWatcher->RemoveFromNotifyList(messenger); break; } default: _inherited::MessageReceived(message); break; } }
void TTracker::MessageReceived(BMessage *message) { if (HandleScriptingMessage(message)) return; switch (message->what) { case kGetInfo: OpenInfoWindows(message); break; case kMoveToTrash: MoveRefsToTrash(message); break; case kCloseWindowAndChildren: { const node_ref *itemNode; int32 bytes; message->FindData("node_ref", B_RAW_TYPE, (const void **)&itemNode, &bytes); CloseWindowAndChildren(itemNode); break; } case kCloseAllWindows: CloseAllWindows(); break; case kCloseAllInWorkspace: CloseAllInWorkspace(); break; case kFindButton: (new FindWindow())->Show(); break; case kEditQuery: EditQueries(message); break; case kShowSplash: run_be_about(); break; case kAddPrinter: // show the addprinter window run_add_printer_panel(); break; case kMakeActivePrinter: // get the current selection SetDefaultPrinter(message); break; #ifdef MOUNT_MENU_IN_DESKBAR case 'gmtv': { // Someone (probably the deskbar) has requested a list of // mountable volumes. BMessage reply; AutoMounterLoop()->EachMountableItemAndFloppy(&AddMountableItemToMessage, &reply); message->SendReply(&reply); break; } #endif case kUnmountVolume: // When the user attempts to unmount a volume from the mount // context menu, this is where the message gets received. // Save pose locations and forward this to the automounter SaveAllPoseLocations(); // Fall through... case kMountVolume: case kMountAllNow: MountServer().SendMessage(message); break; case kRunAutomounterSettings: AutomountSettingsDialog::RunAutomountSettings(MountServer()); break; case kRestoreBackgroundImage: { BDeskWindow *desktop = GetDeskWindow(); AutoLock<BWindow> lock(desktop); desktop->UpdateDesktopBackgroundImages(); break; } case kShowSettingsWindow: ShowSettingsWindow(); break; case kFavoriteCountChangedExternally: SendNotices(kFavoriteCountChangedExternally, message); break; case kStartWatchClipboardRefs: { BMessenger messenger; message->FindMessenger("target", &messenger); if (messenger.IsValid()) fClipboardRefsWatcher->AddToNotifyList(messenger); break; } case kStopWatchClipboardRefs: { BMessenger messenger; message->FindMessenger("target", &messenger); if (messenger.IsValid()) fClipboardRefsWatcher->RemoveFromNotifyList(messenger); break; } case kFSClipboardChanges: fClipboardRefsWatcher->UpdatePoseViews(message); break; case kShowVolumeSpaceBar: case kSpaceBarColorChanged: gPeriodicUpdatePoses.DoPeriodicUpdate(true); break; case B_LOCALE_CHANGED: { BLocaleRoster::Default()->Refresh(); bool localize; if (message->FindBool("filesys", &localize) == B_OK) gLocalizedNamePreferred = localize; break; } default: _inherited::MessageReceived(message); break; } }