void iupdrvDrawLine(IdrawCanvas* dc, int x1, int y1, int x2, int y2, unsigned char r, unsigned char g, unsigned char b, int style) { GdkColor color; iupgdkColorSet(&color, r, g, b); gdk_gc_set_rgb_fg_color(dc->pixmap_gc, &color); iDrawSetLineStyle(dc, style); gdk_draw_line(dc->pixmap, dc->pixmap_gc, x1, y1, x2, y2); }
void iupdrvDrawLine(IdrawCanvas* dc, int x1, int y1, int x2, int y2, long color, int style, int line_width) { GdkColor c; iupgdkColorSet(&c, color); gdk_gc_set_rgb_fg_color(dc->pixmap_gc, &c); iDrawSetLineWidth(dc, line_width); iDrawSetLineStyle(dc, style); gdk_draw_line(dc->pixmap, dc->pixmap_gc, x1, y1, x2, y2); }
void iupdrvDrawPolygon(IdrawCanvas* dc, int* points, int count, unsigned char r, unsigned char g, unsigned char b, int style) { GdkColor color; iupgdkColorSet(&color, r, g, b); gdk_gc_set_rgb_fg_color(dc->pixmap_gc, &color); if (style!=IUP_DRAW_FILL) iDrawSetLineStyle(dc, style); gdk_draw_polygon(dc->pixmap, dc->pixmap_gc, style==IUP_DRAW_FILL, (GdkPoint*)points, count); }
void iupdrvDrawArc(IdrawCanvas* dc, int x1, int y1, int x2, int y2, double a1, double a2, unsigned char r, unsigned char g, unsigned char b, int style) { GdkColor color; iupgdkColorSet(&color, r, g, b); gdk_gc_set_rgb_fg_color(dc->pixmap_gc, &color); if (style!=IUP_DRAW_FILL) iDrawSetLineStyle(dc, style); gdk_draw_arc(dc->pixmap, dc->pixmap_gc, style == IUP_DRAW_FILL, x1, y1, x2 - x1 + 1, y2 - y1 + 1, iupRound(a1 * 64), iupRound((a2 - a1) * 64)); }
void iupdrvDrawRectangle(IdrawCanvas* dc, int x1, int y1, int x2, int y2, unsigned char r, unsigned char g, unsigned char b, int style) { GdkColor color; iupgdkColorSet(&color, r, g, b); gdk_gc_set_rgb_fg_color(dc->pixmap_gc, &color); if (style==IUP_DRAW_FILL) gdk_draw_rectangle(dc->pixmap, dc->pixmap_gc, TRUE, x1, y1, x2-x1+1, y2-y1+1); else { iDrawSetLineStyle(dc, style); gdk_draw_rectangle(dc->pixmap, dc->pixmap_gc, FALSE, x1, y1, x2-x1, y2-y1); /* outlined rectangle is actually of size w+1,h+1 */ } }
void iupdrvDrawPolygon(IdrawCanvas* dc, int* points, int count, long color, int style, int line_width) { GdkColor c; iupgdkColorSet(&c, color); gdk_gc_set_rgb_fg_color(dc->pixmap_gc, &c); if (style != IUP_DRAW_FILL) { iDrawSetLineWidth(dc, line_width); iDrawSetLineStyle(dc, style); } if (style == IUP_DRAW_FILL) gdk_draw_polygon(dc->pixmap, dc->pixmap_gc, TRUE, (GdkPoint*)points, count); else gdk_draw_lines(dc->pixmap, dc->pixmap_gc, (GdkPoint*)points, count); }
void iupdrvDrawArc(IdrawCanvas* dc, int x1, int y1, int x2, int y2, double a1, double a2, long color, int style, int line_width) { GdkColor c; iupgdkColorSet(&c, color); gdk_gc_set_rgb_fg_color(dc->pixmap_gc, &c); iupDrawCheckSwapCoord(x1, x2); iupDrawCheckSwapCoord(y1, y2); if (style != IUP_DRAW_FILL) { iDrawSetLineWidth(dc, line_width); iDrawSetLineStyle(dc, style); } /* using x2-x1+1 was resulting in a pixel larger arc */ gdk_draw_arc(dc->pixmap, dc->pixmap_gc, style == IUP_DRAW_FILL, x1, y1, x2 - x1, y2 - y1, iupRound(a1 * 64), iupRound((a2 - a1) * 64)); /* angle = 1/64ths of a degree */ }
void iupdrvDrawRectangle(IdrawCanvas* dc, int x1, int y1, int x2, int y2, long color, int style, int line_width) { GdkColor c; iupgdkColorSet(&c, color); gdk_gc_set_rgb_fg_color(dc->pixmap_gc, &c); iupDrawCheckSwapCoord(x1, x2); iupDrawCheckSwapCoord(y1, y2); if (style==IUP_DRAW_FILL) gdk_draw_rectangle(dc->pixmap, dc->pixmap_gc, TRUE, x1, y1, x2 - x1 + 1, y2 - y1 + 1); else { iDrawSetLineWidth(dc, line_width); iDrawSetLineStyle(dc, style); gdk_draw_rectangle(dc->pixmap, dc->pixmap_gc, FALSE, x1, y1, x2 - x1, y2 - y1); /* outlined rectangle is actually of size w+1,h+1 */ } }