/usr/share/doc/xviewg/examples/notifier/ntfy_do_dis.c is in xview-examples 3.2p1.4-28.1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | /*
* ntfy_do_dis.c -- show an example of implicit notifier dispatching
* by calling notify_do_dispatch(). Create a frame, panel and "Quit"
* button, and then loop on calls to read() from stdin. Event
* processing is still maintained because the Notifier uses it's own
* non-blocking read().
*/
#include <stdio.h>
#include <xview/xview.h>
#include <xview/frame.h>
#include <xview/panel.h>
Frame frame;
main (argc, argv)
int argc;
char *argv[];
{
Panel panel;
char buf[BUFSIZ];
int n, quit();
xv_init (XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL);
frame = (Frame)xv_create (NULL, FRAME,
FRAME_LABEL, argv[0],
XV_WIDTH, 200,
XV_HEIGHT, 100,
XV_SHOW, TRUE,
NULL);
panel = (Panel)xv_create (frame, PANEL, NULL);
(void) xv_create (panel, PANEL_BUTTON,
PANEL_LABEL_STRING, "Quit",
PANEL_NOTIFY_PROC, quit,
NULL);
/* Force the frame to be displayed by flushing the server */
XFlush((Display *)xv_get(frame, XV_DISPLAY));
/* tell the Notifier that it should use its own read() so that it
* can also detect and dispatch events. This allows us to loop
* in this code segment and still process events.
*/
notify_do_dispatch();
puts("Frame being displayed -- type away.");
while ((n = read(0, buf, sizeof buf)) >= 0)
printf("read %d bytes\n", n);
printf("read() returned %d\n", n);
}
int
quit()
{
xv_destroy_safe(frame);
return XV_OK;
}
|