> How do we get a list of all selected objects on the canvas right now ?

How about something like desktop->selection->itemList() ?
If in doubt, search in the code for something like "selection" you will find lots of examples - including a selection class (src/selection.h) and many selection helper functions (src/selection-chemistry.h).