#ifndef _FontGridP_h_
#define _FontGridP_h_
#include "grid.h"
typedef struct _FontGridClassPart { int dummy; } FontGridClassPart;
typedef struct _FontGridClassRec {
CoreClassPart core_class;
SimpleClassPart simple_class;
FontGridClassPart grid_class;
} FontGridClassRec;
extern FontGridClassRec fontgridClassRec;
typedef struct _FontGridPart {
XFontStruct * text_font;
int cell_cols, cell_rows;
int cell_width, cell_height;
#ifndef XRENDER
Pixel foreground_pixel;
#endif
Pixel box_pixel;
Boolean center_chars;
Boolean box_chars;
XtCallbackList callbacks;
int internal_pad;
long start_char;
int grid_width;
GC text_gc;
GC box_gc;
int xoff, yoff;
#ifdef XRENDER
XftDraw *draw;
XftColor fg_color;
XftFont *text_face;
#endif
} FontGridPart;
typedef struct _FontGridRec {
CorePart core;
SimplePart simple;
FontGridPart fontgrid;
} FontGridRec;
#ifdef XRENDER
#define GridFontHeight(g) ((g)->fontgrid.text_face ? \
(g)->fontgrid.text_face->height : \
(g)->fontgrid.text_font ? \
(g)->fontgrid.text_font->ascent + \
(g)->fontgrid.text_font->descent : 1)
#define GridFontAscent(g) ((g)->fontgrid.text_face ? \
(g)->fontgrid.text_face->ascent : \
(g)->fontgrid.text_font ? \
(g)->fontgrid.text_font->ascent: 1)
#define GridFontWidth(g) ((g)->fontgrid.text_face ? \
(g)->fontgrid.text_face->max_advance_width : \
(g)->fontgrid.text_font ? \
(g)->fontgrid.text_font->max_bounds.width : 1)
#define GridForeground(g) ((g)->fontgrid.fg_color.pixel)
#else
#define GridFontHeight(g) ((g)->fontgrid.text_font->ascent + \
(g)->fontgrid.text_font->descent)
#define GridFontAscent(g) ((g)->fontgrid.text_font ? \
(g)->fontgrid.text_font->ascent: 1)
#define GridFontWidth(g) ((g)->fontgrid.text_font->max_bounds.width)
#define GridForeground(g) ((g)->fontgrid.foreground_pixel)
#endif
#define DefaultCellWidth(fgw) (GridFontWidth(fgw) \
+ ((fgw)->fontgrid.internal_pad * 2))
#define DefaultCellHeight(fgw) (GridFontHeight(fgw) + \
((fgw)->fontgrid.internal_pad * 2))
#define CellWidth(fgw) (((int)(fgw)->core.width - (fgw)->fontgrid.grid_width) \
/ (fgw)->fontgrid.cell_cols \
- (fgw)->fontgrid.grid_width)
#define CellHeight(fgw) (((int)(fgw)->core.height - (fgw)->fontgrid.grid_width)\
/ (fgw)->fontgrid.cell_rows \
- (fgw)->fontgrid.grid_width)
#endif