/** \file rect.h * \brief Header: rectangular class */ #ifndef MC__WIDGET_RECT_H #define MC__WIDGET_RECT_H /*** typedefs (not structures) and defined constants *********************************************/ #define RECT(x) ((WRect *)(x)) #define CONST_RECT(x) ((const WRect *)(x)) /*** enums ***************************************************************************************/ /*** structures declarations (and typedefs of structures) ****************************************/ struct WRect; typedef struct WRect WRect; struct WRect { int y; int x; int lines; int cols; }; /*** global variables defined in .c file *********************************************************/ /*** declarations of public functions ************************************************************/ WRect *rect_new (int y, int x, int lines, int cols); void rect_init (WRect * r, int y, int x, int lines, int cols); void rect_move (WRect * r, int dy, int dx); void rect_resize (WRect * r, int dl, int dc); void rect_grow (WRect * r, int dl, int dc); void rect_intersect (WRect * r, const WRect * r1); void rect_union (WRect * r, const WRect * r1); gboolean rects_are_overlapped (const WRect * r1, const WRect * r2); gboolean rects_are_equal (const WRect * r1, const WRect * r2); /*** inline functions ****************************************************************************/ #endif /* MC__WIDGET_RECT_H */