Ejemplo n.º 1
0
static error click_walk(treeview_t    *tr,
                       int             depth,
                       int             x,
                       int             y,
                       ntree_t        *t,
                       connector_flags flags,
                       int             index,
                       txtfmt_t       *tx,
                       int             height,
                       void           *opaque)
{
  treeview_click_data *data = opaque;
  os_box               box;

  NOT_USED(tr);
  NOT_USED(t);
  NOT_USED(flags);
  NOT_USED(index);
  NOT_USED(tx);
  NOT_USED(height);

  /* hit detect */

  box.x0 = x + depth * tr->line_height;
  box.y0 = y;
  box.x1 = box.x0 + tr->line_height;
  box.y1 = box.y0 + tr->line_height;

  if (box_contains_point(&box, data->x, data->y))
    /* exiting here means that tr->walk.x and y are valid */
    return error_TREEVIEW_FOUND;
  else
    return error_OK;
}
Ejemplo n.º 2
0
char primitive_contains_point(PRIMITIVE *primitive, FPOINT *point)
{
    if (primitive == NULL || point == NULL)
        return 0;

    if (!box_contains_point(&primitive->bounding_box, point->x, point->y))
        return 0;

    if (polygon_contains_point(primitive->points, primitive->size, point->x, point->y))
        return 1;

    return 0;
}