void PersonWindow::MenusBeginning() { bool enabled = !fView->IsSaved(); fSave->SetEnabled(enabled); fRevert->SetEnabled(enabled); bool isRedo = false; bool undoEnabled = false; bool cutAndCopyEnabled = false; BTextView* textView = dynamic_cast<BTextView*>(CurrentFocus()); if (textView != NULL) { undo_state state = textView->UndoState(&isRedo); undoEnabled = state != B_UNDO_UNAVAILABLE; cutAndCopyEnabled = fView->IsTextSelected(); } if (isRedo) fUndo->SetLabel(B_TRANSLATE("Redo")); else fUndo->SetLabel(B_TRANSLATE("Undo")); fUndo->SetEnabled(undoEnabled); fCut->SetEnabled(cutAndCopyEnabled); fCopy->SetEnabled(cutAndCopyEnabled); be_clipboard->Lock(); fPaste->SetEnabled(be_clipboard->Data()->HasData("text/plain", B_MIME_TYPE)); be_clipboard->Unlock(); }
void TSignatureWindow::MenusBeginning() { int32 finish = 0; int32 start = 0; BTextView *text_view; fDelete->SetEnabled(fFile); fSave->SetEnabled(IsDirty()); fUndo->SetEnabled(false); // ***TODO*** text_view = (BTextView *)fSigView->fName->ChildAt(0); if (text_view->IsFocus()) text_view->GetSelection(&start, &finish); else fSigView->fTextView->GetSelection(&start, &finish); fCut->SetEnabled(start != finish); fCopy->SetEnabled(start != finish); fNew->SetEnabled(text_view->TextLength() | fSigView->fTextView->TextLength()); be_clipboard->Lock(); fPaste->SetEnabled(be_clipboard->Data()->HasData("text/plain", B_MIME_TYPE)); be_clipboard->Unlock(); // Undo stuff bool isRedo = false; undo_state undoState = B_UNDO_UNAVAILABLE; BTextView *focusTextView = dynamic_cast<BTextView *>(CurrentFocus()); if (focusTextView != NULL) undoState = focusTextView->UndoState(&isRedo); fUndo->SetLabel((isRedo) ? kRedoStrings[undoState] : kUndoStrings[undoState]); fUndo->SetEnabled(undoState != B_UNDO_UNAVAILABLE); }