void KeymapWindow::_FillUserMaps() { BListItem* item; while ((item = fUserListView->RemoveItem(static_cast<int32>(0)))) delete item; entry_ref ref; _GetCurrentKeymap(ref); fUserListView->AddItem(new KeymapListItem(ref, TR("(Current)"))); fCurrentMapName = _GetActiveKeymapName(); BPath path; if (find_directory(B_USER_SETTINGS_DIRECTORY, &path) != B_OK) return; path.Append("Keymap"); BDirectory directory; if (directory.SetTo(path.Path()) == B_OK) { while (directory.GetNextRef(&ref) == B_OK) { fUserListView->AddItem(new KeymapListItem(ref)); } } }
//! Restores the default keymap. void KeymapWindow::_DefaultKeymap() { fCurrentMap.RestoreSystemDefault(); fAppliedMap = fCurrentMap; fKeyboardLayoutView->SetKeymap(&fCurrentMap); fCurrentMapName = _GetActiveKeymapName(); _SelectCurrentMap(); }
//! Saves current map to the "Key_map" file. void KeymapWindow::_UseKeymap() { entry_ref ref; _GetCurrentKeymap(ref); status_t status = fCurrentMap.Save(ref); if (status != B_OK) { printf("error when saving : %s", strerror(status)); return; } fCurrentMap.Use(); fAppliedMap.Load(ref); fCurrentMapName = _GetActiveKeymapName(); _SelectCurrentMap(); }
//! Saves previous map to the "Key_map" file. void KeymapWindow::_RevertKeymap() { entry_ref ref; _GetCurrentKeymap(ref); status_t status = fPreviousMap.Save(ref); if (status != B_OK) { printf("error when saving keymap: %s", strerror(status)); return; } fPreviousMap.Use(); fCurrentMap.Load(ref); fAppliedMap = fCurrentMap; fKeyboardLayoutView->SetKeymap(&fCurrentMap); fCurrentMapName = _GetActiveKeymapName(); _SelectCurrentMap(); }