Mercurial > ecos
comparison packages/services/gfx/mw/current/src/demos/nanox/demo2.c @ 208:e0c0827131d1 ecos
Merge from eCos master repository on 2002-05-20-20:11:54-BST
| author | jlarmour |
|---|---|
| date | Mon, 20 May 2002 22:19:26 +0000 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| 207:74c807ddde34 | 208:e0c0827131d1 |
|---|---|
| 1 #define MWINCLUDECOLORS | |
| 2 #include <stdio.h> | |
| 3 #include "nano-X.h" | |
| 4 | |
| 5 #include <signal.h> | |
| 6 | |
| 7 int | |
| 8 main(int ac,char **av) | |
| 9 { | |
| 10 GR_WINDOW_ID w, w2; | |
| 11 GR_GC_ID gc; | |
| 12 GR_EVENT event; | |
| 13 GR_WM_PROPERTIES props; | |
| 14 | |
| 15 if (GrOpen() < 0) { | |
| 16 printf("Can't open graphics\n"); | |
| 17 exit(1); | |
| 18 } | |
| 19 | |
| 20 /* pass errors through main loop*/ | |
| 21 GrSetErrorHandler(NULL); | |
| 22 | |
| 23 #define WIDTH 320 | |
| 24 #define HEIGHT 240 | |
| 25 w = GrNewWindow(GR_ROOT_WINDOW_ID, 20, 20, WIDTH, HEIGHT, | |
| 26 0, GREEN, BLACK); | |
| 27 | |
| 28 w2 = GrNewWindow(w, 20, 20, 40, 40, 0, WHITE, BLACK); | |
| 29 | |
| 30 props.flags = GR_WM_FLAGS_PROPS | GR_WM_FLAGS_TITLE; | |
| 31 props.props = GR_WM_PROPS_NOBACKGROUND; | |
| 32 props.title = "Nano-X Demo2"; | |
| 33 GrSetWMProperties(w, &props); | |
| 34 | |
| 35 gc = GrNewGC(); | |
| 36 | |
| 37 GrSelectEvents(w, GR_EVENT_MASK_EXPOSURE | GR_EVENT_MASK_CLOSE_REQ | |
| 38 | GR_EVENT_MASK_BUTTON_DOWN | |
| 39 | GR_EVENT_MASK_KEY_DOWN | GR_EVENT_MASK_KEY_UP); | |
| 40 GrMapWindow(w); | |
| 41 GrSetFocus(w); | |
| 42 /* serious bug here: when wm running, w2 is mapped anyway!!*/ | |
| 43 /*GrMapWindow(w2);*/ | |
| 44 | |
| 45 for (;;) { | |
| 46 /*GR_EVENT_KEYSTROKE *kev;*/ | |
| 47 | |
| 48 GrGetNextEvent(&event); | |
| 49 switch (event.type) { | |
| 50 case GR_EVENT_TYPE_EXPOSURE: | |
| 51 GrSetGCForeground(gc,GrGetSysColor(GR_COLOR_APPWINDOW)); | |
| 52 GrFillRect(w, gc, event.exposure.x, event.exposure.y, | |
| 53 event.exposure.width, event.exposure.height); | |
| 54 GrSetGCForeground(gc, GrGetSysColor(GR_COLOR_APPTEXT)); | |
| 55 GrSetGCUseBackground(gc, GR_FALSE); | |
| 56 GrText(w, gc, 10, 30, "Hello World", -1, GR_TFASCII); | |
| 57 GrRect(w, gc, 5, 5, 300, 60); | |
| 58 break; | |
| 59 case GR_EVENT_TYPE_CLOSE_REQ: | |
| 60 GrClose(); | |
| 61 exit(0); | |
| 62 break; | |
| 63 case GR_EVENT_TYPE_ERROR: | |
| 64 printf("\7demo2: Error (%s) ", event.error.name); | |
| 65 printf(nxErrorStrings[event.error.code],event.error.id); | |
| 66 break; | |
| 67 #if 0 | |
| 68 case GR_EVENT_TYPE_BUTTON_DOWN: | |
| 69 /* test server error on bad syscall*/ | |
| 70 GrMapWindow(w2); | |
| 71 GrMoveWindow(GR_ROOT_WINDOW_ID, 0, 0); | |
| 72 { GR_SCREEN_INFO sinfo; GrGetScreenInfo(&sinfo); } | |
| 73 break; | |
| 74 #endif | |
| 75 #if 0 | |
| 76 case GR_EVENT_TYPE_KEY_DOWN: | |
| 77 kev = (GR_EVENT_KEYSTROKE *)&event; | |
| 78 printf("DOWN %d (%04x) %04x\n", | |
| 79 kev->ch, kev->ch, kev->modifiers); | |
| 80 break; | |
| 81 case GR_EVENT_TYPE_KEY_UP: | |
| 82 kev = (GR_EVENT_KEYSTROKE *)&event; | |
| 83 printf("UP %d (%04x) %04x\n", | |
| 84 kev->ch, kev->ch, kev->modifiers); | |
| 85 break; | |
| 86 #endif | |
| 87 } | |
| 88 } | |
| 89 | |
| 90 GrClose(); | |
| 91 return 0; | |
| 92 } |
