/* Compares two fonts for equality. Single fonts compare equal if they have the same X font ID. This operation does not currently work correctly for fontsets. */ int clip_GDK_FONTEQUAL(ClipMachine * cm) { C_object *cfont = _fetch_co_arg(cm); C_object *cfont2 = _fetch_cobject(cm,_clip_spar(cm,2)); CHECKCOBJ(cfont,GDK_IS_FONT(cfont)); CHECKARG2(2,MAP_t,NUMERIC_t); CHECKCOBJ(cfont2,cfont2->type==GDK_OBJECT_FONT); _clip_retl(cm,gdk_font_equal(GDK_FONT(cfont->object), GDK_FONT(cfont2->object))); return 0; err: return 1; }
static gint gtk_gc_key_compare (gpointer a, gpointer b) { GtkGCKey *akey; GtkGCKey *bkey; GdkGCValues *avalues; GdkGCValues *bvalues; akey = a; bkey = b; avalues = &akey->values; bvalues = &bkey->values; if (akey->mask != bkey->mask) return FALSE; if (akey->depth != bkey->depth) return FALSE; if (akey->colormap != bkey->colormap) return FALSE; if (akey->mask & GDK_GC_FOREGROUND) { if (avalues->foreground.pixel != bvalues->foreground.pixel) return FALSE; } if (akey->mask & GDK_GC_BACKGROUND) { if (avalues->background.pixel != bvalues->background.pixel) return FALSE; } if (akey->mask & GDK_GC_FONT) { if (!gdk_font_equal (avalues->font, bvalues->font)) return FALSE; } if (akey->mask & GDK_GC_FUNCTION) { if (avalues->function != bvalues->function) return FALSE; } if (akey->mask & GDK_GC_FILL) { if (avalues->fill != bvalues->fill) return FALSE; } if (akey->mask & GDK_GC_TILE) { if (avalues->tile != bvalues->tile) return FALSE; } if (akey->mask & GDK_GC_STIPPLE) { if (avalues->stipple != bvalues->stipple) return FALSE; } if (akey->mask & GDK_GC_CLIP_MASK) { if (avalues->clip_mask != bvalues->clip_mask) return FALSE; } if (akey->mask & GDK_GC_SUBWINDOW) { if (avalues->subwindow_mode != bvalues->subwindow_mode) return FALSE; } if (akey->mask & GDK_GC_TS_X_ORIGIN) { if (avalues->ts_x_origin != bvalues->ts_x_origin) return FALSE; } if (akey->mask & GDK_GC_TS_Y_ORIGIN) { if (avalues->ts_y_origin != bvalues->ts_y_origin) return FALSE; } if (akey->mask & GDK_GC_CLIP_X_ORIGIN) { if (avalues->clip_x_origin != bvalues->clip_x_origin) return FALSE; } if (akey->mask & GDK_GC_CLIP_Y_ORIGIN) { if (avalues->clip_y_origin != bvalues->clip_y_origin) return FALSE; } if (akey->mask & GDK_GC_EXPOSURES) { if (avalues->graphics_exposures != bvalues->graphics_exposures) return FALSE; } if (akey->mask & GDK_GC_LINE_WIDTH) { if (avalues->line_width != bvalues->line_width) return FALSE; } if (akey->mask & GDK_GC_LINE_STYLE) { if (avalues->line_style != bvalues->line_style) return FALSE; } if (akey->mask & GDK_GC_CAP_STYLE) { if (avalues->cap_style != bvalues->cap_style) return FALSE; } if (akey->mask & GDK_GC_JOIN_STYLE) { if (avalues->join_style != bvalues->join_style) return FALSE; } return TRUE; }