1 /* messages.h						-*- C++ -*-
2    $Id: messages.h,v 1.2 1997/10/18 04:57:40 elf Exp $
3 
4    written by Marc Singer
5    12 May 1997
6 
7    This file is part of the project XO.  See the file README for
8    more information.
9 
10    Copyright (C) 1997 Marc Singer
11 
12    This program is free software; you can redistribute it and/or
13    modify it under the terms of the GNU General Public License as
14    published by the Free Software Foundation; either version 2 of the
15    License, or (at your option) any later version.
16 
17    This program is distributed in the hope that it will be useful, but
18    WITHOUT ANY WARRANTY; without even the implied warranty of
19    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
20    General Public License for more details.
21 
22    You should have received a copy of the GNU General Public License
23    in a file called COPYING along with this program; if not, write to
24    the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA
25    02139, USA.
26 
27    -----------
28    DESCRIPTION
29    -----------
30 
31    We have some of our own messages to piggyback onto the core message
32    sending code.  We do this in a simple way.  We define message
33    identifiers that cannot practically collide with the protocol
34    messages.  We choose to avoid the X client message as it is best
35    suited to inter-application messaging which does not suit us.  Ours
36    is a more efficient mechanism.
37 
38 */
39 
40 #if !defined (__MESSAGES_H__)
41 #    define   __MESSAGES_H__
42 
43 /* ----- Includes */
44 
45 /* ----- Globals */
46 
47 #define FIRSTXoEventBase	0x8000
48 #define CreateSelfNotify	0x8001 // Notify to window that it is created
49 #define ChildNotify		0x8002 // Button notifying parent of event
50 
51 typedef struct {
52   int type;
53   unsigned long serial;		// We don't use this
54   Bool send_event;		// We always set this, only because it is true
55   Display* display;		// Display where child and this window reside
56   Window window;		// Window receiving the event
57 } XoAnyEvent;
58 
59 typedef struct {
60   int type;
61   unsigned long serial;		// We don't use this
62   Bool send_event;		// We always set this, only because it is true
63   Display* display;		// Display where child and this window reside
64   Window window;		// Window receiving the event
65 			// -- Event specific portion
66   Window parent;		// Parent that owns this window
67   void* pvParentData;		// Context pointer returned to parent on notify
68   int x, y;			// Window origin relative to parent
69   int width, height;		// Window extent
70   int border_width;		// I'm not sure if this is important
71 } XoCreateSelfWindowEvent;
72 
73 typedef struct {
74   int type;
75   unsigned long serial;		// We don't use this
76   Bool send_event;		// We always set this, only because it is true
77   Display* display;		// Display where child and this window reside
78   Window window;		// Window receiving the event
79 			// -- Event specific portion
80   LWindow* pWindowChild;	// Child window sending the event
81   void* pvParentData;		// Context pointer, a type of ID
82   int child_type;		// Child's event type, class specific
83   int rgData[4];		// Some data from the child
84 } XoChildNotifyEvent;
85 
86 typedef union {
87   int type;
88   XoAnyEvent xany;
89   XoCreateSelfWindowEvent xcreatewindow;
90   XoChildNotifyEvent xchildnotify;
91 } XoEvent;
92 
93 #endif  /* __MESSAGES_H__ */
94