Added mouse event handler invocations
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45212 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -392,30 +392,39 @@ void wxRichTextCtrl::OnLeftUp(wxMouseEvent& event)
|
|||||||
|
|
||||||
if (hit != wxRICHTEXT_HITTEST_NONE)
|
if (hit != wxRICHTEXT_HITTEST_NONE)
|
||||||
{
|
{
|
||||||
wxTextAttrEx attr;
|
wxRichTextEvent cmdEvent(
|
||||||
if (GetStyle(position, attr))
|
wxEVT_COMMAND_RICHTEXT_LEFT_CLICK,
|
||||||
|
GetId());
|
||||||
|
cmdEvent.SetEventObject(this);
|
||||||
|
cmdEvent.SetPosition(m_caretPosition+1);
|
||||||
|
|
||||||
|
if (!GetEventHandler()->ProcessEvent(cmdEvent))
|
||||||
{
|
{
|
||||||
if (attr.HasFlag(wxTEXT_ATTR_URL))
|
wxTextAttrEx attr;
|
||||||
|
if (GetStyle(position, attr))
|
||||||
{
|
{
|
||||||
wxString urlTarget = attr.GetURL();
|
if (attr.HasFlag(wxTEXT_ATTR_URL))
|
||||||
if (!urlTarget.IsEmpty())
|
|
||||||
{
|
{
|
||||||
wxMouseEvent mouseEvent(event);
|
wxString urlTarget = attr.GetURL();
|
||||||
|
if (!urlTarget.IsEmpty())
|
||||||
long startPos = 0, endPos = 0;
|
|
||||||
wxRichTextObject* obj = GetBuffer().GetLeafObjectAtPosition(position);
|
|
||||||
if (obj)
|
|
||||||
{
|
{
|
||||||
startPos = obj->GetRange().GetStart();
|
wxMouseEvent mouseEvent(event);
|
||||||
endPos = obj->GetRange().GetEnd();
|
|
||||||
|
long startPos = 0, endPos = 0;
|
||||||
|
wxRichTextObject* obj = GetBuffer().GetLeafObjectAtPosition(position);
|
||||||
|
if (obj)
|
||||||
|
{
|
||||||
|
startPos = obj->GetRange().GetStart();
|
||||||
|
endPos = obj->GetRange().GetEnd();
|
||||||
|
}
|
||||||
|
|
||||||
|
wxTextUrlEvent urlEvent(GetId(), mouseEvent, startPos, endPos);
|
||||||
|
InitCommandEvent(urlEvent);
|
||||||
|
|
||||||
|
urlEvent.SetString(urlTarget);
|
||||||
|
|
||||||
|
GetEventHandler()->ProcessEvent(urlEvent);
|
||||||
}
|
}
|
||||||
|
|
||||||
wxTextUrlEvent urlEvent(GetId(), mouseEvent, startPos, endPos);
|
|
||||||
InitCommandEvent(urlEvent);
|
|
||||||
|
|
||||||
urlEvent.SetString(urlTarget);
|
|
||||||
|
|
||||||
GetEventHandler()->ProcessEvent(urlEvent);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -495,23 +504,45 @@ void wxRichTextCtrl::OnMoveMouse(wxMouseEvent& event)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Right-click
|
/// Right-click
|
||||||
void wxRichTextCtrl::OnRightClick(wxMouseEvent& event)
|
void wxRichTextCtrl::OnRightClick(wxMouseEvent& WXUNUSED(event))
|
||||||
{
|
{
|
||||||
SetFocus();
|
SetFocus();
|
||||||
event.Skip();
|
|
||||||
|
wxRichTextEvent cmdEvent(
|
||||||
|
wxEVT_COMMAND_RICHTEXT_RIGHT_CLICK,
|
||||||
|
GetId());
|
||||||
|
cmdEvent.SetEventObject(this);
|
||||||
|
cmdEvent.SetPosition(m_caretPosition+1);
|
||||||
|
|
||||||
|
GetEventHandler()->ProcessEvent(cmdEvent);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Left-double-click
|
/// Left-double-click
|
||||||
void wxRichTextCtrl::OnLeftDClick(wxMouseEvent& event)
|
void wxRichTextCtrl::OnLeftDClick(wxMouseEvent& WXUNUSED(event))
|
||||||
{
|
{
|
||||||
SelectWord(GetCaretPosition()+1);
|
wxRichTextEvent cmdEvent(
|
||||||
event.Skip();
|
wxEVT_COMMAND_RICHTEXT_LEFT_DCLICK,
|
||||||
|
GetId());
|
||||||
|
cmdEvent.SetEventObject(this);
|
||||||
|
cmdEvent.SetPosition(m_caretPosition+1);
|
||||||
|
|
||||||
|
if (!GetEventHandler()->ProcessEvent(cmdEvent))
|
||||||
|
{
|
||||||
|
SelectWord(GetCaretPosition()+1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Middle-click
|
/// Middle-click
|
||||||
void wxRichTextCtrl::OnMiddleClick(wxMouseEvent& event)
|
void wxRichTextCtrl::OnMiddleClick(wxMouseEvent& event)
|
||||||
{
|
{
|
||||||
event.Skip();
|
wxRichTextEvent cmdEvent(
|
||||||
|
wxEVT_COMMAND_RICHTEXT_MIDDLE_CLICK,
|
||||||
|
GetId());
|
||||||
|
cmdEvent.SetEventObject(this);
|
||||||
|
cmdEvent.SetPosition(m_caretPosition+1);
|
||||||
|
|
||||||
|
if (!GetEventHandler()->ProcessEvent(cmdEvent))
|
||||||
|
event.Skip();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Key press
|
/// Key press
|
||||||
|
Reference in New Issue
Block a user