From: Julian Smart Date: Mon, 2 Apr 2007 08:51:06 +0000 (+0000) Subject: Added mouse event handler invocations X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/db6634e0d53fce875c78a089f4237a88ae206335 Added mouse event handler invocations git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45212 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/richtext/richtextctrl.cpp b/src/richtext/richtextctrl.cpp index fd698b0ad0..37a98dcd6a 100644 --- a/src/richtext/richtextctrl.cpp +++ b/src/richtext/richtextctrl.cpp @@ -392,30 +392,39 @@ void wxRichTextCtrl::OnLeftUp(wxMouseEvent& event) if (hit != wxRICHTEXT_HITTEST_NONE) { - wxTextAttrEx attr; - if (GetStyle(position, attr)) + wxRichTextEvent cmdEvent( + 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 (!urlTarget.IsEmpty()) + if (attr.HasFlag(wxTEXT_ATTR_URL)) { - wxMouseEvent mouseEvent(event); - - long startPos = 0, endPos = 0; - wxRichTextObject* obj = GetBuffer().GetLeafObjectAtPosition(position); - if (obj) + wxString urlTarget = attr.GetURL(); + if (!urlTarget.IsEmpty()) { - startPos = obj->GetRange().GetStart(); - endPos = obj->GetRange().GetEnd(); + wxMouseEvent mouseEvent(event); + + 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 -void wxRichTextCtrl::OnRightClick(wxMouseEvent& event) +void wxRichTextCtrl::OnRightClick(wxMouseEvent& WXUNUSED(event)) { 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 -void wxRichTextCtrl::OnLeftDClick(wxMouseEvent& event) +void wxRichTextCtrl::OnLeftDClick(wxMouseEvent& WXUNUSED(event)) { - SelectWord(GetCaretPosition()+1); - event.Skip(); + wxRichTextEvent cmdEvent( + wxEVT_COMMAND_RICHTEXT_LEFT_DCLICK, + GetId()); + cmdEvent.SetEventObject(this); + cmdEvent.SetPosition(m_caretPosition+1); + + if (!GetEventHandler()->ProcessEvent(cmdEvent)) + { + SelectWord(GetCaretPosition()+1); + } } /// Middle-click 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