ui/motif/graphics.c

changeset 120
49bc645df8b7
parent 119
d7a7fb79b5f7
equal deleted inserted replaced
119:d7a7fb79b5f7 120:49bc645df8b7
35 35
36 #include "container.h" 36 #include "container.h"
37 37
38 static void ui_drawingarea_expose(Widget widget, XtPointer u, XtPointer c) { 38 static void ui_drawingarea_expose(Widget widget, XtPointer u, XtPointer c) {
39 UiDrawEvent *drawevent = u; 39 UiDrawEvent *drawevent = u;
40 XmDrawingAreaCallbackStruct *cbs = (XmDrawingAreaCallbackStruct *)c; 40 //XmDrawingAreaCallbackStruct *cbs = (XmDrawingAreaCallbackStruct *)c;
41 XEvent *event = cbs->event; 41 //XEvent *event = cbs->event;
42 Display *dpy = XtDisplay(widget); 42 Display *dpy = XtDisplay(widget);
43 43
44 UiEvent ev; 44 UiEvent ev;
45 ev.obj = drawevent->obj; 45 ev.obj = drawevent->obj;
46 ev.window = drawevent->obj->window; 46 ev.window = drawevent->obj->window;
88 XtAddCallback( 88 XtAddCallback(
89 drawingarea, 89 drawingarea,
90 XmNexposeCallback, 90 XmNexposeCallback,
91 ui_drawingarea_expose, 91 ui_drawingarea_expose,
92 event); 92 event);
93
94 XtVaSetValues(drawingarea, XmNuserData, event, NULL);
93 } 95 }
94 96
95 XtManageChild(drawingarea); 97 XtManageChild(drawingarea);
96 return drawingarea; 98 return drawingarea;
97 } 99 }
135 XtAddCallback(widget, XmNinputCallback, ui_drawingarea_input, event); 137 XtAddCallback(widget, XmNinputCallback, ui_drawingarea_input, event);
136 } 138 }
137 } 139 }
138 140
139 void ui_drawingarea_getsize(UIWIDGET drawingarea, int *width, int *height) { 141 void ui_drawingarea_getsize(UIWIDGET drawingarea, int *width, int *height) {
140 // TODO 142 XtVaGetValues(
143 drawingarea,
144 XmNwidth,
145 width,
146 XmNheight,
147 height,
148 NULL);
141 } 149 }
142 150
143 void ui_drawingarea_redraw(UIWIDGET drawingarea) { 151 void ui_drawingarea_redraw(UIWIDGET drawingarea) {
144 XClearArea(XtDisplay(drawingarea), drawingarea->core.window, 0, 0, drawingarea->core.width, drawingarea->core.height, True); 152 //XClearArea(XtDisplay(drawingarea), drawingarea->core.window, 0, 0, drawingarea->core.width, drawingarea->core.height, True);
145 153 UiDrawEvent *event;
154 XtVaGetValues(drawingarea, XmNuserData, &event, NULL);
155 ui_drawingarea_expose(drawingarea, event, NULL);
146 } 156 }
147 157
148 158
149 /* -------------------- text layout functions -------------------- */ 159 /* -------------------- text layout functions -------------------- */
150 UiTextLayout* ui_text(UiGraphics *g) { 160 UiTextLayout* ui_text(UiGraphics *g) {

mercurial