ui/gtk/draw_cairo.c

changeset 112
c3f2f16fa4b8
parent 44
473954dc6b74
--- a/ui/gtk/draw_cairo.c	Sat Oct 04 14:54:25 2025 +0200
+++ b/ui/gtk/draw_cairo.c	Sun Oct 19 21:20:08 2025 +0200
@@ -35,29 +35,29 @@
 
 
 #if GTK_MAJOR_VERSION >= 3
-static void ui_drawingarea_draw(
-        GtkDrawingArea *area,
-        cairo_t *cr,
-        int width,
-        int height,
-        gpointer data)
-{
+void ui_drawingarea_draw(UiDrawingArea *drawingarea, cairo_t *cr, int width, int height) {
     UiCairoGraphics g;
     g.g.width = width;
     g.g.height = height;
-    g.widget = GTK_WIDGET(area);
+    g.widget = drawingarea->widget;;
     g.cr = cr;
     
-    UiDrawEvent *event = data;
-    UiEvent ev;
-    ev.obj = event->obj;
-    ev.window = event->obj->window;
-    ev.document = event->obj->ctx->document;
+    UiEvent event;
+    event.obj = drawingarea->obj;
+    event.window = event.obj->window;
+    event.document = event.obj->ctx->document;
+    event.eventdata = NULL;
+    event.eventdatatype = 0;
+    event.intval = 0;
+    event.set = 0;
     
-    event->callback(&ev, &g.g, event->userdata);
+    if(drawingarea->draw) {
+        drawingarea->draw(&event, &g.g, drawingarea->drawdata);
+    }
 }
 #endif
 
+/*
 #if UI_GTK3
 gboolean ui_drawingarea_expose(GtkWidget *w, cairo_t *cr, void *data) {
     int width = gtk_widget_get_allocated_width(w);
@@ -85,9 +85,11 @@
     return FALSE;
 }
 #endif
+*/
 
 // function from graphics.h
 
+/*
 void ui_connect_draw_handler(GtkWidget *widget, UiDrawEvent *event) {
 #if GTK_MAJOR_VERSION >= 4
     gtk_drawing_area_set_draw_func(GTK_DRAWING_AREA(widget), ui_drawingarea_draw, event, NULL);
@@ -103,7 +105,7 @@
             event);
 #endif
 }
-
+*/
 
 PangoContext *ui_get_pango_context(UiGraphics *g) {
     UiCairoGraphics *gr = (UiCairoGraphics*)g;
@@ -130,7 +132,7 @@
     cairo_stroke(gr->cr);
 }
 
-void ui_draw_rect(UiGraphics *g, int x, int y, int w, int h, int fill) {
+void ui_draw_rect(UiGraphics *g, int x, int y, int w, int h, UiBool fill) {
     UiCairoGraphics *gr = (UiCairoGraphics*)g;
     cairo_set_line_width(gr->cr, 1);
     cairo_rectangle(gr->cr, x + 0.5, y + 0.5 , w, h);

mercurial