/* This file is automatically generated by `parse-configuration'.
 * Do not modify it, edit `markup-theme-configuration.list' instead.
 */


#ifndef QUARRY_MARKUP_THEME_CONFIGURATION_H
#define QUARRY_MARKUP_THEME_CONFIGURATION_H


#include "configuration.h"
#include "utils.h"


typedef struct _MarkupThemeListItem	MarkupThemeListItem;
typedef struct _MarkupThemeList		MarkupThemeList;

struct _MarkupThemeListItem {
  MarkupThemeListItem		*next;
  char				*name;

  char				*directory;
  double			 default_size;
  int				 size_is_relative;
  double			 default_opacity;
};

struct _MarkupThemeList {
  MarkupThemeListItem		*first;
  MarkupThemeListItem		*last;

  int				 item_size;
  StringListItemDispose		 item_dispose;
};


#define markup_theme_list_new()						\
  string_list_new_derived (sizeof (MarkupThemeListItem),			\
			  ((StringListItemDispose)			\
			   markup_theme_list_item_dispose))

#define markup_theme_list_init(list)					\
  string_list_init_derived ((list), sizeof (MarkupThemeListItem),		\
			   ((StringListItemDispose)			\
			    markup_theme_list_item_dispose))

#define STATIC_MARKUP_THEME_LIST					\
  STATIC_STRING_LIST_DERIVED (MarkupThemeListItem,			\
			     markup_theme_list_item_dispose)

void		markup_theme_list_item_dispose (MarkupThemeListItem *item);


#define markup_theme_list_get_item(list, item_index)			\
  ((MarkupThemeListItem *)						\
   string_list_get_item ((list), (item_index)))

#define markup_theme_list_find(list, name)				\
  ((MarkupThemeListItem *) string_list_find ((list), (name)))

#define markup_theme_list_find_after_notch(list, name, notch)		\
  ((MarkupThemeListItem *)						\
   string_list_find_after_notch ((list), (name), (notch)))


enum {
  SECTION_MARKUP_THEME,
  NUM_MARKUP_THEME_CONFIGURATION_SECTIONS
};


extern const ConfigurationSection	markup_theme_configuration_sections[];


extern MarkupThemeList			markup_themes;


#endif /* QUARRY_MARKUP_THEME_CONFIGURATION_H */
