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:
Julian Smart
2007-04-02 08:51:06 +00:00
parent c730fa076c
commit db6634e0d5

View File

@@ -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