Kaydet (Commit) 700bcdbd authored tarafından Jochen Nitschke's avatar Jochen Nitschke

sc: replace REGISTER_..._EVENT macros with lambdas

Change-Id: Ie4aef0c2e5cb89626e3549599b055a1d3ce4054b
Reviewed-on: https://gerrit.libreoffice.org/27506Tested-by: 's avatarJenkins <ci@libreoffice.org>
Reviewed-by: 's avatarJochen Nitschke <j.nitschke+logerrit@ok.de>
üst 219a4707
...@@ -528,47 +528,44 @@ ScVbaEventsHelper::ScVbaEventsHelper( const uno::Sequence< uno::Any >& rArgs, co ...@@ -528,47 +528,44 @@ ScVbaEventsHelper::ScVbaEventsHelper( const uno::Sequence< uno::Any >& rArgs, co
if( !mxModel.is() || !mpDocShell || !mpDoc ) if( !mxModel.is() || !mpDocShell || !mpDoc )
return; return;
#define REGISTER_EVENT( eventid, moduletype, classname, eventname, cancelindex, worksheet ) \
registerEventHandler( eventid, moduletype, classname "_" eventname, cancelindex, uno::Any( worksheet ) )
#define REGISTER_AUTO_EVENT( eventid, eventname ) \
REGISTER_EVENT( AUTO_##eventid, script::ModuleType::NORMAL, "Auto", eventname, -1, false )
#define REGISTER_WORKBOOK_EVENT( eventid, eventname, cancelindex ) \
REGISTER_EVENT( WORKBOOK_##eventid, script::ModuleType::DOCUMENT, "Workbook", eventname, cancelindex, false )
#define REGISTER_WORKSHEET_EVENT( eventid, eventname, cancelindex ) \
REGISTER_EVENT( WORKSHEET_##eventid, script::ModuleType::DOCUMENT, "Worksheet", eventname, cancelindex, true ); \
REGISTER_EVENT( (USERDEFINED_START + WORKSHEET_##eventid), script::ModuleType::DOCUMENT, "Workbook", "Sheet" eventname, (((cancelindex) >= 0) ? ((cancelindex) + 1) : -1), false )
// global // global
REGISTER_AUTO_EVENT( OPEN, "Open" ); auto registerAutoEvent = [this](sal_Int32 nID, const sal_Char* sName)
REGISTER_AUTO_EVENT( CLOSE, "Close" ); { registerEventHandler(nID, script::ModuleType::NORMAL, (OString("Auto_").concat(sName)).getStr(), -1, uno::Any(false)); };
registerAutoEvent(AUTO_OPEN, "Open");
registerAutoEvent(AUTO_CLOSE, "Close");
// Workbook // Workbook
REGISTER_WORKBOOK_EVENT( ACTIVATE, "Activate", -1 ); auto registerWorkbookEvent = [this](sal_Int32 nID, const sal_Char* sName, sal_Int32 nCancelIndex)
REGISTER_WORKBOOK_EVENT( DEACTIVATE, "Deactivate", -1 ); { registerEventHandler(nID, script::ModuleType::DOCUMENT, (OString("Workbook_").concat(sName)).getStr(), nCancelIndex, uno::Any(false)); };
REGISTER_WORKBOOK_EVENT( OPEN, "Open", -1 ); registerWorkbookEvent( WORKBOOK_ACTIVATE, "Activate", -1 );
REGISTER_WORKBOOK_EVENT( BEFORECLOSE, "BeforeClose", 0 ); registerWorkbookEvent( WORKBOOK_DEACTIVATE, "Deactivate", -1 );
REGISTER_WORKBOOK_EVENT( BEFOREPRINT, "BeforePrint", 0 ); registerWorkbookEvent( WORKBOOK_OPEN, "Open", -1 );
REGISTER_WORKBOOK_EVENT( BEFORESAVE, "BeforeSave", 1 ); registerWorkbookEvent( WORKBOOK_BEFORECLOSE, "BeforeClose", 0 );
REGISTER_WORKBOOK_EVENT( AFTERSAVE, "AfterSave", -1 ); registerWorkbookEvent( WORKBOOK_BEFOREPRINT, "BeforePrint", 0 );
REGISTER_WORKBOOK_EVENT( NEWSHEET, "NewSheet", -1 ); registerWorkbookEvent( WORKBOOK_BEFORESAVE, "BeforeSave", 1 );
REGISTER_WORKBOOK_EVENT( WINDOWACTIVATE, "WindowActivate", -1 ); registerWorkbookEvent( WORKBOOK_AFTERSAVE, "AfterSave", -1 );
REGISTER_WORKBOOK_EVENT( WINDOWDEACTIVATE, "WindowDeactivate", -1 ); registerWorkbookEvent( WORKBOOK_NEWSHEET, "NewSheet", -1 );
REGISTER_WORKBOOK_EVENT( WINDOWRESIZE, "WindowResize", -1 ); registerWorkbookEvent( WORKBOOK_WINDOWACTIVATE, "WindowActivate", -1 );
registerWorkbookEvent( WORKBOOK_WINDOWDEACTIVATE, "WindowDeactivate", -1 );
registerWorkbookEvent( WORKBOOK_WINDOWRESIZE, "WindowResize", -1 );
// Worksheet events. All events have a corresponding workbook event. // Worksheet events. All events have a corresponding workbook event.
REGISTER_WORKSHEET_EVENT( ACTIVATE, "Activate", -1 ); auto registerWorksheetEvent = [this](sal_Int32 nID, const sal_Char* sName, sal_Int32 nCancelIndex)
REGISTER_WORKSHEET_EVENT( DEACTIVATE, "Deactivate", -1 ); {
REGISTER_WORKSHEET_EVENT( BEFOREDOUBLECLICK, "BeforeDoubleClick", 1 ); registerEventHandler(nID, script::ModuleType::DOCUMENT, (OString("Worksheet_").concat(sName)).getStr(),
REGISTER_WORKSHEET_EVENT( BEFORERIGHTCLICK, "BeforeRightClick", 1 ); nCancelIndex, uno::Any(true));
REGISTER_WORKSHEET_EVENT( CALCULATE, "Calculate", -1 ); registerEventHandler(USERDEFINED_START + nID, script::ModuleType::DOCUMENT,
REGISTER_WORKSHEET_EVENT( CHANGE, "Change", -1 ); (OString("Workbook_Worksheet").concat(sName)).getStr(),
REGISTER_WORKSHEET_EVENT( SELECTIONCHANGE, "SelectionChange", -1 ); ((nCancelIndex >= 0) ? (nCancelIndex + 1) : -1), uno::Any(false));
REGISTER_WORKSHEET_EVENT( FOLLOWHYPERLINK, "FollowHyperlink", -1 ); };
registerWorksheetEvent( WORKSHEET_ACTIVATE, "Activate", -1 );
#undef REGISTER_WORKSHEET_EVENT registerWorksheetEvent( WORKSHEET_DEACTIVATE, "Deactivate", -1 );
#undef REGISTER_WORKBOOK_EVENT registerWorksheetEvent( WORKSHEET_BEFOREDOUBLECLICK, "BeforeDoubleClick", 1 );
#undef REGISTER_AUTO_EVENT registerWorksheetEvent( WORKSHEET_BEFORERIGHTCLICK, "BeforeRightClick", 1 );
#undef REGISTER_EVENT registerWorksheetEvent( WORKSHEET_CALCULATE, "Calculate", -1 );
registerWorksheetEvent( WORKSHEET_CHANGE, "Change", -1 );
registerWorksheetEvent( WORKSHEET_SELECTIONCHANGE, "SelectionChange", -1 );
registerWorksheetEvent( WORKSHEET_FOLLOWHYPERLINK, "FollowHyperlink", -1 );
} }
ScVbaEventsHelper::~ScVbaEventsHelper() ScVbaEventsHelper::~ScVbaEventsHelper()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment