/*-*-C-*-
 * Grid
 */

/* Size of grid crosses, in OS-units.  The code ensures that these
 * are rounded up such that they represent an odd number of pixels
 */

#define GRID_POINT_WIDTH 14     /* should be an odd number */
#define GRID_POINT_HEIGHT 14    /* should be an odd number */

/* Default values for grid spacing and colour */

#define GRID_INT_X        28
#define GRID_INT_Y        28
#define GRID_SUB_X        4
#define GRID_SUB_Y        4
#define GRID_COLOUR       8
#define GRID_SHOW         FALSE
#define GRID_LOCK         FALSE

extern void grid_move_item (ResourcePtr res, ItemInfoPtr item, int deltax, int deltay);
extern void grid_snap_offset (ResourcePtr res, ItemInfoPtr item, RectPtr bbox, int *x, int *y);
extern void grid_init (ResourcePtr res);
extern void grid_draw (ResourcePtr res, RectPtr work);
extern void grid_snap_point (ResourcePtr res, PointPtr in, PointPtr out);
extern error * grid_load_prototypes (void);
extern error * grid_show_window (void);
extern error * grid_select (ResourcePtr res);
extern error * grid_retitle (ResourcePtr res);
extern error * grid_mouse_click (MouseClickPtr mouse, unsigned int modifiers);
extern error * grid_close_window (void);
extern error * grid_open_window (WindowPtr win);
extern error * grid_key_pressed (KeyPressPtr key, Bool *consumed);
extern ResourcePtr grid_current (void);
extern void grid_palette (void);
