code: public Area getArea(int absLeft, int absTop, int offset) {
  
          if (isOverElement(absLeft, absTop)) {
              if (absLeft < (m_left + 10)) {
                  // left border
                  if (absTop < (m_top + offset)) {
                      // top left corner
                      return Area.CORNER_TOP_LEFT;
                  } else if (absTop > ((m_top + m_height) - offset)) {
                      // bottom left corner
                      return Area.CORNER_BOTTOM_LEFT;
                  }
                  return Area.BORDER_LEFT;
              }
              if (absLeft > ((m_left + m_width) - offset)) {
                  // right border
                  if (absTop < (m_top + offset)) {
                      // top right corner
                      return Area.CORNER_TOP_RIGHT;
                      // fixing opposite corner
                  } else if (absTop > ((m_top + m_height) - offset)) {
                      // bottom right corner
                      return Area.CORNER_BOTTOM_RIGHT;
                      // fixing opposite corner
                  }
                  return Area.BORDER_RIGHT;
              }
              if (absTop < (m_top + offset)) {
                  // border top
                  return Area.BORDER_TOP;
              } else if (absTop > ((m_top + m_height) - offset)) {
                  // border bottom
                  return Area.BORDER_BOTTOM;
              }
              return Area.CENTER;
          }
          return null;
      }
docs: Returns over which area of this the given position is. Will return <code>null</code> if the provided position is not within this position.<p>
  
  @param absLeft the left position
  @param absTop the right position
  @param offset the border offset
  
  @return the area