示例#1
0
文件: imap_circle.c 项目: Minoos/gimp
static MoveSashFunc_t
circle_near_sash(Object_t *obj, gint x, gint y)
{
   Circle_t *circle = ObjectToCircle(obj);
   sash_x = x;
   sash_y = y;
   if (near_sash(circle->x - circle->r, circle->y - circle->r, x, y) ||
       near_sash(circle->x + circle->r, circle->y - circle->r, x, y) ||
       near_sash(circle->x - circle->r, circle->y + circle->r, x, y) ||
       near_sash(circle->x + circle->r, circle->y + circle->r, x, y))
      return move_sash;
   return NULL;
}
示例#2
0
static MoveSashFunc_t
rectangle_near_sash(Object_t *obj, gint x, gint y)
{
   Rectangle_t *rectangle = ObjectToRectangle(obj);
   if (near_sash(rectangle->x, rectangle->y, x, y))
      return MoveUpperLeftSash;
   else if (near_sash(rectangle->x + rectangle->width / 2, rectangle->y, x, y))
      return MoveUpperSash;
   else if (near_sash(rectangle->x + rectangle->width, rectangle->y, x, y))
      return MoveUpperRightSash;
   else if (near_sash(rectangle->x, rectangle->y + rectangle->height / 2,
                      x, y))
      return MoveLeftSash;
   else if (near_sash(rectangle->x + rectangle->width,
                      rectangle->y + rectangle->height / 2, x, y))
      return MoveRightSash;
   else if (near_sash(rectangle->x, rectangle->y + rectangle->height, x, y))
      return MoveLowerLeftSash;
   else if (near_sash(rectangle->x + rectangle->width / 2,
                      rectangle->y + rectangle->height, x, y))
      return MoveLowerSash;
   else if (near_sash(rectangle->x + rectangle->width,
                      rectangle->y + rectangle->height, x, y))
      return MoveLowerRightSash;
   return NULL;
}