You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gnucash/lib/goffice/split/mstyle.h

159 lines
6.4 KiB

#ifndef GNUMERIC_MSTYLE_H
#define GNUMERIC_MSTYLE_H
#include "gnumeric.h"
#include "style.h"
/*
* Keep element_size up to date.
*/
typedef enum {
/* Delimiter */
MSTYLE_ELEMENT_UNSET = 0,
/* When there is a conflict in a merge */
MSTYLE_ELEMENT_CONFLICT,
/* Types that are visible in blank cells */
MSTYLE_COLOR_BACK,
MSTYLE_COLOR_PATTERN,
MSTYLE_BORDER_TOP,
MSTYLE_BORDER_BOTTOM,
MSTYLE_BORDER_LEFT,
MSTYLE_BORDER_RIGHT,
MSTYLE_BORDER_REV_DIAGONAL,
MSTYLE_BORDER_DIAGONAL,
MSTYLE_PATTERN,
/* Delimiter */
MSTYLE_ELEMENT_MAX_BLANK,
/* Normal types */
MSTYLE_COLOR_FORE,
MSTYLE_FONT_NAME,
MSTYLE_FONT_BOLD,
MSTYLE_FONT_ITALIC,
MSTYLE_FONT_UNDERLINE,
MSTYLE_FONT_STRIKETHROUGH,
MSTYLE_FONT_SIZE,
MSTYLE_FORMAT,
MSTYLE_ALIGN_V,
MSTYLE_ALIGN_H,
MSTYLE_INDENT,
MSTYLE_ROTATION,
MSTYLE_WRAP_TEXT,
MSTYLE_SHRINK_TO_FIT,
MSTYLE_CONTENT_LOCKED,
MSTYLE_CONTENT_HIDDEN,
/* Things not in MS Excel's Style */
MSTYLE_VALIDATION,
MSTYLE_HLINK, /* patch equal_XL if this is changed */
MSTYLE_INPUT_MSG, /* patch equal_XL if this is changed */
/* Delimiter */
MSTYLE_ELEMENT_MAX
} MStyleElementType;
GnmStyle *mstyle_new (void);
GnmStyle *mstyle_new_default (void);
GnmStyle *mstyle_copy (const GnmStyle *st);
GnmStyle *mstyle_copy_merge (const GnmStyle *orig, const GnmStyle *overlay);
void mstyle_ref (GnmStyle *st);
void mstyle_unref (GnmStyle *st);
GnmStyle *mstyle_link_sheet (GnmStyle *st, Sheet *sheet);
void mstyle_link (GnmStyle *st);
void mstyle_link_multiple (GnmStyle *st, int count);
void mstyle_unlink (GnmStyle *st);
gboolean mstyle_equal (GnmStyle const *a, GnmStyle const *b);
gboolean mstyle_equal_XL (GnmStyle const *a, GnmStyle const *b);
gboolean mstyle_verify (GnmStyle const *st);
guint mstyle_hash (gconstpointer st);
guint mstyle_hash_XL (gconstpointer st);
gboolean mstyle_empty (const GnmStyle *st);
/*
* Wafer thin element access functions.
*/
gboolean mstyle_is_element_set (const GnmStyle *st, MStyleElementType t);
gboolean mstyle_is_element_conflict (const GnmStyle *st, MStyleElementType t);
void mstyle_compare (GnmStyle *a, const GnmStyle *b);
void mstyle_unset_element (GnmStyle *st, MStyleElementType t);
void mstyle_replace_element (GnmStyle *src, GnmStyle *dst, MStyleElementType t);
void mstyle_set_color (GnmStyle *st, MStyleElementType t,
GnmColor *col);
GnmColor *mstyle_get_color (const GnmStyle *st, MStyleElementType t);
void mstyle_set_border (GnmStyle *st, MStyleElementType t,
GnmBorder *border);
GnmBorder *mstyle_get_border (const GnmStyle *st, MStyleElementType t);
void mstyle_set_pattern (GnmStyle *st, int pattern);
int mstyle_get_pattern (const GnmStyle *st);
void mstyle_set_font_name (GnmStyle *st, const char *name);
const char *mstyle_get_font_name (const GnmStyle *st);
void mstyle_set_font_bold (GnmStyle *st, gboolean bold);
gboolean mstyle_get_font_bold (const GnmStyle *st);
void mstyle_set_font_italic (GnmStyle *st, gboolean italic);
gboolean mstyle_get_font_italic (const GnmStyle *st);
void mstyle_set_font_uline (GnmStyle *st, StyleUnderlineType const t);
StyleUnderlineType mstyle_get_font_uline (const GnmStyle *st);
void mstyle_set_font_strike (GnmStyle *st, gboolean strikethrough);
gboolean mstyle_get_font_strike (const GnmStyle *st);
void mstyle_set_font_size (GnmStyle *st, double size);
double mstyle_get_font_size (const GnmStyle *st);
/* this font must be unrefd after use */
GnmFont *mstyle_get_font (const GnmStyle *st,
PangoContext *context,
double zoom);
void mstyle_set_format (GnmStyle *st, GnmFormat *);
void mstyle_set_format_text (GnmStyle *st, const char *format);
GnmFormat *mstyle_get_format (const GnmStyle *st);
void mstyle_set_align_h (GnmStyle *st, StyleHAlignFlags a);
StyleHAlignFlags mstyle_get_align_h (const GnmStyle *st);
void mstyle_set_align_v (GnmStyle *st, StyleVAlignFlags a);
StyleVAlignFlags mstyle_get_align_v (const GnmStyle *st);
void mstyle_set_indent (GnmStyle *st, int i);
int mstyle_get_indent (const GnmStyle *st);
void mstyle_set_rotation (GnmStyle *st, int r);
int mstyle_get_rotation (const GnmStyle *st);
void mstyle_set_wrap_text (GnmStyle *st, gboolean f);
gboolean mstyle_get_wrap_text (const GnmStyle *st);
gboolean mstyle_get_effective_wrap_text (const GnmStyle *st);
void mstyle_set_shrink_to_fit (GnmStyle *st, gboolean f);
gboolean mstyle_get_shrink_to_fit (const GnmStyle *st);
void mstyle_set_content_locked (GnmStyle *st, gboolean f);
gboolean mstyle_get_content_locked (const GnmStyle *st);
void mstyle_set_content_hidden (GnmStyle *st, gboolean f);
gboolean mstyle_get_content_hidden (const GnmStyle *st);
void mstyle_set_validation (GnmStyle *st, GnmValidation *v);
GnmValidation *mstyle_get_validation (const GnmStyle *st);
void mstyle_set_hlink (GnmStyle *st, GnmHLink *link);
GnmHLink *mstyle_get_hlink (const GnmStyle *st);
void mstyle_set_input_msg (GnmStyle *st, GnmInputMsg *msg);
GnmInputMsg *mstyle_get_input_msg (const GnmStyle *st);
gboolean mstyle_visible_in_blank (const GnmStyle *st);
PangoAttrList *mstyle_generate_attrs_full (const GnmStyle *st);
PangoAttrList *mstyle_get_pango_attrs (const GnmStyle *st,
PangoContext *context,
double zoom);
void mstyle_set_from_pango_attribute (GnmStyle *style,
PangoAttribute const *attr);
char *mstyle_to_string (const GnmStyle *st); /* Debug only ! leaks like a sieve */
void mstyle_dump (const GnmStyle *st);
void mstyle_init (void);
void mstyle_shutdown (void);
#endif /* GNUMERIC_MSTYLE_H */