/* * Sample XView Program, Version 2 * - creates window frame * - adds control panel with two buttons * - adds text sub-window */ #include <xview/xview.h> #include <xview/textsw.h> #include <xview/panel.h> /* * fixed literal string, inserted into text * sub-window */ char *heyyou = "Hey, you!\n"; /* * handle for the text sub-window */ Textsw textpane; /* * Callback function for the "Insert String" * button */ void insert_string(Panel_item item, Event *event) { textsw_insert(textpane, heyyou, strlen(heyyou)); } /* * Callback function for the "Clear Window" * button */ void clear_window(Panel_item item, Event *event) { textsw_reset(textpane, 0, 0); } /* * Mainline for sample program, version 2 */ void main(int argc, char *argv[]) { Frame frame; Panel panel; /* * let XView scan command-line arguments */ xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, &argv, NULL); /* create a top level frame */ frame = (Frame)xv_create(XV_NULL, FRAME, FRAME_LABEL, argv[0], XV_WIDTH, 300, XV_HEIGHT, 200, NULL); /* add a control panel to the frame */ panel = (Panel)xv_create(frame, PANEL, XV_X, 0, XV_Y, 0, XV_WIDTH, WIN_EXTEND_TO_EDGE, XV_HEIGHT, 30, WIN_BORDER, FALSE, NULL); /* add a button to the control panel */ (void)xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Insert String", PANEL_NOTIFY_PROC, insert_string, NULL); /* add another button to the control panel */ (void)xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Clear Window", PANEL_NOTIFY_PROC, clear_window, NULL); /* add the text sub-window to the frame */ textpane = xv_create(frame, TEXTSW, NULL); /* * let XView handle all events for us */ xv_main_loop(frame); exit(0); }