50
50
/* these are the built-in units
52
static GimpUnitDef gimp_unit_defs[GIMP_UNIT_END] =
52
static const GimpUnitDef gimp_unit_defs[GIMP_UNIT_END] =
55
55
{ FALSE, 0.0, 0, "pixels", "px", "px", N_("pixel"), N_("pixels") },
66
66
/* not a unit at all but kept here to have the strings in one place
68
static GimpUnitDef gimp_unit_percent =
68
static const GimpUnitDef gimp_unit_percent =
70
FALSE, 0.0, 0, "percent", "%", "%", N_("percent"), N_("percent")
70
FALSE, 0.0, 0, "percent", "%", "%", N_("percent"), N_("plural|percent")
140
140
_gimp_unit_set_deletion_flag (Gimp *gimp,
142
gboolean deletion_flag)
142
gboolean deletion_flag)
144
144
g_return_if_fail ((unit >= GIMP_UNIT_END) &&
145
(unit < (GIMP_UNIT_END + gimp->n_user_units)));
145
(unit < (GIMP_UNIT_END + gimp->n_user_units)));
147
147
_gimp_unit_get_user_unit (gimp, unit)->delete_on_exit =
148
148
deletion_flag ? TRUE : FALSE;
152
152
_gimp_unit_get_factor (Gimp *gimp,
155
155
g_return_val_if_fail (unit < (GIMP_UNIT_END + gimp->n_user_units),
156
gimp_unit_defs[GIMP_UNIT_INCH].factor);
156
gimp_unit_defs[GIMP_UNIT_INCH].factor);
158
158
if (unit < GIMP_UNIT_END)
159
159
return gimp_unit_defs[unit].factor;
165
165
_gimp_unit_get_digits (Gimp *gimp,
168
168
g_return_val_if_fail (unit < (GIMP_UNIT_END + gimp->n_user_units),
169
gimp_unit_defs[GIMP_UNIT_INCH].digits);
169
gimp_unit_defs[GIMP_UNIT_INCH].digits);
171
171
if (unit < GIMP_UNIT_END)
172
172
return gimp_unit_defs[unit].digits;
178
178
_gimp_unit_get_identifier (Gimp *gimp,
181
181
g_return_val_if_fail ((unit < (GIMP_UNIT_END + gimp->n_user_units)) ||
182
(unit == GIMP_UNIT_PERCENT),
183
gimp_unit_defs[GIMP_UNIT_INCH].identifier);
182
(unit == GIMP_UNIT_PERCENT),
183
gimp_unit_defs[GIMP_UNIT_INCH].identifier);
185
185
if (unit < GIMP_UNIT_END)
186
186
return gimp_unit_defs[unit].identifier;
195
195
_gimp_unit_get_symbol (Gimp *gimp,
198
198
g_return_val_if_fail ((unit < (GIMP_UNIT_END + gimp->n_user_units)) ||
199
(unit == GIMP_UNIT_PERCENT),
200
gimp_unit_defs[GIMP_UNIT_INCH].symbol);
199
(unit == GIMP_UNIT_PERCENT),
200
gimp_unit_defs[GIMP_UNIT_INCH].symbol);
202
202
if (unit < GIMP_UNIT_END)
203
203
return gimp_unit_defs[unit].symbol;
212
212
_gimp_unit_get_abbreviation (Gimp *gimp,
215
215
g_return_val_if_fail ((unit < (GIMP_UNIT_END + gimp->n_user_units)) ||
216
(unit == GIMP_UNIT_PERCENT),
217
gimp_unit_defs[GIMP_UNIT_INCH].abbreviation);
216
(unit == GIMP_UNIT_PERCENT),
217
gimp_unit_defs[GIMP_UNIT_INCH].abbreviation);
219
219
if (unit < GIMP_UNIT_END)
220
220
return gimp_unit_defs[unit].abbreviation;
229
229
_gimp_unit_get_singular (Gimp *gimp,
232
232
g_return_val_if_fail ((unit < (GIMP_UNIT_END + gimp->n_user_units)) ||
233
(unit == GIMP_UNIT_PERCENT),
234
gettext (gimp_unit_defs[GIMP_UNIT_INCH].singular));
233
(unit == GIMP_UNIT_PERCENT),
234
gimp_unit_defs[GIMP_UNIT_INCH].singular);
236
236
if (unit < GIMP_UNIT_END)
237
return gettext (gimp_unit_defs[unit].singular);
237
return g_strip_context (gimp_unit_defs[unit].singular,
238
gettext (gimp_unit_defs[unit].singular));
239
240
if (unit == GIMP_UNIT_PERCENT)
240
return gettext (gimp_unit_percent.singular);
241
return g_strip_context (gimp_unit_percent.singular,
242
gettext (gimp_unit_percent.singular));
242
return gettext (_gimp_unit_get_user_unit (gimp, unit)->singular);
244
return _gimp_unit_get_user_unit (gimp, unit)->singular;
246
248
_gimp_unit_get_plural (Gimp *gimp,
249
251
g_return_val_if_fail ((unit < (GIMP_UNIT_END + gimp->n_user_units)) ||
250
(unit == GIMP_UNIT_PERCENT),
251
gettext (gimp_unit_defs[GIMP_UNIT_INCH].plural));
252
(unit == GIMP_UNIT_PERCENT),
253
gimp_unit_defs[GIMP_UNIT_INCH].plural);
253
255
if (unit < GIMP_UNIT_END)
254
return gettext (gimp_unit_defs[unit].plural);
256
return g_strip_context (gimp_unit_defs[unit].plural,
257
gettext (gimp_unit_defs[unit].plural));
256
259
if (unit == GIMP_UNIT_PERCENT)
257
return gettext (gimp_unit_percent.plural);
259
return gettext (_gimp_unit_get_user_unit (gimp, unit)->plural);
260
return g_strip_context (gimp_unit_percent.plural,
261
gettext (gimp_unit_percent.plural));
263
return _gimp_unit_get_user_unit (gimp, unit)->plural;
267
/* The sole purpose of this function is to release the allocated
268
* memory. It must only be used from gimp_units_exit().
271
gimp_user_units_free (Gimp *gimp)
275
for (list = gimp->user_units; list; list = g_list_next (list))
277
GimpUnitDef *user_unit = list->data;
279
g_free (user_unit->identifier);
280
g_free (user_unit->symbol);
281
g_free (user_unit->abbreviation);
282
g_free (user_unit->singular);
283
g_free (user_unit->plural);
288
g_list_free (gimp->user_units);
289
gimp->user_units = NULL;
290
gimp->n_user_units = 0;