@Override
		public final void mouseWheelMoved(MouseWheelEvent e)
			{
				mouseWheelScrolled(e);

				// TODO make this mess better!
				TScrollBar scrollBar = null;
				double distanceToScrollBar = Double.MAX_VALUE;

				for (TComponent c : tComponents)
					{
						// If c is a TScrollBar
						if (c.getClass() == TScrollBar.class)
							{
								/*
								 * If ""nearestTScrollBar"" is null OR c is
								 * closer to the mouse then
								 * ""nearestTScrollBar"" set
								 * ""nearestTScrollBar"" to c.
								 */
								double distanceToC = Tools.getVectorLength(c.getNearestPoint(new TPoint(e.getPoint())), new TPoint(e.getPoint()));
								if (distanceToC < distanceToScrollBar)
									{
										scrollBar = (TScrollBar) c;
										distanceToScrollBar = distanceToC;
									}
							}
						/*
						 * If the mouse is over a TPanel send the event to the
						 * TPanel and stop searching for the nearest TScrollBar
						 */
						else if (c.getClass() == TMenu.class)
							{
								if (c.containsPoint(e.getPoint()))
									{
										distanceToScrollBar = 0;
										TMenu m = (TMenu) c;
										scrollBar = m.scrollBar;
									}
							}
					}
				scrollBar.mouseWheelMoved(e);
			}