static DiaPattern * _create_preset_pattern (guint n) { DiaPattern *pat; Color color; g_return_val_if_fail (n < G_N_ELEMENTS (_pattern_presets), NULL); switch (_pattern_presets[n].type) { case DIA_LINEAR_GRADIENT: pat = dia_pattern_new (_pattern_presets[n].type, 0, 0.0, 0.0); if (_pattern_presets[n].flags != 0) dia_pattern_set_point (pat, _pattern_presets[n].flags & LEFT ? 1.0 : 0.0, _pattern_presets[n].flags & DOWN ? 1.0 : 0.0); break; case DIA_RADIAL_GRADIENT: pat = dia_pattern_new (_pattern_presets[n].type, 0, 0.5, 0.5); dia_pattern_set_radius (pat, 0.5); /* set the focal point to the center */ dia_pattern_set_point (pat, 0.5, 0.5); break; default : g_assert_not_reached (); } color = attributes_get_background (); dia_pattern_add_color (pat, 0.0, &color); color = attributes_get_foreground (); dia_pattern_add_color (pat, 1.0, &color); return pat; }
void updateFillColorStop(GfxState * state, double offset) { GfxRGB color; Color fill = this->fill_color; state->getFillRGB(&color); fill.red = colToDbl(color.r); fill.green = colToDbl(color.g); fill.blue = colToDbl(color.b); g_return_if_fail (this->pattern != NULL); dia_pattern_add_color (this->pattern, offset, &fill); }