Store widget instead of drawable in _Spiral

This commit is contained in:
Paul Dicker
2025-04-01 07:11:55 +02:00
committed by Stéphane Lesimple
parent 2cd769a958
commit 9effa298cd
2 changed files with 14 additions and 11 deletions

View File

@@ -1522,7 +1522,7 @@ void EndIterativeSmartLEC(void*);
***/ ***/
typedef struct _Spiral typedef struct _Spiral
{ GdkDrawable *drawable; { GtkWidget *widget;
int mx, my; int mx, my;
int startRadius; int startRadius;
int segmentSize; int segmentSize;

View File

@@ -73,8 +73,8 @@ void GuiSetSpiralWidget(Spiral *spiral, GtkWidget *widget)
{ GtkAllocation a = {0}; { GtkAllocation a = {0};
gtk_widget_get_allocation(widget, &a); gtk_widget_get_allocation(widget, &a);
if(!spiral->drawable) if(!spiral->widget)
{ spiral->drawable = gtk_widget_get_window(widget); { spiral->widget = widget;
spiral->mx = a.width/2; spiral->mx = a.width/2;
spiral->my = a.height/2; spiral->my = a.height/2;
} }
@@ -105,13 +105,15 @@ void GuiFillSpiral(Spiral *spiral, GdkColor *color)
*/ */
void GuiDrawSpiral(Spiral *spiral) void GuiDrawSpiral(Spiral *spiral)
{ double a; { GdkDrawable *d;
double a;
int xi0,yi0,xo0,yo0; int xi0,yi0,xo0,yo0;
double scale_i,scale_o; double scale_i,scale_o;
int i; int i;
GdkPoint points[4]; GdkPoint points[4];
if(!spiral->drawable) return; if(!spiral->widget) return;
d = gtk_widget_get_window(spiral->widget);
scale_i = spiral->startRadius; scale_i = spiral->startRadius;
scale_o = spiral->startRadius + spiral->segmentSize; scale_o = spiral->startRadius + spiral->segmentSize;
@@ -138,9 +140,9 @@ void GuiDrawSpiral(Spiral *spiral)
points[3].x = xi1; points[3].y = yi1; points[3].x = xi1; points[3].y = yi1;
gdk_gc_set_rgb_fg_color(Closure->drawGC, spiral->segmentColor[i]); gdk_gc_set_rgb_fg_color(Closure->drawGC, spiral->segmentColor[i]);
gdk_draw_polygon(spiral->drawable, Closure->drawGC, TRUE, points, 4); gdk_draw_polygon(d, Closure->drawGC, TRUE, points, 4);
gdk_gc_set_rgb_fg_color(Closure->drawGC, spiral->outline); gdk_gc_set_rgb_fg_color(Closure->drawGC, spiral->outline);
gdk_draw_polygon(spiral->drawable, Closure->drawGC, FALSE, points, 4); gdk_draw_polygon(d, Closure->drawGC, FALSE, points, 4);
xi0 = xi1; yi0 = yi1; xi0 = xi1; yi0 = yi1;
xo0 = xo1; yo0 = yo1; xo0 = xo1; yo0 = yo1;
@@ -152,7 +154,8 @@ void GuiDrawSpiral(Spiral *spiral)
*/ */
void GuiDrawSpiralSegment(Spiral *spiral, GdkColor *color, int segment) void GuiDrawSpiralSegment(Spiral *spiral, GdkColor *color, int segment)
{ double a; { GdkDrawable *d = gtk_widget_get_window(spiral->widget);
double a;
double scale_i,scale_o,ring_expand; double scale_i,scale_o,ring_expand;
GdkPoint points[4]; GdkPoint points[4];
@@ -183,9 +186,9 @@ void GuiDrawSpiralSegment(Spiral *spiral, GdkColor *color, int segment)
spiral->segmentColor[segment] = color; spiral->segmentColor[segment] = color;
gdk_gc_set_rgb_fg_color(Closure->drawGC, color); gdk_gc_set_rgb_fg_color(Closure->drawGC, color);
gdk_draw_polygon(spiral->drawable, Closure->drawGC, TRUE, points, 4); gdk_draw_polygon(d, Closure->drawGC, TRUE, points, 4);
gdk_gc_set_rgb_fg_color(Closure->drawGC, spiral->outline); gdk_gc_set_rgb_fg_color(Closure->drawGC, spiral->outline);
gdk_draw_polygon(spiral->drawable, Closure->drawGC, FALSE, points, 4); gdk_draw_polygon(d, Closure->drawGC, FALSE, points, 4);
} }
/* /*
@@ -194,7 +197,7 @@ void GuiDrawSpiralSegment(Spiral *spiral, GdkColor *color, int segment)
void GuiDrawSpiralLabel(Spiral *spiral, PangoLayout *layout, void GuiDrawSpiralLabel(Spiral *spiral, PangoLayout *layout,
char *text, GdkColor *color, int x, int line) char *text, GdkColor *color, int x, int line)
{ GdkDrawable *d = spiral->drawable; { GdkDrawable *d = gtk_widget_get_window(spiral->widget);
int w,h,y; int w,h,y;
GuiSetText(layout, text, &w, &h); GuiSetText(layout, text, &w, &h);