public boolean onMouseMoved(MouseEvent e) {
		// check for a rollover effect
		SmartIconJButton btn = findButtonAt(e.getPoint());
		boolean shouldRepaint = false;
		if(btn != null) {
			String tip = btn.getTooltipText();
			if(tip != null) {
				if(! tip.equals(localTooltipText)) {
					this.localTooltipText = tip;
					shouldRepaint = true;
				}
			} else if(localTooltipText != tooltipText) {
				this.localTooltipText = tooltipText;
				shouldRepaint = true;
			}
			if(btn == rolloverButton) {
				// still on the same button
			} else {
				// another button
				if(rolloverButton != null) {
					rolloverButton.setRollover(false);
				}
				rolloverButton = btn;
				rolloverButton.setRollover(true);
				shouldRepaint = true;
			}
		} else if(rolloverButton != null) {
			rolloverButton.setRollover(false);
			rolloverButton = null;
			localTooltipText = tooltipText;
			shouldRepaint = true;
		}

		return shouldRepaint;
	}