| 1 #include <stdio.h> |
|
| 2 #include <stdlib.h> |
|
| 3 |
|
| 4 #include "graphics.h" |
|
| 5 #include "container.h" |
|
| 6 #include "../../ucx/mempool.h" |
|
| 7 #include "../common/context.h" |
|
| 8 #include "../common/object.h" |
|
| 9 |
|
| 10 UIWIDGET ui_drawingarea(UiObject *obj, ui_drawfunc f, void *userdata) { |
|
| 11 UiDrawEvent *eventdata = NULL; |
|
| 12 ui_draw_callback cb = NULL; |
|
| 13 if(f) { |
|
| 14 eventdata = malloc(sizeof(UiDrawEvent)); |
|
| 15 eventdata->obj = obj; |
|
| 16 eventdata->draw = f; |
|
| 17 eventdata->userdata = userdata; |
|
| 18 cb = ui_draw_event; |
|
| 19 } |
|
| 20 |
|
| 21 UiContainer *container = uic_get_current_container(obj); |
|
| 22 return UIdrawingarea(container, cb, eventdata); |
|
| 23 } |
|
| 24 |
|
| 25 void ui_draw_event(void *gc, UiDrawEvent *event, int width, int height) { |
|
| 26 UiEvent e; |
|
| 27 e.obj = event->obj; |
|
| 28 e.window = e.obj->window; |
|
| 29 e.document = e.obj->ctx->document; |
|
| 30 e.eventdata = NULL; |
|
| 31 e.intval = 0; |
|
| 32 |
|
| 33 UiWPFGraphics g; |
|
| 34 g.g.width = width; |
|
| 35 g.g.height = height; |
|
| 36 g.gc = gc; |
|
| 37 |
|
| 38 event->draw(&e, &g.g, event->userdata); |
|
| 39 } |
|
| 40 |
|
| 41 |
|
| 42 void ui_drawingarea_mousehandler(UiObject *obj, UIWIDGET widget, ui_callback f, void *u) { |
|
| 43 |
|
| 44 } |
|
| 45 |
|
| 46 void ui_drawingarea_getsize(UIWIDGET drawingarea, int *width, int *height) { |
|
| 47 |
|
| 48 } |
|
| 49 |
|
| 50 void ui_drawingarea_redraw(UIWIDGET drawingarea) { |
|
| 51 UIdrawingarea_redraw(drawingarea); |
|
| 52 } |
|
| 53 |
|
| 54 |
|
| 55 /* ------------------------- drawing functions ------------------------- */ |
|
| 56 |
|
| 57 void ui_graphics_color(UiGraphics *g, int red, int green, int blue) { |
|
| 58 UiWPFGraphics *wg = (UiWPFGraphics*)g; |
|
| 59 UIgraphics_color(wg->gc, red, green, blue); |
|
| 60 } |
|
| 61 |
|
| 62 void ui_draw_line(UiGraphics *g, int x1, int y1, int x2, int y2) { |
|
| 63 UiWPFGraphics *wg = (UiWPFGraphics*)g; |
|
| 64 UIdraw_line(wg->gc, x1, y1, x2, y2); |
|
| 65 } |
|
| 66 |
|
| 67 void ui_draw_rect(UiGraphics *g, int x, int y, int w, int h, int fill) { |
|
| 68 UiWPFGraphics *wg = (UiWPFGraphics*)g; |
|
| 69 UIdraw_rect(wg->gc, x, y, w, h, fill); |
|
| 70 } |
|
| 71 |
|
| 72 void ui_draw_text(UiGraphics *g, int x, int y, UiTextLayout *text) { |
|
| 73 |
|
| 74 } |
|