As I didn't find any clean solution (one which would work for all buttons without having to duplicate all icons), I did as suggested by Alexander :
button.addSelectionListener(new SelectionListener() {
public void widgetDefaultSelected(SelectionEvent e) {
}
public void widgetSelected(SelectionEvent e) {
button.setImage(button.getSelection() ? pushedIcon : icon);
...
}
});
It looks like this :
On computers with bad color settings (e.g. grey for selection), this will be an improvement.