コード例 #1
0
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()));
}
コード例 #2
0
void mxHtmlWindow::OnCopy (wxCommandEvent & evt) {
	if (SelectionToText()=="") SelectAll();
	wxTheClipboard->Open();
	wxTheClipboard->SetData(new wxTextDataObject(SelectionToText()));
	wxTheClipboard->Close();
}