private bool pointIsInThisObjectAux( cReportPaintObject paintObj, float x, float y, ref String sKey, ref csRptPaintRegionType regionType) { /* ByRef PaintObj As cReportPaintObject, * ByVal x As Single, * ByVal y As Single, * ByRef sKey As String, * Optional ByRef RegionType As csRptPaintRegionType */ const int C_WIDTH_REGION = 3; float yY = 0; float xX = 0; float top = 0; float height = 0; float width = 0; float left = 0; if (paintObj == null) { return false; } else { cReportAspect w_aspect = paintObj.getAspect(); left = w_aspect.getLeft(); width = w_aspect.getWidth(); top = w_aspect.getTop() - w_aspect.getOffset(); height = w_aspect.getHeight(); if (pointIsInRegion(left - C_WIDTH_REGION, top - C_WIDTH_REGION, left + width + C_WIDTH_REGION, top + height + C_WIDTH_REGION, x, y)) { sKey = paintObj.getKey(); yY = top + height / 2; yY = yY - C_WIDTH_REGION; xX = left + width / 2; xX = xX - C_WIDTH_REGION; // we need to know in which region it is // // body // if (pointIsInRegion(left + C_WIDTH_REGION, top + C_WIDTH_REGION, left + width - C_WIDTH_REGION, top + height - C_WIDTH_REGION, x, y)) { regionType = csRptPaintRegionType.CRPTPNTRGNTYPEBODY; } // Left else if (pointIsInRegion(left - C_WIDTH_REGION * 2, yY, left + C_WIDTH_REGION * 2, yY + C_WIDTH_REGION * 2, x, y)) { regionType = csRptPaintRegionType.CRPTPNTRGNTYPELEFT; } // Rigth else if (pointIsInRegion(left + width - C_WIDTH_REGION * 2, yY, left + width + C_WIDTH_REGION * 2, yY + C_WIDTH_REGION * 2, x, y)) { regionType = csRptPaintRegionType.CRPTPNTRGNTYPERIGHT; } // Up else if (pointIsInRegion(xX, top - C_WIDTH_REGION * 2, xX + C_WIDTH_REGION * 2, top + C_WIDTH_REGION * 2, x, y)) { regionType = csRptPaintRegionType.CRPTPNTRGNTYPEUP; } // Down else if (pointIsInRegion(xX, top + height - C_WIDTH_REGION * 2, xX + C_WIDTH_REGION * 2, top + height + C_WIDTH_REGION * 2, x, y)) { regionType = csRptPaintRegionType.CRPTPNTRGNTYPEDOWN; } // LeftUp else if (pointIsInRegion(left - C_WIDTH_REGION, top - C_WIDTH_REGION, left + C_WIDTH_REGION, top + C_WIDTH_REGION, x, y)) { regionType = csRptPaintRegionType.CRPTPNTRGNTYPELEFTUP; } // LeftDown else if (pointIsInRegion(left - C_WIDTH_REGION, top + height - C_WIDTH_REGION, left + C_WIDTH_REGION, top + height + C_WIDTH_REGION, x, y)) { regionType = csRptPaintRegionType.CRPTPNTRGNTYPELEFTDOWN; } // RigthUp else if (pointIsInRegion(left + width - C_WIDTH_REGION, top - C_WIDTH_REGION, left + width + C_WIDTH_REGION, top + C_WIDTH_REGION, x, y)) { regionType = csRptPaintRegionType.CRPTPNTRGNTYPERIGHTUP; } // RitgthDown else if (pointIsInRegion(left + width - C_WIDTH_REGION, top + height - C_WIDTH_REGION, left + width + C_WIDTH_REGION, top + height + C_WIDTH_REGION, x, y)) { regionType = csRptPaintRegionType.CRPTPNTRGNTYPERIGHTDOWN; } return true; } else { return false; } } }