Refactor event sending code in wxGrid to use even more functions
Move the logic determining the return value of SendEvent() into its own function instead of repeating it twice. No real changes, this is a pure refactoring.
This commit is contained in:
@@ -97,6 +97,7 @@ class WXDLLIMPEXP_FWD_CORE wxGridCellAttr;
|
|||||||
class WXDLLIMPEXP_FWD_CORE wxGridCellAttrProviderData;
|
class WXDLLIMPEXP_FWD_CORE wxGridCellAttrProviderData;
|
||||||
class WXDLLIMPEXP_FWD_CORE wxGridColLabelWindow;
|
class WXDLLIMPEXP_FWD_CORE wxGridColLabelWindow;
|
||||||
class WXDLLIMPEXP_FWD_CORE wxGridCornerLabelWindow;
|
class WXDLLIMPEXP_FWD_CORE wxGridCornerLabelWindow;
|
||||||
|
class WXDLLIMPEXP_FWD_CORE wxGridEvent;
|
||||||
class WXDLLIMPEXP_FWD_CORE wxGridRowLabelWindow;
|
class WXDLLIMPEXP_FWD_CORE wxGridRowLabelWindow;
|
||||||
class WXDLLIMPEXP_FWD_CORE wxGridWindow;
|
class WXDLLIMPEXP_FWD_CORE wxGridWindow;
|
||||||
class WXDLLIMPEXP_FWD_CORE wxGridTypeRegistry;
|
class WXDLLIMPEXP_FWD_CORE wxGridTypeRegistry;
|
||||||
@@ -2552,8 +2553,11 @@ protected:
|
|||||||
bool Redimension( wxGridTableMessage& );
|
bool Redimension( wxGridTableMessage& );
|
||||||
|
|
||||||
|
|
||||||
// generate the appropriate grid event and return -1 if it was vetoed, 1 if
|
// Send the given grid event and return -1 if it was vetoed, 1 if
|
||||||
// it was processed (but not vetoed) and 0 if it wasn't processed
|
// it was processed (but not vetoed) and 0 if it wasn't processed.
|
||||||
|
int DoSendEvent(wxGridEvent& gridEvt);
|
||||||
|
|
||||||
|
// Generate an event of the given type and call DoSendEvent().
|
||||||
int SendEvent(wxEventType evtType,
|
int SendEvent(wxEventType evtType,
|
||||||
int row, int col,
|
int row, int col,
|
||||||
const wxMouseEvent& e);
|
const wxMouseEvent& e);
|
||||||
|
@@ -5293,16 +5293,27 @@ wxGrid::SendGridSizeEvent(wxEventType type,
|
|||||||
return GetEventHandler()->ProcessEvent(gridEvt);
|
return GetEventHandler()->ProcessEvent(gridEvt);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Generate a grid event based on a mouse event and return:
|
// Process the event and return
|
||||||
// -1 if the event was vetoed
|
// -1 if the event was vetoed
|
||||||
// +1 if the event was processed (but not vetoed)
|
// +1 if the event was processed (but not vetoed)
|
||||||
// 0 if the event wasn't handled
|
// 0 if the event wasn't handled
|
||||||
|
int wxGrid::DoSendEvent(wxGridEvent& gridEvt)
|
||||||
|
{
|
||||||
|
const bool claimed = GetEventHandler()->ProcessEvent(gridEvt);
|
||||||
|
|
||||||
|
// A Veto'd event may not be `claimed' so test this first
|
||||||
|
if ( !gridEvt.IsAllowed() )
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
return claimed ? 1 : 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Generate a grid event based on a mouse event and call DoSendEvent() with it.
|
||||||
int
|
int
|
||||||
wxGrid::SendEvent(wxEventType type,
|
wxGrid::SendEvent(wxEventType type,
|
||||||
int row, int col,
|
int row, int col,
|
||||||
const wxMouseEvent& mouseEv)
|
const wxMouseEvent& mouseEv)
|
||||||
{
|
{
|
||||||
bool claimed, vetoed;
|
|
||||||
|
|
||||||
if ( type == wxEVT_GRID_LABEL_LEFT_CLICK ||
|
if ( type == wxEVT_GRID_LABEL_LEFT_CLICK ||
|
||||||
type == wxEVT_GRID_LABEL_LEFT_DCLICK ||
|
type == wxEVT_GRID_LABEL_LEFT_DCLICK ||
|
||||||
@@ -5324,8 +5335,8 @@ wxGrid::SendEvent(wxEventType type,
|
|||||||
pos.y,
|
pos.y,
|
||||||
false,
|
false,
|
||||||
mouseEv);
|
mouseEv);
|
||||||
claimed = GetEventHandler()->ProcessEvent(gridEvt);
|
|
||||||
vetoed = !gridEvt.IsAllowed();
|
return DoSendEvent(gridEvt);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -5345,15 +5356,8 @@ wxGrid::SendEvent(wxEventType type,
|
|||||||
gridEvt.Veto();
|
gridEvt.Veto();
|
||||||
}
|
}
|
||||||
|
|
||||||
claimed = GetEventHandler()->ProcessEvent(gridEvt);
|
return DoSendEvent(gridEvt);
|
||||||
vetoed = !gridEvt.IsAllowed();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// A Veto'd event may not be `claimed' so test this first
|
|
||||||
if (vetoed)
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
return claimed ? 1 : 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Generate a grid event of specified type, return value same as above
|
// Generate a grid event of specified type, return value same as above
|
||||||
@@ -5364,13 +5368,7 @@ wxGrid::SendEvent(wxEventType type, int row, int col, const wxString& s)
|
|||||||
wxGridEvent gridEvt( GetId(), type, this, row, col );
|
wxGridEvent gridEvt( GetId(), type, this, row, col );
|
||||||
gridEvt.SetString(s);
|
gridEvt.SetString(s);
|
||||||
|
|
||||||
const bool claimed = GetEventHandler()->ProcessEvent(gridEvt);
|
return DoSendEvent(gridEvt);
|
||||||
|
|
||||||
// A Veto'd event may not be `claimed' so test this first
|
|
||||||
if ( !gridEvt.IsAllowed() )
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
return claimed ? 1 : 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxGrid::Refresh(bool eraseb, const wxRect* rect)
|
void wxGrid::Refresh(bool eraseb, const wxRect* rect)
|
||||||
|
Reference in New Issue
Block a user