void PrintableHtmlWindow::OnRightUp(wxMouseEvent& event) { wxMenu m; m.Append(wxID_NEW, _("&Open link in a new window")); m.Append(wxID_ADD, _("Open link in a new &tab")); m.Append(wxID_COPY, _("&Copy")); #ifdef _DEBUG m.AppendSeparator(); m.Append(CmdCopyAllHtml, _("Copy &HTML code")); #endif m.AppendSeparator(); m.Append(wxID_SAVE, _("&Save as HTML file...")); m.Append(wxID_PREVIEW, _("Print pre&view...")); m.Append(wxID_PRINT, _("&Print...")); bool isLink = false; if (m_Cell) // taken from wx's htmlwin.cpp { wxPoint pos = CalcUnscrolledPosition(event.GetPosition()); wxHtmlCell *cell = m_Cell->FindCellByPos(pos.x, pos.y); if (cell) { int ix = cell->GetPosX(); int iy = cell->GetPosY(); wxHtmlLinkInfo *i = cell->GetLink(pos.x-ix, pos.y-iy); if (i) { tempLinkM = i->GetHref(); isLink = true; } } } m.Enable(wxID_NEW, isLink); m.Enable(wxID_ADD, isLink); m.Enable(wxID_COPY, !SelectionToText().IsEmpty()); PopupMenu(&m, ScreenToClient(::wxGetMousePosition())); }
void mxHtmlWindow::OnCopy (wxCommandEvent & evt) { if (SelectionToText()=="") SelectAll(); wxTheClipboard->Open(); wxTheClipboard->SetData(new wxTextDataObject(SelectionToText())); wxTheClipboard->Close(); }