update uwproj
[mizunara.git] / ui / motif / graphics.h
1 /*
2  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
3  *
4  * Copyright 2012 Olaf Wintermann. All rights reserved.
5  *
6  * Redistribution and use in source and binary forms, with or without
7  * modification, are permitted provided that the following conditions are met:
8  *
9  *   1. Redistributions of source code must retain the above copyright
10  *      notice, this list of conditions and the following disclaimer.
11  *
12  *   2. Redistributions in binary form must reproduce the above copyright
13  *      notice, this list of conditions and the following disclaimer in the
14  *      documentation and/or other materials provided with the distribution.
15  *
16  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
20  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
21  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
23  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
24  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
25  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
26  * POSSIBILITY OF SUCH DAMAGE.
27  */
28
29 #ifndef GRAPHICS_H
30 #define GRAPHICS_H
31
32 #include "../ui/graphics.h"
33 #include "toolkit.h"
34
35 #ifdef  __cplusplus
36 extern "C" {
37 #endif
38
39 typedef struct UiXlibGraphics {
40     UiGraphics g;
41     Display    *display;
42     Widget     widget;
43     Colormap   colormap;
44     GC         gc;
45 } UiXlibGraphics;
46
47 typedef struct UiDrawEvent {
48     ui_drawfunc    callback;
49     UiObject       *obj;
50     void           *userdata;
51     UiXlibGraphics gr;
52 } UiDrawEvent;
53
54 typedef struct UiMouseEventData {
55     UiObject    *obj;
56     ui_callback callback;
57     void        *userdata;
58     Time        last_event;
59 } UiMouseEventData;
60
61 struct UiTextLayout {
62     char     *text;
63     size_t   length;
64     Widget   widget;
65     XFontSet fontset;
66     int      maxwidth;
67     int      width;
68     int      height;
69     int      changed;
70 };
71
72
73 #ifdef  __cplusplus
74 }
75 #endif
76
77 #endif  /* GRAPHICS_H */
78