teapot-spreadsheet/src/common/style.c

58 lines
1.9 KiB
C

#include <style.h>
const char *Adjust_Name[] =
{ [AUTOADJUST] = "Auto",
[LEFT] = "left", [RIGHT] = "right", [CENTER] = "center"
};
const char Adjust_Char[] = "alrc";
const char *FloatFormat_Name[] =
{ [FLT_NO_FORMAT] = "NO_FORMAT",
[FLT_DECIMAL] = "decimal", [FLT_SCIENTIFIC] = "scientific",
[FLT_COMPACT] = "compact", [FLT_HEXACT] = "hexact"
};
const char FloatFormat_Char[] = "Ndsch";
const char *ColorAspect_Name[] =
{ [FOREGROUND] = "foreground", [BACKGROUND] = "background"
};
const ColorNum DefaultCN[] =
{ [FOREGROUND] = 0, [BACKGROUND] = 16, [NUM_COLOR_ASPECTS] = 255 };
/* clearstyle -- zero out a style */
void clearstyle(Style* s) {
s->precision = NO_PRECISION;
for (ColorAspect ca = FOREGROUND; ca < NUM_COLOR_ASPECTS; ++ca)
s->aspect[ca] = NO_COLOR_SET;
s->adjust = AUTOADJUST;
s->fform = FLT_NO_FORMAT;
s->shadowed = false;
s->shadowed_set = false;
s->transparent = false;
s->transparent_set = false;
s->bold = false;
s->bold_set = false;
s->underline = false;
s->underline_set = false;
}
/* style_equal -- return true if styles are equal */
bool style_equal(Style l, Style r) {
if (l.precision != r.precision) return false;
for (ColorAspect ca = FOREGROUND; ca < NUM_COLOR_ASPECTS; ++ca)
if (l.aspect[ca] != r.aspect[ca]) return false;
if (l.adjust != r.adjust) return false;
if (l.fform != r.fform) return false;
if (l.shadowed_set != r.shadowed_set) return false;
if (l.shadowed_set && (l.shadowed != r.shadowed)) return false;
if (l.transparent_set != r.transparent_set) return false;
if (l.transparent_set && (l.transparent != r.transparent)) return false;
if (l.bold_set != r.bold_set) return false;
if (l.bold_set && (l.bold != r.bold)) return false;
if (l.underline_set != r.underline_set) return false;
if (l.underline_set && (l.underline != r.underline)) return false;
return true;
}