forked from PsychoticNinja/irssi
in default.theme. If some abstract isn't set in theme, it fallbacks to the one in default.theme now. This should help with old themes, and maybe themes that don't change something should just keep those parts commented out.. git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1386 dbcabf3a-b0e7-0310-adc4-f8d773084564
66 lines
2.0 KiB
C
66 lines
2.0 KiB
C
#ifndef __THEMES_H
|
|
#define __THEMES_H
|
|
|
|
typedef struct {
|
|
char *name;
|
|
|
|
int count;
|
|
char **formats; /* in same order as in module's default formats */
|
|
char **expanded_formats; /* this contains the formats after
|
|
expanding {templates} */
|
|
} MODULE_THEME_REC;
|
|
|
|
typedef struct {
|
|
char *path;
|
|
char *name;
|
|
time_t last_modify;
|
|
|
|
int default_color; /* default color to use with text with default
|
|
background. default is 0 which means the default
|
|
color set by terminal */
|
|
int default_real_color; /* default color to use with background set.
|
|
this shouldn't be 0, unless black is really
|
|
wanted. default is 7 (white). */
|
|
GHashTable *modules;
|
|
|
|
int replace_keys[256]; /* index to replace_values for each char */
|
|
GSList *replace_values;
|
|
GHashTable *abstracts;
|
|
|
|
void *gui_data;
|
|
} THEME_REC;
|
|
|
|
typedef struct _FORMAT_REC FORMAT_REC;
|
|
|
|
extern GSList *themes;
|
|
extern THEME_REC *current_theme;
|
|
extern GHashTable *default_formats;
|
|
|
|
THEME_REC *theme_create(const char *path, const char *name);
|
|
void theme_destroy(THEME_REC *rec);
|
|
|
|
THEME_REC *theme_load(const char *name);
|
|
|
|
#define theme_register(formats) theme_register_module(MODULE_NAME, formats)
|
|
#define theme_unregister() theme_unregister_module(MODULE_NAME)
|
|
void theme_register_module(const char *module, FORMAT_REC *formats);
|
|
void theme_unregister_module(const char *module);
|
|
|
|
#define EXPAND_FLAG_IGNORE_REPLACES 0x01 /* don't use the character replaces when expanding */
|
|
#define EXPAND_FLAG_IGNORE_EMPTY 0x02 /* if abstract's argument is empty, don't try to expand it (ie. {xx }, but not {xx}) */
|
|
#define EXPAND_FLAG_RECURSIVE_MASK 0x0f
|
|
/* private */
|
|
#define EXPAND_FLAG_ROOT 0x10
|
|
#define EXPAND_FLAG_LASTCOLOR_ARG 0x20
|
|
|
|
char *theme_format_expand(THEME_REC *theme, const char *format);
|
|
char *theme_format_expand_data(THEME_REC *theme, const char **format,
|
|
char default_fg, char default_bg,
|
|
char *save_last_fg, char *save_last_bg,
|
|
int flags);
|
|
|
|
void themes_init(void);
|
|
void themes_deinit(void);
|
|
|
|
#endif
|