/* examples/canvas/taille.c */ #include He_node *princ, *panel1, *panel2, *canvas, *mess1; void princ_resize_proc (He_node *hn, int width, int height) { /* ajuste largeurs panels */ HeSetWidth (panel1, width); HeSetWidth (panel2, width); /* met le panel2 en bas */ HeJustify (panel2, NULL, HE_BOTTOM); /* le canvas prend toute la place disponible */ HeExpand (canvas, panel2, HE_BOTTOM); HeExpand (canvas, NULL, HE_RIGHT); } void canvas_resize_proc (He_node *hn, int width, int height) { char bla[100]; sprintf (bla, "Canvas %d x %d", width, height); HeSetMessageLabel (mess1, bla); } void butt_proc (He_node *hn) { HeQuit(0); } int main (int argc, char *argv[]) { HeInit (&argc, &argv); princ = HeCreateFrame(); HeSetFrameLabel (princ, "Canvas redimensionnée"); HeSetFrameResizeProc (princ, princ_resize_proc); panel1 = HeCreatePanel (princ); HeCreateButtonP (panel1, "Quit", butt_proc, NULL); HeFit(panel1); canvas = HeCreateCanvas (princ); HeJustify (canvas, panel1, HE_TOP); HeSetWidth (canvas, 300); HeSetHeight (canvas, 300); HeSetCanvasResizeProc (canvas, canvas_resize_proc); panel2 = HeCreatePanel (princ); HeJustify (panel2, canvas, HE_TOP); mess1 = HeCreateMessageP (panel2, NULL, FALSE); HeFit(panel2); HeFit (princ); return HeMainLoop (princ); }