OpenCores
URL https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [rtos/] [ecos-2.0/] [packages/] [services/] [gfx/] [mw/] [v2_0/] [src/] [demos/] [nanowm/] [nanowm.c] - Blame information for rev 174

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 27 unneback
/*
2
 * NanoWM - Window Manager for Nano-X
3
 *
4
 * Copyright (C) 2000 Greg Haerr <greg@censoft.com>
5
 * Copyright (C) 2000 Alex Holden <alex@linuxhacker.org>
6
 * Parts based on npanel.c Copyright (C) 1999 Alistair Riddoch.
7
 */
8
#include <stdio.h>
9
#include <stdlib.h>
10
#define MWINCLUDECOLORS
11
#include "nano-X.h"
12
/* Uncomment this if you want debugging output from this file */
13
/*#define DEBUG*/
14
 
15
#include "nanowm.h"
16
 
17
GR_SCREEN_INFO si;
18
 
19
#ifdef __ECOS
20
int nanowm_main(int argc, char *argv[])
21
#else
22
int main(int argc, char *argv[])
23
#endif
24
{
25
        GR_EVENT event;
26
        GR_WM_PROPERTIES props;
27
        win window;
28
 
29
        if(GrOpen() < 0) {
30
                fprintf(stderr, "Couldn't connect to Nano-X server!\n");
31
                exit(1);
32
        }
33
 
34
        /* pass errors through main loop, don't exit*/
35
        GrSetErrorHandler(NULL);
36
 
37
        GrGetScreenInfo(&si);
38
 
39
        /* add root window*/
40
        window.wid = GR_ROOT_WINDOW_ID;
41
        window.pid = GR_ROOT_WINDOW_ID;
42
        window.type = WINDOW_TYPE_ROOT;
43
        window.clientid = 1;
44
        window.sizing = GR_FALSE;
45
        window.active = 0;
46
        window.data = NULL;
47
        add_window(&window);
48
 
49
        GrSelectEvents(GR_ROOT_WINDOW_ID, GR_EVENT_MASK_CHLD_UPDATE);
50
 
51
        /* Set new root window background color*/
52
        props.flags = GR_WM_FLAGS_BACKGROUND;
53
        props.background = GrGetSysColor(GR_COLOR_DESKTOP);
54
        GrSetWMProperties(GR_ROOT_WINDOW_ID, &props);
55
 
56
        while(1) {
57
                GrGetNextEvent(&event);
58
 
59
                switch(event.type) {
60
                        case GR_EVENT_TYPE_ERROR:
61
                                printf("nanowm: error %d\n", event.error.code);
62
                                break;
63
                        case GR_EVENT_TYPE_EXPOSURE:
64
                                do_exposure(&event.exposure);
65
                                break;
66
                        case GR_EVENT_TYPE_BUTTON_DOWN:
67
                                do_button_down(&event.button);
68
                                break;
69
                        case GR_EVENT_TYPE_BUTTON_UP:
70
                                do_button_up(&event.button);
71
                                break;
72
                        case GR_EVENT_TYPE_MOUSE_ENTER:
73
                                do_mouse_enter(&event.general);
74
                                break;
75
                        case GR_EVENT_TYPE_MOUSE_EXIT:
76
                                do_mouse_exit(&event.general);
77
                                break;
78
                        case GR_EVENT_TYPE_MOUSE_POSITION:
79
                                do_mouse_moved(&event.mouse);
80
                                break;
81
                        case GR_EVENT_TYPE_KEY_DOWN:
82
                                do_key_down(&event.keystroke);
83
                                break;
84
                        case GR_EVENT_TYPE_KEY_UP:
85
                                do_key_up(&event.keystroke);
86
                                break;
87
                        case GR_EVENT_TYPE_FOCUS_IN:
88
                                do_focus_in(&event.general);
89
                                break;
90
                        case GR_EVENT_TYPE_CHLD_UPDATE:
91
                                do_update(&event.update);
92
                                break;
93
                        default:
94
                                fprintf(stderr, "Got unexpected event %d\n",
95
                                                                event.type);
96
                                break;
97
                }
98
        }
99
 
100
        GrClose();
101
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.