/* examples/canvas/drawstring.c */ #include He_node *princ, *canvas; int rouge; void init_couleurs () { rouge = HeAllocRgb (255, 0, 0, he_black); } void dessin_ligne (Window win, int x1, int y1, int x2, int y2, int c) { XSetForeground (he_display, he_gc, c); XDrawLine (he_display, win, he_gc, x1, y1, x2, y2); } void dessin_string (Window win, int x, int y, int pos, char *ligne) { dessin_ligne (win, x-20,y,x+20,y, rouge); dessin_ligne (win, x,y-20,x,y+20, rouge); XSetForeground (he_display, he_gc, he_black); HeDrawStringPos (win, he_gc, he_normal_font, x, y, pos, ligne); } void canvas_repaint (He_node *hn, Window win) { dessin_string (win, 50, 50, HE_TOP_LEFT, "TopLeft"); dessin_string (win, 300, 50, HE_TOP_MIDDLE, "TopMiddle"); dessin_string (win, 550, 50, HE_TOP_RIGHT, "TopRight"); dessin_string (win, 50, 150, HE_BASE_LEFT, "BaseLeft"); dessin_string (win, 300, 150, HE_BASE_MIDDLE, "BaseMiddle"); dessin_string (win, 550, 150, HE_BASE_RIGHT, "BaseRight"); dessin_string (win, 50, 250, HE_BOTTOM_LEFT, "BottomLeft"); dessin_string (win, 300, 250, HE_BOTTOM_MIDDLE, "BottomMiddle"); dessin_string (win, 550, 250, HE_BOTTOM_RIGHT, "BottomRight"); } int main (int argc, char *argv[]) { HeInit (&argc, &argv); princ = HeCreateFrame(); HeSetFrameLabel (princ, "HeDrawStringPos"); canvas = HeCreateCanvas (princ); HeSetCanvasRepaintProc (canvas, canvas_repaint); init_couleurs (); HeSetWidth (canvas, 600); HeSetHeight (canvas, 300); HeFit (princ); return HeMainLoop (princ); }