void EditHandler::ProcessUpdateUIEvent(wxWindow *owner, wxUpdateUIEvent &event) { LEditor *editor = dynamic_cast<LEditor*>(owner); if (event.GetId() == wxID_COPY || event.GetId() == XRCID("trim_trailing") || event.GetId() == XRCID("to_lower") || event.GetId() == XRCID("to_upper")) { event.Enable(editor); } else if (event.GetId() == wxID_CUT) { event.Enable(editor); } else if (event.GetId() == wxID_PASTE) { #ifdef __WXGTK__ event.Enable(editor); #else event.Enable(editor && editor->CanPaste()); #endif } else if (event.GetId() == wxID_UNDO) { event.Enable(editor && editor->CanUndo()); } else if (event.GetId() == wxID_REDO) { event.Enable(editor && editor->CanRedo()); } else if (event.GetId() == wxID_SELECTALL) { event.Enable(editor && editor->GetLength() > 0); } else if (event.GetId() == wxID_DUPLICATE || event.GetId() == wxID_DELETE) { event.Enable(true); } else { event.Enable(false); } event.Skip(false); }